OSDN Git Service

2008-06-19 Kenneth Zadeck <zadeck@naturalbridge.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-06-19  Kenneth Zadeck <zadeck@naturalbridge.com>
2
3         * doc/rtl.texi: Updated subreg section.
4         
5 2008-06-19  Jakub Jelinek  <jakub@redhat.com>
6
7         PR c++/36523
8         * cgraphunit.c (cgraph_process_new_functions): Don't clear
9         node->needed and node->reachable.
10         * cgraphbuild.c (record_reference): Handle OMP_PARALLEL and OMP_TASK.
11         * omp-low.c (delete_omp_context): Call finalize_task_copyfn.
12         (expand_task_call): Don't call expand_task_copyfn.
13         (expand_task_copyfn): Renamed to...
14         (finalize_task_copyfn): ... this.
15
16 2008-06-19  Jan Hubicka  <jh@suse.cz>
17
18         * builtins.c (expand_builtin_nonlocal_goto): Stabilize r_sp before
19         clobbering framepointer.
20
21 2008-06-19  Jan Hubicka  <jh@suse.cz>
22
23         * tree-optimize.c (execute_early_local_optimizations): Set
24         cgraph_state only at first invocation.
25
26 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
27
28         * system.h (-Wc++-compat): Activate as a warning, no an error.
29
30 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
31
32         * config/i386/i386.md (*jcc_fused_1): Use ASM_COMMENT_START
33         instead of "#" in insn asm template.
34         (*jcc_fused_2): Ditto.
35
36 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
37
38         * config/i386/i386.h (ix86_tune_indices)
39         [X86_TUNE_FUSE_CMP_AND_BRANCH]: New.
40         (TARGET_FUSE_CMP_AND_BRANCH): New define.
41         * config/i386/i386.md (*jcc_fused_1): New insn pattern
42         (*jcc_fused_2): Ditto.
43         * config/i386/i386.c (ix86_tune_features): Add m_CORE2 to
44         X86_TUNE_FUSE_CMP_AND_BRANCH targets.
45         (print operand): Handle 'E' and 'e' code.
46
47 2008-06-19  Anatoly Sokolov  <aesok@post.ru>
48
49         * config/avr/avr.c (avr_mcu_t): Add attiny13a.
50         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
51         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
52
53 2008-06-19  Bernhard Fischer  <aldot@gcc.gnu.org>
54
55         * cgraphunit.c (cgraph_finalize_function): Remove redundant setting of
56         node->decl.
57         (cgraph_expand_function): Use local copy of decl.
58         (cgraph_expand_all_functions): Remove redundant initialization of
59         order_pos.
60         (cgraph_optimize): Reword internal_error message.
61
62 2008-06-19  Chung-Lin Tang  <ctang@marvell.com>
63
64         * arm-protos.h (arm_return_in_memory): Remove public
65         arm_return_in_memory() prototype.
66         * arm.c (arm_return_in_memory): Add static prototype, add target
67         hook macro, change definition and comments.
68         * arm.h (TARGET_RETURN_IN_MEMORY): Remove.
69
70 2008-06-19  Ben Elliston  <bje@au.ibm.com>
71
72         * dfp.h, dfp.c, config/dfp-bit.h, config/dfp-bit.c, real.h,
73         real.c: Remove references to IEEE 754R.
74         * doc/install.texi (Configuration): IEEE 754R -> IEEE 754-2008.
75         * doc/libgcc.texi (Decimal float library routines): Likewise.
76
77 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
78
79         * targhooks.h (struct gcc_target): New member unwind_word_mode.
80         (default_unwind_word_mode): Add prototype.
81         * targhooks.c (default_unwind_word_mode): New function.
82         (default_eh_return_filter_mode): Return targetm.unwind_word_mode ()
83         instead of word_mode.
84         * target-def.h (TARGET_UNWIND_WORD_MODE): New macro.
85         (TARGET_INITIALIZER): Use it.
86
87         * c-common.c (handle_mode_attribute): Support "unwind_word"
88         mode attribute.
89         * unwind-generic.h (_Unwind_Word, _Unwind_Sword): Use it.
90
91         * except.c (init_eh): Use targetm.unwind_word_mode () instead of
92         word_mode to access SjLj_Function_Context member "data".
93         (sjlj_emit_dispatch_table): Likewise.  Also, perform type
94         conversion from targetm.eh_return_filter_mode () to
95         targetm.unwind_word_mode () if they differ.
96
97         * builtin-types.def (BT_UNWINDWORD): New primitive type.
98         (BT_FN_UNWINDWORD_PTR): New function type.
99         (BT_FN_WORD_PTR): Remove.
100         * builtins.def (BUILT_IN_EXTEND_POINTER): Use BT_FN_UNWINDWORD_PTR.
101         * except.c (expand_builtin_extend_pointer): Convert pointer to
102         targetm.unwind_word_mode () instead of word_mode.
103
104         * config/spu/spu-protos.h (spu_eh_return_filter_mode): Remove.
105         * config/spu/spu.c (spu_eh_return_filter_mode): Remove.
106         (spu_unwind_word_mode): New function.
107         (TARGET_EH_RETURN_FILTER_MODE): Do not define.
108         (TARGET_UNWIND_WORD_MODE): Define.
109         * config/spu/t-spu-elf (TARGET_LIBGCC2_CFLAGS): Remove -D__word__=SI.
110
111 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
112
113         * config/spu/spu.c (reg_align): Remove.
114         (regno_aligned_for_load): Also accept ARG_POINTER_REGNUM.
115         (spu_split_load): Use regno_aligned_for_load instead of reg_align.
116         (spu_split_store): Likewise.
117
118 2008-06-18  Bernhard Fischer  <aldot@gcc.gnu.org>
119
120         * gcc/tree-vn.c: Fix typo in comment.
121
122 2008-06-18  Jan Hubicka  <jh@suse.cz>
123
124         * cgraphunit.c (cgraph_optimize): Output debug info when doing
125         toplevel reorder too.
126
127 2008-06-18  Jan Hubicka  <jh@suse.cz>
128
129         * c-opts.c (c_common_post_options): PCH is not compatible with
130         no-unit-at-a-time.
131         * opts.c (handle_options): Enable unit-at-a-time at O0 along with
132         -fno-toplevel-reorder by default now.
133
134 2008-06-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
135
136         PR documentation/30739
137         * doc/install.texi (Prerequisites): Document dependency on awk.
138
139 2008-06-18  Uros Bizjak  <ubizjak@gmail.com>
140             Ian Lance Taylor  <iant@google.com>
141
142         PR rtl-optimization/35604
143         * jump.c (redirect_exp_1): Skip the condition of an IF_THEN_ELSE. We
144         only want to change jump destinations, not eventual label comparisons.
145
146 2008-06-16  Jan Hubicka  <jh@suse.cz>
147
148         * cgraphunit.c (cgraph_expand_pending_functions): Give up at
149         syntax errors.
150         (cgraph_analyze_function): Likewise.
151
152 2008-06-16  Jan Hubicka  <jh@suse.cz>
153
154         * cgraph.h (cgraph_mark_if_needed): New function.
155         * cgraphunit.c (cgraph_mark_if_needed): New function.
156         * c-decl.c (duplicate_decl): Use it.
157
158 2008-06-16  Jan Hubicka  <jh@suse.cz>
159
160         * cgraph.c (cgraph_add_new_function): When in expansion state, do
161         lowering.
162
163 2008-06-16  Jan Hubicka  <jh@suse.cz>
164
165         * tree-outof-ssa.c (pass_out_of_ssa): Do not depend on PROP_alias.
166
167 2008-06-16  Daniel Jacobowitz  <dan@codesourcery.com>
168             Kazu Hirata  <kazu@codesourcery.com>
169             Maxim Kuvyrkov  <maxim@codesourcery.com
170
171         * config.gcc (mips64el-st-linux-gnu): Use mips/st.h and mips/t-st.
172         * config.host: Use driver-native.o and mips/x-native for mips*-linux*.
173         * config/mips/linux.h (host_detect_local_cpu): Declare, add to
174         EXTRA_SPEC_FUNCTIONS.
175         (MARCH_MTUNE_NATIVE_SPECS, BASE_DRIVER_SELF_SPECS): New macros.
176         (DRIVER_SELF_SPECS): Adjust.
177         * config/mips/linux64.h (DRIVER_SELF_SPECS): Update.
178         * config/mips/st.h, config/mips/t-st: New.
179         * config/mips/driver-native.c, config/mips/x-native: New.
180         * doc/invoke.texi (MIPS): Document 'native' value for -march and
181         -mtune options.
182
183 2008-06-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
184
185         * config/mips/mips.h (ISA_HAS_CONDMOVE): Slice ISA_HAS_FP_CONDMOVE
186         from it.
187         (ISA_HAS_FP_CONDMOVE): New macro.
188         (ISA_HAS_FP_MADD4_MSUB4, ISA_HAS_FP_MADD3_MSUB3): New macros.
189         (ISA_HAS_NMADD_NMSUB): Rename to ISA_HAS_NMADD4_NMSUB4.
190         (ISA_HAS_NMADD3_NMSUB3): New macro.
191         * config/mips/mips.c (mips_rtx_costs): Update.
192         * config/mips/mips.md (MOVECC): Don't use FP conditional moves when
193         compiling for ST Loongson 2E/2F.
194         (madd<mode>): Rename to madd4<mode>.  Update.
195         (madd3<mode>): New pattern.
196         (msub<mode>): Rename to msub4<mode>.  Update.
197         (msub3<mode>): New pattern.
198         (nmadd<mode>): Rename to nmadd4<mode>.  Update.
199         (nmadd3<mode>): New pattern.
200         (nmadd<mode>_fastmath): Rename to nmadd4<mode>_fastmath.  Update.
201         (nmadd3<mode>_fastmath): New pattern.
202         (nmsub<mode>): Rename to nmsub4<mode>.  Update.
203         (nmsub3<mode>): New pattern.
204         (nmsub<mode>_fastmath): Rename to nmsub4<mode>_fastmath.  Update.
205         (nmsub3<mode>_fastmath): New pattern.
206         (mov<SCALARF:mode>_on_<MOVECC:mode>, mov<mode>cc): Update.
207
208 2008-06-18  Steven Bosscher  <steven@gcc.gnu.org>
209
210         * df.h (struct df_ref): Replace 'insn' field with 'insn_info' field.
211         (DF_REF_INSN_INFO): New.
212         (DF_REF_INSN, DF_REF_INSN_UID): Rewrite macros using DF_REF_INSN_INFO.
213         (DF_REF_IS_ARTIFICIAL): Artificial refs are now identified as refs
214         with a NULL DF_REF_INSN_INFO.
215         (DF_INSN_INFO_GET, DF_INSN_INFO_SET): Renamed from DF_INSN_GET and
216         DF_INSN_SET.
217         (DF_INSN_INFO_LUID, DF_INSN_INFO_DEFS, DF_INSN_INFO_USES,
218         DF_INSN_INFO_EQ_USES): New.
219         (DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES, DF_INSN_EQ_USES,
220         DF_INSN_UID_LUID, DF_INSN_UID_DEFS, DF_INSN_UID_USES,
221         DF_INSN_UID_EQ_USES): Rewrite using DF_INSN_INFO_* macros.
222         * df-core.c: Update comment for above changes.
223         (df_insn_debug_regno): Use DF_INSN_INFO_GET instead of INSN_UID and
224         DF_INSN_UID_* macros.
225         (df_ref_debug): Check for NULL DF_REF_INSN_INFO.
226         * df-scan.c (df_ref_record): Take a df_insn_info instead of an
227         insn rtx.  Update all callers.
228         (df_def_record_1, df_defs_record, df_uses_record, df_get_call_refs,
229         df_ref_create_structure, df_insn_refs_collect): Likewise.
230         (df_ref_equal_p): Compare DF_REF_INSN_INFO pointers for the refs.
231         * df-problems.c (df_chain_dump): Test for non-NULL DF_REF_INSN_INFO.
232         (df_live_bb_local_compute): Retrieve DF_INSN_INFO, use DF_INSN_INFO_*
233         macros to access the insn refs.
234         (df_chain_top_dump, df_chain_bottom_dump, df_byte_lr_alloc): Likewise.
235         * fwprop.c (use_killed_between): Use DF_REF_INSN accessor macro.
236         (all_uses_available): Retrieve DF_INSN_INFO for def_insn, and use it
237         for accessing the refs.
238         (try_fwprop_subst): Likewise.
239         * ddg.c (add_cross_iteration_register_deps): Use DF_REF_INSN macro.
240         * web.c (union_defs): Retrieve DF_INSN_INFO for def_insn, and use it
241         for accessing the refs.
242         * loop-invariant.c (invariant_for_use): Use DF_REF_BB macro.
243         (check_dependencies): Use DF_INSN_INFO_GET, use DF_INSN_INFO_* macros
244         to look at the insn refs.
245         (record_uses): Likewise.
246         * dce.c (deletable_insn_p): Don't tolerate artificial DEFs in this
247         function anymore.
248         (mark_artificial_uses): Don't mark_insn for artificial refs.
249         (mark_reg_rependencies): Likewise.
250
251         * doc/rtl.texi: Remove documentation of ADDRESSOF.
252
253 2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
254
255         * configure: Regenerate.
256
257 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
258
259         * config/avr/avr.c (avr_mcu_t): Remove atmega32hvb.
260         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 
261         * config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
262
263 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
264
265         * config/avr/avr.c (avr_mcu_t): Add attiny167.
266         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 
267         * gcc/config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
268
269 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
270
271         * config/avr/avr.c (avr_mcu_t): Add atmega32u4.
272         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 
273         * config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
274
275 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
276
277         * tree-ssa-sccvn.c: Fix format of comments.
278
279 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
280
281         * cgraph.c: Remove unneeded forward declarations of eq_node()
282         and hash_node().
283
284 2008-06-17  Steven Bosscher  <steven@gcc.gnu.org>
285
286         * see.c (see_analyse_one_def): Do not look for REG_LIBCALL and
287         REG_RETVAL notes.
288         (see_update_relevancy): Likewise.
289         * fwprop.c (try_fwprop_subst): Likewise.
290         * rtlanal.c (noop_move_p): Likewise.
291         * builtins.c (expand_buitlin_mathfn): Don't try to add REG_EQUAL
292         notes to non-existing libcall blocks.
293         * cse.c (cse_insn): Change prototype.  Don't update libcall notes.
294         Remove orig_set.
295         (cse_extended_basic_block): Don't track libcall and no-conflict notes.
296         (dead_libcall_p): Remove.
297         (delete_trivially_dead_insns): Don't use it.
298         * web.c (union_defs): Remove comment about keeping nops.
299         * gcse.c (hash_scan_insn): Don't take libcall pointers.
300         (compute_hash_table_work): Don't track libcall notes.
301         (do_local_cprop): Don't take libcall pointers.  Don't update
302         libcall notes.
303         (adjust_libcall_notes): Deleted.
304         (local_cprop_pass): Remove stack for nested libcalls (which shouldn't
305         ever have existed in the first place).
306         (replace_store_insn): Don't try to remove libcall notes.
307         * lower-subreg.c (move_libcall_note, move_retval_note): Deleted.
308         (resolve_reg_notes): Don't call them.
309         (resolve_simple_move): Likewise.
310         (decompose_multiword_subregs): Remove block handling REG_RETVAL notes.
311         Don't remove REG_RETVAL notes.
312         * emit-rtl.c (try_split): Don't update libcall notes.
313         (emit_copy_of_insn_after): Dito.
314         * cselib.c (cselib_current_insn_in_libcall): Remove.
315         (cselib_process_insn): Don't set/clear it.
316         (new_elt_loc_list): Don't record it.
317         (cselib_init): Don't initialize it.
318         * cselib.c (struct elt_loc_list): Remove in_libcall field.
319         * loop-invariant.c (find_invariant_insn): Don't look for libcall
320         notes.
321         * sched-deps.c (sched_analyze_insn): Don't group libcall blocks.
322         (sched_analyze): Don't set up deps->libcall_block_tail_insn.
323         (init_deps): Don't initialize it.
324         * sched-int.h (struct deps): Rremove libcall_block_tail_insn field.
325         * combine.c (delete_noop_moves): Don't update libcall notes.
326         (can_combine_p): Remove now pointless #if 0 block.
327         (try_combine): Remove another obsolete #if 0 block.
328         (distribute_notes): Don't distribute libcall notes.
329         * reg-notes.def (REG_LIBCALL, REG_RETVAL): Remove.
330         * dce.c (libcall_dead_p): Remove.
331         (delete_unmarked_insns): Don't handle libcall blocks.
332         (preserve_libcall_for_dce): Remove.
333         (prescan_insns_for_dce): Don't special-case libcall block insns.
334         * reload1 (reload): Don't handle libcall notes. 
335         * doc/rtl.texi (REG_LIBCALL, REG_RETVAL, REG_LIBCALL_ID): Remove
336         documentation.
337
338 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
339
340         * config/avr/avr.c (avr_mcu_t): Add atmega32c1.
341         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
342         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
343
344 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
345
346         * config/avr/avr.c (avr_mcu_t): Add atmega32m1.
347         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
348         * config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
349
350 2008-06-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
351
352         * Makefile.in (FLAGS_TO_PASS): Add $(datarootdir).
353
354 2008-06-16  Ira Rosen  <irar@il.ibm.com>
355
356         PR tree-optimization/36493
357         * tree-vect-transform.c (vect_create_data_ref_ptr): Remove TYPE from
358         the arguments list. Use VECTYPE to create vector pointer.
359         (vectorizable_store): Fail if accesses through a pointer to vectype
360         do not alias the original memory reference operands.
361         Call vect_create_data_ref_ptr without the removed argument.
362         (vectorizable_load): Likewise.
363         (vect_setup_realignment): Call vect_create_data_ref_ptr without the
364         removed argument.
365
366 2008-06-015  Andy Hutchinson  <hutchinsonandy@aim.com>
367
368         PR target/36336
369         * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Add check for 
370         reg_equiv_constant.
371
372 2008-06-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
373
374         * config/mips/loongson2ef.md: New file.
375         * config/mips/mips.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
376         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
377         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
378         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): New constants.
379         (define_attr "cpu"): Rename loongson2e and loongson2f to loongson_2e
380         and loongson_2f.
381         (loongson2ef.md): New include.
382         * config/mips/loongson.md (vec_pack_ssat_<mode>, vec_pack_usat_<mode>)
383         (add<mode>3, paddd, ssadd<mode>3, usadd<mode>3)
384         (loongson_and_not_<mode>, loongson_average_<mode>, loongson_eq_<mode>)
385         (loongson_gt_<mode>, loongson_extract_halfword)
386         (loongson_insert_halfword_0, loongson_insert_halfword_2)
387         (loongson_insert_halfword_3, loongson_mult_add, smax<mode>3)
388         (umax<mode>3, smin<mode>3, umin<mode>3, loongson_move_byte_mask)
389         (umul<mode>3_highpart, smul<mode>3_highpart, loongson_smul_lowpart)
390         (loongson_umul_word, loongson_pasubub, reduc_uplus_<mode>)
391         (loongson_psadbh, loongson_pshufh, loongson_psll<mode>)
392         (loongson_psra<mode>, loongson_psrl<mode>, sub<mode>3, psubd)
393         (sssub<mode>3, ussub<mode>3, vec_interleave_high<mode>)
394         (vec_interleave_low<mode>): Define type attribute.
395         * config/mips/mips.c (mips_ls2): New static variable.
396         (mips_issue_rate): Update to handle tuning for Loongson 2E/2F.
397         (mips_ls2_init_dfa_post_cycle_insn, mips_init_dfa_post_cycle_insn)
398         (sched_ls2_dfa_post_advance_cycle, mips_dfa_post_advance_cycle):
399         Implement target scheduling hooks.
400         (mips_multipass_dfa_lookahead): Update to handle tuning for
401         Loongson 2E/2F.
402         (mips_sched_init): Initialize data for Loongson scheduling.
403         (mips_ls2_variable_issue): New static function.
404         (mips_variable_issue): Update to handle tuning for Loongson 2E/2F.
405         Add sanity check.
406         (TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN)
407         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Override target hooks.
408         * config/mips/mips.h (TUNE_LOONGSON_2EF): New macros.
409         (ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY, ISA_HAS_HILO_INTERLOCKS):
410         Handle ST Loongson 2E/2F cores.
411         (CPU_UNITS_QUERY): Define macro to enable querying of DFA units.
412
413 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
414
415         * omp-low.c (extract_omp_for_data): Fix comment typo.
416         * c.opt: Fix typo.
417
418 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
419
420         * doc/sourcebuild.texi (Config Fragments): Remove obsolete
421         FIXME note about gcc/config.guess.
422         * doc/options.texi (Option file format): Remove non-ASCII bytes.
423         * doc/cpp.texi: Expand TABs, drop indentation outside examples.
424         * doc/cppopts.texi: Likewise.
425         * doc/extend.texi: Likewise.
426         * doc/gcc.texi: Likewise.
427         * doc/gccint.texi: Likewise.
428         * doc/gcov.texi: Likewise.
429         * doc/gty.texi: Likewise.
430         * doc/hostconfig.texi: Likewise.
431         * doc/install.texi: Likewise.
432         * doc/invoke.texi: Likewise.
433         * doc/loop.texi: Likewise.
434         * doc/makefile.texi: Likewise.
435         * doc/md.texi: Likewise.
436         * doc/passes.texi: Likewise.
437         * doc/tm.texi: Likewise.
438         * doc/tree-ssa.texi: Likewise.
439         * doc/trouble.texi: Likewise.
440
441 2008-06-15  Mark Shinwell  <shinwell@codesourcery.com>
442             Nathan Sidwell  <nathan@codesourcery.com>
443             Maxim Kuvyrkov  <maxim@codesourcery.com>
444             Richard Sandiford  <rdsandiford@googlemail.com>
445         
446         * config/mips/mips-modes.def: Add V8QI, V4HI and V2SI modes.
447         * config/mips/mips-protos.h (mips_expand_vector_init): New.
448         * config/mips/mips-ftypes.def: Add function types for Loongson-2E/2F
449         builtins.
450         * config/mips/mips.c (mips_split_doubleword_move): Handle new modes.
451         (mips_hard_regno_mode_ok_p): Allow 64-bit vector modes for Loongson.
452         (mips_vector_mode_supported_p): Add V2SImode, V4HImode and
453         V8QImode cases.
454         (LOONGSON_BUILTIN, LOONGSON_BUILTIN_ALIAS): New.
455         (CODE_FOR_loongson_packsswh, CODE_FOR_loongson_packsshb,
456         (CODE_FOR_loongson_packushb, CODE_FOR_loongson_paddw,
457         (CODE_FOR_loongson_paddh, CODE_FOR_loongson_paddb,
458         (CODE_FOR_loongson_paddsh, CODE_FOR_loongson_paddsb)
459         (CODE_FOR_loongson_paddush, CODE_FOR_loongson_paddusb)
460         (CODE_FOR_loongson_pmaxsh, CODE_FOR_loongson_pmaxub)
461         (CODE_FOR_loongson_pminsh, CODE_FOR_loongson_pminub)
462         (CODE_FOR_loongson_pmulhuh, CODE_FOR_loongson_pmulhh)
463         (CODE_FOR_loongson_biadd, CODE_FOR_loongson_psubw)
464         (CODE_FOR_loongson_psubh, CODE_FOR_loongson_psubb)
465         (CODE_FOR_loongson_psubsh, CODE_FOR_loongson_psubsb)
466         (CODE_FOR_loongson_psubush, CODE_FOR_loongson_psubusb)
467         (CODE_FOR_loongson_punpckhbh, CODE_FOR_loongson_punpckhhw)
468         (CODE_FOR_loongson_punpckhwd, CODE_FOR_loongson_punpcklbh)
469         (CODE_FOR_loongson_punpcklhw, CODE_FOR_loongson_punpcklwd): New.
470         (mips_builtins): Add Loongson builtins.
471         (mips_loongson_2ef_bdesc): New.
472         (mips_bdesc_arrays): Add mips_loongson_2ef_bdesc.
473         (mips_builtin_vector_type): Handle unsigned versions of vector modes.
474         (MIPS_ATYPE_UQI, MIPS_ATYPE_UDI, MIPS_ATYPE_V2SI, MIPS_ATYPE_UV2SI)
475         (MIPS_ATYPE_V4HI, MIPS_ATYPE_UV4HI, MIPS_ATYPE_V8QI, MIPS_ATYPE_UV8QI):
476         New.
477         (mips_expand_vector_init): New.
478         * config/mips/mips.h (HAVE_LOONGSON_VECTOR_MODES): New.
479         (TARGET_CPU_CPP_BUILTINS): Define __mips_loongson_vector_rev
480         if appropriate.
481         * config/mips/mips.md: Add unspec numbers for Loongson
482         builtins.  Include loongson.md.
483         (MOVE64): Include Loongson vector modes.
484         (SPLITF): Include Loongson vector modes.
485         (HALFMODE): Handle Loongson vector modes.
486         * config/mips/loongson.md: New.
487         * config/mips/loongson.h: New.
488         * config.gcc: Add loongson.h header for mips*-*-* targets.
489         * doc/extend.texi (MIPS Loongson Built-in Functions): New.
490
491 2008-06-14  Joseph Myers  <joseph@codesourcery.com>
492
493         * config.gcc (arc-*-elf*, avr-*-*, fr30-*-elf, frv-*-elf,
494         h8300-*-elf*, h8300-*-*, i[34567]86-*-elf*, x86_64-*-elf*,
495         i[34567]86-*-aout*, i[34567]86-*-coff*, ia64*-*-elf*,
496         iq2000*-*-elf*, m32r-*-elf*, m32rle-*-elf*, m32r-*-linux*,
497         m32rle-*-linux*, m68hc11-*-*|m6811-*-*, m68hc12-*-*|m6812-*-*,
498         m68k-*-coff*, mcore-*-elf, mcore-*-pe*, mipsisa64sr71k-*-elf*,
499         mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*, mips-*-elf* |
500         mipsel-*-elf*, mips64-*-elf* | mips64el-*-elf*, mips64vr-*-elf* |
501         mips64vrel-*-elf*, mips64orion-*-elf* | mips64orionel-*-elf*,
502         mipstx39-*-elf* | mipstx39el-*-elf*, mn10300-*-*, pdp11-*-,
503         powerpc-*-elf*, powerpcle-*-elf*, sh-*-elf* | sh[12346l]*-*-elf* |
504         sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | sh-*-linux* |
505         sh[2346lbe]*-*-linux* | sh-*-netbsdelf* | shl*-*-netbsdelf* |
506         sh5-*-netbsd* | sh5l*-*-netbsd* | sh64-*-netbsd* |
507         sh64l*-*-netbsd*, sh-*-*, sparc-*-elf*, sparc64-*-elf*,
508         v850e1-*-*, v850e-*-*, v850-*-*, xstormy16-*-elf, m32c-*-elf*):
509         Remove use_fixproto=yes.
510         (ia64*-*-hpux*): Remove comment about using fixproto.
511         (m68k-*-uclinuxoldabi*, m68k-*-uclinux*): Remove use_fixproto=no.
512
513 2008-06-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
514
515         * configure.ac: Update gthr-default.h lazily, to avoid unneeded
516         library rebuilds.
517         * configure: Regenerate.
518
519 2008-06-13  Eric Botcazou  <ebotcazou@adacore.com>
520
521         PR middle-end/36520
522         * builtins.c (get_memory_rtx): Test for the presence of DECL_SIZE_UNIT
523         before evaluating it.
524
525 2008-06-13  Jakub Jelinek  <jakub@redhat.com>
526
527         PR c/36507
528         * c-decl.c (merge_decls): Don't clear DECL_EXTERNAL for
529         nested inline functions.
530         (start_decl, start_function): Don't invert DECL_EXTERNAL
531         for nested inline functions.
532
533 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
534
535         * config/mips/mips.md: Remove TARGET_DEBUG_D_MODE conditions from
536         splits that must be made for correctness.
537
538 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
539
540         * config/mips/mips.c (BUILTIN_AVAIL_NON_MIPS16): New macro.
541         (AVAIL_NON_MIPS16): Likewise.
542         (mips_builtin_description): Replace target_flags with a predicate.
543         (paired_single, sb1_paired_single, mips3d, dsp, dspr2, dsp_32)
544         (dspr2_32): New availability predicates.
545         (MIPS_BUILTIN): New macro.
546         (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS)
547         (CMP_4S_BUILTINS, MOVTF_BUILTINS, CMP_BUILTINS)
548         (DIRECT_NO_TARGET_BUILTIN, BPOSGE_BUILTIN): Use it.
549         Replace the TARGET_FLAGS parameters with AVAIL parameters.
550         (mips_ps_bdesc, mips_sb1_bdesc, mips_dsp_bdesc)
551         (mips_dsp_32only_bdesc): Merge into...
552         (mips_builtins): ...this new array.
553         (mips_bdesc_map, mips_bdesc_arrays): Delete.
554         (mips_init_builtins): Update after above changes.
555         (mips_expand_builtin_1): Merge into...
556         (mips_expand_builtin): ...here and update after above changes.
557
558 2008-06-12  Paul Brook  <paul@codesourcery.com>
559
560         * longlong.h (__arm__): Define count_leading_zeros.
561         * config/arm/lib1funcs.asm (xxh, xxl, yyh, yyl): Define.
562         (clzsi2, clzdi2): New functions.
563         * config/arm/bpabi-v6m.S (xxh, xxl, yyh, yyl): Remove.
564         * config/arm/bpabi.S (xxh, xxl, yyh, yyl): Remove.
565         * config/arm/t-strongarm-elf (LIB1ASMFUNCS): Ditto.
566         * config/arm/t-vxworks (LIB1ASMFUNCS): Ditto.
567         * config/arm/t-pe (LIB1ASMFUNCS): Ditto.
568         * config/arm/t-arm-elf (LIB1ASMFUNCS): Ditto.
569         * config/arm/t-arm-coff (LIB1ASMFUNCS): Ditto.
570         * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
571         * config/arm/t-symbian (LIB1ASMFUNCS): Ditto.
572         * config/arm/t-wince-pe (LIB1ASMFUNCS): Ditto.
573
574 2008-06-12  Kazu Hirata  <kazu@codesourcery.com>
575
576         * config/m68k/m68k.c (m68k_tune_flags): New.
577         (override_options): Compute m68k_tune_flags.
578         (MULL_COST, MULW_COST): Update for various variants of CFV2.
579         * config/m68k/m68k.h (TUNE_MAC, TUNE_EMAC): New.
580
581 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
582
583         PR middle-end/36506
584         * omp-low.c (expand_omp_sections): Initialize l2 to avoid bogus warning.
585
586 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
587
588         * tree-inline.c (copy_body_r): Copy TREE_SIDE_EFFECTS along with
589         TREE_THIS_VOLATILE on INDIRECT_REF nodes.
590
591 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
592
593         * expr.c (store_field): Do a block copy from BLKmode to BLKmode-like.
594         (get_inner_reference): Use BLKmode for byte-aligned BLKmode bitfields.
595
596 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
597
598         PR middle-end/36506
599         * omp-low.c (expand_omp_sections): Handle #pragma omp sections with
600         reductions.
601
602 2008-06-12  Richard Guenther  <rguenther@suse.de>
603
604         PR tree-optimization/36345
605         * tree-flow.h (struct ptr_info_def): Align escape_mask,
606         add memory_tag_needed flag.
607         (may_alias_p): Declare.
608         * tree-ssa-alias.c (may_alias_p): Export.
609         (set_initial_properties): Use memory_tag_needed flag.
610         (update_reference_counts): Likewise.
611         (reset_alias_info): Reset memory_tag_needed flag.
612         (create_name_tags): Check memory_tag_needed flag.
613         (dump_points_to_info_for): Dump it.
614         * tree-ssa-structalias.c (struct variable_info): Remove
615         directly_dereferenced flag.
616         (new_var_info): Do not initialize it.
617         (process_constraint_1): Do not set it.
618         (update_alias_info): Set is_dereferenced flag.
619         (set_uids_in_ptset): Use may_alias_p.
620         (set_used_smts): Check memory_tag_needed flag.
621         (find_what_p_points_to): Likewise.  Pass is_dereferenced flag.
622         * tree-ssa-alias.c (verify_flow_sensitive_alias_info): Check
623         memory_tag_needed flag.
624         * tree-ssa-alias-warnings.c (dsa_named_for): Try to recover
625         from broken design.
626
627 2008-06-12  Kai Tietz  <kai.tietz@onevision.com>
628
629         * config/i386/i386.c (ix86_compute_frame_layout): Disable
630         red zone for w64 abi.
631         (ix86_expand_prologue): Likewise.
632         (ix86_force_to_memory): Likewise.
633         (ix86_free_from_memory): Likewise.
634
635 2008-06-11  Edmar Wienskoski  <edmar@freescale.com>
636
637         PR target/36425
638         * config/rs6000/rs6000.c (rs6000_override_options): Set
639         rs6000_isel conditionally to the absence of comand line override.
640         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
641         Remove duplicate rs6000_isel setting.
642         * config/rs6000/eabispe.h: Ditto.
643
644 2008-06-11  Richard Guenther  <rguenther@suse.de>
645
646         * alias.c (get_alias_set): Use the element alias-set for arrays.
647         (record_component_aliases): For arrays and vectors do nothing.
648         * c-common.c (strict_aliasing_warning): Handle the cases
649         of alias set zero explicitly.
650         * Makefile.in (dfp.o-warn): Add -Wno-error.
651
652 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
653
654         * config.gcc (all_defaults): Add arch_32 arch_64 cpu_32 cpu_64
655         tune_32 tune_64.
656         (i[34567]86-*-* | x86_64-*-*): Add arch_32 arch_64 cpu_32 cpu_64
657         tune_32 tune_64 to supported_defaults.  Allow values not
658         supporting 64-bit mode for arch_32, cpu_32 and tune_32 for
659         x86_64.  Do not override cpu_32 or cpu_64 values from target name.
660         (i[34567]86-*-linux*, i[34567]86-*-solaris2.1[0-9]*): Only default
661         with_cpu_64 to generic for 64-bit-supporting configurations, not
662         with_cpu.  Remove FIXMEs.
663         * doc/install.texi (--with-cpu-32, --with-cpu-64, --with-arch-32,
664         --with-arch-64, --with-tune-32, --with-tune-64): Document.
665         * config/i386/i386.h (OPT_ARCH32, OPT_ARCH64): Define.
666         (OPTION_DEFAULT_SPECS): Add tune_32, tune_64, cpu_32, cpu_64,
667         arch_32 and arch_64.
668
669 2008-06-11  Eric Botcazou  <ebotcazou@adacore.com>
670             Olivier Hainque  <hainque@adacore.com>
671
672         * builtins.c (get_memory_rtx): Accept byte-addressable bitfields.
673         Use DECL_SIZE_UNIT to retrieve the size of the field.
674
675 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
676
677         * config/arm/arm.c (arm_init_neon_builtins): Move initialization
678         with function calls after declarations.  Lay out
679         neon_float_type_node before further use.
680
681 2008-06-11  Richard Guenther  <rguenther@suse.de>
682
683         * tree-flow.h (may_point_to_global_var): Declare.
684         * tree-ssa-alias.c (may_point_to_global_var): New function.
685         * tree-ssa-sink.c (is_hidden_global_store): Use it.
686
687 2008-06-10  Kazu Hirata  <kazu@codesourcery.com>
688
689         * configure.ac: Teach that fido supports .debug_line.
690         * configure: Regenerate.
691
692 2008-06-10  Tom Tromey  <tromey@redhat.com>
693
694         * c-lex.c (fe_file_change): Pass SOURCE_LINE to start_source_file
695         debug hook.
696
697 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
698
699         * dfp.c (WORDS_BIGENDIAN): Define to 0 if not defined.
700         (encode_decimal64, decode_decimal64, encode_decimal128,
701         decode_decimal128): Reverse order of 32-bit parts of value if host
702         and target endianness differ.
703
704 2008-06-10  Vinodha Ramasamy  <vinodha@google.com>
705
706         * value_prob.c (tree_divmod_fixed_value_transform): Use gcov_type.
707         Avoid division by 0.
708         (tree_mod_pow2_value_transform): Likewise.
709         (tree_ic_transform): Likewise.
710         (tree_stringops_transform): Likewise.
711         (tree_mod_subtract_transform): Likewise.
712         * tree-inline-c (copy_bb): Corrected int type to gcov_type.
713         (copy_edges_for_bb): Likewise.
714         (initialize_cfun): Likewise.
715
716 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
717
718         * config/i386/i386.md (*btdi_rex64): Change operand 1 predicate to
719         nonmemory_operand. Add "N" operand constraint.
720         (*btsi): Ditto.
721         (*jcc_btdi_mask_rex64): New instruction and split pattern.
722         (*jcc_btsi_mask): Ditto.
723         (*jcc_btsi_mask_1): Ditto.
724
725 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
726
727         * config/rs6000/rs6000.c (build_opaque_vector_type): Set
728         TYPE_CANONICAL for copied element type.
729
730 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
731
732         PR target/36473
733         * config/i386/i386.c (ix86_tune_features) [TUNE_USE_BT]:
734         Add m_CORE2 and m_GENERIC.
735         * config/i386/predicates.md (bt_comparison_operator): New predicate.
736         * config/i386/i386.md (*btdi_rex64): New instruction pattern.
737         (*btsi): Ditto.
738         (*jcc_btdi_rex64): New instruction and split pattern.
739         (*jcc_btsi): Ditto.
740         (*jcc_btsi_1): Ditto.
741         (*btsq): Fix Intel asm dialect operand order.
742         (*btrq): Ditto.
743         (*btcq): Ditto.
744
745 2008-06-09  Andy Hutchinson  <hutchinsonandy@aim.com>
746
747         PR middle-end/36447
748         * simplify-rtx.c (simplify_subreg): Add check for shift count 
749         greater than size.
750
751 2008-06-09  Richard Sandiford  <rdsandiford@googlemail.com>
752
753         * doc/md.texi: Synchronize with later constraints.md change.
754         * longlong.h (umul_ppmm): Replace the MIPS asm implementation
755         with a C implementation.
756         * config/mips/mips.c (mips_legitimize_move): Remove MFHI and
757         MFLO handling.
758         (mips_subword): Assume TImode for CONST_INTs if TARGET_64BIT.
759         (mips_split_doubleword_move): Use special MTHI and MFHI instructions
760         when moving to and from MD_REGNUM.
761         (mips_output_move): Don't handle moves from GPRs to HI_REGNUM.
762         Handle moves from LO_REGNUM to GPRs using MFLO, MACC or DMACC.
763         Handle byte and halfword moves.
764         (mips_hard_regno_mode_ok_p): Handle MD_REGS and DSP_ACC_REGS
765         separately.
766         * config/mips/constraints.md (h): Turn into NO_REGS.
767         (l, x): Update documentation.
768         * config/mips/mips.md (UNSPEC_MFHILO): Delete.
769         (UNSPEC_MFHI, UNSPEC_MTHI, UNSPEC_SET_HILO): New.
770         (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): Renumber.
771         (HILO): New mode iterator.
772         (MOVE128): Add TI.
773         (any_div): New code iterator.
774         (u): Extend code attribute to div and udiv.
775         (*add<mode>3_mips16, *movdi_64bit_mips16, *movsi_mips16): Use
776         d_operand in the splitters.  Remove redundant CONST_INT checks.
777         (mulsi3_mult3, mul<mode>3_internal, mul<mode>3_r4000, *mul_acc_si)
778         (*macc, *msac, *msac_using_macc, *macc2, *msac2, *mul_sub_si)
779         (*muls): Remove "=h" clobbers.  Adjust peephole2s and define_splits
780         accordingly, using normal moves instead of unspecs to move LO into
781         a GPR.  Use d_operand and lo_operand instead of *_REG_P checks.
782         (<u>mulsidi3): Handle expansion in C code.
783         (<u>mulsidi3_32bit_internal): Rename to...
784         (<u>mulsidi3_32bit): ...this.
785         (<u>mulsidi3_32bit_r4000): Fix insn separator.
786         (*<u>mulsidi3_64bit): Rename to...
787         (<u>mulsidi3_64bit): ...this.  Combine DImode "=h" and "=l" clobbers
788         into a TImode "=x" clobber.  In the split, use an UNSPEC_SET_HILO
789         to set LO and HI to the multiplication result.  Use a normal move
790         for MFLO and an unspec for MFHI.
791         (*<u>mulsidi3_64bit_parts): Replace with...
792         (<u>mulsidi3_64bit_hilo): ...this new instruction.
793         (<su>mulsi3_highpart): Extend to TARGET_FIX_R4000.
794         (<su>mulsi3_highpart_internal): Turn into a define_insn_and_split
795         and extend it to TARGET_FIX_R4000.  Store the destination in a GPR
796         instead of HI.  Split the instruction into a separate multiplication
797         and MFHI if !TARGET_FIX_R4000.
798         (<su>muldi3_highpart): Likewise.
799         (<su>mulsi3_highpart_mulhi_internal): Remove the first alternative
800         and the "=h" clobber.
801         (*<su>mulsi3_highpart_neg_mulhi_internal): Likewise.
802         (<u>mulditi3): New expander.
803         (<u>mulditi3_internal, <u>mulditi3_r4000): New patterns.
804         (madsi): Remove "=h" clobber.
805         (divmod<mode>4, udivmod<mode>4): Turn into define_insn_and_splits.
806         Force the modulus result to be a GPR and split the instruction into
807         a division followed by an MFHI after reload.
808         (<u>divmod<GPR:mode>4_hilo_<HILO:mode>): New instruction.
809         (*lea_high64): Use d_operand in the define_peephole2.  Likewise
810         the MIPS16 HIGH define_split.
811         (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16): Change type
812         of acc<->gpr moves to "multi".
813         (*movdi_64bit): Replace the single "x" alternative with
814         alternatives for moving into and out of "a".
815         (*movhi_internal, *movqi_internal): Likewise.  Use mips_output_move.
816         (*movsi_internal): Extend the "d<-A" alternative to "d<-a".
817         (*movdi_64bit_mips16, *movsi_mips16): Add d<-a alternatives.
818         Use d_operand in the splitters.  Remove redundant CONST_INT checks.
819         (*movhi_mips16, *movqi_mips16): Likewise.  Use mips_output_move.
820         (movti): New expander.
821         (*movti, *movti_mips16): New insns.
822         (mfhilo_<mode>, *mfhilo_<mode>, *mfhilo_<mode>_macc): Delete.
823         (mfhi<GPR:mode>_<HILO:mode>): New pattern.
824         (mthi<GPR:mode>_<HILO:mode>): Likewise.
825         * config/mips/predicates.md (fpr_operand): Delete.
826         (d_operand): New predicate.
827
828 2008-06-09  Michael Meissner  <michael.meissner@amd.com>
829
830         * config.gcc (i[34567]86-*-*): Put test in quotes to prevent
831         failure on some Bourne shells.
832         (x86_64-*-*): Ditto.
833
834 2008-06-09  Kai Tietz  <kai.tietz@onevision.com>
835
836         * config/i386/cygming.h (TARGET_SUBTARGET64_DEFAULT): New.
837
838 2008-06-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
839
840         * doc/install.texi (*-*-solaris2*): Remove obsolete contents.
841         (sparc-sun-solaris2*): Likewise.
842
843 2008-06-09  Arnaud Charlet  <charlet@adacore.com
844
845         * doc/install.texi: Update requirements to build the Ada compiler.
846
847 2008-06-08  Steven Bosscher  <stevenb.gcc@gmail.com>
848
849         * df-scan.c (struct df_scan_problem_data): Remove the
850         mw_link_pool alloc pool.
851         (df_scan_free_internal): Don't free it.
852         (df_scan_alloc): Don't allocate it.
853         * df.h (struct df_link): Update comment.
854
855 2008-06-08  Nathan Sidwell  <nathan@codesourcery.com>
856
857         * except.h: Correct checks for when SJLJ exceptions must be used.
858
859 2008-06-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
860
861         * doc/invoke.texi (Wenum-compare): Mention that it is enabled by
862         default.
863         
864 2008-06-08  Joseph Myers  <joseph@codesourcery.com>
865
866         PR tree-optimization/36218
867         * configure.ac: Use LDFLAGS="${LDFLAGS_FOR_BUILD}" when running
868         configure for the build system.
869         (BUILD_LDFLAGS): Define.
870         * configure: Regenerate.
871         * Makefile.in (BUILD_LDFLAGS): Define to @BUILD_LDFLAGS@.
872
873 2008-07-08  Anatoly Sokolov  <aesok@post.ru>
874
875         PR target/36424
876         * config/avr/avr.h (HARD_REGNO_RENAME_OK): Define.
877         * config/avr/avr.c (avr_hard_regno_rename_ok): New function. 
878         * config/avr/avr-protos.h (avr_hard_regno_rename_ok): New prototype. 
879
880 2008-06-07  Danny Smith  <dannysmith@users.sourceforge.net>
881
882         * config/i386/cygming.h (MAYBE_UWIN_CPP_BUILTINS): Remove.
883
884 2008-06-07  Joseph Myers  <joseph@codesourcery.com>
885
886         * config.gcc (Obsolete configurations): Remove list of
887         configurations.
888         (Unsupported targets list): Add *-*-linux*aout*, *-*-linux*libc1*,
889         *-*-solaris2.[0-6], *-*-solaris2.[0-6].*, *-*-sysv*.  Remove other
890         targets matched by those patterns.
891         (strongarm*-*-*, ep9312*-*-*, xscale-*-*, parisc*-*-*,
892         m680[012]0-*-*, *-*-linux*libc1*, *-*-linux*aout*,
893         alpha*-*-unicosmk*, strongarm*-*-freebsd*, ep9312-*-elf,
894         arm*-*-kaos*, cris-*-aout, parisc*64*-*-linux*, parisc*-*-linux*,
895         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
896         i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
897         i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-sco3.2v5*,
898         i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, i[34567]86-*-uwin*,
899         i[34567]86-*-kaos*, m68020-*-elf*, m68010-*-netbsdelf*,
900         mips-wrs-windiss, mt-*-elf, powerpc-*-beos*, powerpc-*-chorusos*,
901         powerpc-wrs-windiss*, powerpcle-*-sysv*, powerpc-*-kaos*,
902         powerpcle-*-kaos*, sh*-*-kaos*, sparc-*-sysv4*, strongarm-*-elf*,
903         strongarm-*-pe, strongarm-*-kaos*, vax-*-bsd*, vax-*-sysv*,
904         vax-*-ultrix*, xscale-*-elf, xscale-*-coff,
905         i[34567]86-*-linux*aout*, i[34567]86-*-linux*libc1): Remove.
906         Make code for Solaris 7 and greater unconditional for Solaris.
907         (ep9312-*-*, parisc1*, m680[012]0-*-*, parisc*-*-*, mt-*-*):
908         Remove --with-* handling.
909         * config/rs6000/sysv4.h (-mwindiss): Remove from all specs.
910         (LIB_WINDISS_SPEC, CPP_OS_WINDISS_SPEC, STARTFILE_WINDISS_SPEC,
911         ENDFILE_WINDISS_SPEC, LINK_START_WINDISS_SPEC,
912         LINK_OS_WINDISS_SPEC): Remove.
913         * config/rs6000/sysv4.opt (mwindiss): Remove.
914         * configure.ac (strongarm*-*-*, xscale*-*-*): Remove.
915         * configure: Regenerate.
916         * doc/cpp.texi: Don't mention BeOS.
917         * doc/extend.texi (interrupt): Don't mention MS1.
918         * doc/install.texi: (i386-@var{any}-sysv, m68k-bull-sysv,
919         m68k-hp-hpux, m68000-hp-hpux, m68000-att-sysv,
920         alphaev5-cray-unicosmk*, xscale-*-*, i?86-*-linux*aout,
921         i?86-*-sco3.2v5*, i?86-*-udk, m68k-hp-hpux, powerpc-*-sysv4,
922         powerpc-*-sysv4, powerpcle-*-sysv4, *-*-sysv*, vax-dec-ultrix):
923         Remove.
924         * doc/invoke.texi (MT Options): Remove.
925         (-mwindiss): Remove.
926         (CRIS Options): Remove cris-axis-aout references.
927         (HPPA Options): Don't mention hppa1.1-*-pro.
928         * doc/md.texi: (MorphoTech family): Remove.
929         * libgcc2.c: Don't handle UWIN.
930         * config/alpha/t-unicosmk: Remove.
931         * config/alpha/unicosmk.h: Remove.
932         * config/arm/kaos-arm.h: Remove.
933         * config/arm/kaos-strongarm.h: Remove.
934         * config/arm/strongarm-coff.h: Remove.
935         * config/arm/strongarm-elf.h: Remove.
936         * config/arm/strongarm-pe.h: Remove.
937         * config/arm/t-strongarm-pe: Remove.
938         * config/arm/t-xscale-coff: Remove.
939         * config/arm/t-xscale-elf: Remove.
940         * config/arm/xscale-coff.h: Remove.
941         * config/arm/xscale-elf.h: Remove.
942         * config/chorus.h: Remove.
943         * config/cris/aout.h: Remove.
944         * config/cris/aout.opt: Remove.
945         * config/cris/t-aout: Remove.
946         * config/i386/beos-elf.h: Remove.
947         * config/i386/kaos-i386.h: Remove.
948         * config/i386/ptx4-i.h: Remove.
949         * config/i386/sco5.h: Remove.
950         * config/i386/sco5.opt: Remove.
951         * config/i386/sysv4-cpp.h: Remove.
952         * config/i386/sysv5.h: Remove.
953         * config/i386/t-beos: Remove.
954         * config/i386/t-sco5: Remove.
955         * config/i386/t-uwin: Remove.
956         * config/i386/uwin.asm: Remove.
957         * config/i386/uwin.h: Remove.
958         * config/kaos.h: Remove.
959         * config/mips/windiss.h: Remove.
960         * config/mt: Remove directory.
961         * config/pa/pa-osf.h: Remove.
962         * config/pa/pa-pro-end.h: Remove.
963         * config/pa/t-pro: Remove.
964         * config/ptx4.h: Remove.
965         * config/rs6000/beos.h: Remove.
966         * config/rs6000/kaos-ppc.h: Remove.
967         * config/rs6000/t-beos: Remove.
968         * config/rs6000/windiss.h: Remove.
969         * config/sh/kaos-sh.h: Remove.
970         * config/sol2-6.h: Remove.
971         * config/sparc/sol26-sld.h: Remove.
972         * config/sparc/sysv4-only.h: Remove.
973         * config/vax/bsd.h: Remove.
974         * config/vax/t-memfuncs: Remove.
975         * config/vax/ultrix.h: Remove.
976         * config/vax/vaxv.h: Remove.
977         * config/windiss.h: Remove.
978
979 2008-06-06 Uros Bizjak <ubizjak@gmail.com>
980
981         PR rtl-optimization/36438
982         * cse.c (fold_rtx) [ASHIFT, LSHIFTRT, ASHIFTRT]: Break out early
983         for vector shifts with constant scalar shift operands.
984
985 2008-06-06  Sandip Matte  <sandip@rmicorp.com>
986
987         * doc/invoke.texi: Document -march=xlr.
988         * config/mips/xlr.md: New file.
989         * config/mips/mips.md: Include it.
990         (cpu): Add "xlr".
991         * config/mips/mips.h (PROCESSOR_XLR): New processor_type.
992         * config/mips/mips.c (mips_cpu_info_table): Add an XLR entry.
993         (mips_rtx_cost_data): Likewise.
994
995 2008-06-06  Nathan Froyd  <froydnj@codesourcery.com>
996
997         * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Remove
998         PRE_INC and PRE_DEC cases.
999
1000 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
1001
1002         PR rtl-optimization/36419
1003         * except.c (expand_resx_expr): Call do_pending_stack_adjust () before
1004         the emitting jump insn.
1005
1006         PR target/36362
1007         * gimplify.c (gimplify_expr) <case TRUTH_NOT_EXPR>: If *expr_p type
1008         is not bool, boolify the whole *expr_p and convert to the desired type.
1009
1010 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
1011
1012         * c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to 200805.
1013         * langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause.
1014         Add omp_private_outer_ref hook, add another argument to
1015         omp_clause_default_ctor hook.
1016         * langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
1017         (LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
1018         (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to
1019         hook_tree_tree_tree_tree_null.
1020         (LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and
1021         LANG_HOOKS_OMP_PRIVATE_OUTER_REF.
1022         * hooks.c (hook_tree_tree_tree_tree_null): New function.
1023         * hooks.h (hook_tree_tree_tree_tree_null): New prototype.
1024         * tree.def (OMP_TASK): New tree code.
1025         * tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN,
1026         OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT,
1027         OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT,
1028         OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES,
1029         OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY,
1030         OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG,
1031         OMP_CLAUSE_COLLAPSE_EXPR): Define.
1032         (enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
1033         (OMP_DIRECTIVE_P): Add OMP_TASK.
1034         (OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes.
1035         (OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind.
1036         * tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE
1037         and OMP_CLAUSE_UNTIED entries.
1038         (omp_clause_num_ops): Likewise.  Increase OMP_CLAUSE_LASTPRIVATE
1039         num_ops to 2.
1040         (walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
1041         Walk OMP_CLAUSE_LASTPRIVATE_STMT.
1042         * tree-pretty-print.c (dump_omp_clause): Handle
1043         OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE,
1044         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
1045         (dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops.
1046         * c-omp.c (c_finish_omp_for): Allow pointer iterators.  Remove
1047         warning about unsigned iterators.  Change decl/init/cond/incr
1048         arguments to TREE_VECs, check arguments for all collapsed loops.
1049         (c_finish_omp_taskwait): New function.
1050         (c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to
1051         ws_clauses.
1052         * c-parser.c (c_parser_omp_for_loop): Parse collapsed loops.  Call
1053         default_function_array_conversion on init.  Add par_clauses argument.
1054         If decl is present in parallel's lastprivate clause, change it to
1055         shared and add lastprivate clause for decl to OMP_FOR_CLAUSES.
1056         Add clauses argument, on success set OMP_FOR_CLAUSES to it.  Look up
1057         collapse count in clauses.
1058         (c_parser_omp_for, c_parser_omp_parallel): Adjust
1059         c_parser_omp_for_loop callers.
1060         (OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE.
1061         (c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT.
1062         (c_parser_omp_clause_name): Handle collapse and untied clauses.
1063         (c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New
1064         functions.
1065         (c_parser_omp_clause_schedule): Handle schedule(auto).
1066         Include correct location in the error message.
1067         (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
1068         and PRAGMA_OMP_CLAUSE_UNTIED.
1069         (OMP_TASK_CLAUSE_MASK): Define.
1070         (c_parser_omp_task, c_parser_omp_taskwait): New functions.
1071         (c_parser_omp_construct): Handle PRAGMA_OMP_TASK.
1072         * tree-nested.c (convert_nonlocal_omp_clauses,
1073         convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT,
1074         OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE,
1075         OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
1076         Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in
1077         OMP_CLAUSE_DECL.
1078         (conver_nonlocal_reference, convert_local_reference,
1079         convert_call_expr): Handle OMP_TASK the same as OMP_PARALLEL.  Use
1080         OMP_TASKREG_* macros rather than OMP_PARALLEL_*.
1081         (walk_omp_for): Adjust for OMP_FOR_{INIT,COND,INCR} changes.
1082         * tree-gimple.c (is_gimple_stmt): Handle OMP_TASK.
1083         * c-tree.h (c_begin_omp_task, c_finish_omp_task): New prototypes.
1084         * c-pragma.h (PRAGMA_OMP_TASK, PRAGMA_OMP_TASKWAIT): New.
1085         (PRAGMA_OMP_CLAUSE_COLLAPSE, PRAGMA_OMP_CLAUSE_UNTIED): New.
1086         * c-typeck.c (c_begin_omp_task, c_finish_omp_task): New functions.
1087         (c_finish_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
1088         OMP_CLAUSE_UNTIED.
1089         * c-pragma.c (init_pragma): Init omp task and omp taskwait pragmas.
1090         * c-common.h (c_finish_omp_taskwait): New prototype.
1091         * gimple-low.c (lower_stmt): Handle OMP_TASK.
1092         * tree-parloops.c (create_parallel_loop): Create 1 entry
1093         vectors for OMP_FOR_{INIT,COND,INCR}.
1094         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
1095         (make_edges): Handle OMP_TASK.
1096         * tree-ssa-operands.c (get_expr_operands): Handle collapsed OMP_FOR
1097         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
1098         * tree-inline.c (estimate_num_insns_1): Handle OMP_TASK.
1099         * builtin-types.def (BT_PTR_ULONGLONG, BT_PTR_FN_VOID_PTR_PTR,
1100         BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
1101         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
1102         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
1103         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
1104         * omp-builtins.def (BUILT_IN_GOMP_TASK, BUILT_IN_GOMP_TASKWAIT,
1105         BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
1106         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
1107         BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
1108         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
1109         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
1110         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
1111         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
1112         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
1113         BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
1114         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
1115         BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
1116         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
1117         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
1118         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
1119         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
1120         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): New builtins.
1121         * gimplify.c (gimplify_omp_for): Allow pointer type for decl,
1122         handle POINTER_PLUS_EXPR.  If loop counter has been replaced and
1123         original iterator is present in lastprivate clause or if
1124         collapse > 1, set OMP_CLAUSE_LASTPRIVATE_STMT.  Handle collapsed
1125         OMP_FOR loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
1126         (gimplify_expr): Handle OMP_SECTIONS_SWITCH and OMP_TASK.
1127         (enum gimplify_omp_var_data): Add GOVD_PRIVATE_OUTER_REF.
1128         (omp_notice_variable): Set GOVD_PRIVATE_OUTER_REF if needed,
1129         if it is set, lookup var in outer contexts too.  Handle
1130         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.  Handle vars that are supposed
1131         to be implicitly determined firstprivate for task regions.
1132         (gimplify_scan_omp_clauses): Set GOVD_PRIVATE_OUTER_REF if needed,
1133         if it is set, lookup var in outer contexts too.  Set
1134         OMP_CLAUSE_PRIVATE_OUTER_REF if GOVD_PRIVATE_OUTER_REF is set.
1135         Handle OMP_CLAUSE_LASTPRIVATE_STMT, OMP_CLAUSE_COLLAPSE and
1136         OMP_CLAUSE_UNTIED.  Take region_type as last argument
1137         instead of in_parallel and in_combined_parallel.
1138         (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
1139         Adjust callers.
1140         (gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_PRIVATE_OUTER_REF if
1141         GOVD_PRIVATE_OUTER_REF is set.  Call omp_finish_clause langhook.
1142         (new_omp_context): Set default_kind to
1143         OMP_CLAUSE_DEFAULT_UNSPECIFIED for OMP_TASK regions.
1144         (omp_region_type): New enum.
1145         (struct gimplify_omp_ctx): Remove is_parallel and is_combined_parallel
1146         fields, add region_type.
1147         (new_omp_context): Take region_type as argument instead of is_parallel
1148         and is_combined_parallel.
1149         (gimple_add_tmp_var, omp_firstprivatize_variable, omp_notice_variable,
1150         omp_is_private, omp_check_private): Adjust ctx->is_parallel and
1151         ctx->is_combined_parallel checks.
1152         (gimplify_omp_task): New function.
1153         (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
1154         OMP_CLAUSE_UNTIED.
1155         * omp-low.c (extract_omp_for_data): Use schedule(static)
1156         for schedule(auto).  Handle pointer and unsigned iterators.
1157         Compute fd->iter_type.  Handle POINTER_PLUS_EXPR increments.
1158         Add loops argument.  Extract data for collapsed OMP_FOR loops.
1159         (expand_parallel_call): Assert sched_kind isn't auto,
1160         map runtime schedule to index 3.
1161         (struct omp_for_data_loop): New type.
1162         (struct omp_for_data): Remove v, n1, n2, step, cond_code fields.
1163         Add loop, loops, collapse and iter_type fields.
1164         (workshare_safe_to_combine_p): Disallow combined for if
1165         iter_type is unsigned long long.  Don't combine collapse > 1 loops
1166         unless all bounds and steps are constant.  Adjust extract_omp_for_data
1167         caller.
1168         (expand_omp_for_generic): Handle pointer, unsigned and long long
1169         iterators.  Handle collapsed OMP_FOR loops.  Adjust
1170         for struct omp_for_data changes.  If libgomp function doesn't return
1171         boolean_type_node, add comparison of the return value with 0.
1172         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
1173         pointer, unsigned and long long iterators.  Adjust for struct
1174         omp_for_data changes.
1175         (expand_omp_for): Assert sched_kind isn't auto, map runtime schedule
1176         to index 3.  Use GOMP_loop_ull*{start,next} if iter_type is
1177         unsigned long long.  Allocate loops array, pass it to
1178         extract_omp_for_data.  For collapse > 1 loops use always
1179         expand_omp_for_generic.
1180         (omp_context): Add sfield_map and srecord_type fields.
1181         (is_task_ctx, lookup_sfield): New functions.
1182         (use_pointer_for_field): Use is_task_ctx helper.  Change first
1183         argument's type from const_tree to tree.  Clarify comment.
1184         In OMP_TASK disallow copy-in/out sharing.
1185         (build_sender_ref): Call lookup_sfield instead of lookup_field.
1186         (install_var_field): Add mask argument.  Populate both record_type
1187         and srecord_type if needed.
1188         (delete_omp_context): Destroy sfield_map, clear DECL_ABSTRACT_ORIGIN
1189         in srecord_type.
1190         (fixup_child_record_type): Also remap FIELD_DECL's DECL_SIZE{,_UNIT}
1191         and DECL_FIELD_OFFSET.
1192         (scan_sharing_clauses): Adjust install_var_field callers.  For
1193         firstprivate clauses on explicit tasks allocate the var by value in
1194         record_type unconditionally, rather than by reference.
1195         Handle OMP_CLAUSE_PRIVATE_OUTER_REF.  Scan OMP_CLAUSE_LASTPRIVATE_STMT.
1196         Use is_taskreg_ctx instead of is_parallel_ctx.
1197         Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
1198         (create_omp_child_function_name): Add task_copy argument, use
1199         *_omp_cpyfn* names if it is true.
1200         (create_omp_child_function): Add task_copy argument, if true create
1201         *_omp_cpyfn* helper function.
1202         (scan_omp_parallel): Adjust create_omp_child_function callers.
1203         Rename parallel_nesting_level to taskreg_nesting_level.
1204         (scan_omp_task): New function.
1205         (lower_rec_input_clauses): Don't run constructors for firstprivate
1206         explicit task vars which are initialized by *_omp_cpyfn*.  
1207         Pass outer var ref to omp_clause_default_ctor hook if
1208         OMP_CLAUSE_PRIVATE_OUTER_REF or OMP_CLAUSE_LASTPRIVATE.
1209         Replace OMP_CLAUSE_REDUCTION_PLACEHOLDER decls in
1210         OMP_CLAUSE_REDUCTION_INIT.
1211         (lower_send_clauses): Clear DECL_ABSTRACT_ORIGIN if in task to
1212         avoid duplicate setting of fields.  Handle
1213         OMP_CLAUSE_PRIVATE_OUTER_REF.
1214         (lower_send_shared_vars): Use srecord_type if non-NULL.  Don't
1215         copy-out if TREE_READONLY, only copy-in.
1216         (expand_task_copyfn): New function.
1217         (expand_task_call): New function.
1218         (struct omp_taskcopy_context): New type.
1219         (task_copyfn_copy_decl, task_copyfn_remap_type, create_task_copyfn):
1220         New functions.
1221         (lower_omp_parallel): Rename to...
1222         (lower_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
1223         Call create_task_copyfn if srecord_type is needed.  Adjust
1224         sender_decl type.
1225         (task_shared_vars): New variable.
1226         (check_omp_nesting_restrictions): Warn if work-sharing,
1227         barrier, master or ordered region is closely nested inside OMP_TASK.
1228         Add warnings for barrier if closely nested inside of work-sharing,
1229         ordered, or master region.
1230         (scan_omp_1): Call check_omp_nesting_restrictions even for
1231         GOMP_barrier calls.  Rename parallel_nesting_level to
1232         taskreg_nesting_level.  Handle OMP_TASK.
1233         (lower_lastprivate_clauses): Even if some lastprivate is found on a
1234         work-sharing construct, continue looking for them on parent parallel
1235         construct.
1236         (lower_omp_for_lastprivate): Add lastprivate clauses
1237         to the beginning of dlist rather than end.  Adjust for struct
1238         omp_for_data changes.
1239         (lower_omp_for): Add rec input clauses before OMP_FOR_PRE_BODY,
1240         not after it.  Handle collapsed OMP_FOR loops, adjust for
1241         OMP_FOR_{INIT,COND,INCR} changes, adjust extract_omp_for_data caller.
1242         (get_ws_args_for): Adjust extract_omp_for_data caller.
1243         (scan_omp_for): Handle collapsed OMP_FOR
1244         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
1245         (lower_omp_single_simple): If libgomp function doesn't return
1246         boolean_type_node, add comparison of the return value with 0.
1247         (diagnose_sb_1, diagnose_sb_2): Handle collapsed OMP_FOR
1248         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.  Handle OMP_TASK.
1249         (parallel_nesting_level): Rename to...
1250         (taskreg_nesting_level): ... this.
1251         (is_taskreg_ctx): New function.
1252         (build_outer_var_ref, omp_copy_decl): Use is_taskreg_ctx instead
1253         of is_parallel_ctx.
1254         (execute_lower_omp): Rename parallel_nesting_level to
1255         taskreg_nesting_level.
1256         (expand_omp_parallel): Rename to...
1257         (expand_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
1258         Call omp_task_call for OMP_TASK regions.
1259         (expand_omp): Adjust caller, handle OMP_TASK.
1260         (lower_omp_1): Adjust lower_omp_taskreg caller, handle OMP_TASK.
1261
1262         * bitmap.c (bitmap_default_obstack_depth): New variable.
1263         (bitmap_obstack_initialize, bitmap_obstack_release): Do nothing
1264         if argument is NULL and bitmap_default_obstack is already initialized.
1265         * ipa-struct-reorg.c (do_reorg_1): Call bitmap_obstack_release
1266         at the end.
1267         * matrix-reorg.c (matrix_reorg): Likewise.
1268
1269 2008-06-06  Uros Bizjak  <ubizjak@gmail.com>
1270
1271         * config/i386/i386.md (*indirect_jump): Macroize using P
1272         mode iterator.  Remove !TARGET_64BIT from insn constraints.
1273         (*tablejump_1): Ditto.
1274         (*indirect_jump_rex64): Remove insn pattern.
1275         (*tablejump_1_rex64): Ditto.
1276         (eh_return_<mode>): Macroize using P mode iterator from eh_return_di
1277         and eh_return_si insn patterns.
1278
1279 2008-06-06  Richard Guenther  <rguenther@suse.de>
1280
1281         * tree-ssa-structalias.c (merge_smts_into): Remove.
1282         (find_what_p_points_to): Do not bother to compute the
1283         points-to set for pt_anything pointers.
1284         * tree-ssa-operands.c (get_addr_dereference_operands): No NMT
1285         for pt_anything pointers is ok.
1286
1287 2008-06-06  Jan Hubicka  <jh@suse.cz>
1288
1289         * passes.c (execute_ipa_pass_list): Do not regenerate summaries.
1290
1291 2008-06-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1292
1293         * cgraph.c: Fix typos in comments.
1294         (cgraph_availability_names): Fix string typo.
1295         * fold-const.c: Fix typos in comments.
1296         (fold_binary): Fix typo in warning.
1297         * genautomata.c: Fix typos in comments.
1298         (check_presence_pattern_sets): Fix typo in local variable.
1299         (output_description): Fix typo in output.
1300         * ggc-zone.c (ggc_pch_finish): Fix typo in error message.
1301         * hwint.h: Likewise.
1302         * matrix-reorg.c (check_allocation_function): Likewise.
1303         * omega.c (smooth_weird_equations): Likewise.
1304         * auto-inc-dec.c: Fix typos in comments.
1305         * bb-reorder.c: Likewise.
1306         * builtins.c: Likewise.
1307         * c-common.c: Likewise.
1308         * c-cppbuiltin.c: Likewise.
1309         * c-parser.c: Likewise.
1310         * c-pretty-print.c: Likewise.
1311         * cfgcleanup.c: Likewise.
1312         * cfgexpand.c: Likewise.
1313         * cfghooks.c: Likewise.
1314         * cfglayout.c: Likewise.
1315         * cfgloopmanip.c: Likewise.
1316         * cgraphunit.c: Likewise.
1317         * coverage.c: Likewise.
1318         * dbxout.c: Likewise.
1319         * df-byte-scan.c: Likewise.
1320         * df-core.c: Likewise.
1321         * df-problems.c: Likewise.
1322         * df-scan.c: Likewise.
1323         * dfp.c: Likewise.
1324         * dominance.c: Likewise.
1325         * domwalk.c: Likewise.
1326         * dse.c: Likewise.
1327         * dwarf2out.c: Likewise.
1328         * emit-rtl.c: Likewise.
1329         * et-forest.c: Likewise.
1330         * function.c: Likewise.
1331         * function.h: Likewise.
1332         * gcc.c: Likewise.
1333         * gcov-io.c: Likewise.
1334         * gcov.c: Likewise.
1335         * gcse.c: Likewise.
1336         * genattrtab.c: Likewise.
1337         * ggc-page.c: Likewise.
1338         * gimplify.c: Likewise.
1339         * gthr-lynx.h: Likewise.
1340         * haifa-sched.c: Likewise.
1341         * ipa-cp.c: Likewise.
1342         * ipa-inline.c: Likewise.
1343         * ipa-prop.h: Likewise.
1344         * ipa-pure-const.c: Likewise.
1345         * ipa-struct-reorg.c: Likewise.
1346         * ipa-struct-reorg.h: Likewise.
1347         * ipa-type-escape.c: Likewise.
1348         * ipa.c: Likewise.
1349         * loop-doloop.c: Likewise.
1350         * mips-tfile.c: Likewise.
1351         * mkmap-flat.awk: Likewise.
1352         * mkmap-symver.awk: Likewise.
1353         * modulo-sched.c: Likewise.
1354         * omp-low.c: Likewise.
1355         * optabs.c: Likewise.
1356         * optabs.h: Likewise.
1357         * opts.c: Likewise.
1358         * passes.c: Likewise.
1359         * postreload-gcse.c: Likewise.
1360         * postreload.c: Likewise.
1361         * predict.c: Likewise.
1362         * pretty-print.h: Likewise.
1363         * profile.c: Likewise.
1364         * protoize.c: Likewise.
1365         * ra-conflict.c: Likewise.
1366         * real.c: Likewise.
1367         * recog.c: Likewise.
1368         * regclass.c: Likewise.
1369         * regs.h: Likewise.
1370         * reload.c: Likewise.
1371         * rtl-error.c: Likewise.
1372         * rtlanal.c: Likewise.
1373         * scan.h: Likewise.
1374         * sched-rgn.c: Likewise.
1375         * see.c: Likewise.
1376         * stmt.c: Likewise.
1377         * target.h: Likewise.
1378         * tree-dfa.c: Likewise.
1379         * tree-eh.c: Likewise.
1380         * tree-flow-inline.h: Likewise.
1381         * tree-inline.c: Likewise.
1382         * tree-into-ssa.c: Likewise.
1383         * tree-loop-distribution.c: Likewise.
1384         * tree-nested.c: Likewise.
1385         * tree-parloops.c: Likewise.
1386         * tree-pass.h: Likewise.
1387         * tree-pretty-print.c: Likewise.
1388         * tree-profile.c: Likewise.
1389         * tree-scalar-evolution.c: Likewise.
1390         * tree-sra.c: Likewise.
1391         * tree-ssa-alias-warnings.c: Likewise.
1392         * tree-ssa-ccp.c: Likewise.
1393         * tree-ssa-coalesce.c: Likewise.
1394         * tree-ssa-dom.c: Likewise.
1395         * tree-ssa-dse.c: Likewise.
1396         * tree-ssa-forwprop.c: Likewise.
1397         * tree-ssa-live.c: Likewise.
1398         * tree-ssa-live.h: Likewise.
1399         * tree-ssa-loop-im.c: Likewise.
1400         * tree-ssa-loop-ivopts.c: Likewise.
1401         * tree-ssa-loop-niter.c: Likewise.
1402         * tree-ssa-loop-prefetch.c: Likewise.
1403         * tree-ssa-phiopt.c: Likewise.
1404         * tree-ssa-phiprop.c: Likewise.
1405         * tree-ssa-sccvn.c: Likewise.
1406         * tree-ssa-ter.c: Likewise.
1407         * tree-ssa-threadupdate.c: Likewise.
1408         * tree-ssa.c: Likewise.
1409         * tree-vect-analyze.c: Likewise.
1410         * tree-vect-transform.c: Likewise.
1411         * tree-vectorizer.c: Likewise.
1412         * tree-vn.c: Likewise.
1413         * tree-vrp.c: Likewise.
1414         * tree.c: Likewise.
1415         * tree.def: Likewise.
1416         * tree.h: Likewise.
1417         * unwind-dw2-fde.c: Likewise.
1418         * unwind.inc: Likewise.
1419         * value-prof.c: Likewise.
1420         * vmsdbgout.c: Likewise.
1421
1422 2008-06-05  David Edelsohn  <edelsohn@gnu.org>
1423
1424         * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Do not
1425         always place FP constants in the TOC for TARGET_POWERPC64.
1426         * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Same.
1427
1428 2008-06-05  Joseph Myers  <joseph@codesourcery.com>
1429
1430         * config.gcc (powerpc-*-linux*spe*): Use t-dfprules.
1431         * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): Do not
1432         enable for TARGET_E500_DOUBLE.
1433         (*movdd_softfloat32): Also enable for !TARGET_FPRS.
1434         * config/rs6000/rs6000.c (invalid_e500_subreg): Treat decimal
1435         floating-point modes like integer modes for E500 double.
1436         (rs6000_legitimate_offset_address_p): Likewise.
1437         (rs6000_legitimize_address): Likewise.  Do not allow REG+REG
1438         addressing for DDmode for E500 double.
1439         (rs6000_hard_regno_nregs): Do not treat decimal floating-point
1440         modes as using 64-bits of registers for E500 double.
1441         (spe_build_register_parallel): Do not handle DDmode or TDmode.
1442         (rs6000_spe_function_arg): Do not handle DDmode or TDmode
1443         specially for E500 double.
1444         (function_arg): Do not call rs6000_spe_function_arg for DDmode or
1445         TDmode for E500 double.
1446         (rs6000_gimplify_va_arg): Only handle SDmode in registers
1447         specially if TARGET_HARD_FLOAT && TARGET_FPRS.
1448         (rs6000_split_multireg_move): Do not handle TDmode specially for
1449         E500 double.
1450         (spe_func_has_64bit_regs_p): Do not treat DDmode or TDmode as
1451         using 64-bit registers for E500 double.
1452         (emit_frame_save): Do not handle DDmode specially for E500 double.
1453         (gen_frame_mem_offset): Likewise.
1454         (rs6000_function_value): Do not call spe_build_register_parallel
1455         for DDmode or TDmode.
1456         (rs6000_libcall_value): Likewise.
1457         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
1458         DATA_ALIGNMENT, CLASS_MAX_NREGS): Do not handle DDmode specially
1459         for E500 double.
1460
1461 2008-06-04  H.J. Lu  <hongjiu.lu@intel.com>
1462
1463         * config/i386/i386.c (setup_incoming_varargs_64): Fix a typo
1464         in comments.
1465
1466 2008-06-04  Junjie Gu <jgu@tensilica.com>
1467
1468         * config/xtensa/lib2funcs.S (__xtensa_nonlocal_goto): Use unsigned
1469         comparison for frame pointers.
1470
1471 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
1472
1473         PR target/27386
1474         * config/avr/avr.h (PUSH_ROUNDING): Remove.
1475
1476 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
1477
1478         PR target/30243
1479         * builtins.c (expand_builtin_signbit): Don't take lowpart when
1480         register is already smaller or equal to required mode. 
1481
1482 2008-06-04  Xinliang David Li  <davidxl@google.com>
1483
1484         * tree-call-cdce.c: New file. 
1485         (cond_dead_built_in_calls): New static variable.
1486         (input_domain): New struct.
1487         (check_pow): New function.
1488         (check_builtin_call): Ditto.
1489         (check_target_format): Ditto.
1490         (is_call_dce_candidate): Ditto.
1491         (gen_one_condition): Ditto.
1492         (gen_conditions_for_domain): Ditto.
1493         (get_domain): Ditto.
1494         (gen_conditions_for_pow_cst_base): Ditto.
1495         (gen_conditions_for_pow_int_base): Ditto.
1496         (gen_conditions_for_pow): Ditto.
1497         (get_no_error_domain): Ditto.
1498         (gen_shrink_wrap_conditions): Ditto.
1499         (shrink_wrap_one_built_in_call): Ditto.
1500         (shink_wrap_conditional_dead_built_in_calls): Ditto.
1501         (tree_call_cdce): Ditto.
1502         (gate_call_cdce): Ditto.
1503         (pass_call_cdce): New gimple pass.
1504         * passes.c: (init_optimization_passes): New pass.
1505         * tree-pass.h: New pass declaration.
1506         * opts.c (decode_options): New flag setting.
1507         * common.opt: Add -ftree-builtin-call-dce flag.
1508         * Makefile.in: Add new source file.
1509         * tempvar.def: New tv_id.
1510         * doc/invoke.texi (-ftree-builtin-call-dce): New flag.
1511
1512 2008-06-04  Richard Guenther  <rguenther@suse.de>
1513
1514         * tree-flow-inline.h (is_global_var): Do not check TREE_STATIC on MTAGs.
1515         (is_call_clobbered): Always check var_ann->call_clobbered.
1516         (mark_call_clobbered): Always set var_ann->call_clobbered.
1517         (clear_call_clobbered): Always clear var_ann->call_clobbered.
1518         * tree-ssa-alias.c (mark_non_addressable): Use clear_call_clobbered.
1519         (reset_alias_info): Clear call clobbering info on MTAGs and
1520         globals as well.
1521         (set_pt_anything): Set pt_global_mem.
1522         (create_tag_raw): Adjust comment.
1523         (may_be_aliased): Do not check TREE_PUBLIC on MTAGs.
1524
1525 2008-06-04  Joseph Myers  <joseph@codesourcery.com>
1526             Maxim Kuvyrkov  <maxim@codesourcery.com>
1527
1528         * config/m68k/m68k.opt (mxgot): New option.
1529         * config/m68k/m68k.c (legitimize_pic_address): Handle -mxgot.
1530         (m68k_output_addr_const_extra): New.
1531         * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): New.
1532         * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Declare.
1533         * config/m68k/m68k.md (UNSPEC_GOTOFF): Define.
1534         * doc/invoke.texi (M680x0 Options): Document -mxgot.
1535
1536 2008-06-04  Richard Guenther  <rguenther@suse.de>
1537
1538         * tree-ssa-structalias.c (handle_ptr_arith): Correctly handle
1539         negative or non-representable offsets.
1540
1541 2008-06-03  H.J. Lu  <hongjiu.lu@intel.com>
1542
1543         * config/i386/i386.c (ix86_gen_leave): New.
1544         (ix86_gen_pop1): Likewise.
1545         (ix86_gen_add3): Likewise.
1546         (ix86_gen_sub3): Likewise.
1547         (ix86_gen_sub3_carry): Likewise.
1548         (ix86_gen_one_cmpl2): Likewise.
1549         (ix86_gen_monitor): Likewise.
1550         (override_options): Initialize ix86_gen_leave, ix86_gen_pop1,
1551         ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
1552         ix86_gen_one_cmpl2 and ix86_gen_monitor.
1553         (ix86_file_end): Use mov%z0 instead of mov{q}/mov{l}.
1554         (output_set_got): Use mov%z0, pop%z0 and add%z0 instead of
1555         mov{q}/mov{l}, pop{q}/pop{l} and add{q}/add{l}.
1556         (ix86_expand_epilogue): Updated.
1557         (print_operand): Handle integer register operand for 'z'.
1558         (ix86_expand_strlensi_unroll_1): Likewise.
1559         (ix86_expand_strlen): Likewise.
1560         (ix86_expand_builtin): Likewise.
1561         (x86_output_mi_thunk): Use mov%z1 and add%z1 instead of
1562         mov{q}/mov{l} and add{q}/add{l}.
1563
1564 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
1565
1566         * config/i386/i386.md (P): New mode iterator.
1567         (SFmode push_operand splitter): Macroize DImode and SImode pushes
1568         using P mode iterator.
1569         (DFmode push_operand splitter): Ditto.
1570         (XFmode push_operand splitter): Ditto.
1571         (DFmode float_extend SFmode push_operand splitter): Ditto.
1572         (XFmode float_extend SFmode push_operand splitter): Do not generate
1573         SImode pushes for 64bit target.  Macroize Dimode and SImode
1574         pushes using P mode iterator.
1575         (XFmode float_extend DFmode push_operand splitter): Ditto.
1576
1577 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
1578
1579         * config/i386/i386-protos.h (ix86_reg_parm_stack_space): New.
1580         * config/i386/i386.h (ix86_reg_parm_stack_space): Removed prototype.
1581         * config/i386/i386.c (ix86_reg_parm_stack_space): Changed
1582         return type to int.
1583         (ix86_call_abi_override): Remove check for call_used_regs.
1584
1585 2008-06-03  Richard Guenther  <rguenther@suse.de>
1586
1587         * tree-ssa-structalias.c (find_func_aliases): Add constraints
1588         for the lhs of calls if the return type contains pointers.
1589
1590 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
1591
1592         * doc/tm.texi (OVERRIDE_ABI_FORMAT): New.
1593         * doc/extend.texi (ms_abi,sysv_abi): New attribute description.
1594         * function.c (allocate_struct_function): Use of OVERRIDE_ABI_FORMAT.
1595         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Make use
1596         of cfun and DEFAULT_ABI to deceide abi mode.
1597         (DEFAULT_ABI): New.
1598         (REG_PARM_STACK_SPACE): Removed.
1599         (OUTGOING_REG_PARM_STACK_SPACE): Removed.
1600         (STACK_BOUNDARY): Use default target to deceide stack boundary.
1601         * config/i386/i386-protos.h (ix86_cfun_abi): New.
1602         (ix86_function_abi): Likewise.
1603         (ix86_function_type_abi): Likewise.
1604         (ix86_call_abi_override): Likewise.
1605         * confid/i386/i386.md (SSE_REGPARM_MAX): Replaced by abi
1606         specific define X86_64_SSE_REGPARM_MAX/X64_SSE_REGPARM_MAX.
1607         * config/i386/i386.c (override_options): Replace TARGET_64BIT_MS_ABI.
1608         (X86_64_VARARGS_SIZE): Replace REGPARM_MAX and SSE_REGPARM_MAX by abi
1609         specific defines.
1610         (X86_64_REGPARM_MAX): New.
1611         (X86_64_SSE_REGPARM_MAX): New.
1612         (X64_REGPARM_MAX): New.
1613         (X64_SSE_REGPARM_MAX): New.
1614         (X86_32_REGPARM_MAX): New.
1615         (X86_32_SSE_REGPARM_MAX): New.
1616         (ix86_handle_cconv_attribute): Replace TARGET_64BIT_MS_ABI.
1617         (ix86_function_regparm): Handle user calling abi.
1618         (ix86_function_arg_regno_p): Replace TARGET_64BIT_MS_ABI
1619         by DEFAULT_ABI versus SYSV_ABI check.
1620         (ix86_reg_parm_stack_space): New.
1621         (ix86_function_type_abi): New.
1622         (ix86_call_abi_override): New.
1623         (ix86_function_abi): New.
1624         (ix86_cfun_abi): New.
1625         (init_cumulative_args): Call abi specific initialization.
1626         (function_arg_advance): Remove TARGET_64BIT_MS_ABI.
1627         (function_arg_64): Extend SSE_REGPARM_MAX check.
1628         (function_arg (): Remove TARGET_64BIT_MS_ABI.
1629         (ix86_pass_by_reference): Likewise.
1630         (ix86_function_value_regno_p): Likewise.
1631         (function_value_64): Replace REGPARM_MAX, and SSE_REGPARM_MAX.
1632         (ix86_function_value_1): Replace TARGET_64BIT_MS_ABI.
1633         (return_in_memory_ms_64): Replace TARGET_64BIT_MS_ABI.
1634         (ix86_build_builtin_va_list): Replace TARGET_64BIT_MS_ABI.
1635         (setup_incoming_varargs_64): Adjust regparm for call abi.
1636         (ix86_setup_incoming_varargs): Replace TARGET_64BIT_MS_ABI.
1637         (ix86_va_start): Likewise.
1638         (ix86_gimplify_va_arg): Likewise.
1639         (ix86_expand_prologue): Likewise.
1640         (output_pic_addr_const): Likewise.
1641         (ix86_init_machine_status): Initialize call_abi by DEFAULT_ABI.
1642         (x86_this_parameter): Replace TARGET_64BIT_MS_ABI.
1643         (x86_output_mi_thunk): Likewise.
1644         (x86_function_profiler): Likewise.
1645         * config/i386/i386.h (TARGET_64BIT_MS_ABI): Use ix64_cfun_abi.
1646         (SYSV_ABI, MS_ABI): New constants.
1647         (DEFAULT_ABI): New.
1648         (init_regs): Add prototype of function in regclass.c file.
1649         (OVERRIDE_ABI_FORMAT): New.
1650         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_64BIT_MS_ABI part.
1651         (REG_PARM_STACK_SPACE): Use ix86_reg_parm_stack_space.
1652         (OUTGOING_REG_PARM_STACK_SPACE): New.
1653         (ix86_reg_parm_stack_space): New prototype.
1654         (CUMULATIVE_ARGS): Add call_abi member.
1655         (machine_function): Add call_abi member.
1656         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Replace
1657         TARGET_64BIT_MS_ABI by DEFAULT_ABI compare to MS_ABI.
1658
1659 2008-06-02  Andy Hutchinson  <hutchinsonandy@aim.com> 
1660
1661         PR target/34879
1662         * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Redefine.
1663         (avr_builtin_setjmp_frame_value): New function.
1664         * config/avr/avr.md (nonlocal_goto_receiver): Define.
1665         (nonlocal_goto): Define.
1666
1667 2008-06-02  Richard Sandiford  <rdsandiford@googlemail.com>
1668
1669         * config/mips/mips.c (mips_emit_loadgp): Return early if
1670         there is nothing do to, otherwise emit a blockage if
1671         !TARGET_EXPLICIT_RELOCS || crtl->profile.
1672         * config/mips/mips.md (loadgp_blockage): Use SI rather than DI.
1673
1674 2008-06-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1675
1676         * configure.ac: Drop unneeded backslash ending up in config.in.
1677         * acinclude.m4: Likewise.
1678         * config.in: Regenerate.
1679
1680 2008-05-26  Jan Hubicka  <jh@suse.cz>
1681
1682         * predict.c (maybe_hot_frequency_p): Break out of...
1683         (maybe_hot_bb_p): ... here.
1684         (maybe_hot_edge_p): New.
1685         * tree-ssa-coalesce.c (coalesce_cost_edge): Compute cost based on edge.
1686         * basic-block.h (maybe_hot_edge_p): Declare.
1687
1688 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
1689
1690         * config/i386/i386.md (*cmpfp_<mode>): Enable for optimize_size.
1691         (*cmpfp_<mode>_cc): Ditto.
1692         (*fp_jcc_8<mode>_387): Ditto.
1693         (*fop_<MODEF:mode>_2_i387): Ditto.
1694         (*fop_<MODEF:mode>_3_i387): Ditto.
1695         (*fop_xf_2_i387): Ditto.
1696         (*fop_xf_3_i387): Ditto.
1697
1698 2008-06-02  Tomas Bily  <tbily@suse.cz>
1699
1700         * tree-ssa-ifcombine.c (get_name_for_bit_test): Use CONVERT_EXPR_P.
1701
1702 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
1703
1704         * config/mips/mips.c (mips_valid_offset_p): New function.
1705         (mips_valid_lo_sum_p): Likewise.
1706         (mips_classify_address): Use them.
1707         (mips_force_address): New function.
1708         (mips_legitimize_address): Use it.
1709         * config/mips/mips.md (MOVE128): New mode iterator.
1710         (movtf): Require TARGET_64BIT.  Remove empty strings.
1711         (*movtf_internal): Rename to...
1712         (*movtf): ...this and require !TARGET_MIPS16.  Use "m" instead
1713         of "R" and use {,fp}{load,store} attributes instead of "multi".
1714         Use a separate define_split.
1715         (*movtf_mips16): New pattern.
1716
1717 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
1718
1719         * config/mips/mips-protos.h (mips_expand_before_return): Declare.
1720         * config/mips/mips.c (mips_expand_before_return): New function.
1721         (mips_expand_epilogue): Call it.
1722         * config/mips/mips.md (return): Turn into a define_expand.
1723         (*return): New insn.
1724
1725 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
1726
1727         * rtl.h (emit_clobber, gen_clobber, emit_use, gen_use): Declare.
1728         * emit-rtl.c (emit_clobber, gen_clobber, emit_use, gen_use): New
1729         functions.  Do not emit uses and clobbers of CONCATs; individually
1730         use and clobber their operands.
1731         * builtins.c (expand_builtin_setjmp_receiver): Use emit_clobber,
1732         gen_clobber, emit_use and gen_use.
1733         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
1734         (expand_builtin_return): Likewise.
1735         * cfgbuild.c (count_basic_blocks): Likewise.
1736         * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
1737         * explow.c (emit_stack_restore): Likewise.
1738         * expmed.c (extract_bit_field_1): Likewise.
1739         * expr.c (convert_move, emit_move_complex_parts): Likewise.
1740         (emit_move_multi_word, store_constructor): Likewise.
1741         * function.c (do_clobber_return_reg, do_use_return_reg): Likewise.
1742         (thread_prologue_and_epilogue_insns): Likewise.
1743         * lower-subreg.c (resolve_simple_move): Likewise.
1744         * optabs.c (widen_operand, expand_binop): Likewise.
1745         (expand_doubleword_bswap, emit_no_conflict_block): Likewise.
1746         * reload.c (find_reloads): Likewise.
1747         * reload1.c (eliminate_regs_in_insn): Likewise.
1748         * stmt.c (expand_nl_goto_receiver): Likewise.
1749         * config/alpha/alpha.md (builtin_longjmp): Likewise.
1750         * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
1751         * config/arm/arm.c (arm_load_pic_register): Likewise.
1752         (thumb1_expand_epilogue, thumb_set_return_address): Likewise.
1753         * config/arm/arm.md (untyped_return): Likewise.
1754         * config/arm/linux-elf.h (PROFILE_HOOK): Likewise.
1755         * config/avr/avr.c (expand_prologue): Likewise.
1756         * config/bfin/bfin.c (do_unlink): Likewise.
1757         * config/bfin/bfin.md (<optab>di3, adddi3, subdi3): Likewise.
1758         * config/cris/cris.c (cris_expand_prologue): Likewise.
1759         * config/darwin.c (machopic_indirect_data_reference): Likewise.
1760         (machopic_legitimize_pic_address): Likewise.
1761         * config/frv/frv.c (frv_frame_access, frv_expand_epilogue): Likewise.
1762         (frv_ifcvt_modify_insn, frv_expand_mdpackh_builtin): Likewise.
1763         * config/i386/i386.c (ix86_expand_vector_move_misalign): Likewise.
1764         (ix86_expand_convert_uns_didf_sse): Likewise.
1765         (ix86_expand_vector_init_general): Likewise.
1766         * config/ia64/ia64.md (eh_epilogue): Likewise.
1767         * config/iq2000/iq2000.c (iq2000_expand_epilogue): Likewise.
1768         * config/m32c/m32c.c (m32c_emit_eh_epilogue): Likewise.
1769         * config/m32r/m32r.c (m32r_reload_lr): Likewise.
1770         (config/iq2000/iq2000.c): Likewise.
1771         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
1772         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
1773         (builtin_longjmp): Likewise.
1774         * config/mn10300/mn10300.md (call, call_value): Likewise.
1775         * config/pa/pa.md (nonlocal_goto, nonlocal_longjmp): Likewise.
1776         * config/pdp11/pdp11.md (abshi2): Likewise.
1777         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
1778         * config/s390/s390.c (s390_emit_prologue): Likewise.
1779         * config/s390/s390.md (movmem_long, setmem_long): Likewise.
1780         (cmpmem_long, extendsidi2, zero_extendsidi2, udivmoddi4): Likewise.
1781         (builtin_setjmp_receiver, restore_stack_nonlocal): Likewise.
1782         * config/sh/sh.c (prepare_move_operands): Likewise.
1783         (output_stack_adjust, sh_expand_epilogue): Likewise.
1784         (sh_set_return_address, sh_expand_t_scc): Likewise.
1785         * config/sparc/sparc.c (load_pic_register): Likewise.
1786         * config/sparc/sparc.md (untyped_return, nonlocal_goto): Likewise.
1787         * config/spu/spu.c (spu_expand_epilogue): Likewise.
1788         * config/v850/v850.c (expand_epilogue): Likewise.
1789
1790 2008-05-31  Anatoly Sokolov  <aesok@post.ru>
1791
1792         * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): New constants.
1793         (UNSPECV_WRITE_SP_IRQ_OFF): (Ditto.).
1794         (movhi_sp_r_irq_off, movhi_sp_r_irq_on): New insn.
1795         * config/avr/avr.c (expand_prologue, expand_epilogue): Use 
1796         movhi_sp_r_irq_off and movhi_sp_r_irq_on insns for writing to the 
1797         stack pointer register.
1798         (output_movhi): Remove code for interrupt specific writing to the 
1799         stack pointer register.
1800
1801 2008-05-31  Richard Guenther  <rguenther@suse.de>
1802
1803         PR tree-optimization/34244
1804         * fold-const.c (tree_expr_nonnegative_warnv_p): Do not ask VRP.
1805         (tree_expr_nonzero_warnv_p): Likewise.
1806         * tree-vrp.c (vrp_expr_computes_nonnegative): Call
1807         ssa_name_nonnegative_p.
1808         (vrp_expr_computes_nonzero): Call ssa_name_nonzero_p.
1809         (extract_range_from_unary_expr): Use vrp_expr_computes_nonzero,
1810         not tree_expr_nonzero_warnv_p.
1811
1812         PR tree-optimization/36262
1813         Revert
1814         2007-11-29  Zdenek Dvorak  <ook@ucw.cz>
1815
1816         PR tree-optimization/34244
1817         * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
1818         (record_numbers_of_iterations): New function.
1819         (execute_vrp): Cache the numbers of iterations of loops.
1820         * tree-scalar-evolution.c (scev_reset_except_niters):
1821         New function.
1822         (scev_reset): Use scev_reset_except_niters.
1823         * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
1824
1825 2008-05-31  Bernd Schmidt  <bernd.schmidt@analog.com>
1826
1827         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
1828         __WORKAROUND_RETS when appropriate.
1829
1830 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
1831
1832         * config/i386/i386.md (*fop_<mode>_comm_mixed): Macroize from
1833         *fop_sf_comm_mixed and *fop_df_comm_mixed insn patterns using MODEF
1834         mode iterator.
1835         (*fop_<mode>_comm_sse): Macroize from *fop_sf_comm_sse and
1836         *fop_df_comm_sse insn patterns using MODEF mode iterator.
1837         (*fop_<mode>_comm_i387): Macroize from *fop_sf_comm_i387 and
1838         *fop_df_comm_i387 insn patterns using MODEF mode iterator.
1839         (*fop_<mode>_1_mixed): Macroize from *fop_sf_1_mixed and
1840         *fop_df_1_mixed insn patterns using MODEF mode iterator.
1841         (*fop_<mode>_1_sse): Macroize from *fop_sf_1_sse and
1842         *fop_df_1_sse insn patterns using MODEF mode iterator.
1843         (*fop_<mode>_1_i387): Macroize from *fop_sf_1_i387 and
1844         *fop_df_1_i387 insn patterns using MODEF mode iterator.
1845         (*fop_<MODEF:mode>_2_i387): Macroize from *fop_sf_2<mode>_i387 and
1846         *fop_df_2<mode>_i387 insn patterns using MODEF mode iterator.
1847         (*fop_<MODEF:mode>_3_i387): Macroize from *fop_sf_3<mode>_i387 and
1848         *fop_df_3<mode>_i387 insn patterns using MODEF mode iterator.
1849         (*fop_xf_2_i387): Rename from *fop_xf_2<mode>_i387.
1850         (*fop_xf_3_i387): Rename from *fop_xf_3<mode>_i387.
1851         (*fop_xf_4_i387): Use <MODE> for mode attribute.
1852         (*fop_xf_5_i387): Ditto.
1853         (*fop_xf_6_i387): Ditto.
1854
1855 2008-05-30  Richard Guenther  <rguenther@suse.de>
1856
1857         * builtins.c (build_string_literal): Avoid generating
1858         a non-gimple_val result.
1859
1860 2008-05-30  DJ Delorie  <dj@redhat.com>
1861
1862         * exec-tool.in: Use an environment variable (private) instead of a
1863         file (shared) as a semaphore, so as to not break parallel builds.
1864
1865 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
1866
1867         * optabs.c (maybe_encapsulate_block): Remove.
1868         (emit_libcall_block): Adjust accordingly.
1869         * optabs.h (maybe_encapsulate_block): Remove prototype.
1870
1871         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address):
1872         Don't use maybe_encapsulate_block.
1873
1874 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
1875
1876         * config/rs6000/rs6000.c (rs6000_legitimize_address,
1877         rs6000_legitimize_reload_address, rs6000_emit_move): Make sure an
1878         rtx is a SYMBOL_REF before calling get_pool_constant.
1879
1880 2008-05-30  Eric Botcazou  <ebotcazou@adacore.com>
1881
1882         * fold-const.c (fold_unary) <CASE_CONVERT>: Add ??? comment.
1883
1884 2008-05-30  Danny Smith  <dannysmith@users.sourceforge.net>
1885
1886         * incpath.c: Use HOST_LACKS_INODE_NUMBERS conditional
1887         rather than OS names to choose INO_T_EQ definition.
1888         (DIRS_EQ) [!INO_T_EQ]: Don't worry about case in comparison.
1889         (add_path) [!INO_T_EQ]: Use lrealpath to fill canonical_name field.
1890
1891 2008-05-29  Daniel Franke  <franke.daniel@gmail.com>
1892
1893         PR target/36348
1894         * config/darwin-f.c: New.
1895         * config/t-darwin: Added rule to build darwin-f.o.
1896         * config.gcc: Defined new variable, fortran_target_objs.
1897         (*-*-darwin*): Set fortran_target_objs.
1898         * Makefile.in: Defined new variable FORTRAN_TARGET_OBJS.
1899         * configure.ac: Substitute fortran_target_objs, set FORTRAN_TARGET_OBJS.
1900         * configure: Regenerated.
1901
1902 2008-05-29  H.J. Lu  <hongjiu.lu@intel.com>
1903
1904         PR target/35771
1905         * config/i386/i386.c (ix86_function_arg_boundary): Convert to
1906         canonical type if needed.
1907
1908 2008-05-29  Eric Botcazou  <ebotcazou@adacore.com>
1909
1910         * tree-nested.c (check_for_nested_with_variably_modified): Fix typo.
1911
1912 2008-05-29  Richard Guenther  <rguenther@suse.de>
1913
1914         PR tree-optimization/36343
1915         PR tree-optimization/36346
1916         PR tree-optimization/36347
1917         * tree-flow.h (clobber_what_p_points_to): Declare.
1918         * tree-ssa-structalias.c (set_uids_in_ptset): Whether the
1919         pointed-to variable is dereferenced is irrelevant to whether
1920         the pointer can access the pointed-to variable.
1921         (clobber_what_p_points_to): New function.
1922         * tree-ssa-alias.c (set_initial_properties): Use it.
1923         * tree-ssa.c (verify_flow_sensitive_alias_info): Adjust
1924         call clobber check for NMTs.
1925
1926 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
1927         
1928         * value-prof.c (tree_ic_transform): Use HOST_WIDEST_INT_PRINT_DEC
1929         for printing gcov_type.
1930
1931 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
1932
1933         * tree-ssa-propagate.c (set_rhs): Preserve the histogram
1934         and the eh region information.
1935         * value-prof.c (gimple_move_stmt_histograms): New function.
1936         * value-prof.h (gimple_move_stmt_histograms): New function declaration.
1937
1938 2008-05-28  Andreas Tobler  <a.tobler@schweiz.org>
1939
1940         * config/pa/pa.md: Remove extern frame_pointer_needed declaration.
1941
1942 2008-05-28  Seongbae Park <seongbae.park@gmail.com>
1943
1944         * value-prof.c (tree_ic_transform): Print counts.
1945         * tree-profile.c (tree_gen_ic_func_profiler):
1946         Clear __gcov_indreict_call_callee variable to avoid misattribution
1947         of the profile.
1948
1949 2008-05-28  Rafael Espindola  <espindola@google.com>
1950
1951         * see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
1952         invalid sharing.
1953
1954 2008-05-28  Richard Guenther  <rguenther@suse.de>
1955
1956         PR tree-optimization/36339
1957         * tree-ssa-alias.c (set_initial_properties): Move pt_anything
1958         and clobbering code out of the loop.
1959
1960 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
1961
1962         * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint
1963         letters defined.
1964
1965         * config/s390/s390.c (s390_compare_and_branch_condition_mask,
1966         s390_contiguous_bitmask_p, s390_symref_operand_p,
1967         s390_check_symref_alignment, s390_reload_larl_operand,
1968         s390_reload_symref_address): New functions.
1969         (s390_branch_condition_mnemonic): Support compare and branch
1970         instructions.
1971         (s390_mem_constraint): Avoid symrefs to accepted by the 'T'
1972         and 'W' constraints.
1973         (s390_secondary_reload): Add secondary reloads for unaligned
1974         symbol refs or symbol refs to floating point or QI/TI mode
1975         integer values.
1976         (legitimate_address_p): Accept symbol references as addresses.
1977         (s390_expand_insv): Use rotate and insert selected bits
1978         instruction for insv when building for z10.
1979         (print_operand_address): Handle symbol ref addresses.
1980         (print_operand): Output modifier 'c' added for signed byte values.
1981         (s390_encode_section_info): Mark symbol refs with
1982         SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.
1983
1984         * config/s390/s390.md (SIL,RRS,RIS): New instruction formats added.
1985         (length attribute): RRF, RRR have 4 byte length.
1986         (FPALL, INTALL): New mode iterators added.
1987         (*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign,
1988         *cmp<mode>_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu,
1989         *movdi_64, *movsi_zarch, *movhi, movmem<mode>, *movmem_short,
1990         *extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm,
1991         *zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3,
1992         *add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry2_cc,
1993         *add<mode>3_cc, *add<mode>3_imm_cc, *muldi3_sign, muldi3,
1994         *mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10
1995         instructions.
1996         (*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi,
1997         *cmp<GPR:mode>_ccu_zerohi_rldi, *cmp_and_br_signed_<mode>,
1998         *cmp_and_br_unsigned_<mode>, reload<INTALL:mode><P:mode>_tomem_z10,
1999         reload<INTALL:mode><P:mode>_toreg_z10,
2000         reload<FPALL:mode><P:mode>_tomem_z10,
2001         reload<FPALL:mode><P:mode>_toreg_z10,
2002         reload<P:mode>_larl_odd_addend_z10, *execute_rl, *insv<mode>_z10,
2003         *insv<mode>_z10_noshift, *insv<mode>_or_z10_noshift,
2004         *zero_extendhi<mode>2_z10, *cmp_and_trap_signed_int<mode>,
2005         *cmp_and_trap_unsigned_int<mode>, prefetch): New pattern or expander
2006         definition.
2007         (movmem, clrmem, cmpmem): New splitters added.
2008
2009         * config/s390/predicates.md (larl_operand): Use
2010         SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with
2011         SYMBOL_REF_ALIGN1_P.
2012         (s390_signed_integer_comparison,
2013         s390_unsigned_integer_comparison): New predicates.
2014
2015         * config/s390/s390-protos.h (s390_check_symref_alignment,
2016         s390_contiguous_bitmask_p, s390_reload_larl_operand,
2017         s390_reload_symref_address,
2018         s390_compare_and_branch_condition_mask): Prototypes added.
2019
2020         * config/s390/s390.h (TARGET_MEM_CONSTRAINT,
2021         SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED,
2022         SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added.
2023
2024 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
2025
2026         * config/s390/s390.c (z10_cost): New cost function for z10.
2027         (s390_handle_arch_option, override_options): Support -march=z10 switch.
2028         (s390_issue_rate): Adjust issue rate for z10.
2029         * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
2030         (processor_flags): Add PF_Z10.
2031         (TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
2032         * config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
2033         * gcc/config.gcc: Add z10.
2034
2035 2008-05-28  Richard Guenther  <rguenther@suse.de>
2036
2037         PR tree-optimization/36291
2038         * tree-flow. h (struct gimple_df): Remove var_anns member.
2039         * tree-flow-inline.h (gimple_var_anns): Remove.
2040         (var_ann): Simplify.
2041         * tree-dfa.c (create_var_ann): Simplify.
2042         (remove_referenced_var): Clear alias info from var_anns of globals.
2043         * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
2044         (delete_tree_ssa): Clear alias info from var_anns of globals.
2045         Do not free var_anns.
2046         (var_ann_eq): Remove.
2047         (var_ann_hash): Likewise.
2048
2049 2008-05-28  Mark Shinwell  <shinwell@codesourcery.com>
2050
2051         * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
2052         and loongson2f entries.
2053         (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
2054         * config/mips/mips.h (processor_type): Add Loongson-2E
2055         and Loongson-2F entries.
2056         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
2057         (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
2058         * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
2059         * doc/invoke.texi (MIPS Options): Document loongson2e
2060         and loongson2f processor names.
2061
2062 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
2063
2064         PR target/35767
2065         PR target/35771
2066         * config/i386/i386.c (ix86_function_arg_boundary): Use
2067         alignment of canonical type.
2068         (ix86_expand_vector_move): Check unaligned memory access for
2069         all SSE modes.
2070
2071 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
2072
2073         * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
2074         Moved to the front of file.
2075
2076 2008-05-27  Xuepeng Guo  <xuepeng.guo@intel.com>
2077             H.J. Lu  <hongjiu.lu@intel.com>
2078
2079         * dwarf2out.c (current_fde): New.
2080         (add_cfi): Use it.
2081         (lookup_cfa:): Likewise.
2082         (dwarf2out_end_epilogue): Likewise.
2083         (dwarf2out_note_section_used): Likewise.
2084
2085 2008-05-27  Michael Matz  <matz@suse.de>
2086
2087         PR c++/27975
2088         * c.opt (Wenum-compare): New warning option.
2089         * doc/invoke.texi  (Warning Options): Document -Wenum-compare.
2090
2091 2008-05-27  Michael Matz  <matz@suse.de>
2092
2093         PR middle-end/36326
2094         * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
2095         non-BLKmode types.
2096         * tree-tailcall.c (find_tail_calls): Don't mark calls storing
2097         into memory as tail calls.
2098
2099 2008-05-27  Richard Guenther  <rguenther@suse.de>
2100
2101         PR tree-optimization/36339
2102         * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
2103         pointers cause all addressable variables to be call clobbered.
2104
2105 2008-05-27  Richard Guenther  <rguenther@suse.de>
2106
2107         PR tree-optimization/36245
2108         * tree-ssa-address.c (add_to_parts): Deal with non-pointer bases.
2109
2110 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
2111
2112         * config/s390/s390.md: Replace all occurences of the 'm'
2113         constraint with 'RT'.
2114
2115 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
2116
2117         * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
2118         definitions added.
2119         ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
2120         "*movdi_64".
2121         ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
2122         ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
2123         ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
2124
2125 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
2126
2127         * reload.c: (find_reloads): Skip alternatives according to the
2128         "enabled" attribute. Constify the constraint variable.
2129         * recog.c (get_attr_enabled): Add default implementation.
2130         (extract_insn): Set the alternative_enabled_p array
2131         in the recog_data struct.
2132         (preprocess_constraints, constrain_operands): Skip
2133         alternatives according to the "enabled" attribute
2134         * recog.h (struct recog_data): New field alternative_enabled_p.
2135         (skip_alternative): New inline function.
2136         * regclass.c: (record_operand_costs): Check the "enabled" attribute.
2137         (record_reg_classes): Skip alternative according to the
2138         "enabled" attribute.
2139
2140         * doc/md.texi: Add documention for the "enabled" attribute.
2141
2142 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
2143
2144         * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
2145         * postreload.c (reload_cse_simplify_operands): Replace 'm'
2146         constraint with TARGET_MEM_CONSTRAINT.
2147         * recog.c (asm_operand_ok, preprocess_constraints,
2148         constrain_operands): Likewise.
2149         * regclass.c (record_reg_classes): Likewise.
2150         * reload.c (find_reloads, alternative_allows_const_pool_ref): Likewise.
2151         * reload1.c (maybe_fix_stack_asms): Likewise.
2152         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
2153         * recog.h: Adjust comment.
2154         * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
2155         * genoutput.c (note_constraint): Don't emit error for 'm' constraint.
2156         * doc/md.texi: Add a note to description of 'm' constraint.
2157         * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
2158
2159 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
2160
2161         * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
2162         that the bitfield is of integral type before testing its precision.
2163
2164 2008-05-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
2165             Sa Liu  <saliu@de.ibm.com> 
2166
2167         * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3, 
2168         __modti3, __udivti3, __umodti3 and __udivmodti4.
2169         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
2170         that implement TImode mul and div functions.
2171         * config/spu/multi3.c: New. Implement __multi3.
2172         * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
2173         * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
2174         functions on SPU.
2175
2176 2008-05-26  Steven Bosscher  <stevenb.gcc@gmail.com>
2177
2178         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
2179         new tls_gd_* and tls_ld_* insns instead of an insn sequence.
2180         * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
2181         tls_sysv_suffix): New mode and mode attribute iterators.
2182         (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
2183         (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
2184         (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
2185         tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
2186         tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
2187         iterators.
2188
2189 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
2190
2191         PR tree-optimization/36329
2192         * tree.h (CALL_CANNOT_INLINE_P): Add access check.
2193         * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
2194         * cgraphbuild.c (initialize_inline_failed): Use the latter
2195         macro in lieu of the former.
2196         * ipa-inline.c (cgraph_mark_inline): Likewise.
2197         (cgraph_decide_inlining_of_small_function): Likewise.
2198         (cgraph_decide_inlining): Likewise.
2199         (cgraph_decide_inlining_incrementally): Likewise.
2200
2201 2008-05-26  Tristan Gingold  <gingold@adacore.com>
2202             Anatoly Sokolov  <aesok@post.ru>
2203
2204         * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
2205         instead of pm_lo8/pm_hi8 to makes this call working on avr6.
2206         * config/avr/avr.c (expand_prologue): Tune "call_prologue" 
2207         optimization for 'avr6' architecture.
2208
2209 2008-05-26  Andy Hutchinson  <hutchinsonandy@aim.com>
2210
2211         PR target/34932
2212         * config/avr/avr.md (*addhi3_zero_extend2): Remove.
2213
2214 2008-05-26  Richard Guenther  <rguenther@suse.de>
2215
2216         * tree-ssa-sccvn.c (expr_has_constants): Declare.
2217         (visit_reference_op_load): Initialize VN_INFO->has_constants properly.
2218
2219 2008-05-26  H.J. Lu  <hongjiu.lu@intel.com>
2220
2221         PR middle-end/36253
2222         * caller-save.c (insert_restore): Verify alignment of spill space.
2223         (insert_save): Likewise.
2224         * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
2225         * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
2226         (STACK_SLOT_ALIGNMENT): Likewise.
2227         * function.c (LOCAL_ALIGNMENT): Removed.
2228         (get_stack_local_alignment): New.
2229         (assign_stack_local): Use it.  Set alignment on stack slot.
2230         (assign_stack_temp_for_type): Use get_stack_local_alignment.
2231         * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
2232         (STACK_SLOT_ALIGNMENT): New.
2233         * config/i386/i386.c (ix86_local_alignment): Handle caller-save
2234         stack slot in XFmode.
2235
2236         * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
2237
2238 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
2239
2240         PR/36321
2241         * config/i386/i386.md (allocate_stack_worker_64): Make sure
2242         argument operand in rax isn't removed.
2243
2244 2008-05-26  Richard Guenther  <rguenther@suse.de>
2245
2246         PR middle-end/36300
2247         * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
2248         not TYPE_UNSIGNED.  Use TYPE_PRECISION instead of GET_MODE_SIZE.
2249
2250 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
2251
2252         PR bootstrap/36331
2253         * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
2254
2255 2008-05-26  Dominique Dhumieres  <dominiq@lps.ens.fr>
2256
2257         * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
2258         * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
2259
2260 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
2261
2262         * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
2263         build a trampoline if we don't want one.
2264         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
2265         return zero for nested functions if we don't want a trampoline.
2266
2267 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
2268
2269         * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
2270
2271 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
2272
2273         PR fortran/18428
2274         * c.opt: Removed undocumented option '-lang-fortran'.
2275         * c-common.h: Removed global variable 'lang_fortran'.
2276         * c-opts.c (c_common_handle_option): Removed code to handle
2277         option '-lang-fortran'. Updated includes.
2278         * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
2279         definition of '__GFORTRAN__'.
2280         (define__GNUC__): Reimplemented to use BASEVER and
2281         cpp_define_formatted.
2282         (builtin_define_with_value_n): Removed.
2283         * c-incpath.h: Renamed to ...
2284         * incpath.h: ... this.
2285         * c-incpath.c: Renamed to ...
2286         * incpath.c: ... this. Updated includes.
2287         * fix-header.c: Updated includes.
2288         * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
2289         (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
2290         (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
2291
2292 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
2293
2294         * tree.h: Update the table of flags used on tree nodes.
2295         (TREE_NO_TRAMPOLINE): New accessor for static_flag.
2296         (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
2297         (FORCED_LABEL): Add access check.
2298         (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
2299         (ASM_INPUT_P): Likewise.
2300         (ASM_VOLATILE_P): Likewise.
2301         (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
2302         (OMP_SECTION_LAST): Access private_flag directly.
2303         (OMP_RETURN_NOWAIT): Likewise.
2304         (OMP_PARALLEL_COMBINED): Likewise.
2305         (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
2306         (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
2307         * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
2308         deprecated_flag directly.
2309
2310 2008-05-25  H.J. Lu  <hongjiu.lu@intel.com>
2311
2312         * final.c (frame_pointer_needed): Removed.
2313         * flags.h (frame_pointer_needed): Likewise.
2314
2315         * function.h (rtl_data): Add frame_pointer_needed.
2316         (frame_pointer_needed): New.
2317
2318 2008-05-25  Arthur Loiret  <arthur.loiret@u-psud.fr>
2319
2320         * config.gcc (sh2[lbe]*-*-linux*): Allow target.
2321
2322 2008-05-25  Steven Bosscher  <stevenb.gcc@gmail.com>
2323
2324         * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
2325         SRC is a REG.
2326
2327 2008-05-25  Alan Modra  <amodra@bigpond.net.au>
2328
2329         * c-common.c (strip_array_types): Move function to..
2330         * tree.c: ..here.
2331         (get_inner_array_type): Delete.
2332         * c-common.h (strip_array_types): Move declaration to..
2333         * tree.h: ..here.
2334         (get_inner_array_type): Delete.
2335         * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
2336         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
2337         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
2338         * config/pa/pa.c (emit_move_sequence): Likewise.
2339
2340 2008-05-24  H.J. Lu  <hongjiu.lu@intel.com>
2341
2342         * config/i386/i386.md (*sse_prologue_save_insn): Set length
2343         attribute to 34.
2344
2345 2008-05-24  Andy Hutchinson  <hutchinsonandy@aim.com>
2346
2347         * function.c: Include target hook for nonlocal_goto frame value.
2348
2349 2008-05-24  Richard Guenther  <rguenther@suse.de>
2350
2351         * tree-dfa.c (refs_may_alias_p): Re-instantiate case that a scalar
2352         variable can be only accessed through a pointer or a union.
2353
2354 2008-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2355
2356         * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
2357         * doc/extend.texi: Likewise.
2358
2359 2008-05-23  DJ Delorie  <dj@redhat.com>
2360
2361         * config/m32c/jump.md (untyped_call): Add.
2362
2363         * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
2364         for A24 to PSImode.
2365         (m32c_address_cost): Detail costs for indirect offsets.
2366
2367 2008-05-23  Rafael Espindola  <espindola@google.com>
2368
2369         * see.c (see_get_extension_data): Don't use SUBREG_REG to test
2370         if a node is a SUBREG.
2371         (see_analyze_one_def): Don't use SUBREG_REG to test if a node
2372         is a SUBREG.
2373
2374 2008-05-23  Paul Brook  <paul@codesourcery.com>
2375             Carlos O'Donell  <carlos@codesourcery.com>
2376
2377         * doc/extend.texi: Clarify use of __attribute__((naked)).
2378         * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
2379         * target.h (gcc_target): Add allocate_stack_slots_for_args.
2380         * function.c (use_register_for_decl): Use
2381         targetm.calls.allocate_stack_slots_for_args.
2382         * target-def.h (TARGET_CALLS): Add TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
2383         * config/arm/arm.c (arm_allocate_stack_slots_for_args): New function.
2384         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
2385
2386 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
2387
2388         * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
2389
2390 2008-05-23  Steven Munroe  <sjmunroe@us.ibm.com>
2391
2392         * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
2393         PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
2394         is only rounded once.
2395
2396 2008-05-23  Richard Guenther  <rguenther@suse.de>
2397
2398         * tree-ssa-operands.c (mark_difference_for_renaming): Use bitmap_xor.
2399
2400 2008-05-23  Uros Bizjak  <ubizjak@gmail.com>
2401             Jakub Jelinek  <jakub@redhat.com>
2402
2403         PR target/36079
2404         * configure.ac: Handle --enable-cld.
2405         * configure: Regenerated.
2406         * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
2407         * config/i386/i386.h (struct machine_function): Add needs_cld field.
2408         (ix86_current_function_needs_cld): New define.
2409         * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
2410         (cld): New isns pattern.
2411         (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
2412         cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
2413         * config/i386/i386.opt (mcld): New option.
2414         * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
2415         TARGET_CLD and ix86_current_function_needs_cld.
2416         (override_options): Use -mcld by default for 32-bit code if
2417         USE_IX86_CLD.
2418
2419         * doc/install.texi (Options specification): Document --enable-cld.
2420         * doc/invoke.texi (Machine Dependent Options)
2421         [i386 and x86-64 Options]: Add -mcld option.
2422         (Intel 386 and AMD x86-64 Options): Document -mcld option.
2423
2424 2008-05-23  Kai Tietz  <kai.tietz@onevison.com>
2425         * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
2426         (return_in_memory_64): Likewise.
2427         (return_in_memory_ms_64): Likewise.
2428
2429 2008-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2430
2431         * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
2432         * builtins.c (fold_builtin_fpclassify): New.
2433         (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
2434         * builtins.def (BUILT_IN_FPCLASSIFY): New.
2435         * c-common.c (handle_type_generic_attribute): Adjust to accept
2436         fixed arguments before an elipsis.
2437         (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
2438         * doc/extend.texi: Document __builtin_fpclassify.
2439
2440 2008-05-22  Aldy Hernandez  <aldyh@redhat.com>
2441
2442         * omp-low.c (gate_expand_omp_ssa): Remove.
2443         (pass_expand_omp_ssa): Remove.
2444         (gate_expand_omp): Do not check for flag_openmp_ssa.
2445         * common.opt (-fopenmp-ssa): Remove.
2446         * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
2447
2448 2008-05-22  Kaz Kojima  <kkojima@gcc.gnu.org>
2449
2450         * config/sh/sh.opt (mfixed-range): New option.
2451         * config/sh/sh-protos.h (sh_fix_range): Declare.
2452         * config/sh/sh.c (sh_fix_range): New function.
2453         * config/sh/sh.h (sh_fixed_range_str): Declare.
2454         (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
2455         is not empty.
2456         * doc/invoke.texi (SH Options): Document -mfixed-range.
2457
2458 2008-05-22  Kai Tietz  <kai.tietz@onevision.com>
2459
2460         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
2461         it before the redeclaration.
2462
2463 2008-05-22  Anatoly Sokolov <aesok@post.ru>
2464
2465         * config/avr/avr.c (get_sequence_length): Add new function.
2466         (expand_prologue, expand_epilogue): Remove duplicate code.
2467
2468 2008-05-22  Rafael Espindola  <espindola@google.com>
2469
2470         * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
2471         sharing.
2472
2473 2008-05-22  H.J. Lu  <hongjiu.lu@intel.com>
2474
2475         * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
2476         * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
2477
2478         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
2479         UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
2480         (vect_update_misalignment_for_peel): Likewise.
2481         (vector_alignment_reachable_p): Likewise.
2482         * tree-vect-transform.c (vectorizable_load): Likewise.
2483         * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
2484         (get_vectype_for_scalar_type): Pass mode of scalar_type
2485         to UNITS_PER_SIMD_WORD.
2486
2487         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
2488         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
2489         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
2490         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
2491         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
2492
2493 2008-05-22  Ira Rosen  <irar@il.ibm.com>
2494
2495         PR tree-optimization/36293
2496         * tree-vect-transform.c (vect_transform_strided_load): Don't check
2497         if the first load must be skipped because of a gap.
2498
2499 2008-05-22  Richard Guenther  <rguenther@suse.de>
2500
2501         * tree-dfa.c (refs_may_alias_p): Exit early if possible.  Handle
2502         more cases of offset disambiguation that is possible if
2503         strict-aliasing rules apply.
2504         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
2505         for basic offset and type-based disambiguation.
2506
2507 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
2508
2509         * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
2510         ix86_expand_vector_set on V16QImode for SSE4.1.
2511
2512 2008-05-21  Tom Tromey  <tromey@redhat.com>
2513
2514         * c.opt (Wimport): Mark as undocumented.
2515         * doc/invoke.texi (Option Summary): Don't mention -Wimport or
2516         -Wno-import.
2517         (Warning Options): Likewise.
2518         * doc/cppopts.texi: Don't mention -Wimport.
2519
2520 2008-05-21  Sebastian Pop  <sebastian.pop@amd.com>
2521
2522         PR tree-optimization/36287
2523         PR tree-optimization/36286
2524         * lambda-code.c (build_access_matrix): Do not use the loop->num
2525         for computing the number of induction variables: use the loop depth
2526         instead.
2527
2528 2008-05-21  Kai Tietz  <kai.tietz@onevision.com>
2529
2530         PR/36280
2531         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
2532         option -f(no-)leading-underscore.
2533
2534 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
2535
2536         * config/i386/i386.c (ix86_expand_vector_init_general): Use
2537         GET_MODE_NUNITS (mode).
2538
2539 2008-05-21  Peter Bergner  <bergner@vnet.ibm.com>
2540
2541         * doc/invoke.texi: Add cpu_type's 464 and 464fp.
2542         (-mmulhw): Add 464 to description.
2543         (-mdlmzb): Likewise.
2544         * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
2545         * config/rs6000/rs6000.c (processor_target_table): Add 464 and
2546         464fp entries.
2547         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
2548         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
2549         * config/rs6000/rs6000.md: Update comments for 464.
2550
2551 2008-05-21  Janis Johnson  <janis187@us.ibm.com>
2552
2553         * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
2554
2555 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
2556
2557         * config/i386/sse.md (vec_extractv4sf): Removed.
2558         (vec_extractv2df): Likewise.
2559         (vec_extractv2di): Likewise.
2560         (vec_extractv4si): Likewise.
2561         (vec_extractv8hi): Likewise.
2562         (vec_extractv16qi): Likewise.
2563         (vec_extract<mode>): New.
2564
2565 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
2566
2567         * config/i386/sse.md (vec_setv4sf): Removed.
2568         (vec_setv2df): Likewise.
2569         (vec_setv2di): Likewise.
2570         (vec_setv4si): Likewise.
2571         (vec_setv8hi): Likewise.
2572         (vec_setv16qi): Likewise.
2573         (vec_set<mode>): New.
2574
2575 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
2576
2577         * config/i386/i386.c (ix86_expand_vector_init_general): Remove
2578         goto for vec_concat and vec_interleave.
2579
2580 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
2581
2582         * config/i386/sse.md (vec_initv4sf): Removed.
2583         (vec_initv2df): Likewise.
2584         (vec_initv2di): Likewise.
2585         (vec_initv4si): Likewise.
2586         (vec_initv8hi): Likewise.
2587         (vec_initv16qi): Likewise.
2588         (vec_init<mode>): New.
2589
2590 2008-05-21  Joseph Myers  <joseph@codesourcery.com>
2591
2592         * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
2593
2594 2008-05-21  Tom Tromey  <tromey@redhat.com>
2595
2596         * ggc-zone.c (lookup_page_table_if_allocated): New function.
2597         (zone_find_object_offset): Likewise.
2598         (gt_ggc_m_S): Likewise.
2599         (highest_bit): Likewise.
2600         * ggc-page.c (gt_ggc_m_S): New function.
2601         * stringpool.c (string_stack): Remove.
2602         (init_stringpool): Update.
2603         (ggc_alloc_string): Use ggc_alloc.
2604         (maybe_delete_ident): New function.
2605         (ggc_purge_stringpool): Likewise.
2606         (gt_ggc_m_S): Remove.
2607         * ggc-common.c (ggc_protect_identifiers): New global.
2608         (ggc_mark_roots): Call ggc_purge_stringpool.  Use
2609         ggc_protect_identifiers.
2610         * ggc.h (ggc_protect_identifiers): Declare.
2611         (gt_ggc_m_S): Update.
2612         (ggc_purge_stringpool): Declare.
2613         * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
2614         * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
2615         special case.
2616         (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
2617
2618 2008-05-21  David S. Miller  <davem@davemloft.net>
2619
2620         * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
2621         tmake_file.
2622
2623 2008-05-21  Eric Botcazou  <ebotcazou@adacore.com>
2624
2625         * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
2626         once finished.
2627
2628 2008-05-20  David Daney  <ddaney@avtrex.com>
2629
2630         * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
2631         UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
2632         (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
2633         UNSPEC_UPDATE_GOT_VERSION): Renumber.
2634         (optab, insn): Add 'plus' and 'minus' to define_code_attr.
2635         (atomic_hiqi_op): New define_code_iterator.
2636         (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
2637         mips_expand_compare_and_swap_12.
2638         (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
2639         MIPS_COMPARE_AND_SWAP_12_0.  Pass argument to MIPS_COMPARE_AND_SWAP_12.
2640         (sync_<optab><mode>, sync_old_<optab><mode>,
2641         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
2642         sync_new_nand<mode>): New define_expands for HI and QI mode operands.
2643         (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
2644         sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
2645         (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
2646         (test_and_set_12): New insn.
2647         (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
2648         sync_new_<optab><mode>, sync_old_nand<mode>,
2649         sync_new_nand<mode>, sync_lock_test_and_set<mode>):  Add early
2650         clobber to operand 0 for SI and DI mode insns.
2651         * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
2652         mips_gen_fn_4): New typedefs.
2653         (mips_gen_fn_ptrs): Define new union type.
2654         (mips_expand_compare_and_swap_12): Remove declaration.
2655         (mips_expand_atomic_qihi): Declare function.
2656         * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
2657         (mips_expand_atomic_qihi): ... this.  Use new generator function
2658         parameter.
2659         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
2660         (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
2661         (MIPS_COMPARE_AND_SWAP_12_ZERO_OP, MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
2662         MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
2663         MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
2664         MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
2665         MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
2666         MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
2667         MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
2668         MIPS_SYNC_EXCHANGE_12_ZERO_OP, MIPS_SYNC_EXCHANGE_12_NONZERO_OP):
2669         New macros.
2670
2671 2008-05-20  H.J. Lu  <hongjiu.lu@intel.com>
2672
2673         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
2674         the missing break.
2675
2676 2008-05-20  Anatoly Sokolov <aesok@post.ru>
2677
2678         * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
2679         * config/avr/avr.c (avr_OS_main_function_p): Add new function.
2680         (avr_attribute_table): Add 'OS_main' function attribute.
2681         (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
2682         functions with 'OS_main' attribute.
2683
2684 2008-05-20  Richard Guenther  <rguenther@suse.de>
2685
2686         PR tree-optimization/35204
2687         * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
2688         helper, split out from ...
2689         (DFS): ... here.  Make the DFS walk non-recursive.
2690
2691 2008-05-20  Sebastian Pop  <sebastian.pop@amd.com>
2692             Jan Sjodin  <jan.sjodin@amd.com>
2693
2694         PR tree-optimization/36181
2695         * tree-parloops.c (loop_has_vector_phi_nodes): New.
2696         (parallelize_loops): Don't parallelize when the loop has vector
2697         phi nodes.
2698
2699 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
2700             Sebastian Pop  <sebastian.pop@amd.com>
2701
2702         * tree-loop-linear.c (gather_interchange_stats): Look in the access
2703         matrix, and never look at the tree representation of the memory
2704         accesses.
2705         (linear_transform_loops): Computes parameters and access matrices.
2706         * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
2707         when fails.
2708         (access_matrix_get_index_for_parameter): New.
2709         * tree-data-ref.h (struct access_matrix): New.
2710         (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
2711         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
2712         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
2713         am_vector_index_for_loop): New.
2714         (struct data_reference): Add field access_matrix.
2715         (DR_ACCESS_MATRIX): New.
2716         (compute_data_dependences_for_loop): Update declaration.
2717         (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
2718         * lambda.h (lambda_vector_vec_p): Declared.
2719         * lambda-code.c: Depend on pointer-set.h.
2720         (lambda_collect_parameters_from_af, lambda_collect_parameters,
2721         av_for_af_base, av_for_af, build_access_matrix,
2722         lambda_compute_access_matrices): New.
2723         * Makefile.in (lambda-code.o): Depend on pointer-set.h.
2724
2725 2008-05-20  Joseph Myers  <joseph@codesourcery.com>
2726
2727         * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
2728         $SOURCEDIR/include.
2729
2730 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
2731             Sebastian Pop  <sebastian.pop@amd.com>
2732
2733         PR tree-optimization/36206
2734         * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
2735         FOLD_CONVERSIONS.
2736         (instantiate_scev_1): Rename flags to fold_conversions.
2737         Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
2738         outeside instantiation_loop.
2739         * tree-chrec.h (evolution_function_is_affine_in_loop): New.
2740         (evolution_function_is_affine_or_constant_p): Removed.
2741         * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
2742         instantiate_scev.
2743         (analyze_siv_subscript): Pass in the loop nest number.
2744         Call evolution_function_is_affine_in_loop instead of 
2745         evolution_function_is_affine_p.
2746         (analyze_overlapping_iterations): Pass in the loop nest number.
2747
2748 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
2749             Sebastian Pop  <sebastian.pop@amd.com>
2750
2751         PR tree-optimization/36206
2752         * tree-chrec.h (chrec_fold_op): New.
2753         * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
2754         and other trees.
2755
2756 2008-05-20  Nathan Sidwell  <nathan@codesourcery.com>
2757
2758         * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
2759         (DIRS_EQ): New.
2760         (remove_duplicates): Do not set inode on non-inode systems.
2761         Use DIRS_EQ.
2762
2763 2008-05-20  Sandra Loosemore  <sandra@codesourcery.com>
2764
2765         * config.gcc (tm_file): Update comments about relative pathnames.
2766
2767 2008-05-20  Richard Guenther  <rguenther@suse.de>
2768
2769         * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
2770         * tree-ssa-sccvn.c (process_scc): Likewise.
2771         * tree-ssa-sink.c (execute_sink_code): Likewise.
2772         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
2773         * tree-vrp.c (process_assert_insertions): Likewise.
2774         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
2775         (perform_tree_ssa_dce): Likewise.
2776         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
2777         (dump_dominator_optimization_stats): Likewise.
2778         * tree-vectorizer.c (vectorize_loops): Likewise.
2779
2780 2008-05-20  Richard Guenther  <rguenther@suse.de>
2781
2782         * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
2783
2784 2008-05-20  Kai Tietz  <kai.tietz@onevision.com>
2785
2786         * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
2787         (ix86_i386elf_return_in_memory): Likewise.
2788         (ix86_i386interix_return_in_memory): Likewise.
2789         * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
2790         (SUBTARGET_RETURN_IN_MEMORY): New.
2791         * config/i386/i386elf.h: Likewise.
2792         * config/i386/ptx4-i.h: Likewise.
2793         * config/i386/sol2-10.h: Likewise.
2794         * config/i386/sysv4.h: Likewise.
2795         * config/i386/vx-common.h: Likewise.
2796         * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
2797         * config/i386/i386.c (ix86_return_in_memory): Made static and
2798         make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
2799         (ix86_i386elf_return_in_memory): Removed.
2800         (ix86_i386interix_return_in_memory): Removed.
2801         (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
2802         * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
2803
2804 2008-05-20  Alexandre Oliva  <aoliva@redhat.com>
2805
2806         * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
2807
2808 2008-05-19  Xinliang David Li  <davidxl@google.com>
2809
2810         * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18. 
2811         * opts.c: Ditto.
2812         * common.opt: Ditto.
2813         * doc/invoke.texi: Ditto.
2814
2815 2008-05-19  Eric Botcazou  <ebotcazou@adacore.com>
2816
2817         * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
2818         (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
2819
2820 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
2821
2822         * config/i386/i386.c (ix86_expand_vector_init_concat): Change
2823         sizes of operand array from 8/4 to 4/2.
2824         (ix86_expand_vector_init_general): Change size of operand array
2825         from 32 to 16.  Remove op0, op1 and half_mode.
2826
2827 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
2828
2829         * config/i386/i386.c (ix86_expand_vector_init_concat): New.
2830         (ix86_expand_vector_init_interleave): Likewise.
2831         (ix86_expand_vector_init_general): Use them.  Assert
2832         word_mode == SImode when n_words == 4.
2833
2834 2008-05-19  Uros Bizjak  <ubizjak@gmail.com>
2835
2836         * config/i386/i386.c (ix86_secondary_reload): New static function.
2837         (TARGET_SECONDARY_RELOAD): New define.
2838         * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
2839         * config/i386/i386.md (reload_outqi): Remove.
2840
2841 2008-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2842
2843         PR middle-end/35509
2844         * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
2845         Add `implicit' parameter.  Handle BUILT_IN_SIGNBIT.
2846         (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
2847         (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
2848         (fold_builtin_1): Likewise.
2849         * builtins.def (BUILT_IN_ISINF_SIGN): New.
2850         c-common.c (check_builtin_function_arguments): Handle
2851         BUILT_IN_ISINF_SIGN.
2852         * doc/extend.texi: Document __builtin_isinf_sign.
2853         * fold-const.c (operand_equal_p): Handle COND_EXPR.
2854
2855 2008-05-18  Eric Botcazou  <ebotcazou@adacore.com>
2856
2857         * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
2858         EH cleanup at the end of the pass, search for those that have been
2859         turned into forwarder blocks and do the cleanup on their successor.
2860
2861 2008-05-18  Richard Guenther  <rguenther@suse.de>
2862
2863         * tree-cfg.c (verify_gimple_expr): Allow conversions from
2864         pointers to sizetype and vice versa.
2865
2866 2008-05-18 Xinliang David Li   <davidxl@google.com>
2867
2868         * gcc/tree-ssa-dce.c: Coding style fix.
2869         (check_pow): Documentation comment. 
2870         (check_log): Documenation comment. Coding style fix.
2871         (is_unnecessary_except_errno_call): Ditto.
2872         (gen_conditions_for_pow): Ditto.
2873         (gen_conditions_for_log): Ditto.
2874         (gen_shrink_wrap_conditions): Ditto.
2875         (shrink_wrap_one_built_in_calls): Ditto.
2876         * gcc/doc/invoke.texi: Better documentation string.
2877         * ChangeLog: Fix wrong change log entries from 
2878         May 17 checkin on function call DCE.
2879
2880 2008-05-17  Kaz Kojima  <kkojima@gcc.gnu.org>
2881
2882         * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
2883
2884 2008-05-17  Kenneth Zadeck <zadeck@naturalbridge.com>
2885
2886         * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
2887         * df-problems.c (simulation routines): Fixed block comment to
2888         properly say how to add forwards scanning functions.
2889         
2890 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
2891
2892         * tree-inline.c (setup_one_parameter): Remove dead code.
2893
2894 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
2895
2896         * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
2897         a BIT_AND_EXPR only for an INTEGER_TYPE.
2898
2899 2008-05-17 Xinliang David Li   <davidxl@google.com>
2900
2901         * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
2902         (check_pow, check_log, is_unnecessary_except_errno_call): New 
2903         functions to check for eliminating math functions that are pure 
2904         except for setting errno.
2905         (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
2906         general condition expressions for shrink-wrapping pow/log calls.
2907         (gen_shrink_wrap_conditions): Ditto.
2908         (shrink_wrap_one_built_in_call): Ditto.
2909         (shrink_wrap_conditional_dead_built_in_calls): Ditto.
2910         (mark_operand_necessary): If debugging, output if OP is necessary.
2911         (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
2912         unnecessary.
2913         * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
2914         opt level >= 2.
2915         * gcc/common.opt: New user flag -ftree-builtin-dce.
2916         * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
2917
2918 2008-05-16  David S. Miller  <davem@davemloft.net>
2919
2920         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
2921         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
2922
2923 2008-05-16  Uros Bizjak  <ubizjak@gmail.com>
2924
2925         PR target/36246
2926         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
2927
2928 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
2929
2930         * ifcvt.c (dead_or_predicable): Rename
2931         df_simulate_one_insn_backwards to df_simulate_one_insn.
2932         * recog.c (peephole2_optimize): Ditto.
2933         * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
2934         Ditto.
2935         * df.h: Rename df_simulate_one_insn_backwards to
2936         df_simulate_one_insn.  and delete df_simulate_one_insn_forwards.
2937         * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
2938         scanning of defs and uses.
2939         (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
2940         (df_simulate_one_insn_forwards): Removed.
2941
2942 2008-05-16  Doug Kwan  <dougkwan@google.com>
2943
2944         * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
2945         QNaN & SNaN.
2946         (real_from_string): Handle NaNs and Inf as approriate.
2947
2948 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
2949
2950         * doc/gty.texi (Source Files Containing Type Information): Note
2951         that headers should appear first in the gtfiles list.
2952
2953 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
2954
2955         * tree.def (COND_EXEC): Properly documented this code.
2956
2957 2008-05-16  Diego Novillo  <dnovillo@google.com>
2958
2959         * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
2960         * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
2961         the new field.
2962
2963 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
2964
2965         * tree-ssa-dse (max_stmt_uid): Removed.
2966         (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt, 
2967         tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
2968         * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
2969         * function.h (cfun.last_stmt_uid): New field.
2970         * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
2971         gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
2972         New functions.
2973         * tree-dfa.c (renumber_gimple_stmt_uids): New function.
2974         (create_stmt_ann): Initialize the ann->uid field.
2975         * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
2976         with new calls.
2977         * tree-flow.h (renumber_gimple_stmt_uids): New function.
2978
2979 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
2980
2981         * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
2982         * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
2983         (init_empty_tree_cfg): Call it.
2984
2985 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
2986
2987         * cfg.c (init_flow): Add argument THE_FUN.  Use it instead of cfun.
2988         Update all users.
2989
2990 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
2991
2992         * doc/invoke.text (-fdump-tree-*-verbose): New option.
2993         * tree-dump.c (dump_options): New verbose option.
2994         * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
2995         Add verbose dump.
2996         * tree-pass.h (TDF_VERBOSE): New dump flag.
2997         * print-tree.c (print_node): Added code to be able to print PHI_NODES.
2998         (tree-flow.h): Added include.
2999         * Makefile.in (print-tree.o):  Added TREE_FLOW_H.
3000
3001 2008-05-16  Bernd Schmidt  <bernd.schmidt@analog.com>
3002
3003         * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
3004
3005         From Jie Zhang  <jie.zhang@analog.com>
3006         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
3007         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
3008         mcpu=bf561-none and mcpu=bf561-0.2.
3009         * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
3010         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
3011         * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
3012         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
3013         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
3014         * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
3015         (LIB_SPEC): Use proper linker script for bf561.  Error if no mcpu
3016         option.
3017         * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
3018         (cputype_selected): Remove.
3019         (bfin_handle_option): Don't use cputype_selected.
3020         (override_options): When no mcpu option, enable all workarounds.
3021         Don't use bfin_workarounds.
3022         * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
3023         processor type.
3024         (DEFAULT_CPU_TYPE): Don't define.
3025
3026 2008-05-16  Richard Guenther  <rguenther@suse.de>
3027
3028         * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
3029         on deletion of the last stmt.
3030
3031 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
3032
3033         * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
3034         V8HImode for SSE2 and V16QImode for SSE4.1.
3035
3036 2008-05-15  Kenneth Zadeck <zadeck@naturalbridge.com>
3037
3038         * cgraph.h (compute_inline_parameters): Made public.
3039         * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
3040         variable_generate_summary, function_write_summary,
3041         variable_write_summary, variable_read_summary.  Added generate_summary,
3042         write_summary, read_summary.
3043         * cgraphunit.c (cgraph_process_new_functions): Changed call from
3044         pass_ipa_inline.function_generate_summary, to
3045         compute_inline_parameters. 
3046         * ipa-inline.c (compute_inline_parameters): Made public and added
3047         node parameter.
3048         (compute_inline_parameters_for_current): New function.
3049         (pass_inline_param): Now calls compute_inline_parameters_for_current.
3050         (inline_generate_summary): Removed parameter and made to loop over
3051         all cgraph nodes.
3052         (pass_ipa_inline): Updated for new IPA_PASS structure.
3053         * passes.c (execute_ipa_summary_passes): Now is called once per
3054         pass rather than once per node*pass.
3055         
3056 2008-05-15  Anatoly Sokolov <aesok@post.ru>
3057
3058         * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p, 
3059         avr_have_mul_p, avr_asm_only_p): Remove variables.
3060         (avr_override_options): Remove initialization of removed variables.
3061         (avr_file_start):  Convert removed variables to fields of 
3062         'struct base_arch_s *avr_current_arch'. 
3063         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
3064         (AVR_HAVE_MUL): (Ditto.).
3065         (AVR_HAVE_MOVW): (Ditto.).
3066         (AVR_HAVE_LPMX): (Ditto.). 
3067         (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p, 
3068         avr_asm_only_p): Remove declaration.
3069
3070 2008-05-15  Diego Novillo  <dnovillo@google.com>
3071
3072         * config/arm/arm.c (arm_return_in_memory): Fix return type.
3073         * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
3074
3075 2008-05-15  Adam Nemet  <anemet@caviumnetworks.com>
3076
3077         PR middle-end/36194
3078         * combine.c (check_conversion): Rename back to check_promoted_subreg.
3079         Don't call record_truncated_value from here.
3080         (record_truncated_value): Turn it into a for_each_rtx callback.
3081         (record_truncated_values): New function.
3082         (combine_instructions): Call note_uses with record_truncated_values.
3083         Change name of check_conversion to check_promoted_subreg. 
3084
3085 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
3086
3087         * doc/sourcebuild.texi: Document support for torture tests.
3088
3089 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
3090
3091         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
3092         to alternative 4 of operand 2.
3093
3094 2008-05-15  Richard Guenther  <rguenther@suse.de>
3095
3096         * tree-pass.h (current_pass): Declare.
3097         (get_pass_for_id): Likewise.
3098         * passes.c (passes_by_id, passes_by_id_size): New globals.
3099         (set_pass_for_id): New function.
3100         (get_pass_for_id): Likewise.
3101         (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
3102         (execute_function_todo): Flush per function statistics.
3103         * toplev.c (compile_file): Init statistics.
3104         (general_init): Do early statistics initialization.
3105         (finalize): Finish statistics.
3106         * statistics.h (statistics_early_init): Declare.
3107         (statistics_init): Likewise.
3108         (statistics_fini): Likewise.
3109         (statistics_fini_pass): Likewise.
3110         (statistics_counter_event): Likewise.
3111         (statistics_histogram_event): Likewise.
3112         * statistics.c: New file.
3113         * Makefile.in (OBJS-common): Add statistics.o.
3114         (statistics.o): Add dependencies.
3115         * doc/invoke.texi (-fdump-statistics): Document.
3116
3117         * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
3118         (insert): Likewise.
3119         (execute_pre): Use statistics_counter_event.
3120         * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
3121         (substitute_and_fold): Increment it.  Use statistics_counter_event.
3122
3123 2008-05-15  Diego Novillo  <dnovillo@google.com>
3124
3125         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
3126
3127         * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
3128         * tree-ssa-alias.c (new_type_alias): Remove references to
3129         sub-variables from comment.
3130         * tree-ssa-operands.c (swap_tree_operands): Likewise.
3131
3132 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
3133
3134         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
3135         attribute to 1 only for insertps alternative.
3136
3137 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
3138
3139         * config/bfin/bfin.md (loadbytes): New pattern.
3140         * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
3141         (bfin_init_builtins): Initialize it.
3142         (bdesc_1arg): Add it.
3143
3144 2008-05-15  Sa Liu  <saliu@de.ibm.com>
3145
3146         * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
3147         * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
3148         * testsuite/lib/target-supports.exp: Add
3149         check_effective_target_fortran_integer_16.
3150
3151 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
3152
3153         * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
3154         * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
3155         * config/bfin/bfin.c (bfin_return_in_memory): Now static.  Return bool.
3156         (TARGET_RETURN_IN_MEMORY): Define.
3157
3158 2008-05-15  Richard Guenther  <rguenther@suse.de>
3159
3160         PR middle-end/36244
3161         * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
3162         * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
3163         represent unmodifiable vars.
3164
3165 2008-05-15  Richard Guenther  <rguenther@suse.de>
3166
3167         * tree-dfa.c (refs_may_alias_p): Allow all kinds of
3168         INDIRECT_REF and TARGET_MEM_REF.
3169         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
3170         TARGET_MEM_REF.
3171
3172 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
3173             H.J. Lu  <hongjiu.lu@intel.com>
3174
3175         * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
3176         (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
3177         for operand 2.  Remove pinsr{q,d} with 0x0 immediate operand from
3178         insn alternatives.  Add missing alternatives.
3179         (*vec_concatv2di_rex64_sse4_1): Likewise.
3180         (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
3181         (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
3182         Require TARGET_SSE.
3183
3184 2008-05-15  Richard Guenther  <rguenther@suse.de>
3185
3186         PR tree-optimization/36009
3187         PR tree-optimization/36204
3188         * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
3189         (determine_invariantness_stmt): Record the loop a store is
3190         always executed in.
3191         * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
3192         dependency.
3193
3194 2008-05-15  Richard Guenther  <rguenther@suse.de>
3195
3196         PR tree-optimization/34330
3197         * tree-ssa-alias.c (get_smt_for): Only assert that accesses
3198         through the pointer will alias the SMT.
3199
3200 2008-05-14  Andreas Tobler  <a.tobler@schweiz.org>
3201
3202         * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
3203
3204 2008-05-14  H.J. Lu  <hongjiu.lu@intel.com>
3205
3206         * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
3207
3208 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
3209             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
3210
3211         * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
3212         OTI_vrotl, OTI_vrotr to support vector/vector shifts.
3213         (vashl_optab): New optab for vector/vector shifts.
3214         (vashr_optab): Ditto.
3215         (vlshr_optab): Ditto.
3216         (vrotl_optab): Ditto.
3217         (vrotr_optab): Ditto.
3218         (optab_subtype): New enum for optab_for_tree_code call.
3219         (optab_for_tree_code): Add enum optab_subtype argument.
3220
3221         * optabs.c (optab_for_tree_code): Take an additional argument to
3222         distinguish between a vector shift by a scalar and vector shift by
3223         a vector.  Make lshr/ashr/ashl/rotl/rotr optabs just vector
3224         shifted by a scalar.  Use vlshr/vashr/vashl/vrotl/vrotr for the
3225         vector shift by a vector.
3226         (expand_widen_pattern_expr): Pass additional argument to
3227         optab_for_tree_code.
3228
3229         * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
3230         vrotl_optab, vrotr_optab.
3231
3232         * expr.c (expand_expr_real_1): Update calls to
3233         optab_for_tree_code to distinguish between vector shifted by a
3234         scalar and vector shifted by a vector.
3235         * tree-vectorizer.c (supportable_widening_operation): Ditto.
3236         (supportable_narrowing_operation): Ditto.
3237         * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
3238         * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
3239         * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
3240         (vect_create_epilog_for_reduction): Ditto.
3241         (vectorizable_reduction): Ditto.
3242         (vectorizable_operation): Ditto.
3243         (vect_strided_store_supported): Ditto.
3244         (vect_strided_load_supported): Ditto.
3245         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
3246         * expmed.c (expand_shift): Ditto.
3247
3248         * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
3249         scalar type.
3250         (ashr@var{m}3): Ditto.
3251         (vashl@var{m}3): Document new vector/vector shift standard name.
3252         (vashr@var{m}3): Ditto.
3253         (vlshr@var{m}3): Ditto.
3254         (vrotl@var{m}3): Ditto.
3255         (vrotr@var{m}3): Ditto.
3256
3257         * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
3258         (PPERM_INVERT): Ditto.
3259         (PPERM_REVERSE): Ditto.
3260         (PPERM_REV_INV): Ditto.
3261         (PPERM_ZERO): Ditto.
3262         (PPERM_ONES): Ditto.
3263         (PPERM_SIGN): Ditto.
3264         (PPERM_INV_SIGN): Ditto.
3265         (PPERM_SRC1): Ditto.
3266         (PPERM_SRC2): Ditto.
3267
3268         * config/i386/sse.md (mulv2di3): Add SSE5 support.
3269         (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
3270         allows a memory operand to be the value being added, and split it
3271         to improve vectorization.
3272         (sse5_pmacsdqh_mem): Ditto.
3273         (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
3274         (sse5_mulv2div2di3_high): Ditto.
3275         (vec_pack_trunc_v8hi): Add SSE5 pperm support.
3276         (vec_pack_trunc_v4si): Ditto.
3277         (vec_pack_trunc_v2di): Ditto.
3278         (sse5_pcmov_<mode>): Remove code that tried to use use
3279         andps/andnps instead of pcmov.
3280         (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
3281         pmacsdqh instructions.
3282         (vec_widen_smult_lo_v4si): Ditto.
3283
3284         * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
3285         (PPERM_INVERT): Ditto.
3286         (PPERM_REVERSE): Ditto.
3287         (PPERM_REV_INV): Ditto.
3288         (PPERM_ZERO): Ditto.
3289         (PPERM_ONES): Ditto.
3290         (PPERM_SIGN): Ditto.
3291         (PPERM_INV_SIGN): Ditto.
3292         (PPERM_SRC1): Ditto.
3293         (PPERM_SRC2): Ditto.
3294         (ix86_expand_sse_movcc): Move the SSE5 test after the if
3295         true/false tests.
3296         (ix86_expand_int_vcond): If SSE5 generate all possible integer
3297         comparisons.
3298         (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
3299         says ignore whether the last reference is a memory operand.
3300
3301 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
3302             Paolo Bonzini <bonzini at gnu dot org>
3303
3304         * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
3305         shift patterns.
3306
3307         * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
3308         (vlshr<mode>3): Rename from vlshr<mode>3.
3309         (vashr<mode>3): Rename from vashr<mode>3.
3310         (mulv4sf3): Change the names of vector shift patterns.
3311         (mulv4si3): Ditto.
3312         (negv4sf2): Ditt.
3313
3314         * config/spu/spu.c (spu_initialize_trampoline): Rename vector
3315         shift insns.
3316
3317         * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
3318         (SI_SHLHI): Ditto.
3319         (SI_SHL): Ditto.
3320         (SI_SHLI): Ditto.
3321         (SI_ROTH): Ditto.
3322         (SI_ROTHI): Ditto.
3323         (SI_ROT): Ditto.
3324         (SI_ROTI): Ditto.
3325         (SPU_RL_0): Ditto.
3326         (SPU_RL_1): Ditto.
3327         (SPU_RL_2): Ditto.
3328         (SPU_RL_3): Ditto.
3329         (SPU_RL_4): Ditto.
3330         (SPU_RL_5): Ditto.
3331         (SPU_RL_6): Ditto.
3332         (SPU_RL_7): Ditto.
3333         (SPU_SL_0): Ditto.
3334         (SPU_SL_1): Ditto.
3335         (SPU_SL_2): Ditto.
3336         (SPU_SL_3): Ditto.
3337         (SPU_SL_4): Ditto.
3338         (SPU_SL_5): Ditto.
3339         (SPU_SL_6): Ditto.
3340         (SPU_SL_7): Ditto.
3341
3342         * config/spu/spu.md (v): New iterator macro to add v for vector types.
3343         (floatunssidf2_internal): Change vector/vector shift names.
3344         (floatunsdidf2_internal): Ditto.
3345         (mulv8hi3): Ditto.
3346         (ashrdi3): Ditto.
3347         (ashrti3): Ditto.
3348         (cgt_df): Ditto.
3349         (cgt_v2df): Ditto.
3350         (dftsv): Ditto.
3351         (vashl<mode>3): Rename from ashl<mode>3.
3352         (vashr<mode>3): Rename from ashr<mode>3.
3353         (vlshr<mode>3): Rename from lshr<mode>3.
3354         (vrotl<mode>3): Rename from rotl<mode>3.
3355
3356 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
3357
3358         PR target/36224
3359         * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
3360         multiply gives the wrong value when doing widening multiplies.
3361         (vec_widen_smult_lo_v4si): Ditto.
3362
3363 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
3364
3365         * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
3366         LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
3367         emit_library_call_value. 
3368         * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
3369         * tree.h (ECF_LIBCALL_BLOCK): Removed.
3370         * calls.c (initialize_argument_information, precompute_arguments, 
3371         expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
3372         (precompute_arguments): Removed flags parameter.
3373         * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
3374         
3375 2008-05-14  Richard Guenther  <rguenther@suse.de>
3376
3377         * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
3378         Make sure to register the store if the use is a PHI_NODE.
3379
3380 2008-05-14  Olivier Hainque  <hainque@adacore.com>
3381
3382         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
3383         memory if the component is to be referenced in BLKmode according
3384         to get_inner_reference.
3385
3386 2008-05-14  Adam Nemet  <anemet@caviumnetworks.com>
3387
3388         * calls.c (emit_library_call_value_1): Restore code clearing
3389         ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
3390
3391 2008-05-14  Olivier Hainque  <hainque@adacore.com>
3392             Nicolas Roche  <roche@adacore.com>
3393
3394         * configure.ac: Add support for a "gcc_subdir" variable in
3395         config-lang.in, to denote a subdirectory where the language/GCC
3396         integration files are to be found.
3397         * configure: Regenerate.
3398
3399 2008-05-14  Ira Rosen  <irar@il.ibm.com>
3400
3401         PR tree-optimization/36098
3402         * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
3403         value for the first load in the group in case of a gap.
3404         (vect_build_slp_tree): Check that there are no gaps in loads.
3405
3406 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
3407
3408         * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
3409         * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
3410         expand_copysign_bit, ): Change call to emit_no_conflict_block to
3411         emit_insn and remove unneeded code to construct extra args.
3412         (emit_no_conflict_block): Removed.
3413         * optabls.h: (emit_no_conflict_block): Removed.
3414         * cse.c (cse_extended_basic_block): Remove search for
3415         REG_NO_CONFLICT note.
3416         * global.c: Removed incorrect comment added in revision 117.
3417         * expr.c (convert_move): Change call to emit_no_conflict_block to
3418         emit_insn.
3419         * recog.c: Change comments so that they do not mention
3420         REG_NO_CONFLICT.
3421         * local_alloc.c (combine_regs): Removed last parameter.
3422         (no_conflict_p): Removed.
3423         (block_alloc): Removed note, no_conflict_combined_regno and set
3424         local vars. Removed all code to process REG_NO_CONFLICT blocks.
3425         (combine_regs): Removed already_dead and code to look for
3426         REG_NO_CONFLICT notes.
3427         * lower_subreg (remove_retval_note): Removed code to look for
3428         REG_NO_CONFLICT block.
3429         (resolve_reg_notes): Removed REG_NO_CONFLICT case.
3430         (resolve_clobber): Remove code to process libcalls that have
3431         REG_NO_CONFLICT notes.
3432         * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
3433         case.
3434         * combine.c (can_combine_p, distribute_notes):  Removed
3435         REG_NO_CONFLICT case.
3436         * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
3437         to emit_insns.
3438         * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
3439         * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
3440         Ditto.
3441         * reg-notes.def (NO_CONFLICT): Removed.
3442
3443 2008-05-14  David S. Miller  <davem@davemloft.net>
3444
3445         * config/sparc/sparc.c (sparc_profile_hook): If
3446         NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
3447         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
3448         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
3449
3450 2008-05-14  Andreas Krebbel  <krebbel1@de.ibm.com>
3451
3452         * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
3453
3454 2008-05-13  Uros Bizjak  <ubizjak@gmail.com>
3455
3456         PR target/36222
3457         * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
3458         and op1 expansion before vector concat to have less live pseudos.
3459
3460 2008-05-13  H.J. Lu  <hongjiu.lu@intel.com>
3461
3462         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
3463         ix86_expand_vector_set if supported.
3464
3465 2008-05-13  Diego Novillo  <dnovillo@google.com>
3466             Kenneth Zadeck  <zadeck@naturalbridge.com>
3467
3468         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
3469
3470         * tree.h (init_phinodes, fini_phinodes, release_phi_node,
3471         phinodes_print_statistics, init_ssanames, fini_ssanames,
3472         make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
3473         release_ssa_name, release_defs, replace_ssa_name_symbol,
3474         ssanames_print_statistics): Move ...
3475         * tree-flow.h: ... here.
3476         * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
3477         Use FN instead of cfun.
3478         (make_ssa_name_fn): Rename from make_ssa_name.
3479         (pass_release_ssa_names): Add TODO_dump_func to finish flags.
3480         * tree-flow-inline.h (make_ssa_name): Move from
3481         tree-ssanames.c.  Convert to static inline.  Call make_ssa_name_fn.
3482         * omp-low.c (expand_omp_parallel):
3483         * tree-flow-inline.h (redirect_edge_var_map_result):
3484         * tree-ssa.c (init_tree_ssa): Add argument FN.
3485         Use it instead of cfun.  Update all users.
3486
3487 2008-05-13  Tom Tromey  <tromey@redhat.com>
3488
3489         PR preprocessor/22168:
3490         * doc/cpp.texi (Top): Update menu.
3491         (Alternatives to Wrapper #ifndef): New node.
3492         (Other Directives): Document deprecation.
3493         (Obsolete Features): Remove menu.
3494         (Assertions): Merge node into Obsolete Features.
3495         (Obsolete once-only headers): Move earlier; rename to Alternatives
3496         to Wrapper #ifndef.
3497         * doc/cppopts.texi: Update.
3498         * c.opt (Wdeprecated): Enable for C and ObjC.
3499         * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
3500         (C++ Dialect Options): Move -Wno-deprecated from here to...
3501         (Warning Options): ... here.
3502
3503 2008-05-13  Richard Guenther  <rguenther@suse.de>
3504
3505         PR middle-end/36227
3506         * fold-const.c (fold_sign_changed_comparison): Do not allow
3507         changes in pointer-ness.
3508
3509 2008-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
3510
3511         PR target/24713
3512         * config/sh/sh.c (sh_expand_prologue): Don't clear
3513         RTX_FRAME_RELATED_P for push insns.
3514
3515 2008-05-12  Andy Hutchinson  <hutchinsonandy@aim.com>
3516
3517         * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
3518
3519 2008-05-12  Anatoly Sokolov <aesok@post.ru>
3520
3521         * config/avr/avr.h (machine_function): Add 'is_leaf' field.
3522         * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
3523         Use 'machine->is_leaf' instead of 'leaf_func_p'.
3524
3525 2008-05-12  H.J. Lu  <hongjiu.lu@intel.com>
3526
3527         * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
3528         (*vec_concatv4sf_sse): This.
3529         (*sse2_concatv2si): Renamed to ...
3530         (*vec_concatv2si_sse2): This.
3531         (*sse1_concatv2si): Renamed to ...
3532         (*vec_concatv2si_sse): This.
3533         (*vec_concatv2di_rex): Renamed to ...
3534         (*vec_concatv2di_rex64): This.
3535         (*vec_concatv2si_sse4_1): New.
3536         (*vec_concatv2di_rex64_sse4_1): Likewise.
3537
3538 2008-05-12  Uros Bizjak  <ubizjak@gmail.com>
3539
3540         PR rtl-optimization/36111
3541         * recog.c (validate_replace_rtx_1): Unshare new RTL expression
3542         that was created for swappable operands.
3543
3544 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
3545
3546         PR ada/36001
3547         * Makefile.in: Substitute GNATMAKE and GNATBIND.
3548         * configure.ac: Add call to ACX_PROG_GNAT.
3549
3550 2008-05-11  Volker Reichelt  <v.reichelt@netcologne.de>
3551
3552         * optc-gen.awk: Fix comment typo.
3553
3554 2008-05-11  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
3555
3556         * pretty-print.c (pp_integer_with_precision): Use
3557         HOST_LONG_LONG_FORMAT.
3558
3559 2008-05-10  Kenneth Zadeck  <zadeck@naturalbridge.com>
3560
3561         * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
3562                 
3563 2008-05-10  H.J. Lu  <hongjiu.lu@intel.com>
3564
3565         * config/i386/i386.c (bdesc_ptest): Removed.
3566         (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
3567         (bdesc_args): Add __builtin_ia32_ptestz128,
3568         __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
3569         (ix86_init_mmx_sse_builtins): Updated.
3570         (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
3571         (ix86_expand_builtin): Updated.
3572
3573 2008-05-10  Richard Sandiford  <rdsandiford@googlemail.com>
3574
3575         * tree-cfg.c (valid_fixed_convert_types_p): New function.
3576         (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
3577
3578 2008-05-10  Uros Bizjak  <ubizjak@gmail.com>
3579
3580         * value-prof.c (interesting_stringop_to_profile): Do not
3581         return early for BUILT_IN_MEMPCPY.
3582
3583 2008-05-09  H.J. Lu  <hongjiu.lu@intel.com>
3584
3585         * calls.c (expand_call): Don't use callgraph to increase
3586         preferred_stack_boundary.
3587
3588         * cgraph.h (cgraph_rtl_info): Use unsigned on
3589         preferred_incoming_stack_boundary.
3590
3591         * final.c (rest_of_clean_state): Use unsigned on
3592         preferred_stack_boundary.
3593
3594 2008-05-09  Tom Tromey  <tromey@redhat.com>
3595
3596         PR preprocessor/22231:
3597         * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
3598         proceeding.
3599
3600 2008-05-09  Uros Bizjak  <ubizjak@gmail.com>
3601
3602         PR tree-optimization/36129
3603         * tree-ssa-ccp.c: Include value-prof.h.
3604         (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
3605         built-in function was folded to a constant.
3606         * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
3607
3608 2008-05-09  Jan Sjodin  <jan.sjodin@amd.com>
3609             Sebastian Pop  <sebastian.pop@amd.com>
3610
3611         * tree-scalar-evolution.c: Document instantiate_scev.
3612         (instantiate_parameters_1): Renamed instantiate_scev_1.
3613         Don't use the same loop for instantiation_loop and evolution_loop.
3614         (instantiate_scev): New.
3615         (instantiate_parameters): Moved...
3616         (resolve_mixers): Update call to instantiate_scev_1 to pass the
3617         same loop twice.  Maintains the semantics for this function.
3618         * tree-scalar-evolution.h (instantiate_scev): Declare.
3619         (instantiate_parameters): ...here.  Now static inline.
3620         * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
3621         instead of resolve_mixers.
3622
3623 2008-05-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
3624
3625         * rtl-factoring.c (collect_pattern_seqs): Fix typo.
3626
3627 2008-05-09  Tomas Bily  <tbily@suse.cz>
3628
3629         * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
3630         * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
3631         * tree-ssa-structalias.c (get_constraint_for): Likewise.
3632         * c-common.c (c_common_truthvalue_conversion): Likewise.
3633         * tree-object-size.c (compute_object_offset): Likewise.
3634         * tree-inline.c (estimate_num_insns_1): Likewise.
3635         * varasm.c (const_hash_1, compare_constant, copy_constant)
3636         (compute_reloc_for_constant, output_addressed_constants)
3637         (initializer_constant_valid_p): Likewise.
3638         * c-omp.c (check_omp_for_incr_expr): Likewise.
3639         * gimplify.c (gimplify_expr): Likewise.
3640         * c-typeck.c (c_finish_return): Likewise.
3641         * tree-vectorizer.c (supportable_widening_operation)
3642         (supportable_narrowing_operation): Likewise.
3643         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
3644         * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
3645         * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
3646         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
3647         (descr_info_loc): Likewise.
3648         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
3649         * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
3650         (fold_unary): Likewise.
3651         * builtins.c (get_pointer_alignment): Likewise.
3652         * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
3653         (instantiate_parameters_1): Likewise.
3654         * tree.c (expr_align, stabilize_reference): Likewise.
3655         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
3656         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
3657         * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
3658         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
3659         * config/alpha/alpha.c (va_list_skip_additions): Likewise.
3660         * c-common.c (c_alignof_expr, check_function_arguments_recurse):
3661         Likewise.
3662         * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
3663         * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
3664         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
3665         (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
3666         (forward_propagate_comparison)
3667         (tree_ssa_forward_propagate_single_use_vars): Likewise.
3668         * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
3669         * emit-rtl.c (component_ref_for_mem_expr)
3670         (set_mem_attributes_minus_bitpos): Likewise.
3671         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
3672         * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
3673         Likewise.
3674         * c-typeck.c (default_function_array_conversion, build_indirect_ref)
3675         (build_function_call, pointer_diff, build_compound_expr)
3676         (c_finish_return): Likewise.
3677         * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
3678         * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
3679         Likewise.
3680         * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
3681         * expr.c (is_aligning_offset): Likewise.
3682         * tree-ssa-alias.c (is_escape_site): Likewise.
3683         * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
3684         (check_all_va_list_escapes): Likewise.
3685         * tree-ssa-loop-ivopts.c (determine_base_object)
3686         (determine_common_wider_type): Likewise.
3687         * dojump.c (do_jump): Likewise.
3688         * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
3689         * tree-gimple.c (is_gimple_cast): Likewise.
3690         * fold-const.c (decode_field_reference, )
3691         (fold_sign_changed_comparison, fold_unary, fold_comparison)
3692         (fold_binary): Likewise.
3693         * tree-ssa-alias-warnings.c (find_alias_site_helper)
3694         (already_warned_in_frontend_p): Likewise.
3695         * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
3696         * tree.c (really_constant_p, get_unwidened): Likewise.
3697         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
3698         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
3699         * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
3700         Likewise.
3701         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
3702         CONVERT_EXPR_P.
3703         (CONVERT_EXPR_P): Define.
3704         (CASE_CONVERT): Define.
3705         
3706 2008-05-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
3707
3708         PR middle-end/36117
3709         * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
3710         (delete_unmarked_insns): When deleting a call, call
3711         delete_unreachable_blocks.
3712         * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
3713         RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
3714
3715 2008-05-08  Richard Guenther  <rguenther@suse.de>
3716
3717         * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
3718         (-ftree-salias): Likewise.
3719         (salias-max-implicit-fields): Remove param documentation.
3720         (salias-max-array-elements): Likewise.
3721         * tree-pass.h (pass_create_structure_vars): Remove.
3722         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
3723         (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
3724         * tree-ssa-alias.c (create_structure_vars): Remove.
3725         (gate_structure_vars): Likewise.
3726         (pass_create_structure_vars): Likewise.
3727         (gate_build_alias): Likewise.
3728         (pass_build_alias): Adjust to run always and dump the function.
3729         * common.opt (ftree-salias): Hide.
3730         * passes.c (init_optimization_passes): Remove
3731         pass_create_structure_vars, adjust comment.
3732         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
3733         (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
3734         * opts.c (decode_options): Do not set flag_tree_salias.
3735         (common_handle_option): Add OPT_ftree_salias to the backward
3736         compatibility section.
3737
3738 2008-05-08  Richard Guenther  <rguenther@suse.de>
3739
3740         * tree-flow-inline.h (var_can_have_subvars): Move ...
3741         * tree-ssa-structalias.c (var_can_have_subvars): ... here.
3742         * tree-flow.h (var_can_have_subvars): Remove.
3743         (push_fields_onto_fieldstack): Remove.
3744         (sort_fieldstack): Likewise.
3745         (struct fieldoff): Move ...
3746         * tree-ssa-structalias.c (struct fieldoff): ... here.  Remove
3747         alias_set and base_for_components fields.
3748         (sort_fieldstack): Make static.
3749         (push_fields_onto_fieldstack): Likewise.  Remove code that
3750         handles anything but RECORD_TYPEs.  Remove alias_set and
3751         base_for_components handling.
3752         (create_variable_info_for): Adjust.
3753
3754 2008-05-08  Seongbae Park  <seongbae.park@gmail.com>
3755
3756         * common.opt (Wframe-larger-than=): Shorten the help message
3757         to one line.
3758         * doc/invoke.texi (Wframe-larger-than=): Add more description.
3759
3760 2008-05-08  Rafael Espindola  <espindola@google.com>
3761
3762         * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
3763         trap.
3764         * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
3765         trap and that both operands are gimple values.
3766         (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
3767         * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
3768         is a fp operation.
3769
3770 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
3771
3772         * read-rtl.c (join_c_conditions): Return the first string if the
3773         two strings are equal.
3774
3775 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
3776
3777         * gensupport.h (pred_data): Add a "num_codes" field.
3778         (add_predicate_code): Declare.
3779         * gensupport.c (add_predicate_code): New function.
3780         (std_pred_table): Add an "allows_const_p" field.
3781         (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
3782         Remove the (incomplete) list of such codes from the codes field.
3783         (init_predicate_table): Use add_predicate_code.  Add all
3784         RTX_CONST_OBJs if allows_const_p is true.
3785         * genrecog.c (process_define_predicate): Use add_predicate_code.
3786
3787 2008-05-08  David Daney  <ddaney@avtrex.com>
3788             Richard Sandiford  <rsandifo@nildram.co.uk>
3789         
3790         * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
3791         special case of constant zero operands.
3792         * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
3793         old and new values.  Special case constant zero values.
3794         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
3795         fails.
3796         (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
3797         (MIPS_COMPARE_AND_SWAP_12_0): New macro.
3798
3799 2008-05-08  Paolo Bonzini  <bonzini@gnu.org>
3800
3801         PR target/36090
3802         * simplify-rtx.c (simplify_plus_minus): Create CONST of
3803         similar RTX_CONST_OBJ before CONST_INT.
3804
3805 2008-05-08  Steve Ellcey  <sje@cup.hp.com>
3806
3807         * stmt.c (expand_stack_restore): Change sa mode if needed.
3808
3809 2008-05-08  Richard Guenther  <rguenther@suse.de>
3810
3811         * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
3812         return type to bool.
3813         (ix86_sol10_return_in_memory): Likewise.
3814         (ix86_i386elf_return_in_memory): Likewise.
3815         (ix86_i386interix_return_in_memory): Likewise.
3816         * config/i386/i386.c (ix86_return_in_memory): Likewise.
3817         (ix86_sol10_return_in_memory): Likewise.
3818         (ix86_i386elf_return_in_memory): Likewise.
3819         (ix86_i386interix_return_in_memory): Likewise.
3820
3821 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
3822
3823         PR bootstrap/36180
3824         * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
3825         fndecl argument.
3826         (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
3827         * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
3828         declared in front.
3829
3830 2008-05-08  Richard Guenther  <rguenther@suse.de>
3831
3832         * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
3833         * tree-data-ref.h (struct dr_alias): Remove subvars field.
3834         (DR_SUBVARS): Remove.
3835         * tree-dfa.c (dump_subvars_for): Remove.
3836         (debug_subvars_for): Likewise.
3837         (dump_variable): Do not dump subvars.
3838         (remove_referenced_var): Do not remove subvars.
3839         * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
3840         (lookup_subvars_for_var): Remove.
3841         (get_subvars_for_var): Likewise.
3842         (get_subvars_at): Likewise.
3843         (get_first_overlapping_subvar): Likewise.
3844         (overlap_subvar): Likewise.
3845         * tree-flow.h (subvar_t): Remove.
3846         (struct var_ann_d): Remove subvars field.
3847         * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
3848         argument.  Remove special handling of SFTs.
3849         (compute_tag_properties): Likewise.
3850         (set_initial_properties): Likewise.
3851         (compute_call_clobbered): Likewise.
3852         (count_mem_refs): Likewise.
3853         (compute_memory_partitions): Likewise.
3854         (compute_flow_insensitive_aliasing): Likewise.
3855         (setup_pointers_and_addressables): Likewise.
3856         (new_type_alias): Likewise.
3857         (struct used_part): Remove.
3858         (used_portions): Likewise.
3859         (struct used_part_map): Likewise.
3860         (used_part_map_eq): Likewise.
3861         (used_part_map_hash): Likewise.
3862         (free_used_part_map): Likewise.
3863         (up_lookup): Likewise.
3864         (up_insert): Likewise.
3865         (get_or_create_used_part_for): Likewise.
3866         (create_sft): Likewise.
3867         (create_overlap_variables_for): Likewise.
3868         (find_used_portions): Likewise.
3869         (create_structure_vars): Likewise.
3870         * tree.def (STRUCT_FIELD_TAG): Remove.
3871         * tree.h (MTAG_P): Adjust.
3872         (struct tree_memory_tag): Remove base_for_components and
3873         unpartitionable flags.
3874         (struct tree_struct_field_tag): Remove.
3875         (SFT_PARENT_VAR): Likewise.
3876         (SFT_OFFSET): Likewise.
3877         (SFT_SIZE): Likewise.
3878         (SFT_NONADDRESSABLE_P): Likewise.
3879         (SFT_ALIAS_SET): Likewise.
3880         (SFT_UNPARTITIONABLE_P): Likewise.
3881         (SFT_BASE_FOR_COMPONENTS_P): Likewise.
3882         (union tree_node): Remove sft field.
3883         * alias.c (get_alias_set): Remove special handling of SFTs.
3884         * print-tree.c (print_node): Remove handling of SFTs.
3885         * tree-dump.c (dequeue_and_dump): Likewise.
3886         * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
3887         * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
3888         * tree-predcom.c (set_alias_info): Do not set subvars.
3889         * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
3890         * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
3891         * tree-ssa-operands.c (access_can_touch_variable): Likewise.
3892         (add_vars_for_offset): Remove.
3893         (add_virtual_operand): Remove special handling of SFTs.
3894         (add_call_clobber_ops): Likewise.
3895         (add_call_read_ops): Likewise.
3896         (get_asm_expr_operands): Likewise.
3897         (get_modify_stmt_operands): Likewise.
3898         (get_expr_operands): Likewise.
3899         (add_to_addressable_set): Likewise.
3900         * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
3901         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
3902         * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
3903         * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
3904         (tree_code_size): Remove STRUCT_FIELD_TAG handling.
3905         (tree_node_structure): Likewise.
3906         * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
3907         handling of SFTs.
3908         (find_what_p_points_to): Likewise.
3909
3910 2008-05-08  Sa Liu  <saliu@de.ibm.com>
3911
3912         * config/spu/spu.md: Fixed subti3 pattern.
3913
3914 2008-05-08  Richard Guenther  <rguenther@suse.de>
3915
3916         PR middle-end/36154
3917         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
3918         sure to create a representative for trailing arrays for PTA.
3919
3920 2008-05-08  Richard Guenther  <rguenther@suse.de>
3921
3922         PR middle-end/36172
3923         * fold-const.c (operand_equal_p): Two objects which types
3924         differ in pointerness are not equal.
3925
3926 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
3927
3928         * calls.c (compute_argument_block_size): Add argument tree fndecl.
3929         (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
3930         (emit_library_call_value_1): Add new variable fndecl initialized by
3931         NULL_TREE. It should be the decl type of orgfun, but this information
3932         seems not to be available here, so it uses the default calling abi.
3933         * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
3934         * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
3935         by TARGET_RETURN_IN_MEMORY.
3936         * config/i386/i386-interix.h: Likewise.
3937         * config/i386/i386.h: Likewise.
3938         * config/i386/i386elf.h: Likewise.
3939         * config/i386/ptx4-i.h: Likewise.
3940         * config/i386/sol2-10.h: Likewise.
3941         * config/i386/sysv4.h: Likewise.
3942         * config/i386/vx-common.h: Likewise.
3943         * config/cris/cris.h: Removed #if 0 clause.
3944         * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
3945         * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
3946         argument.
3947         (ix86_sol10_return_in_memory): Likewise.
3948         (ix86_i386elf_return_in_memory): New.
3949         (ix86_i386interix_return_in_memory): New.
3950         * config/mt/mt-protos.h (mt_return_in_memory): New.
3951         * config/mt/mt.c: Likewise.
3952         * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
3953         (RETURN_IN_MEMORY):  Replace by TARGET_RETURN_IN_MEMORY.
3954         * config/bfin/bfin.h: Likewise.
3955         * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
3956         argument.
3957         * config/bfin/bfin.c: Likewise.
3958         * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
3959         * config/alpha/unicosmk.h: Likewise.
3960         * config/i386/cygming.h: Likewise.
3961         * config/iq2000/iq2000.h: Likewise.
3962         * config/mips/mips.h: Likewise.
3963         * config/mn10300/mn10300.h: Likewise.
3964         * config/rs6000/rs6000.h: Likewise.
3965         * config/score/score.h: Likewise.
3966         * config/spu/spu.h: Likewise.
3967         * config/v850/v850.h: Likewise.
3968         * defaults.h: Likewise.
3969         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
3970         * expr.c (emit_block_move): Adjust use of
3971         OUTGOING_REG_PARM_STACK_SPACE.
3972         * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
3973         OUTGOING_REG_PARM_STACK_SPACE.
3974         * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
3975
3976 2008-05-08  Jakub Jelinek  <jakub@redhat.com>
3977
3978         * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
3979         on OMP_RETURN for OMP_FOR.
3980
3981         PR debug/35896
3982         * dwarf2out.c (dw_expand_expr, common_check): Removed.
3983         (fortran_common): New function.
3984         (gen_variable_die): Call fortran_common instead of common_check,
3985         adjust for it returning tree instead of rtx.  Formatting.
3986
3987 2008-05-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
3988
3989         PR rtl/7335
3990         PR rtl/33826
3991         * see.c (see_copy_insn): Copy new pure const attributes for new call.
3992         * c-decl.c (merge_decls): Ditto.
3993         * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
3994         to RTL_CONST_OR_PURE_CALL_P.
3995         * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
3996         Initialized DECL_LOOPING_CONST_PURE.
3997         (process_call_operands): Set tree_side_effects properly.
3998         * tree.h (TREE_READONLY_DECL_P): Removed.
3999         (DECL_IS_PURE): Renamed to DECL_PURE_P.
4000         (DECL_LOOPING_OR_CONST_P): New macro.
4001         (struct tree_function_decl): Added looping_const_or_pure_p.
4002         (ECF_*) Renumbered.
4003         (ECF_LOOPING_OR_CONST_P): New macro.
4004         * rtlanal.c (pure_const_p): Removed.
4005         * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
4006         * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
4007         to RTL_CONST_CALL_P.
4008         * ipa-pure-const.c (pure_const_state_e): Added looping field.
4009         (check_decl, check_tree, check_call, scan_function): Initialize
4010         looping.
4011         (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
4012         (static_execute): Set looping true for recursive functions.
4013         Undo setting state to IPA_NEITHER for recursive functions.
4014         * cse.c (cse_insn): 
4015         * ifcvt.c (noce_can_store_speculate_p): Changed
4016         CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or 
4017         RTL_CONST_OR_PURE_CALL_P.
4018         * dse.c (scan_insn): Ditto.
4019         * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
4020         * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
4021         RTL_CONST_OR_PURE_CALL_P.
4022         (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
4023         pure_call_p to RTL_CONST_CALL_P.
4024         * gimplify.c (gimplify_call_expr): Clear side effects for
4025         non-looping pure and constant calls.
4026         * calls.c (emit_call_1): Set rtl flags from ecf flags.
4027         (flags_from_decl_or_type): Set ecf flags from decl flags.
4028         (initialize_argument_information): Turn off
4029         ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
4030         Change const to pure if callee_copies is true rather than just
4031         turning off const.
4032         (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
4033         way of marking pure calls.
4034         (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
4035         Remove hack that was supposed to fix pr7335 and remove old
4036         way of marking pure calls.
4037         * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
4038         RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
4039         * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
4040         RTL_CONST_OR_PURE_CALL_P.
4041         * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
4042         * loop-invariant.c (find_exits, find_invariant_bb): Changed
4043         CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
4044         * sched-deps.c (schedule_analyze): Ditto.
4045         * rtl.h (struct rtx_def): Use call field, unchanging field, and
4046         return_val field of calls to represent pure and const function info.
4047         (CONST_OR_PURE_CALL_P): Deleted macro.
4048         (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
4049         RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
4050         * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
4051         TREE_READONLY.
4052         * tree-optimize.c (execute_fixup_cfg): Added test for
4053         ECF_LOOPING_CONST_OR_PURE.
4054         * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
4055         DECL_PURE_P.
4056         * tree-cfg.c (update_call_expr_flags): Do not clear tree side
4057         effects for looping pure or const calls.
4058         (verify_gimple_expr): Added verification code. 
4059         * config/alpha/alpha.c (alpha_legitimize_address,
4060         alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
4061         RTL_CONST_CALL_P.
4062         * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
4063         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
4064         * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
4065         * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
4066         RTL_CONST_OR_PURE_CALL_P.
4067         * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
4068         and const calls to be deleted.
4069
4070 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
4071
4072         PR target/35714
4073         * config/i386/mmx.md (mmx_subv2sf3): New expander.
4074         (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
4075         (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
4076         (mmx_eqv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
4077         to handle nonimmediate operands.
4078         (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
4079         (mmx_paddwd): New expander.  Use ix86_fixup_binary_operands_no_copy
4080         to handle nonimmediate operands.
4081         (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
4082         (mmx_pmulhrwv4hi3): New expander.  Use
4083         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4084         (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
4085         (sse2_umulv1siv1di3): New expander.  Use
4086         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4087         (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
4088         (mmx_eq<mode>3): New expander.  Use
4089         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4090         (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
4091         (mmx_uavgv8qi3): New expander.  Use
4092         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4093         (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
4094         (mmx_uavgv4hi3): New expander.  Use
4095         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4096
4097         * config/i386/sse.md
4098         (sse_movhlps_exp): New expander.  Use ix86_fixup_binary_operands
4099         to handle nonimmediate operands.
4100         (sse_movlhps_exp): New expander.  Use ix86_fixup_binary_operands
4101         to handle nonimmediate operands.
4102         (sse_loadhps_exp): New expander.  Use ix86_fixup_binary_operands
4103         to handle nonimmediate operands.
4104         (sse_loadlps_exp): New expander.  Use ix86_fixup_binary_operands
4105         to handle nonimmediate operands.
4106         (sse2_unpckhpd_exp): New expander.  Use
4107         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4108         (sse2_unpcklpd_exp): New expander.  Use
4109         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4110         (sse_loadhpd_exp): New expander.  Use ix86_fixup_binary_operands
4111         to handle nonimmediate operands.
4112         (sse_loadlpd): New expander.  Use ix86_fixup_binary_operands
4113         to handle nonimmediate operands.
4114         (*sse2_<plusminus_insn><mode>3): Rename from
4115         sse2_<plusminus_insn><mode>3 insn pattern.
4116         (sse2_<plusminus_insn><mode>3): New expander.  Use
4117         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4118         (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
4119         (sse2_umulv2siv2di3): New expander.  Use
4120         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4121         (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
4122         (sse4_1_mulv2siv2di3): New expander.  Use
4123         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4124         (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
4125         (sse2_pmaddwd): New expander.  Use
4126         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4127         (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
4128         (sse2_eq<mode>3): New expander.  Use
4129         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4130         (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
4131         (sse4_1_eqv2di3): New expander.  Use
4132         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4133         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
4134         (sse2_uavgv16qi3): New expander.  Use
4135         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4136         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
4137         (sse2_uavgv16qi3): New expander.  Use
4138         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4139         (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
4140         (sse2_uavgv8hi3): New expander.  Use
4141         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4142         (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
4143         (ssse3_pmulhrswv8hi3): New expander.  Use
4144         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4145         (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
4146         (ssse3_pmulhrswv4hi3): New expander.  Use
4147         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4148
4149         (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
4150         (<sse>_vmmul<mode>3): Ditto.
4151         (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
4152         (divv2df3): Ditto.
4153         (ssse3_pmaddubsw128): Use register_operand for operand 1.
4154         (ssse3_pmaddubsw): Ditto.
4155
4156         * config/i386/i386.c (struct_builtin_description)
4157         [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
4158         [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
4159         [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
4160         [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
4161         [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
4162         [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
4163         [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
4164         [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
4165         (ix86_fixup_binary_operands): Assert that src1
4166         and src2 must have the same mode when swapped.
4167         (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
4168         and ix86_binary_operator_ok.  Do not force operands in registers
4169         when optimizing.
4170
4171 2008-05-07  Jan Hubicka  <jh@suse.cz>
4172
4173         * cgraph.c (dump_cgraph_node): Update.
4174         * cgraph.h (cgraph_local_info): Break out inline summary.
4175         * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
4176         hook.
4177         * ipa-inline (inline_summary): New accestor function.
4178         (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
4179         cgraph_decide_inlining, compute_inline_parameters): Update.
4180         * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
4181
4182 2008-05-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
4183
4184         Cleanup ColdFire scheduling support and add V4 pipeline model.
4185
4186         * config/m68k/m68k.md (UNSPEC_TIE): New constant.
4187         (define_attr cpu): Add cfv4 value.
4188         (define_attr type, define_attr type1): Merge into a single 'type'
4189         attribute.  Update all uses.
4190         (define_attr opx_type, define_attr opy_type, define_attr opx_access):
4191         Rearrange and update.  Rename value 'reg' to 'Rn', add value 'FPn'.
4192         Update all uses.
4193         (define_attr opx_mem, define_attr opy_mem): Remove.
4194         (define_attr op_mem): Clean up, update comment.
4195         (define_attr size): Use specific values instead of general int.
4196         (define_attr guess, define_attr split): Remove.  Update all uses.
4197         (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
4198         tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
4199         movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
4200         zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
4201         68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
4202         floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
4203         fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
4204         adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
4205         add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
4206         add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
4207         sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
4208         sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
4209         mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
4210         umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
4211         mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
4212         div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
4213         one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
4214         bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
4215         beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
4216         bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
4217         symbolic_call_value_jsr, symbolic_call_value_bsr, link):
4218         Update or set attributes.
4219         (stack_tie): New fake instruction.
4220
4221         * config/m68k/m68k.h (TUNE_CFV4): New macro.
4222         (m68k_sched_attr_size): Update declaration.
4223         (m68k_sched_attr_type2): Remove.
4224         (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
4225         Declare new bypass predicates.
4226
4227         * config/m68k/m68k.c (m68k_sched_issue_rate,
4228         m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
4229         implementations.
4230         (TARGET_SCHED_ISSUE_RATE,
4231         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
4232         (override_options): Handle scheduling for ColdFire V4 core.
4233         (m68k_expand_prologue): Emit stack_tie.
4234         (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
4235         'OP_TYPE_FPN'.  Update all uses.
4236         (sched_guess_p): Remove.
4237         (sched_address_type): Handle symbolic addresses.
4238         (sched_get_operand): New static function.
4239         (sched_operand_type): Merge into sched_attr_op_type.
4240         (sched_attr_op_type): Handle FP registers, handle quick constants,
4241         update.
4242         (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
4243         (m68k_sched_attr_size): Update.  Move logic to ...
4244         (sched_get_attr_size_int): New static function.
4245         (sched_get_opxy_mem_type): New static function.
4246         (m68k_sched_attr_op_mem): Update.
4247         (m68k_sched_attr_type2): Remove.
4248         (sched_cfv4_bypass_data): New static variable.
4249         (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
4250         (m68k_sched_issue_rate): Implement scheduler hook.
4251         (struct _sched_ib: enabled_p): New field.
4252         (m68k_sched_variable_issue): Update.  Handle V4.
4253         (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
4254         sched_dump_class_func_t, sched_dump_split_class,
4255         sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
4256         sched_dump_dfa_class, m68k_sched_dump): Remove.
4257         (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
4258         hook.
4259         (m68k_sched_init_global): Remove statisctics dumping, introduce
4260         sanity check that all instructions have pipeline reservations.  Handle
4261         ColdFire V4 core.
4262         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
4263         Handle ColdFire V4 core.
4264         (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
4265         New static functions.
4266         (m68k_sched_address_bypass_p): New bypass predicate.
4267         (sched_get_indexed_address_scale): New static function.
4268         (m68k_sched_indexed_address_bypass_p): New bypass predicate.
4269
4270         * cf.md: Update comments.
4271         (define_attr type2): Remove.  Use 'type' attribute instead.
4272         Update all uses.
4273         (cf_ib): Rename to cfv123_ib.  Update all uses.
4274         (cf_oep): Rename to cfv123_oep.  Update all uses.
4275         (cf_chr): Rename to cfv123_chr.  Update all uses.
4276         (cf_mem): Rename to cfv123_mem.  Update all uses.
4277         (cf_mac): Move to more appropriate place.
4278         (cfv123_guess): New automaton and cpu_unit.
4279         (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
4280         Update uses of 'size' attribute.  Handle before reload scheduling.
4281         (cfv123_guess): New dummy reservation for unhandled instructions.
4282         (cfv4_*): Pipeline description of ColdFire V4 core.
4283         (ignore): New reservation to handle 'ignore' type.
4284
4285 2008-05-07  Ian Lance Taylor  <iant@google.com>
4286
4287         PR middle-end/36013
4288         * gimplify.c (find_single_pointer_decl_1): Don't look through
4289         indirections.
4290         (find_single_pointer_decl): Adjust comments.
4291
4292 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
4293
4294         PR middle-end/36137
4295         * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
4296         STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
4297
4298         PR middle-end/36106
4299         * omp-low.c (expand_omp_atomic_pipeline): Load value using the
4300         integral type rather than floating point, then VIEW_CONVERT_EXPR
4301         to the floating point type.
4302
4303 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
4304
4305         * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
4306         TFmode op0 to register.
4307
4308 2008-05-07  Alan Modra  <amodra@bigpond.net.au>
4309
4310         * c-decl.c (grokdeclarator): Comment typo.
4311
4312 2008-05-06  Aldy Hernandez  <aldyh@redhat.com>
4313
4314         * tree-flow.h: Remove prototype for computed_goto_p.
4315         * tree-cfg.c (computed_goto_p): Make static.
4316
4317 2008-05-06  H.J. Lu  <hongjiu.lu@intel.com>
4318
4319         PR target/35657
4320         * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
4321         (contains_aligned_value_p): This.  Handle _Decimal128.
4322         (ix86_function_arg_boundary): Only align _Decimal128 to its
4323         natural boundary and handle it properly.
4324
4325 2008-05-06  Martin Jambor  <mjambor@suse.cz>
4326
4327         * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
4328         (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
4329         (ipcp_method_set_orig_node): Removed.
4330         (ipcp_cval_get_cvalue_type): Removed.
4331         (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
4332         (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
4333         (ipcp_cval_set_cvalue_type): Removed.
4334         (ipcp_cval_get_cvalue): Removed.
4335         (ipcp_cval_set_cvalue): Removed.
4336         (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
4337         (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
4338         (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
4339         (ipcp_cval_meet): Renamed to ipa_lattice_meet
4340         (ipcp_cval_changed): Changed to use ipcp_lat_is_const
4341         (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
4342         (ipcp_get_ith_lattice): Changed parameters.
4343         (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
4344         (ipcp_lattice_from_jfunc): Changed parameters.
4345         (ipcp_redirect): Local lattice pointer instead of lattice type variable.
4346         (ipcp_method_cval_print): Added temporary variable info.
4347         (ipcp_redirect): Removed already unused local variable caller.
4348         (ipcp_redirect): New temporary variable orig_callee_info
4349         (ipcp_redirect): Removed newly unused local variable callee.
4350         (ipcp_redirect): Removed (a bit confusing) local variable type.
4351         (ipcp_insert_stage): Added local variable info.
4352         (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters 
4353         renamed too
4354         (ipcp_formal_create): Removed.
4355         (ipcp_method_cval_set): Removed.
4356         (ipcp_propagate_stage): Renamed lattice variables.
4357         (ipcp_method_cval_set_cvalue_type): Removed.
4358         (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
4359         (ipcp_print_all_lattices): Changed printed strings to refer to 
4360         lattices rather than cvals.
4361         (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
4362         (ipcp_propagate_const): Changed formal parameters.
4363         (build_const_val): Changed formal parameters.
4364         (ipcp_insert_stage): Removed useless variable cvalue
4365         (build_const_val): Changed formal parameters.
4366         (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
4367         (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
4368         (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
4369         (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
4370         (ipcp_print_func_profile_counts): Changed string from "method" to 
4371         "function"
4372         (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
4373         (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
4374         (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
4375         (ipcp_structures_print): Renamed to ipcp_print_all_structures
4376         (ipcp_profile_print): Renamed to ipcp_print_profile_data
4377         (ipcp_lat_is_const): Changed parameters and made inline.
4378         (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
4379         (ipcp_redirect): Renamed to ipcp_need_redirect_p
4380         (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using 
4381         the predicate condition directly
4382         (ipcp_propagate_stage): Added local variable args. Removed local
4383         variable callee.  (Both are mere code simplifications.)
4384         (ipcp_method_dont_insert_const): Renamed to
4385         ipcp_node_not_modifiable_p.
4386         (ipcp_node_not_modifiable_p): Made inline.
4387         (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
4388         (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
4389         (ipcp_print_all_lattices): Removed variable cvalue
4390         (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
4391         Updated comments.
4392
4393 2008-05-06  Olivier Hainque  <hainque@adacore.com>
4394
4395         * tree-sra.c (try_instantiate_multiple_fields): Early return
4396         if field has POINTER_TYPE.
4397
4398 2008-05-06  Kai Tietz  <kai.tietz@onevision.com>
4399
4400         * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
4401         by using 'q' specifier for instruction.
4402         (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
4403
4404 2008-05-06  Anatoly Sokolov <aesok@post.ru>
4405
4406         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
4407         Change mode of zero_extract from QImode to HImode.
4408         (sign bit tests peepholes): (Ditto.).
4409
4410 2008-05-06  Uros Bizjak  <ubizjak@gmail.com>
4411
4412         * config/i386/mmx.md: Remove double backslashes from asm templates.
4413         (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
4414         (mmx_addv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
4415         to handle nonimmediate operands.
4416         (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
4417         (mmx_mulv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
4418         to handle nonimmediate operands.
4419         (*mmx_<code>v2sf3_finite): New insn pattern.
4420         (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
4421         (mmx_<code>v2sf3): New expander.  Use
4422         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4423         (mmx_<plusminus_insn><mode>3): New expander.  Use
4424         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4425         (*mmx_<plusminus_insn><mode>3): New insn pattern.
4426         (mmx_add<mode>3): Removed.
4427         (mmx_ssadd<mode>3): Ditto.
4428         (mmx_usadd<mode>3): Ditto.
4429         (mmx_sub<mode>3): Ditto.
4430         (mmx_sssub<mode>3): Ditto.
4431         (mmx_ussub<mode>3): Ditto.
4432         (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
4433         (mmx_mulv4hi3): New expander.  Use ix86_fixup_binary_operands_no_copy
4434         to handle nonimmediate operands.
4435         (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
4436         insn pattern.
4437         (mmx_smulv4hi3_highpart): New expander.  Use
4438         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4439         (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
4440         insn pattern.
4441         (mmx_umulv4hi3_highpart): New expander.  Use
4442         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4443         (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
4444         (mmx_<code>v4hi3): New expander.  Use
4445         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4446         (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
4447         (mmx_<code>v8qi3): New expander.  Use
4448         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4449         (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
4450         (mmx_<code><mode>3): New expander.  Use
4451         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4452
4453 2008-05-05  Jan Hubicka  <jh@suse.cz>
4454
4455         PR tree-optimization/36118
4456         * passes.c (pass_init_dump_file): Fix dump header.
4457
4458 2008-05-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4459
4460         PR middle-end/36141
4461         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
4462         VCE for function decls.
4463
4464 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
4465
4466         * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
4467
4468 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
4469
4470         * config/i386/i386.md (sat_plusminus): New.
4471         (plusminus_insn): Likewise.
4472         (plusminus_mnemonic): Likewise.
4473         (addsub): Removed.
4474         (comm): Add ss_plus, us_plus, ss_minus and us_minus.
4475         (*<addsub><mode>3_cc_overflow): Renamed to ...
4476         (*<plusminus_insn><mode>3_cc_overflow): This.
4477         (*<addsub>si3_zext_cc_overflow): Renamed to ...
4478         (*<plusminus_insn>si3_zext_cc_overflow): This.
4479
4480         * config/i386/sse.md (<addsub><mode>3): Renamed to ...
4481         (<plusminus_insn><mode>3): This.
4482         (*<addsub><mode>3): Renamed to ...
4483         (*<plusminus_insn><mode>3): This.
4484         (<sse>_vm<addsub><mode>3): Renamed to ...
4485         (<sse>_vm<plusminus_insn><mode>3): This.
4486         (sse3_h<addsub>v4sf3): Renamed to ...
4487         (sse3_h<plusminus_insn>v4sf3): This.
4488         (sse3_h<addsub>v2df3): Renamed to ...
4489         (sse3_h<plusminus_insn>v2df3): This.
4490         (<plusminus_insn><mode>3): New.
4491         (*<plusminus_insn><mode>3): Likewise.
4492         (sse2_<plusminus_insn><mode>3): Likewise.
4493         (add<mode>): Removed.
4494         (*add<mode>3): Likewise.
4495         (sse2_ssadd<mode>3): Likewise.
4496         (sse2_usadd<mode>3): Likewise.
4497         (sub<mode>3): Likewise.
4498         (*sub<mode>3): Likewise.
4499         (sse2_sssub<mode>3): Likewise.
4500         (sse2_ussub<mode>3): Likewise.
4501
4502 2008-05-05  Benjamin Kosnik  <bkoz@redhat.com>
4503
4504         * gthr-single.h: Add in required interface elements as per gthr.h.
4505         Add stub types for __gthread_key_t, __gthread_once_t. Add defines
4506         for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
4507         Generalize UNUSED macro. 
4508         (__gthread_once): Add.
4509         (__gthread_key_create): Add.
4510         (__gthread_key_delete): Add.
4511         (__gthread_getspecific): Add.
4512         (__gthread_setspecific): Add.
4513         
4514 2008-05-05  Andrew Pinski  <Andrew.Pinski@playstation.sony.com>
4515
4516         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
4517         the same size types for the indirect reference on the rhs, then
4518         create a VCE.
4519
4520 2008-05-05  Uros Bizjak  <ubizjak@gmail.com>
4521
4522         * config/i386/i386.md
4523         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
4524         one insn template instead of template series.
4525         (*xordi_1_rex64): Ditto.
4526         (*xordi_2_rex64): Ditto.
4527
4528 2008-05-05  Ira Rosen  <irar@il.ibm.com>
4529
4530         PR tree-optimization/36119
4531         * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
4532         in case of SLP.
4533
4534 2008-06-04  Jan Hubicka  <jh@suse.cz>
4535
4536         tree-optimization/36100
4537         * tree-pass.h (pass_O0_always_inline): Declare.
4538         * ipa-inline.c (inline_transform): Remove dead code.
4539         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
4540         pass_O0_always_inline): New.
4541         * passes.c (init_optimization_passes): Add pass_O0_always_inline.
4542
4543 2008-05-04  Kai Tietz  <kai.tietz@onevision.com>
4544
4545         * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
4546         mnemonic in this_param move for TARGET_64BIT.
4547
4548 2008-05-04  Uros Bizjak  <ubizjak@gmail.com>
4549
4550         * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
4551         (*strmovsi_rex_1): Ditto.
4552         (*strsetsi_1): Ditto.
4553         (*strsetsi_rex_1): Ditto.
4554
4555         (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
4556         adddicc expanders using SWI mode iterator.
4557
4558 2008-05-04  H.J. Lu  <hongjiu.lu@intel.com>
4559
4560         PR target/36121
4561         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
4562         argument handling.
4563
4564 2008-05-04  David S. Miller  <davem@davemloft.net>
4565
4566         * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
4567         (sparc*-*-linux*): Use linux.h in tm_file.
4568         (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
4569         compiler defaulting to 32-bit.
4570         (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
4571         no longer needed.
4572         * config/sparc/linux.h: Remove definitions now obtained
4573         properly from linux.h
4574         * config/sparc/linux64.h: Likewise.
4575         (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
4576         don't want this setting for 32-bit builds in a biarch compiler.
4577         * doc/install.texi: Add sparc-linux to list of targets
4578         supporting --enable-targets=all.
4579
4580 2008-05-03  Andrew Pinski  <pinskia@gmail.com>
4581
4582         * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
4583
4584 2008-05-03  H.J. Lu  <hongjiu.lu@intel.com>
4585
4586         * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
4587         after V4SI_FTYPE_V8HI.
4588         (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
4589         case V4SI_FTYPE_V2DF.
4590
4591 2008-05-03  Kenneth Zadeck  <zadeck@naturalbridge.com>
4592
4593         * doc/invoke.texi (max-flow-memory-locations): Removed.
4594         * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
4595         
4596 2008-05-03  Richard Guenther  <rguenther@suse.de>
4597
4598         PR middle-end/34973
4599         * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
4600
4601 2008-05-02  David S. Miller  <davem@davemloft.net>
4602
4603         * config.gcc (need_64bit_hwint): Document libcpp dependency.
4604
4605 2008-05-02  Simon Baldwin <simonb@google.com>
4606
4607         PR bootstrap/36108
4608         * c-common.h (warn_array_subscript_range): Removed.
4609         * c-common.c (warn_array_subscript_range): Ditto.
4610         * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
4611         * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
4612
4613 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
4614
4615         * config/i386/i386.c (ix86_special_builtin_type): New.
4616         (bdesc_special_args): Likewise.
4617         (ix86_expand_special_args_builtin): Likewise.
4618         (ix86_init_mmx_sse_builtins): Updated.
4619         (ix86_expand_builtin): Updated.
4620         (ix86_expand_store_builtin): Removed.
4621         (ix86_expand_unop_builtin): Likewise.
4622
4623         * config/i386/mm3dnow.h (__v2sf): Moved to ...
4624         * config/i386/mmintrin.h (__v2sf): Here.
4625
4626         * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
4627         const __v2sf.
4628         (_mm_loadl_pi): Likewise.
4629         (_mm_storeh_pi): Replace __v2si with __v2sf.
4630         (_mm_storel_pi): Likewise.
4631
4632         * doc/extend.texi: Correct __builtin_ia32_loadhps,
4633         __builtin_ia32_loadlps, __builtin_ia32_storehps,
4634         __builtin_ia32_storelps, __builtin_ia32_loadhpd and
4635         __builtin_ia32_loadlpd.
4636
4637 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
4638
4639         * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
4640         V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
4641         (bdesc_args): Updated.  Add scalar SSE builtins with vec_merge.
4642         (ix86_init_mmx_sse_builtins): Updated.
4643         (ix86_expand_args_builtin): Likewise.
4644         (ix86_expand_builtin): Likewise.
4645         (ix86_expand_unop1_builtin): Renamed to ...
4646         (ix86_expand_unop_vec_merge_builtin): This.
4647
4648 2008-05-01  Jan Hubicka  <jh@suse.cz>
4649
4650         PR bootstrap/36100
4651         * ipa-inline.c (inline_generate_summary): Make static.
4652         (inline_transform): Do not call inlining at -O0; make static.
4653         * passes.c (execute_todo): Add sanity check.
4654         (execute_one_ipa_transform_pass): Execute proper flags.
4655
4656 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
4657
4658         * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
4659         (DECL_NONADDRESSABLE_P): Likewise.
4660         * alias.c (record_component_aliases): Fix comment.
4661
4662 2008-05-01  Simon Baldwin <simonb@google.com>
4663
4664         * c-common.h (warn_array_subscript_range): New function.
4665         * c-common.c (warn_array_subscript_range): Ditto.
4666         * tree-vrp.c (check_array_ref): Corrected code to agree with
4667         comment, ignoring only arrays of size 0 or size 1.
4668         * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
4669
4670 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
4671
4672         * config/i386/i386.c (ix86_builtin_type): Replace
4673         DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
4674         (bdesc_args): Updated.
4675         (ix86_init_mmx_sse_builtins): Likewise.
4676         (ix86_expand_args_builtin): Likewise.
4677
4678         * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
4679         with __v1di.
4680
4681         * doc/extend.texi: Correct __builtin_ia32_palignr.
4682
4683 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
4684
4685         PR target/36095
4686         * config/i386/i386.c (bdesc_crc32): Removed.
4687         (ix86_expand_crc32): Likewise.
4688         (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
4689         V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
4690         V2DI2TI_FTYPE_V2DI_V2DI_INT.  Add UINT64_FTYPE_UINT64_UINT64,
4691         UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
4692         UINT_FTYPE_UINT_UCHAR.
4693         (bdesc_args): Updated. Add crc32 builtins.
4694         (ix86_init_mmx_sse_builtins): Updated.
4695         (ix86_expand_args_builtin): Updated to support subreg.
4696
4697         * doc/extend.texi: Correct __builtin_ia32_crc32di.
4698
4699 2008-05-01  Jan Hubicka  <jh@suse.cz>
4700
4701         * tree-pass.h (opt_pass): Add IPA_PASS.
4702         (varpool_node, cgraph_node): Forward declare.
4703         (ipa_opt_pass): Define.
4704         (pass_ipa_inline): Turn into ipa_opt_pass.
4705         (pass_apply_inline): Remove.
4706         * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
4707         (apply_inline): Turn into ....
4708         (inline_transform): ... this one.
4709         (inline_generate_summary): New function.
4710         (pass_apply_inline): Remove.
4711         * function.h (ipa_opt_pass): Forward declare structure; typedef;
4712         vector.
4713         (struct function): Add ipa_transforms_to_apply.
4714         * passes.c (register_one_dump_file): Work on IPA_PASS.
4715         (init_optimization_passes): Remove pass_inline_parameters and
4716         pass_apply_inline.
4717         (pass_init_dump_file, pass_fini_dump_file): Break out from ....
4718         (execute_one_pass) ... here; apply transforms when possible.
4719         (add_ipa_transform_pass, execute_ipa_summary_asses,
4720         execute_one_ipa_transform_pass): New.
4721         (execute_ipa_pass_list): Update for IPA_PASS type.
4722
4723 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
4724
4725         * config/i386/i386.c (ix86_builtin_type): Add
4726         V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
4727         V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
4728         (bdesc_args): Add SSE4a builtins.
4729         (ix86_init_mmx_sse_builtins): Updated.
4730         (ix86_expand_args_builtin): Likewise.
4731         (ix86_expand_builtin): Likewise.
4732
4733 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
4734
4735         * config/i386/i386.c (ix86_builtin_type): Add
4736         V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
4737         V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
4738         V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
4739         V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
4740         V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
4741         V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
4742         V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
4743         V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
4744         and DI_FTYPE_DI_DI_INT.
4745         (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
4746         (ix86_init_mmx_sse_builtins): Updated.
4747         (ix86_expand_args_builtin): Likewise.
4748         (ix86_expand_builtin): Likewise.
4749         (ix86_expand_binop_imm_builtin): Removed.
4750
4751         * doc/extend.texi: Correct __builtin_ia32_palignr128.
4752
4753 2008-04-30  Richard Guenther  <rguenther@suse.de>
4754
4755         PR tree-optimization/32921
4756         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
4757
4758 2008-04-30  Richard Sandiford  <rsandifo@nildram.co.uk>
4759
4760         * config/arm/arm.c (arm_unwind_emit): Use
4761         crtl->all_throwers_are_sibcalls instead of
4762         cfun->all_throwers_are_sibcalls.
4763         (arm_output_fn_unwind): Likewise.
4764         * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
4765         instead of cfun->uses_pic_offset_table.
4766         (frv_expand_prologue): Likewise.
4767         (frv_frame_pointer_required): Likewise.
4768         (frv_expand_fdpic_call): Likewise.
4769         (frv_emit_movsi): Likewise.
4770         * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
4771         cfun->returns_pcc_struct instead of
4772         current_function_returns_pcc_struct.
4773         * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
4774         instead of cfun->calls_eh_return.
4775         (m32c_pushm_popm): Likewise.
4776         * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
4777         "extern" declaration.
4778
4779 2008-04-30  Richard Guenther  <rguenther@suse.de>
4780
4781         PR tree-optimization/21636
4782         * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
4783         constant address.
4784         (evaluate_stmt): Print the likely value.
4785         (ccp_visit_stmt): Avoid excessive vertical spacing.
4786
4787 2008-04-30  Rafael Espindola  <espindola@google.com>
4788
4789         * builtins.c (fold_call_expr): Return realret.
4790         * tree-ssa-threadedge.c
4791         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
4792         __builtin_object_size.
4793
4794 2008-04-30  Seongbae Park  <seongbae.park@gmail.com>
4795
4796         * gcc.c (wrapper_string): New variable.
4797         (insert_wrapper): New function.
4798         (execute): New option -wrapper.
4799         * doc/invoke.texi (Overall Options): New driver option -wrapper.
4800
4801 2008-04-30  Nathan Froyd  <froydnj@codesourcery.com>
4802
4803         * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
4804         config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
4805         config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
4806         from...
4807         * config/rs6000/crtsavres.asm: ...here.  Remove unneeded file.
4808         * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
4809         config/rs6000/e500crtres64gprctr.asm,
4810         config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
4811         config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
4812         config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
4813         config/rs6000/e500crtsav64gprctr.asm,
4814         config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
4815         config/rs6000/e500crtsavg64gprctr.asm: New files.
4816         * config/rs6000/t-ppccomm: Add build rules for new files.
4817         (LIB2FUNCS_STATIC_EXTRA): Add new files.
4818         * config/rs6000/t-netbsd: Add build rules for new files.
4819         (LIB2FUNCS_STATIC_EXTRA): New variable.
4820         * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
4821         (CRTSAVRES_DEFAULT_SPEC): Likewise.
4822         * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
4823
4824 2008-04-30  H.J. Lu  <hongjiu.lu@intel.com>
4825
4826         * config/i386/i386.c (ix86_builtin_type): Add
4827         FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
4828         V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
4829         V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
4830         V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
4831         V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
4832         V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
4833         V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
4834         V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
4835         V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
4836         V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
4837         V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
4838         V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
4839         V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
4840         V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
4841         V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
4842         V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
4843         V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
4844         V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
4845         V1DI_FTYPE_V2SI_V2SI.
4846         (bdesc_2arg): Moved to ...
4847         (bdesc_args): Here.
4848         (ix86_init_mmx_sse_builtins): Updated.
4849         (ix86_expand_args_builtin): Updated.  Take a pointer
4850         to const struct builtin_description.  Handle comparison
4851         builtin functions.
4852         (ix86_expand_sse_compare): Take a new argument for swapping operands.
4853         (ix86_expand_builtin): Updated.
4854
4855         * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
4856         (ssse3_pmaddubsw128): This.
4857         (ssse3_pmaddubswv4hi3): Renamed to ...
4858         (ssse3_pmaddubsw): This.
4859
4860         * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
4861         (__builtin_ia32_packssdw128): Likewise.
4862         (__builtin_ia32_packuswb128): Likewise.
4863         (__builtin_ia32_pmaddubsw): Likewise.
4864         (__builtin_ia32_pmaddubsw128): Likewise.
4865
4866 2008-04-30  Richard Guenther  <rguenther@suse.de>
4867
4868         PR tree-optimization/14847
4869         * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
4870         (recognize_bits_test): Use it.
4871         (recognize_single_bit_test): Likewise.
4872
4873 2008-04-30  Martin Jambor  <mjambor@suse.cz>
4874
4875         * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
4876         instead of setting number of formal parameters to zero.
4877         (ipcp_init_stage): Do not set the number of actual parameters to zero 
4878         either.
4879         (ipcp_propagate_stage): Explicitly skipping all calls to nodes
4880         which are called with variable number of arguments.
4881         (ipcp_insert_stage): Explicitely skipping all nodes which are
4882         called with variable number of arguments.
4883         (ipcp_callsite_param_print): Skipps callsites to nodes with varaible 
4884         number of parameters.
4885
4886         * ipa-prop.h (struct ipa_node_params): Added flag
4887         called_with_var_arguments
4888         (ipa_set_param_count): Added.  Changed sole setter to use it.
4889         (ipa_get_param_count): Added.  All readers of param_count
4890         converted to use it instead.
4891         (ipa_set_called_with_variable_arg): Added.
4892         (ipa_is_called_with_var_arguments): Added.
4893         (ipa_get_ith_param): Added.  All readers of param_decls converted
4894         to use it instead.
4895         (ipa_set_cs_argument_count): Added, sole writer to argument_count 
4896         changed to use it. 
4897         (ipa_get_cs_argument_count): Added, all readers of argument_count
4898         changed to cal it.
4899         (ipa_get_ith_jump_func): Added. Accessors of jump values changed 
4900         to use it.
4901         
4902         * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
4903         (struct ipcp_lattice): Renamed cval_type to type
4904         (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
4905
4906         * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
4907         (ipcp_cval_set_cvalue): Changed type of parameter value to tree
4908         (ipcp_insert_stage): Changed the type of variable cvalue to tree
4909         (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
4910         (build_const_val): Changed the type of parameter cvalue to tree
4911         (ipcp_propagate_const): Changed the type of parameter cvalue to tree
4912         (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
4913         
4914         * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called 
4915         constant 
4916
4917         * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
4918         (ipa_methodlist_not_empty): Removed, the sole user now checks directly
4919         (ipa_add_method): Renamed to ipa_push_func_to_list
4920         (ipa_remove_method): Renamed to ipa_pop_func_from_list
4921         (ipa_callsite_param_count): Removed.
4922         (ipa_callsite_param_count_set): Removed.
4923         (ipa_callsite_param): Removed.
4924         (ipa_callsite_callee): Removed.
4925         (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
4926         (ipa_callsite_compute_count): Renamed to ipa_count_arguments
4927         (ipa_method_formal_count): Removed.
4928         (ipa_method_formal_count_set): Removed.
4929         (ipa_method_get_tree): Removed.
4930         (ipa_method_tree_map_create): Removed.
4931         (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
4932         (ipa_create_param_decls_array): Creates the array itself
4933         (ipa_create_param_decls_array): Temporary variable info instead of 
4934         a few dereferences.
4935         (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
4936         (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
4937         (get_type): Removed.
4938         (ipa_jf_get_info_type): Removed.
4939         (ipa_node_create): Renamed to ipa_create_node_params
4940         (ipa_free): Renamed to ipa_free_all_node_params
4941         (ipa_nodes_create): Renamed to ipa_create_all_node_params
4942         (ipa_edges_create): Renamed to ipa_create_all_edge_args
4943         (ipa_edges_free): Renamed to ipa_free_all_edge_args
4944         (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
4945         (ipa_free_all_node_params): Deallocation to jump_functions moved to 
4946         ipa_free_all_edge_args
4947         (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
4948         (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
4949         (ipa_create_methodlist_node): Removed.
4950         (ipa_methodlist_method): Removed.
4951         (ipa_methodlist_method_set): Removed.
4952         (ipa_methodlist_next_method): Removed.
4953         (ipa_methodlist_next_method_set): Removed.
4954         (ipa_method_is_modified): Removed.
4955         (ipa_method_modify_create): Removed.
4956         (ipa_method_modify_init): Temporary variable info instead of a few 
4957         dereferences.
4958         (ipa_detect_param_modifications): Temporary variable info instead of 
4959         a few dereferences.
4960         (ipa_compute_jump_functions): Temporary variable info instead of 
4961         a few dereferences.
4962         (ipa_method_modify_set): Removed.
4963         (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
4964         (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather 
4965         than craph_node as the first parameter.
4966         (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
4967         (ipa_method_modify_init): Removed.
4968         (ipa_compute_jump_functions): Added a temp variable instead of 
4969         repeatadly dereferencing the cgraph_edge.aux pointer
4970         (ipa_callsite_param_set_type): Removed.
4971         (ipa_compute_jump_functions): i renamed to index and moved to 
4972         an inner block
4973         (ipa_callsite_param_set_info_type_formal): Removed.
4974         (ipa_callsite_param_set_info_type): Removed.
4975         (ipa_callsite_param_map_create): Removed.
4976         (ipa_callsite_tree): Removed.
4977         (ipa_callsite_caller): Removed.
4978         (ipa_pop_func_from_list): return_method removed to return_func
4979
4980         * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
4981         prefixed all values with IPA_. Changed all users.
4982         (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN, 
4983         CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF 
4984         and FORMAL_IPATYPE IPA_PASS_THROUGH. 
4985         (union parameter_info): Renamed to jump_func_value.
4986         (union jump_func_value): Renamed value to constant
4987         (struct ipa_jump_func): Renamed info_type to value
4988         (struct ipa_node): Renamed to ipa_node_params
4989         (struct ipa_node_params): Renamed ipa_arg_num to param_count
4990         (struct ipa_node_params): Renamed ipa_param_tree to param_decls
4991         (struct ipa_node_params): Renamed ipa_mod to modified_flags
4992         (struct ipa_edge): Renamed to ipa_edge_args
4993         (struct ipa_edge_args): Renamed ipa_param_num to argument_count
4994         (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
4995         (struct ipa_methodlist): Renamed to ipa_func_list
4996         (struct ipa_func_list): method_p renamed to node, next_method
4997         renamed to next
4998         (ipa_methodlist_p): Removed, switched all users to struct pointer
4999         (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
5000
5001 2008-04-30  Alan Modra  <amodra@bigpond.net.au>
5002
5003         * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
5004         (rs6000_emit_epilogue): Use backchain to restore only when we
5005         have a large frame.  Make use of frame pointer to restore if we
5006         have one.  Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
5007
5008 2008-04-29  Paolo Bonzini  <bonzini@gnu.org>
5009
5010         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
5011         Add mode to zero_extract.
5012         (sign bit tests peepholes): (Ditto.).
5013
5014 2008-04-29  H.J. Lu  <hongjiu.lu@intel.com>
5015
5016         * config/i386/i386.c (ix86_builtins): Replace Prescott New
5017         Instructions in comments with SSE3.
5018         (ix86_builtin_type): This.  Add FLOAT128_FTYPE_FLOAT128,
5019         INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
5020         INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
5021         V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
5022         V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
5023         V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
5024         V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
5025         V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
5026         V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
5027         V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
5028         V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
5029         V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
5030         (bdesc_sse_args): Renamed to ...
5031         (bdesc_args): This.  Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
5032         IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
5033         IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
5034         IX86_BUILTIN_FABSQ.
5035         (bdesc_1arg): Moved to ...
5036         (bdesc_args): Here.
5037         (ix86_init_mmx_sse_builtins): Updated.  Replace Prescott New
5038         Instructions in comments with SSE3.
5039         (ix86_expand_sse_operands_builtin): Renamed to ...
5040         (ix86_expand_args_builtin): This.  Updated.
5041         (ix86_expand_unop1_builtin): Update comments.
5042         (ix86_expand_builtin): Updated.
5043
5044 2008-04-29  Richard Guenther  <rguenther@suse.de>
5045
5046         PR tree-optimization/36078
5047         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
5048         Update virtual SSA form after cleaning up the CFG.
5049
5050 2008-04-29  Richard Guenther  <rguenther@suse.de>
5051
5052         PR middle-end/15255
5053         * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
5054
5055 2008-04-29  Richard Guenther  <rguenther@suse.de>
5056
5057         * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
5058         (compute_may_aliases): Do not call finalize_ref_all_pointers.
5059         (compute_flow_insensitive_aliasing): Do not treat
5060         PTR_IS_REF_ALL pointers special.
5061         (get_smt_for): Likewise.
5062         (may_alias_p): Re-structure.
5063         (is_escape_site): A ref-all pointer conversion is not an escape site.
5064         * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
5065         PTR_IS_REF_ALL pointers special.
5066         * tree-ssa-structalias.h (struct alias_info): Remove
5067         ref_all_symbol_mem_tag field.
5068         (PTR_IS_REF_ALL): Remove.
5069
5070 2008-04-29  Richard Guenther  <rguenther@suse.de>
5071
5072         PR middle-end/36077
5073         * fold-const.c (extract_muldiv_1): In combining division constants
5074         make sure to never overflow.
5075
5076 2008-04-29  Nick Clifton  <nickc@redhat.com>
5077
5078         * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
5079
5080 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5081
5082         PR bootstrap/35169
5083         * optc-gen.awk: Work around HP-UX/IA awk bug.
5084
5085 2008-04-28  Danny Smith  <dannysmith@users.sourceforge.net>
5086
5087         * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
5088         2008-04-25 commit.
5089
5090 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
5091
5092         PR target/36073
5093         * config/i386/i386.md
5094         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
5095         Change operand 1 predicate to nonimmediate_operand.
5096
5097 2008-04-28  Jakub Jelinek  <jakub@redhat.com>
5098
5099         PR debug/36060
5100         * dwarf2out.c (struct die_struct): Mark as chain_circular through
5101         die_sub field.
5102         * gengtype.c (walk_type, write_func_for_structure): Handle
5103         chain_circular.
5104         * doc/gty.texi: Document chain_circular.
5105
5106 2008-04-28  Richard Guenther  <rguenther@suse.de>
5107
5108         PR tree-optimization/36066
5109         * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
5110         SCEV and loop.
5111
5112 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
5113
5114         PR target/36064
5115         * config/i386/i386.md
5116         (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
5117         Use match_scratch instead of match_operand for operands 3 and 4.
5118
5119 2008-04-27  Richard Guenther  <rguenther@suse.de>
5120
5121         PR tree-optimization/18754
5122         PR tree-optimization/34223
5123         * tree-pass.h (pass_complete_unrolli): Declare.
5124         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
5125         loop size before and after unconditionally of UL_NO_GROWTH in effect.
5126         Rewrite loop into loop closed SSA form if it is not already.
5127         (tree_unroll_loops_completely): Re-structure to iterate over
5128         innermost loops with intermediate CFG cleanups.
5129         Unroll outermost loops only if requested or the code does not grow
5130         doing so.
5131         * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
5132         loops are available.
5133         (tree_vectorize): Instead do so here.
5134         (tree_complete_unroll): Also unroll outermost loops.
5135         (tree_complete_unroll_inner): New function.
5136         (gate_tree_complete_unroll_inner): Likewise.
5137         (pass_complete_unrolli): New pass.
5138         * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
5139         uses outside of the loop.
5140         (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
5141         form if it is available.  
5142         * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
5143         * passes.c (init_optimization_passes): Schedule complete inner
5144         loop unrolling pass before the first CCP pass after final inlining.
5145
5146 2008-04-27  Nathan Sidwell  <nathan@codesourcery.com>
5147
5148         * targhooks.h (default_emutls_var_fields,
5149         default_emutls_var_init): Declare.
5150         * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
5151         * target.h (struct gcc_target): Add struct emutls member.
5152         * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
5153         TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
5154         TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
5155         TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
5156         TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
5157         TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
5158         (TARGET_INITIALIZER): Add TARGET_EMUTLS.
5159         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
5160         BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
5161         * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
5162         emit debug information.
5163         * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
5164         * varasm.c: Include targhooks.h.
5165         (emutls_object_section, emutls_tmpl_section): New.
5166         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
5167         (EMUTLS_SEPARATOR): New.
5168         (prefix_name): New.
5169         (get_emutls_object_name): New.
5170         (default_emutls_var_fields): New, broken out of ...
5171         (get_emutls_object_type): ... here.  Adjust to use target hooks.
5172         (get_emutls_init_templ_addr): Adjust to use target hooks.
5173         (emutls_decl): Adjust to use target hooks.
5174         (emutls_finish): Likewise.
5175         (default_emutls_var_init): New, broken out of ...
5176         (assemble_variable): ... here.  Adjust to use target hooks.
5177         * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
5178         SECCAT_EMUTLS_TMPL.
5179         * c-common.c (handle_section_attribute): Prevent overriding
5180         sections for emulated tls with special sections.
5181         * config/i386/i386.c (x86_64_elf_select_section): Add
5182         SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
5183         (x86_64_elf_unique_section): Likewise.
5184         * config/vxworks.c: Include tree.h.
5185         (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
5186         (vxworks_override_options): Set TLS scheme.
5187         * doc/tm.texi (Emulated TLS): New node.
5188
5189 2008-04-26  Simon Baldwin <simonb@google.com>
5190
5191         PR c/35652
5192         * builtins.c (c_strlen): Suppressed multiple warnings that can occur
5193         with propagated string constants.
5194
5195 2008-04-26  Uros Bizjak  <ubizjak@gmail.com>
5196
5197         * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
5198         constraint for operand 2 when operand 0 is memory operand.
5199         (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
5200         operand 0 is memory operand.
5201         (fix_trunc<mode>_i387_with_temp): Ditto.
5202         (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
5203         operand 2 when operand 1 is memory operand.
5204         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
5205         (*floatsi<mode>2_vector_sse_with_temp): Ditto.
5206         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
5207         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
5208         (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
5209         operands 2,3 and 4 when operand 1 is memory operand.
5210         (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
5211         is memory operand.
5212         (fistdi2_floor_with_temp): Ditto.
5213         (fist<mode>2_floor_with_temp): Ditto.
5214         (fistdi2_ceil_with_temp): Ditto.
5215         (fist<mode>2_ceil_with_temp): Ditto.
5216         (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
5217
5218 2008-04-26  David Daney  <ddaney@avtrex.com>
5219
5220         * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
5221         unspec_volitile.
5222         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
5223         UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
5224         UNSPEC_UPDATE_GOT_VERSION): Renumber.
5225         (sync_compare_and_swap<mode>): New expand for QI and HI modes.
5226         (compare_and_swap_12): New insn.
5227         * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
5228         * config/mips/mips.c (mips_force_binary): New function.
5229         (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
5230         (mips_expand_compare_and_swap_12): New function.
5231         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
5232
5233 2008-04-25  Jan Hubicka  <jh@suse.cz>
5234
5235         PR testsuite/35843
5236         * cfgexpand.c (pass_expand): Turn into RTL pass.
5237         * passes.c (execute_one_pass): Do pass typechecking after execution.
5238         * tree-pass.h (pass_expand): Turn into RTL pass.
5239
5240         * function.h (struct rtl_data): Move here fields
5241         accesses_prior_frames, calls_eh_return, saves_all_registers,
5242         has_nonlocal_goto, has_asm_statement, is_thunk,
5243         all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
5244         uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
5245         arg_pointer_save_area_init from struct function; turn into bool.
5246         (struct function): Move
5247         calls_eh_return, saves_all_registers, has_nonlocal_goto,
5248         has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
5249         profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
5250         tail_call_emit, arg_pointer_save_area_init
5251         into struct rtl_data.  Remove recursive_call_emit and gimplified flags.
5252         (current_function_returns_struct, current_function_returns_pcc_struct,
5253         current_function_calls_setjmp, current_function_calls_alloca,
5254         current_function_accesses_prior_frames,
5255         current_function_calls_eh_return, current_function_is_thunk,
5256         current_function_stdarg, current_function_profile,
5257         current_function_limit_stack, current_function_uses_pic_offset_table,
5258         current_function_uses_const_pool, current_function_has_nonlocal_label,
5259         current_function_saves_all_registers,
5260         current_function_has_nonlocal_goto,
5261         current_function_has_asm_statement): Remove accesor macros.
5262         * ra-conflict.c (global_conflicts): Update.
5263         * tree-tailcall.c (suitable_for_tail_opt_p): Update.
5264         (suitable_for_tail_call_opt_p): Update.
5265         * builtins.c (expand_builtin_return_addr): Update.
5266         (expand_builtin_setjmp_setup): Update.
5267         (expand_builtin_nonlocal_goto): Update.
5268         * final.c (final_start_function): Update.
5269         (profile_function): Update.
5270         (leaf_function_p): Update.
5271         (only_leaf_regs_used): Update.
5272         * df-scan.c (df_get_exit_block_use_set): Update.
5273         * dojump.c (clear_pending_stack_adjust): Update.
5274         * tree-stdarg.c (gate_optimize_stdarg): Update.
5275         * gimple-low.c (lower_function_body): Update.
5276         * global.c (compute_regsets): Update.
5277         (global_alloc): Update.
5278         * dwarf2out.c (dwarf2out_begin_prologue): Update.
5279         * expr.c (expand_assignment): Update.
5280         * dse.c (dse_step0): Update.
5281         (dse_step1): Update.
5282         * c-decl.c (store_parm_decls): Update.
5283         * local-alloc.c (combine_regs): Update.
5284         (find_free_reg): Update.
5285         * function.c (assign_parms_augmented_arg_list): Update.
5286         (assign_parm_find_data_types): Update.
5287         (assign_parms): Update.
5288         (allocate_struct_function): Update.
5289         (expand_function_start): Update.
5290         (expand_function_end): Update.
5291         (get_arg_pointer_save_area): Update.
5292         (thread_prologue_and_epilogue_insns): Update.
5293         (rest_of_match_asm_constraints): Update.
5294         * stor-layout.c (variable_size): Update.
5295         * gcse.c (gcse_main): Update.
5296         (bypass_jumps): Update.
5297         * gimplify.c (gimplify_function_tree): Update.
5298         * calls.c (emit_call_1): Update.
5299         (expand_call): Update.
5300         * bt-load.c (compute_defs_uses_and_gen): Update.
5301         * except.c (sjlj_assign_call_site_values): Update.
5302         (sjlj_emit_function_enter): Update.
5303         (can_throw_external): Update.
5304         (set_nothrow_function_flags): Update.
5305         (expand_builtin_unwind_init): Update.
5306         (expand_eh_return): Update.
5307         (convert_to_eh_region_ranges): Update.
5308         (output_function_exception_table): Update.
5309         * emit-rtl.c (gen_tmp_stack_mem): Update.
5310         * cfgexpand.c (expand_used_vars): Update.
5311         (tree_expand_cfg): Update.
5312         * cfgcleanup.c (rest_of_handle_jump): Update.
5313         * explow.c (allocate_dynamic_stack_space): Update.
5314         * varasm.c (assemble_start_function): Update.
5315         (force_const_mem): Update.
5316         (mark_constant_pool): Update.
5317         * tree-optimize.c (tree_rest_of_compilation): Update.
5318         * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
5319         * tree-cfg.c (notice_special_calls): Update.
5320         (is_ctrl_altering_stmt): Update.
5321         (tree_can_make_abnormal_goto): Update.
5322         (tree_purge_dead_abnormal_call_edges): Update.
5323         * config/alpha/predicates.md: Update.
5324         * config/alpha/alpha.c (alpha_sa_mask): Update.
5325         (alpha_sa_size): Update.
5326         (alpha_does_function_need_gp): Update.
5327         (alpha_expand_prologue): Update.
5328         (alpha_start_function): Update.
5329         (alpha_output_function_end_prologue): Update.
5330         (alpha_expand_epilogue): Update.
5331         * config/frv/frv.c (frv_stack_info): Update.
5332         (frv_expand_epilogue): Update.
5333         * config/s390/s390.c (s390_regs_ever_clobbered): Update.
5334         (s390_register_info): Update.
5335         (s390_frame_info): Update.
5336         (s390_init_frame_layout): Update.
5337         (s390_can_eliminate): Update.
5338         (save_gprs): Update.
5339         * config/spu/spu.c (spu_split_immediate): Update.
5340         (need_to_save_reg): Update.
5341         (spu_expand_prologue): Update.
5342         (spu_expand_epilogue): Update.
5343         * config/sparc/sparc.md: Update.
5344         * config/sparc/sparc.c (eligible_for_return_delay): Update.
5345         (sparc_tls_got): Update.
5346         (legitimize_pic_address): Update.
5347         (sparc_emit_call_insn): Update.
5348         (sparc_expand_prologue): Update.
5349         (output_return): Update.
5350         (print_operand): Update.
5351         (sparc_function_ok_for_sibcall): Update.
5352         * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
5353         * config/m32r/m32r.md: Update.
5354         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
5355         (m32r_compute_frame_size): Update.
5356         (m32r_expand_prologue): Update.
5357         (m32r_expand_epilogue): Update.
5358         (m32r_legitimize_pic_address): Update.
5359         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
5360         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
5361         * config/i386/i386.c (ix86_frame_pointer_required): Update.
5362         (gen_push): Update.
5363         (ix86_save_reg): Update.
5364         (ix86_compute_frame_layout): Update.
5365         (ix86_expand_prologue): Update.
5366         (ix86_expand_epilogue): Update.
5367         * config/sh/sh.c (output_stack_adjust): Update.
5368         (calc_live_regs): Update.
5369         (sh5_schedule_saves): Update.
5370         (sh_expand_prologue): Update.
5371         (sh_expand_epilogue): Update.
5372         (sh_setup_incoming_varargs): Update.
5373         (sh_allocate_initial_value): Update.
5374         (sh_get_pr_initial_val): Update.
5375         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
5376         * config/sh/sh.md (label:): Update.
5377         * config/avr/avr.c (out_movhi_mr_r): Update.
5378         * config/crx/crx.h (enum): Update.
5379         * config/xtensa/xtensa.h (along): Update.
5380         * config/stormy16/stormy16.c Update.
5381         (xstormy16_compute_stack_layout): Update.
5382         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
5383         (fr30_expand_prologue): Update.
5384         * config/cris/cris.c (cris_conditional_register_usage): Update.
5385         (cris_reg_saved_in_regsave_area): Update.
5386         (cris_initial_frame_pointer_offset): Update.
5387         (cris_simple_epilogue): Update.
5388         (cris_expand_prologue): Update.
5389         (cris_expand_epilogue): Update.
5390         (cris_expand_pic_call_address): Update.
5391         (cris_asm_output_symbol_ref): Update.
5392         (cris_asm_output_label_ref): Update.
5393         * config/cris/cris.md Update.
5394         * config/iq2000/iq2000.c (compute_frame_size): Update.
5395         (iq2000_expand_epilogue): Update.
5396         * config/mt/mt.h (save_direction): Update.
5397         * config/mn10300/mn10300.c (mn10300_function_value): Update.
5398         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
5399         (ia64_secondary_reload_class): Update.
5400         * config/m68k/m68k.c (m68k_save_reg): Update.
5401         (m68k_expand_prologue): Update.
5402         (m68k_expand_epilogue): Update.
5403         (legitimize_pic_address): Update.
5404         * config/rs6000/rs6000.c (rs6000_got_register): Update.
5405         (first_reg_to_save): Update.
5406         (first_altivec_reg_to_save): Update.
5407         (compute_vrsave_mask): Update.
5408         (compute_save_world_info): Update.
5409         (rs6000_stack_info): Update.
5410         (spe_func_has_64bit_regs_p): Update.
5411         (rs6000_ra_ever_killed): Update.
5412         (rs6000_emit_eh_reg_restore): Update.
5413         (rs6000_emit_allocate_stack): Update.
5414         (rs6000_emit_prologue): Update.
5415         (rs6000_emit_epilogue): Update.
5416         (rs6000_output_function_epilogue): Update.
5417         (output_profile_hook): Update.
5418         (rs6000_elf_declare_function_name): Update.
5419         * config/rs6000/rs6000.h (rs6000_args): Update.
5420         * config/rs6000/rs6000.md: Update.
5421         * config/mcore/mcore.c (mcore_expand_prolog): Update.
5422         * config/arc/arc.c (arc_output_function_epilogue): Update.
5423         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
5424         * config/darwin.c (machopic_function_base_name): Update.
5425         * config/score/score3.c (score3_compute_frame_size): Update.
5426         (rpush): Update.
5427         (rpop): Update.
5428         (score3_epilogue): Update.
5429         * config/score/score7.c (score7_compute_frame_size): Update.
5430         (score7_prologue): Update.
5431         (score7_epilogue): Update.
5432         * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
5433         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
5434         * config/arm/arm.c (use_return_insn): Update.
5435         (require_pic_register): Update.
5436         (arm_load_pic_register): Update.
5437         (arm_compute_save_reg0_reg12_mask): Update.
5438         (arm_compute_save_reg_mask): Update.
5439         (thumb1_compute_save_reg_mask): Update.
5440         (output_return_instruction): Update.
5441         (arm_output_function_prologue): Update.
5442         (arm_output_epilogue): Update.
5443         (arm_get_frame_offsets): Update.
5444         (arm_expand_prologue): Update.
5445         (thumb_pushpop): Update.
5446         (thumb_exit): Update.
5447         (thumb1_expand_prologue): Update.
5448         (thumb1_expand_epilogue): Update.
5449         (arm_unwind_emit): Update.
5450         (arm_output_fn_unwind): Update.
5451         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
5452         * config/arm/arm.md: Update.
5453         * config/pa/pa.md: Update.
5454         * config/pa/pa.c (legitimize_pic_address): Update.
5455         (compute_frame_size): Update.
5456         (hppa_expand_prologue): Update.
5457         (hppa_expand_epilogue): Update.
5458         (borx_reg_operand): Update.
5459         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
5460         (HARD_REGNO_RENAME_OK): Update.
5461         * config/mips/mips.c (mips_global_pointer): Update.
5462         (mips_save_reg_p): Update.
5463         (mips_compute_frame_info): Update.
5464         (mips_frame_pointer_required): Update.
5465         (mips_expand_prologue): Update.
5466         (mips_expand_epilogue): Update.
5467         (mips_can_use_return_insn): Update.
5468         (mips_reorg_process_insns): Update.
5469         * config/v850/v850.c (compute_register_save_size): Update.
5470         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
5471         * config/mmix/mmix.c (along): Update.
5472         (mmix_expand_epilogue): Update.
5473         * config/bfin/bfin.c (legitimize_pic_address): Update.
5474         (must_save_p): Update.
5475         (stack_frame_needed_p): Update.
5476         (add_to_reg): Update.
5477         (bfin_expand_prologue): Update.
5478         * stmt.c (expand_asm_operands): Update.
5479         * reload1.c (reload): Update.
5480         (init_elim_table): Update.
5481
5482 2008-04-25  Bob Wilson  <bob.wilson@acm.org>
5483         
5484         * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
5485         
5486 2008-04-25  H.J. Lu  <hongjiu.lu@intel.com>
5487
5488         * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
5489         (*mov<mode>_internal): Likewise.  Support V4SF and V2DF.
5490         (mov<mode>): Removed.
5491         (*movv4sf_internal): Likewise.
5492         (*movv2df_internal): Likewise.
5493
5494 2008-04-25  Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
5495
5496         * config.gcc (crx-*-elf): Remove deprecation.
5497
5498 2008-04-25  Danny Smith  <dannysmith@users.sourceforge.net>
5499
5500         * config/i386/cygming-crtend.c (register_frame_ctor): Register
5501         __gcc_deregister_frame with atexit.
5502         (deregister_frame_dtor): Remove.
5503
5504 2008-04-24  Nathan Froyd  <froydnj@codesourcery.com>
5505             Nathan Sidwell  <nathan@codesourcery.com>
5506
5507         * config/rs6000/rs6000.opt (mspe): Remove Var property.
5508         (misel): Likewise.
5509         * config/rs6000/rs6000.h (rs6000_spe): Declare.
5510         (rs6000_isel): Likewise.
5511         * config/rs6000/rs6000.c (rs6000_spe): New variable.
5512         (rs6000_isel): New variable.
5513         (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
5514
5515 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
5516
5517         PR c++/35758
5518         * c-common.c (handle_vector_size_attribute): Call
5519         lang_hooks.types.reconstruct_complex_type instead of
5520         reconstruct_complex_type.
5521         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
5522         * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
5523         * langhooks.h (struct lang_hooks_for_types): Add
5524         reconstruct_complex_type hook.
5525         * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
5526         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
5527
5528 2008-04-24  Richard Guenther  <rguenther@suse.de>
5529
5530         * c-common.h (check_builtin_function_arguments): Declare.
5531         * c-common.c (validate_nargs): New function.
5532         (check_builtin_function_arguments): Likewise.
5533         * c-typeck.c (build_function_call): Call
5534         check_builtin_function_arguments.
5535         * builtins.c (fold_builtin_classify): Remove error reporting code.
5536         (fold_builtin_unordered_cmp): Likewise.
5537         (fold_builtin_1): Likewise.
5538         (fold_builtin_n): Likewise.
5539
5540 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
5541
5542         PR tree-optimization/36008
5543         * fold-const.c (try_move_mult_to_index): If s == NULL, divide
5544         the original op1, rather than delta by step.
5545
5546 2008-04-22  Antoniu Pop  <antoniu.pop@gmail.com>
5547             Sebastian Pop  <sebastian.pop@amd.com>
5548
5549         * tree-parloops.c (take_address_of, eliminate_local_variables_1,
5550         eliminate_local_variables_stmt, eliminate_local_variables,
5551         separate_decls_in_loop_name, separate_decls_in_loop_stmt,
5552         separate_decls_in_loop, gen_parallel_loop): Make them work on a region
5553         of code delimited by two edges in the CFG.
5554         (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
5555         (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
5556         (separate_decls_in_loop): Renamed separate_decls_in_region.  Isolate 
5557         the case of parallelisation of reductions.
5558         (expr_invariant_in_region_p): New.
5559
5560         * tree-flow.h (gather_blocks_in_sese_region): Declared.
5561         * tree-cfg.c (gather_blocks_in_sese_region): Extern.
5562
5563 2008-04-24  Ira Rosen  <irar@il.ibm.com>
5564             Richard Guenther  <rguenther@suse.de>
5565
5566         PR tree-optimization/36034
5567         * tree-vect-analyze.c (vect_analyze_group_access): SLP is
5568         incapable of dealing with loads with gaps.
5569
5570 2008-04-24  Rafael Espindola  <espindola@google.com>
5571
5572         * tree-flow.h (vrp_evaluate_conditional): Change signature.
5573         * tree-ssa-propagate.c (fold_predicate_in): Update call to
5574         vrp_evaluate_conditional.
5575         * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
5576         (vrp_evaluate_conditional): Split the cond argument.
5577         (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
5578         (simplify_stmt_for_jump_threading): Update call to
5579         vrp_evaluate_conditional.
5580
5581 2008-04-24  Ira Rosen  <irar@il.ibm.com>
5582
5583         PR tree-optimization/35982
5584         * tree-vect-analyze.c (vect_check_interleaving): Check that the
5585         interleaved data-refs are of the same type.
5586
5587 2008-04-24  Danny Smith  <dannysmith@users.net>
5588
5589         * c-format.c (check_format_info_main): Use strncmp rather than a
5590         magic prefix to handle multichar length specs.
5591         * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
5592         Don't prefix "I64" and "I32" with '\0'.
5593
5594 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
5595
5596         PR target/36015
5597         * config/i386/i386.c (init_cumulative_args): Don't pass anything
5598         in registers for -m32 only if stdarg_p (fntype).
5599
5600 2008-04-24  Uros Bizjak  <ubizjak@gmail.com>
5601
5602         PR rtl-optimization/36006
5603         * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
5604         temp to op0 in order to avoid invalid rtx sharing.
5605
5606 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
5607
5608         * tree-cfg.c (verify_expr): Check with is_gimple_address.  Don't
5609         check TREE_INVARIANT.
5610         * tree-gimple.c (is_gimple_address): New.
5611         (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
5612         * tree-gimple.h (is_gimple_address): New.
5613         * tree.h (decl_address_invariant_p): New.
5614         * tree.c (make_node_stat): Don't set TREE_INVARIANT.
5615         (build_string): Likewise.
5616         (decl_address_invariant_p): New, from is_gimple_invariant_address.
5617         (tree_invariant_p_1): Likewise.
5618         (save_expr): Use it.
5619         (tree_invariant_p): New.
5620         (skip_simple_arithmetic): Use it.
5621         (stabilize_reference_1): Use it.
5622         (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
5623         simplify.
5624         (build1_stat): Drop code to compute TREE_INVARIANT.
5625         (build2_stat): Drop code to compute TREE_INVARIANT.
5626         (build3_stat): Drop code to compute TREE_INVARIANT.
5627         (build4_stat): Drop code to compute TREE_INVARIANT.
5628         (build5_stat): Drop code to compute TREE_INVARIANT.
5629         (build7_stat): Drop code to compute TREE_INVARIANT.
5630         (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
5631         * tree.h (struct tree_base): Remove invariant_flag.
5632         (TREE_INVARIANT): Remove.
5633         * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
5634         (fold_builtin_expect): Check TREE_CONSTANT.
5635         * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
5636         * c-tree.h (c_expr_to_decl): Drop third parameter.
5637         * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
5638         (build_c_cast): Don't set TREE_INVARIANT.
5639         (pop_init_level): Don't set TREE_INVARIANT.
5640         (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
5641         * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
5642         TREE_CONSTANT.
5643         (gimplify_init_constructor): Don't set TREE_INVARIANT.
5644         (gimplify_addr_expr): Adjust comment.
5645         * tree-mudflap.c (mf_build_string):
5646         * print-tree.c (print_node): Don't print TREE_INVARIANT.
5647         * tree-nested.c (convert_nonlocal_reference): Adjust comment.
5648         * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
5649         * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
5650         * langhooks.c (lhd_expr_to_decl): Drop third parameter.
5651         * langhooks.h (struct lang_hooks): Drop third parameter from
5652         expr_to_decl.
5653
5654 2008-04-23  Richard Guenther  <rguenther@suse.de>
5655
5656         PR tree-optimization/27799
5657         PR tree-optimization/32921
5658         PR tree-optimization/32624
5659         * tree-ssa-structalias.c (merge_smts_into): Only merge the
5660         SMTs aliases and the tag itself into the solution.
5661         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
5662         merge the points-to solution back into the SMT aliases.
5663         (may_alias_p): Use alias_set_subset_of instead of
5664         aliases_conflict_p.  A pointer which points to
5665         memory with alias set zero may access any variable.
5666
5667 2008-04-23  Richard Guenther  <rguenther@suse.de>
5668
5669         * alias.c (alias_set_subset_of): Correctly handle asking
5670         if zero is a subset of an alias set with zero child.
5671         * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
5672         (compute_flow_insensitive_aliasing): Correctly walk all
5673         pointers.  Do not unnecessarily union sets.
5674
5675 2008-04-23  Richard Guenther  <rguenther@suse.de>
5676
5677         PR middle-end/36021
5678         * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
5679
5680 2008-04-22  Tomas Bily  <tbily@suse.cz>
5681
5682         * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
5683         unreachable case.
5684         * tree-vrp.c (extract_range_from_unary_expr): Removed unused
5685         NON_LVALUE_EXPR.
5686         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
5687         * tree-ssa-structalias.c (get_constraint_for): Likewise.
5688         * tree-inline.c (estimate_num_insns_1): Likewise.
5689         * varasm.c (const_hash_1, compare_constant, copy_constant)
5690         (compute_reloc_for_constant, output_addressed_constants): Likewise.
5691         * emit-rtl.c (component_ref_for_mem_expr)
5692         (set_mem_attributes_minus_bitpos): Likewise.
5693         * expr.c (highest_pow2_factor, expand_expr_real_1, )
5694         (is_aligning_offset): Likewise.
5695         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
5696         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
5697         * dojump.c (do_jump): Likewise.
5698         * builtins.c (get_pointer_alignment, get_memory_rtx)
5699         (integer_valued_real_p, fold_builtin_next_arg): Likewise.
5700         * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
5701
5702 2008-04-23  Jakub Jelinek  <jakub@redhat.com>
5703
5704         PR rtl-optimization/36017
5705         * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
5706         expanding the library call.
5707
5708 2008-04-22  Ian Lance Taylor  <iant@google.com>
5709
5710         * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
5711         than size_in_bytes.
5712
5713 2008-04-22  Pat Haugen  <pthaugen@us.ibm.com>
5714
5715         * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
5716         of LR/CTR moves for Power6.
5717
5718 2008-04-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
5719
5720         PR middle-end/36003
5721         * passes.c (init_optimization_passes): Remove
5722         pass_fast_rtl_byte_dce.
5723         
5724 2008-04-22  Uros Bizjak  <ubizjak@gmail.com>
5725
5726         PR target/29096
5727         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
5728         builtin functions to generate faster code.
5729         (_mm_cvtpu16_ps): Ditto.
5730         (_mm_cvtpi32x2_ps): Ditto.
5731
5732 2008-04-22  Nick Clifton  <nickc@redhat.com>
5733
5734         * common.opt (ftree-loop-distribution): Add Optimization
5735         attribute.
5736
5737         * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
5738         (frv_expand_builtin_va_start): Likewise.
5739
5740         * config/arm/arm.c (thumb_find_work_register): Fix location of
5741         argument register count.
5742
5743 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
5744
5745         Support scheduling for ColdFire V1 and V3 microarchitecture.
5746         Improve scheduling of multiplication instructions.
5747
5748         * config/m68k/m68k.md (cpu): Add cfv1 and cfv3.  Rename cf_v2 to cfv1.
5749         (mac): New instruction attribute.
5750         * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
5751         (m68k_sched_mac): New variable.
5752         (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
5753         Handle cfv1 and cfv3.
5754         (max_insn_size): New static variable.
5755         (struct _sched_ib): New type.
5756         (sched_ib): New static variable.
5757         (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
5758         to fields of 'struct _sched_ib sched_ib'.  Update all uses.
5759         (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
5760         Update.
5761         (m68k_sched_md_init_global, m68k_sched_md_finish_global,
5762         m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3.  Init
5763         new variables.  Update.
5764         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
5765         Add modeling of cfv3 instruction buffer.  Update.
5766         * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
5767         * config/m68k/m68k.h (TUNE_CFV3): New macro.
5768         * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
5769         (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
5770         a particular reservation applies to.
5771         (type2): Reorganize attribute values.  Rename alu to alu_reg,
5772         alu_l to alu, move_l to omove.  Join move to alu.  Split mul
5773         to mul_l and mul_w.
5774         (cf_ib_*): Simplify description of instruction buffer.
5775         (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
5776         (cf_mem): Split into cf_mem1 and cf_mem2.
5777         (cf_v2_move_??): Rename to cfv12_alu_??.
5778         (cf_v2_move_l_??): Rename to cfv12_omove_??.
5779         (cf_v2_mul_??): Remove reservations.
5780         (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
5781         cfv12_emac_??, cfv12_emac_w_i0): New reservations.
5782         (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
5783         appropriate place.
5784         (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
5785         cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
5786         cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
5787         cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
5788         cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
5789         cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
5790         (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
5791         expansions of the above reservations for instructions of sizes
5792         1, 2 and 3 words.
5793
5794 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
5795
5796         * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
5797
5798 2008-04-21  Adam Nemet  <anemet@caviumnetworks.com>
5799
5800         * coverage.c: Include tree-pass.h.
5801         (coverage_counter_alloc): Print da_file_name to the dump file.
5802
5803 2008-04-21  Kenneth Zadeck  <zadeck@naturalbridge.com>
5804
5805         * sbitmap.c (sbitmap_range_empty_p): New function.
5806         * sbitmap.h (sbitmap_range_empty_p): New function.
5807         * bitmap.h: Now includes obstack.h.
5808
5809 2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
5810             Kenneth Zadeck  <zadeck@naturalbridge.com>
5811
5812         * dbgcnt.def (ra_byte_scan): Added.
5813         * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
5814         when the last hit happens for a counter.  
5815         * timevar.def (TV_DF_BYTE_LR): New variable.
5816         * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
5817         * passes.c (pass_fast_rtl_byte_dce): New pass.
5818         * fwprop.c (update_df): Added mode to call df_ref_create.
5819         Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
5820         DF_REF_EXTRACT_OFFSET.
5821         * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN, 
5822         DF_BYTE_LR_OUT, df_byte_lr): New macro.
5823         (df_mm): New enum.
5824         (df_ref_extract): Added mode field.
5825         (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
5826         DF_REF_EXTRACT_OFFSET.
5827         (DF_REF_EXTRACT_MODE): New macro.
5828         (df_byte_lr_bb_info): New structure.
5829         (df_print_byte_regset, df_compute_accessed_bytes, 
5830         df_byte_lr_add_problem, df_byte_lr_get_regno_start,
5831         df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
5832         df_byte_lr_simulate_uses,
5833         df_byte_lr_simulate_artificial_refs_at_top,
5834         df_byte_lr_simulate_artificial_refs_at_end,
5835         df_compute_accessed_bytes): New function.
5836         (df_ref_create): Add parameter.
5837         (df_byte_lr_get_bb_info): New inline function.
5838         * df-scan.c (df_ref_record, df_uses_record,
5839         df_ref_create_structure): Added mode parameter.
5840         (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1, 
5841         df_defs_record, df_uses_record, df_get_conditional_uses,
5842         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect, 
5843         df_entry_block_defs_collect, df_exit_block_uses_collect):
5844         Added mode parameter to calls to df_ref_record, df_uses_record,
5845         df_ref_create_structure.
5846         (df_ref_equal_p, df_ref_compare): Added test for modes.
5847         (df_ref_create_structure): Added code to set mode.  Renamed
5848         DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
5849         DF_REF_EXTRACT_OFFSET.
5850         * df-core.c (df_print_byte_regset): New function.
5851         * df-byte-scan.c: New file.
5852         * df-problems.c (df_rd_transfer_function): Removed unnecessary
5853         calls to BITMAP_FREE.  
5854         (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
5855         (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
5856         df_byte_lr_set_bb_info, df_byte_lr_free_bb_info, 
5857         df_byte_lr_check_regs, df_byte_lr_expand_bitmap, 
5858         df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
5859         df_byte_lr_local_compute, df_byte_lr_init,
5860         df_byte_lr_confluence_0, df_byte_lr_confluence_n, 
5861         df_byte_lr_transfer_function, df_byte_lr_free, 
5862         df_byte_lr_top_dump, df_byte_lr_bottom_dump,
5863         df_byte_lr_add_problem, df_byte_lr_simulate_defs, 
5864         df_byte_lr_simulate_uses,
5865         df_byte_lr_simulate_artificial_refs_at_top,
5866         df_byte_lr_simulate_artificial_refs_at_end): New function.
5867         * dce.c (byte_dce_process_block): New function.
5868         (dce_process_block): au is now passed in rather than computed
5869         locally.  Changed loops that look at artificial defs to not look
5870         for conditional or partial ones, because there never are any.  
5871         (fast_dce): Now is able to drive byte_dce_process_block or 
5872         dce_process_block depending on the kind of dce being done.
5873         (rest_of_handle_fast_dce): Add parameter to fast_dce.
5874         (rest_of_handle_fast_byte_dce): New function.
5875         (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
5876         * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
5877
5878 2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
5879
5880         PR fortran/35019
5881         * gcc.h: Added fortran options that take arguments to
5882         DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
5883         macros.
5884
5885 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
5886
5887         * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
5888         scalarization if on the LHS and not a full access.
5889
5890 2008-04-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5891
5892         * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
5893
5894 2008-04-18  Rafael Espindola  <espindola@google.com>
5895
5896         * tree-vrp.c (find_case_label_index): Fix the binary search.
5897         (find_case_label_range): New.
5898         (vrp_visit_switch_stmt): Use find_case_label_range.
5899         (simplify_switch_using_ranges): Use find_case_label_range.
5900
5901 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
5902
5903         * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
5904         using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
5905
5906 2008-04-18  Tom Tromey  <tromey@redhat.com>
5907
5908         PR libcpp/15500:
5909         * doc/cpp.texi (Implementation-defined behavior): Mention
5910         -finput-charset.
5911
5912 2008-04-18  Ian Lance Taylor  <iant@google.com>
5913
5914         * fold-const.c (pointer_may_wrap_p): New static function.
5915         (fold_comparison): Add another test for pointer overflow.  Use
5916         pointer_may_wrap_p to disable some false positives.
5917
5918 2008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
5919           
5920         * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
5921         (fname_as_string): Match updated cpp_interpret_string prototype.
5922         (fix_string_type): Support char16_t* and char32_t*.
5923         (c_common_nodes_and_builtins): Add char16_t and char32_t (and
5924         derivative) nodes.  Register as builtin if C++0x.
5925         (c_parse_error): Support CPP_CHAR{16,32}.
5926         * c-common.h (RID_CHAR16, RID_CHAR32): New elements. 
5927         (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
5928         CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
5929         CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
5930         CTI_CHAR32_ARRAY_TYPE>: New elements.
5931         (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
5932         char32_type_node, signed_char32_type_node, char16_array_type_node,
5933         char32_array_type_node): New defines.
5934         * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
5935         (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
5936         (lex_string): Support CPP_STRING{16,32}, match updated
5937         cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
5938         (lex_charconst): Support CPP_CHAR{16,32}.
5939         * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
5940         and CPP_STRING{16,32}.
5941
5942 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
5943
5944         PR bootstrap/35457
5945         * aclocal.m4: Regenerate.
5946         * configure: Regenerate.
5947
5948 2008-04-18  Jan Hubicka  <jh@suse.cz>
5949
5950         * except.c (dw2_size_of_call_site_table,
5951         sjlj_size_of_call_site_table): Use vector API for call_site_record.
5952
5953         * cgraphbuild.c (build_cgraph_edges): Update.
5954         * tree-pass.h: Update comment.
5955         * final.c (leaf_function_p): Update.
5956         (leaf_renumber_regs): Update.
5957         (rest_of_clean_state): Update.
5958         * omp-low.c (expand_omp_parallel): Update.
5959         * ipa-reference.c (analyze_function): Update.
5960         * reorg.c (find_end_label): Update.
5961         (optimize_skip): Update.
5962         (fill_simple_delay_slots): Update.
5963         (fill_simple_delay_slots): Update.
5964         (make_return_insns): Update.
5965         (dbr_schedule): Update.
5966         * gimple-low.c (record_vars_into): Update.
5967         * cfgbuild.c (make_edges): Update.
5968         * function.c (assign_stack_local): Update.
5969         (assign_parm_adjust_stack_rtl): Update.
5970         (locate_and_pad_parm): Update.
5971         (allocate_struct_function): Do not initialize stack_alignment_needed
5972         and preferred_stack_boundary here.
5973         (stack_protect_prologue): Update.
5974         (stack_protect_epilogue): Update.
5975         (expand_function_start): Initialize stack_alignment_needed,
5976         preferred_stack_boundary and max_jumptable_ents.
5977         (expand_function_end): Update.
5978         (free_after_compilation): Do not NULLify epilogue_delay_list.
5979         * function.h (struct rtl_data): Add stack_protect_guard,
5980         stack_alignment_needed,
5981         preferred_stack_boundary, epilogue_delay_list.
5982         (struct function): Remove value_histograms, stack_alignment_needed,
5983         preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
5984         last_label_uid,
5985         unexpanded_var_list, stack_protect_guard.
5986         (current_function_epilogue_delay_list): Remove.
5987         * ipa-type-escape.c (analyze_function): Update.
5988         * gimplify.c (pop_gimplify_context): Update comment.
5989         * calls.c (expand_call): Update.
5990         (emit_library_call_value_1): Update.
5991         * except.c (set_nothrow_function_flags): Update.
5992         * cfgexpand.c (get_decl_align_unit): Update.
5993         (create_stack_guard): Update.
5994         (estimated_stack_frame_size): Update.
5995         (expand_used_vars): Update.
5996         (tree_expand_cfg): Free histogram earliers, init expansion variables.
5997         * explow.c (allocate_dynamic_stack_space): Update.
5998         * tree-ssa-live.c (remove_unused_locals): Update.
5999         * varasm.c (mark_constant_pool): Update.
6000         * tree-inline.c (remap_decls): Update.
6001         (initialize_cfun): Update.
6002         (declare_return_variable): Update.
6003         (inline_forbidden_p): Update.
6004         (expand_call_inline): Update.
6005         (declare_inline_vars): Update.
6006         (tree_function_versioning): Update.
6007         * tree-flow.h (value_histograms): New.
6008         (VALUE_HISTOGRAMS): New macro.
6009         * basic-block.h (control_flow_graph): Add max_jumptable_ents,
6010         last_label_uid.
6011         * tree-cfg.c (set_bb_for_stmt): Update.
6012         (replace_by_duplicate_decl): Update.
6013         (move_block_to_fn): Update.
6014         (new_label_mapper): Update.
6015         (dump_function_to_file): Update.
6016         * ipa-struct-reorg.c (build_data_structure): Update.
6017         * cfgrtl.c (print_rtl_with_bb): Update.
6018         * reload1.c (reload): Update.
6019         (reload): Update.
6020         * config/i386/i386.c (setup_incoming_varargs_64,
6021         ix86_compute_frame_layout): Update.
6022         * config/arc/arc.c (arc_output_function_epilogue): Update.
6023
6024 2008-04-18  Marius Strobl <marius@FreeBSD.org>
6025
6026         * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
6027         for FreeBSD as well.
6028         * gthr-posix95.h: Likewise.
6029
6030 2008-04-17  Richard Sandiford  <rsandifo@nildram.co.uk>
6031
6032         PR rtl-optimization/35838
6033         * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
6034         out the byte offset of the first subreg.
6035
6036 2008-04-17  Uros Bizjak  <ubizjak@gmail.com>
6037
6038         * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
6039         to split_ti instead of three separate calls with single member arrays.
6040         (subti3 splitter): Ditto.
6041         (adddi3 splitter): Ditto with split_di.
6042         (subdi3 splitter): Ditto.
6043         (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
6044         two separate calls with single member arrays.  Swap match_dup
6045         operands 1 and 2 to better fit into the array.
6046         (negdi2 splitter): Ditto with split_di.
6047         (movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
6048         two separate calls with single member arrays.  Swap match_dup operands
6049         6 and 7 to better fit into the array.
6050
6051 2008-04-17  H.J. Lu  <hongjiu.lu@intel.com>
6052
6053         * config/i386/i386.c (sse_builtin_type): New.
6054         (bdesc_sse_args): Likewise.
6055         (bdesc_sse_3arg): Removed.
6056         (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
6057         (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
6058         IX86_BUILTIN_ROUNDPS.
6059         (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
6060         bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
6061         IX86_BUILTIN_ROUNDPS.
6062         (ix86_expand_sse_4_operands_builtin): Removed.
6063         (ix86_expand_sse_operands_builtin): New.
6064         (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
6065         and CODE_FOR_sse4_1_roundps.
6066         (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
6067         Handle bdesc_sse_args.  Remove bdesc_sse_3arg.
6068
6069 2008-04-17  Alan Modra  <amodra@bigpond.net.au>
6070
6071         PR target/35907
6072         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
6073         regs before frame pop when needed.  If use_backchain_to_restore_sp
6074         then load backchain into a temp reg to restore vr and vrsave.  Add
6075         code to restore vr after frame pop if possible.
6076
6077 2008-04-17  Richard Guenther  <rguenther@suse.de>
6078
6079         * tree-vn.c (expressions_equal_p): Do not check type
6080         equality or compatibility before calling operand_equal_p.
6081         * fold-const.c (operand_equal_p): Check equivalence of
6082         integer constants before bailing out due to signedness or
6083         precision differences.
6084         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
6085         spurious differences in type qualification.  Ignore types
6086         for COMPONENT_REFs at all.
6087
6088 2008-04-17  Christian Bruel  <christian.bruel@st.com>
6089
6090         * config/sh/sh.c (expand_cbranchdi4): Use original operands for
6091         msw_skip comparison.
6092         
6093 2008-04-16  Jakub Jelinek  <jakub@redhat.com>
6094
6095         PR c/35739
6096         * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
6097         reg type.
6098
6099         PR tree-optimization/35899
6100         * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
6101         rather than TREE_OPERAND.
6102
6103 2008-04-16  Uros Bizjak  <ubizjak@gmail.com>
6104
6105         PR target/35944
6106         * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
6107         temporary registers.  Change operand predicate to general_operand.
6108         (remainderxf3): Ditto.
6109
6110 2008-04-16  Richard Guenther  <rguenther@suse.de>
6111
6112         * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
6113         * tree-affine.c (aff_combination_expand): Look through some
6114         conversions.
6115
6116 2008-04-15  Doug Kwan  <dougkwan@google.com>
6117
6118         * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
6119         for hex printing.
6120         * tree-pretty-print.c (dump_generic_node): Ditto.
6121         * final.c (output_addr_const): Ditto.
6122         * dwarf2out.c (output_cfi): Ditto.
6123         * c-pretty-print.c (pp_c_integer_constant): Ditto.
6124         * print-rtl.c (print_rtx): Ditto.
6125         * print-tree.c (print_node_brief, print_node): Ditto.
6126         * c-common.c (match_case_to_enum_1): Ditto.
6127         * sched-vis.c (print_value): Ditto.
6128         * config/i386/i386.c (print_operand): Cast to long unsigned int
6129         for hex printing.
6130
6131 2008-04-15  Danny Smith  <dannysmith@users.sourceforge.net>
6132         * libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
6133         MS Windows VirtualProtect function.
6134
6135 2008-04-15  Jan Hubicka  <jh@suse.cz>
6136
6137         * gengtype.c (write_root): Param_is argument is OK.
6138         * expr.c (expand_expr_real_1): Update call of get_exception_*.
6139         * function.h: Include varray.h
6140         (rtl_eh): New stucture based on except.c one.
6141         (call_site_record): New forward declaration and vector type.
6142         * calls.c (emit_call_1): Do not call
6143         note_current_region_may_contain_throw.
6144         * except.c (eh_status): Remove cur_region, try_region since they are
6145         unused.
6146         Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
6147         exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
6148         sjlj_fc, sjlj_exit_after to rth_eh in function.h. 
6149         Remove call_site_data_used, call_site_data_size.
6150         Turn call_site_record into vector in function.h.
6151         (note_current_region_may_contain_throw): Remove.
6152         (get_exception_pointer, get_exception_filter): Do not take struct
6153         function argument; update.
6154         (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
6155         add_ttypes_entry, add_ehspec_entry, assign_filter_values,
6156         build_post_landing_pads, dw2_build_landing_pads,
6157         sjlj_assign_call_site_values, sjlj_mark_call_sites,
6158         sjlj_emit_function_enter, sjlj_emit_function_enter, 
6159         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
6160         sjlj_build_landing_pads, finish_eh_generation,
6161         remove_exception_handler_label, remove_eh_handler,
6162         maybe_remove_eh_handler, add_reachable_handler,
6163         reachable_handlers, expand_builtin_eh_return, expand_eh_return,
6164         add_action_record, collect_one_action_chain, add_call_site,
6165         convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
6166         sjlj_output_call_site_table, output_function_exception_table,
6167         * except.h (note_current_region_may_contain_throw): Remove
6168         (get_exception_pointer, get_exception_filter): Do not take struct
6169         function argument.
6170         * Makefile.in (GTFILES): Put varargs before struct function.
6171
6172 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
6173
6174         * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
6175         punt for STRING_CST.
6176         (get_constraint_for): Deal with STRING_CST here instead.
6177
6178 2008-04-15  Richard Guenther  <rguenther@suse.de>
6179
6180         * tree-ssa-propagate.c (substitute_and_fold): Substitute
6181         statements in a basic-block with a backward walk.  Do not
6182         substitute into dead statements but instead remove those.
6183
6184 2008-04-15  Richard Guenther  <rguenther@suse.de>
6185
6186         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
6187         to zero, thus disable creation of SFTs.
6188
6189 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
6190
6191         * tree-predcom.c (suitable_reference_p): Return false if the
6192         reference can throw.
6193
6194 2008-04-15  Jakub Jelinek  <jakub@redhat.com>
6195
6196         PR c/35751
6197         * c-decl.c (finish_decl): If extern or static var has variable
6198         size, set TREE_TYPE (decl) to error_mark_node.
6199
6200 2008-04-15  Rafael Espindola  <espindola@google.com>
6201
6202         * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
6203         variable arg1.
6204
6205 2008-04-15  Richard Guenther  <rguenther@suse.de>
6206
6207         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
6208         * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
6209         (visit_reference_op_load): Do walk vuse-vdef chains on
6210         vn_reference_lookup.
6211         (visit_reference_op_store): But do not here.
6212         * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
6213         vn_reference_lookup.
6214         (vn_lookup_with_vuses): But do so here.
6215
6216 2008-04-14  Ian Lance Taylor  <iant@google.com>
6217
6218         * fold-const.c (fold_overflow_warning): Remove assertion.
6219
6220 2008-04-15  Ben Elliston  <bje@au.ibm.com>
6221
6222         * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
6223         temp1 local variables.
6224
6225 2008-04-15  Zuxy Meng  <zuxy.meng@gmail.com>
6226
6227         PR target/35661
6228         * config/i386/winnt.c (i386_pe_section_type_flags): Mark
6229         ".text.unlikely" section as executable.
6230
6231 2008-04-14  James E. Wilson  <wilson@tuliptree.org>
6232
6233         * config/ia64/ia64.c (rtx_needs_barrier): Handle
6234         UNSPEC_FR_SQRT_RECIP_APPROX_RES.
6235         * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
6236         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
6237         divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
6238         divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
6239         divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
6240
6241 2008-04-14  Ian Lance Taylor  <iant@google.com>
6242
6243         * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
6244         * fold-const.c (fold_comparison): If appropriate, test
6245         POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
6246         (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
6247         reassociating a pointer type.
6248         * doc/invoke.texi (Optimize Options): Document that
6249         -fstrict-overflow applies to pointer wraparound.
6250
6251 2008-04-13  Jan Hubicka  <jh@suse.cz>
6252
6253         * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
6254
6255 2008-04-12  Andrew Pinski  <pinskia@gmail.com>
6256
6257         * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
6258         we are going to "save the world".
6259
6260 2008-04-13  Hans-Peter Nilsson  <hp@axis.com>
6261
6262         * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
6263         ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
6264         operand 0 constraint, not "=".
6265
6266 2008-04-11  James E. Wilson  <wilson@tuliptree.org>
6267
6268         * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
6269
6270 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
6271
6272         * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
6273         of size of positions_needed * CHAR_BIT.
6274
6275 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
6276
6277         PR middle-end/35897
6278         * dse.c (store_info): Change positions_needed to unsigned
6279         HOST_WIDE_INT.
6280         (lowpart_bitmask): New.
6281         (record_store): Cast to unsigned HOST_WIDE_INT for
6282         positions_needed.  Assert width <= size of positions_needed *
6283         CHAR_BIT.  Call lowpart_bitmask to initialize positions_needed.
6284         (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask.  Call
6285         lowpart_bitmask to set mask.
6286
6287 2008-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
6288
6289         * config/bfin/constraints.md: New file.
6290         * config/bfin/bfin.md: Include it.
6291         (adddi3): Use satisfies_constraint functions instead of the old macros.
6292         * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
6293         CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
6294         CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
6295         CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
6296         CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
6297         CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
6298         EXTRA_CONSTRAINT): Delete.
6299         * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
6300         reg_or_neg7bit_operand): Use satisfies_constraint functions instead
6301         of the old macros.
6302         * config/bfin/bfin.c: Include "tm-constrs.h".
6303         (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
6304         Use satisfies_constraint functions instead of the old macros.
6305         * doc/md.texi (Blackfin Constraints): Update file name reference.
6306
6307 2008-04-11  Richard Guenther  <rguenther@suse.de>
6308
6309         PR tree-optimization/35869
6310         * tree-vrp.c (execute_vrp): Move switch statement update after
6311         jump threading.  Schedule another cfg cleanup run.
6312
6313 2008-04-11  Volker Reichelt  <v.reichelt@netcologne.de>
6314
6315         PR c/35744
6316         * attribs.c (decl_attributes): Return early on errorneous node.
6317
6318 2008-04-10  Oleg Ryjkov  <olegr@google.com>
6319
6320         * tree.h (struct tree_base): Added a new flag default_def_flag.
6321         (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
6322
6323 2008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
6324
6325         * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
6326
6327 2008-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6328
6329         PR target/35768
6330         * pa.md: Define mode iterator P.  Define mode attribute dwc.
6331         (dcacheflush): Update pattern to use iterator P and attribute dwc.
6332         (icacheflush): Likewise.
6333         * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
6334         !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
6335
6336 2008-04-11  Ben Elliston  <bje@au.ibm.com>
6337
6338         * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
6339
6340 2008-04-10  Rafael Espindola  <espindola@google.com>
6341
6342         * tree-vrp.c (extract_range_from_binary_expr): Don't handle
6343         TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
6344         (extract_range_from_expr): The same.
6345
6346 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
6347
6348         * config/mips/mips.md (GPR2): New mode iterator.
6349         (seq): Add comment.
6350         (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
6351         *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
6352         *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
6353         Rewrite these to take two modes, the mode of comparison and the
6354         mode of the destination.
6355         * config/mips/mips.c (mips_expand_scc): Instead of having
6356         paradoxical subreg as destination, expand "narrowing" scc if mode
6357         of comparison is SI and target is requested in DI mode.
6358         (mips_emit_int_order_test): Update comment.  Make mode of
6359         comparison match CMP0 rather than TARGET.  When creating inverse
6360         target use mode of TARGET.
6361
6362 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
6363
6364         * gcov-dump.c (tag_summary): Only print summaries for the first
6365         GCOV_COUNTERS_SUMMABLE counters.
6366
6367 2008-04-10  Uros Bizjak  <ubizjak@gmail.com>
6368
6369         * config/i386/i386.md (absneg): New code iterator.
6370         (absnegprefix): New code attribute.
6371         (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
6372         patterns using absneg code iterator.
6373         (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
6374         using absneg code iterator.
6375         (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
6376         *neg<mode>2 patterns using absneg code iterator.
6377         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
6378         *negextendsfdf2 patterns using absneg code iterator.
6379         (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
6380         *negextendsfxf2 patterns using absneg code iterator.
6381         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
6382         *negextendsfdf2 patterns using absneg code iterator.
6383         * config/i386/sse.md (<code><mode>2): Macroize expander from
6384         abs<mode>2 and neg<mode>2 patterns using absneg code iterator. 
6385
6386 2008-04-10  Andreas Krebbel  <krebbel1@de.ibm.com>
6387
6388         * config/s390/s390.h: Remove the remains of the recent search
6389         & replace action of current_function_outgoing_args_size.
6390
6391 2008-04-10  Ira Rosen  <irar@il.ibm.com>
6392
6393         PR tree-optimization/35821
6394         * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
6395         NEW_STMT_LIST is not NULL.
6396
6397 2008-04-09  David Edelsohn  <edelsohn@gnu.org>
6398
6399         PR libstdc++/35597
6400         * toplev.c (process_options): Remove -ffunction-sections debugging
6401         warning.
6402
6403 2008-04-09  Peter Bergner  <bergner@vnet.ibm.com>
6404
6405         PR middle-end/PR28690
6406         * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
6407         than gen_rtx_fmt_ee to perform more canonicalizations.
6408
6409 2008-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6410
6411         PR driver/35665
6412         * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
6413
6414 2008-04-09  Richard Guenther  <rguenther@suse.de>
6415
6416         * tree-cfg.c (verify_stmt): Print complete bogus stmt.
6417         (dump_function_to_file): Dump function arguments with types.
6418
6419 2008-04-08  Richard Guenther  <rguenther@suse.de>
6420
6421         * fold-const.c (fold_widened_comparison): Do not allow
6422         sign-changes that change the result.
6423
6424 2008-04-08  Janis Johnson  <janis187@us.ibm.com>
6425
6426         PR target/35839
6427         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
6428         kinds of indirect references.
6429
6430 2008-04-08  David Edelsohn  <edelsohn@gnu.org>
6431
6432         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
6433         GNU Fortran language string.
6434
6435 2008-04-08  Rafael Espindola  <espindola@google.com>
6436
6437         * fold-canst.c (tree_call_nonnegative_warnv_p): New.
6438         (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
6439         * tree.h (tree_call_nonnegative_warnv_p): New.
6440
6441 2008-04-08  Jan Hubicka  <jh@suse.cz>
6442
6443         * function.c (free_after_compilation): Clear out regno_reg_rtx
6444         pointer.
6445
6446 2008-04-08  Peter Bergner  <bergner@vnet.ibm.com>
6447
6448         Revert
6449         2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
6450
6451         PR middle-end/PR28690
6452         * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
6453         same precedence as REG_POINTER and MEM_POINTER operands.
6454
6455 2008-04-08  Richard Guenther  <rguenther@suse.de>
6456
6457         PR middle-end/35834
6458         * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
6459         for adding index to base.
6460
6461 2008-04-08  Kai Tietz  <kai.tietz@onevision.com>
6462
6463         * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
6464         (MINGW_ENABLE_EXECUTE_STACK): New.
6465         (IN_LIBGCC2): For libgcc include windows.h file for
6466         function declarations.
6467
6468 2008-04-08  Hans-Peter Nilsson  <hp@axis.com>
6469
6470         * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
6471         and tem2 if tem1 is not a REG or MULT.
6472
6473 2008-04-08  Jan Hubicka  <jh@suse.cz>
6474
6475         * function.h (incomming_args): Break out of struct function.
6476         (function_subsections): Break out of struct function.
6477         (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
6478         return_rtx and hard_reg_initial_vals from struct function.
6479         Kill inl_max_label_num.
6480         (current_function_pops_args, current_function_args_info,
6481         current_function_args_size, current_function_args_size,
6482         current_function_pretend_args_size,
6483         current_function_outgoing_args_size,
6484         current_function_internal_arg_pointer, current_function_return_rtx):
6485         Kill compatibility accestor macros.
6486         * builtins.c (expand_builtin_apply_args_1): Update.
6487         (expand_builtin_next_arg): Update.
6488         * df-scan.c (df_get_call_refs): Update.
6489         * dbxout.c (dbxout_function_end): Update.
6490         * dwarf2out.c (dwarf2out_switch_text_section): Update.
6491         (output_line_info): Update.
6492         (secname_for_decl): Update.
6493         (dwarf2out_var_location): Update.
6494         * function.c (free_after_compilation): Update.
6495         (assign_parm_find_stack_rtl): Update.
6496         (assign_parms): Update.
6497         (expand_dummy_function_end): Update.
6498         (expand_function_end): Update.
6499         * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
6500         (expand_call): Update.
6501         (emit_library_call_value_1): Update.
6502         (store_one_arg): Update.
6503         * varasm.c (initialize_cold_section_name): Update.
6504         (unlikely_text_section): Update.
6505         (unlikely_text_section_p): Update.
6506         (assemble_start_function): Update.
6507         (assemble_end_function): Update.
6508         (default_section_type_flags): Update.
6509         (switch_to_section): Update.
6510         * integrate.c (set_decl_abstract_flags): Update.
6511         (get_hard_reg_initial_val): Update.
6512         (has_hard_reg_initial_val): Update.
6513         (allocate_initial_values): Update.
6514         * resource.c (init_resource_info): Update.
6515         * config/alpha/alpha.c (NUM_ARGS): Update.
6516         (direct_return): Update.
6517         (alpha_va_start): Update.
6518         (alpha_sa_size): Update.
6519         (alpha_initial_elimination_offset): Update.
6520         (alpha_expand_prologue): Update.
6521         (alpha_start_function): Update.
6522         (alpha_expand_epilogue): Update.
6523         (unicosmk_initial_elimination_offset):
6524         * config/alpha/alpha.md (call expander): Update.
6525         * config/s390/s390.c (s390_register_info): Update.
6526         (s390_register_info): Update.
6527         (s390_frame_info): Update.
6528         (s390_initial_elimination_offset): Update.
6529         (s390_build_builtin_va_list): Update.
6530         (s390_va_start): Update.
6531         * config/spu/spu.c (direct_return): Update.
6532         (spu_expand_prologue): Update.
6533         (spu_initial_elimination_offset): Update.
6534         (spu_build_builtin_va_list): Update.
6535         (spu_va_start): Update.
6536         * config/sparc/sparc.c (sparc_init_modes): Update.
6537         (sparc_compute_frame_size): Update.
6538         (function_value): Update.
6539         * config/m32r/m32r.c (m32r_compute_frame_size): Update.
6540         * config/i386/i386.md (return expander): Update.
6541         * config/i386/i386.c (ix86_va_start): Update.
6542         (ix86_can_use_return_insn_p): Update.
6543         (ix86_compute_frame_layout): Update.
6544         (ix86_expand_epilogue): Update.
6545         * config/sh/sh.c (output_stack_adjust): Update.
6546         (calc_live_regs): Update.
6547         (sh_expand_prologue): Update.
6548         (sh_builtin_saveregs): Update.
6549         (sh_va_start): Update.
6550         (initial_elimination_offset): Update.
6551         (sh_allocate_initial_value): Update.
6552         (sh_function_ok_for_sibcall): Update.
6553         (sh_get_pr_initial_val): Update.
6554         * config/sh/sh.md (return expander): Update.
6555         * config/avr/avr.c (frame_pointer_required_p): UPdate.
6556         * config/crx/crx.c (crx_compute_frame): UPdate.
6557         (crx_initial_elimination_offset): UPdate.
6558         * config/xtensa/xtensa.c (compute_frame_size): Update
6559         (xtensa_builtin_saveregs): Update.
6560         (xtensa_va_start): Update.
6561         (order_regs_for_local_alloc): Update.
6562         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
6563         (xstormy16_expand_builtin_va_start): Update.
6564         * config/fr30/fr30.c (fr30_compute_frame_size): Update.
6565         * config/m68hc11/m68hc11.md (return expanders): Update.
6566         * config/m68hc11/m68hc11.c (expand_prologue): Update.
6567         (expand_epilogue): Update.
6568         * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
6569         (cris_simple_epilogue): Update.
6570         (cris_expand_prologue): Update.
6571         (cris_expand_epilogue): Update.
6572         * config/iq2000/iq2000.c (iq2000_va_start): Update.
6573         (compute_frame_size): Update.
6574         * config/mt/mt.c (mt_compute_frame_size): Update.
6575         * config/mn10300/mn10300.c (expand_prologue): Update.
6576         (expand_epilogue): Update.
6577         (initial_offset): Update.
6578         (mn10300_builtin_saveregs):
6579         * config/mn10300/mn10300.md (return expander): Update.
6580         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
6581         (ia64_initial_elimination_offset): Update.
6582         (ia64_initial_elimination_offset): Update.
6583         (ia64_expand_prologue): Update.
6584         * config/m68k/m68k.md (return expander): Update.
6585         * config/rs6000/rs6000.c (rs6000_va_start): Update.
6586         (rs6000_stack_info): Update.
6587         * config/mcore/mcore.c (layout_mcore_frame): Update.
6588         (mcore_expand_prolog): Update.
6589         * config/arc/arc.c (arc_compute_frame_size): Update.
6590         * config/score/score3.c (score3_compute_frame_size): Update.
6591         * config/score/score7.c (score7_compute_frame_size): Update.
6592         * config/arm/arm.c (use_return_insn): Update.
6593         (thumb_find_work_register): Update.
6594         (arm_compute_save_reg_mask): Update.
6595         (arm_output_function_prologue): Update.
6596         (arm_output_epilogue): Update.
6597         (arm_size_return_regs): Update.
6598         (arm_get_frame_offsets): Update.
6599         (arm_expand_prologue): Update.
6600         (thumb_exit): Update.
6601         (thumb_unexpanded_epilogue): Update.
6602         (thumb1_output_function_prologue): Update.
6603         * config/pa/pa.md (return expander): Update.
6604         * config/pa/pa.c (compute_frame_size): Update.
6605         (hppa_builtin_saveregs): Update.
6606         * config/mips/mips.c (mips_va_start): Update.
6607         (mips16_build_function_stub): Update.
6608         (mips_compute_frame_info): Update.
6609         (mips_restore_gp): Update.
6610         (mips_output_function_prologue): Update.
6611         (mips_expand_prologue): Update.
6612         * config/v850/v850.c (compute_frame_size): Update.
6613         (expand_prologue): * config/mmix/mmix.c (along): update.
6614         (mmix_initial_elimination_offset): update.
6615         (mmix_reorg): update.
6616         (mmix_use_simple_return): update.
6617         (mmix_expand_prologue): update.
6618         (mmix_expand_epilogue): Update.
6619         * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
6620         (emit_link_insn): Update.
6621
6622 2008-04-08  Anatoly Sokolov <aesok@post.ru>
6623
6624         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define 
6625         __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL 
6626         instructions.
6627         * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for 
6628         atmega103 device.
6629
6630 2008-04-07  Jan Hubicka  <jh@suse.cz>
6631
6632         * function.h (rtl): Rename to x_rtl.
6633         (crtl): New define.
6634         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
6635         frame_offset, stack_check_probe_note, arg_pointer_save_area,
6636         used_temp_slots avail_temp_slots, temp_slot_level,
6637         nonlocal_goto_handler_labels): Update accesstors.
6638         (rtl): New global variable.
6639         (struct function): Move some fileds to rtl_data.
6640         (get_arg_pointer_save_area): Update prototype.
6641         * builtins.c (expand_builtin_setjmp_receiver): Update call of
6642         get_arg_pointer_save_area.
6643         * expr.c (init_expr): Update
6644         * function.c (get_frame_size): Update
6645         (assign_stack_local): Update
6646         (expand_function_end): Update.
6647         (get_art_pointer_save_area): Update
6648         * function.h 
6649         * emit-rtl.c (rtl): Declare.
6650         (regno_reg_rtx): Declare.
6651         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
6652         Update.
6653         (gen_reg_rtx): Update.
6654         * varasm.c (n_deferred_constatns): Update accestor.
6655         (init_varasm_status): Do not allocate varasm_status.
6656         (force_const_mem, get_pool_size, output_constant_pool): Update.
6657         * stmt.c (force_label_rtx): Do not use x_ prefixes.
6658         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
6659         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
6660         * sparc/sparc.h (INIT_EXPANDERS): Update.
6661         * ia64/ia64.h (INIT_EXPANDERS): Update.
6662
6663 2008-04-07  James E. Wilson  <wilson@tuliptree.org>
6664
6665         * reload.c (push_secondary_reload): Add missing break to for loop.
6666
6667 2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
6668
6669         PR middle-end/PR28690
6670         * rtlanal.c: Update copyright years.
6671         (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
6672         as REG_POINTER and MEM_POINTER operands.
6673         * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
6674         (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
6675         * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
6676         * gcse.c: Update copyright years.
6677         (pre_delete): Call gen_reg_rtx_and_attrs.
6678         (hoist_code): Likewise.
6679         (build_store_vectors): Likewise.
6680         (delete_store): Likewise.
6681         * loop-invariant.c (move_invariant_reg): Likewise.
6682         Update copyright years.
6683
6684 2008-04-07  Uros Bizjak  <ubizjak@gmail.com>
6685
6686         * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
6687         control string instead of quoted.
6688
6689 2008-04-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
6690
6691         * doc/rtl.texi: Rewrite of subreg section.
6692
6693 2008-04-07  Kai Tietz  <kai.tietz@onevision.com>
6694
6695         PR/35842
6696         * config/i386/i386.c (legitimize_pic_address): Add treating
6697         of dllimport SYM_REF's.
6698         (legitimize_dllimport_symbol): Add prototype.
6699
6700 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
6701
6702         * fold-const.c (fold) <ARRAY_REF>: New case.  Try to fold constant
6703         reference in constructor with non self-referential type.
6704
6705 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
6706
6707         Removal of Return with Depressed Stack Pointer support
6708         * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
6709         (ECF_SP_DEPRESSED): Likewise.
6710         (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
6711         * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
6712         (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
6713         (expand_call): Do not test ECF_SP_DEPRESSED.
6714         * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
6715         * function.c (keep_stack_depressed): Delete.
6716         (handle_epilogue_set): Likewise.
6717         (update_epilogue_consts): Likewise.
6718         (emit_equiv_load): Likewise.
6719         (thread_prologue_and_epilogue_insns): Remove support for Return with
6720         Depressed Stack Pointer.
6721         * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
6722
6723 2008-04-06  Richard Guenther  <rguenther@suse.de>
6724
6725         PR tree-optimization/35400
6726         * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
6727         information from SSA_NAMEs.
6728
6729 2008-04-06  Anatoly Sokolov <aesok@post.ru>
6730
6731         * config/avr/avr.h (avr_mega_p): Remove declaration.
6732         (AVR_MEGA): Remove macro.
6733         * config/avr/avr.c (avr_mega_p): Remove variable.
6734         (avr_override_options): Remove inicializion of avr_mega_p.
6735         Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
6736         (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
6737         (avr_jump_mode): (Ditto.).
6738         (avr_output_progmem_section_asm_op): (Ditto.).
6739         (avr_asm_init_sections): (Ditto.).
6740         (avr_asm_init_sections): (Ditto.).
6741         (avr_rtx_costs): (Ditto.).
6742         * config/avr/avr.md: (Ditto.).
6743         * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of 
6744         '__AVR_MEGA__'.
6745
6746 2008-04-06  Richard Guenther  <rguenther@suse.de>
6747
6748         PR tree-optimization/35842
6749         * tree-ssa-address.c (fixed_address_object_p): Adjust to match
6750         is_gimple_invariant_address.
6751
6752 2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
6753
6754         * gcc.c (default_compilers): Sync Fortran extensions list with
6755         that in fortran/lang-specs.h.
6756         * doc/invoke.texi: Likewise.
6757         * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
6758         * dwarf2out.c (gen_compile_unit_die): Likewise.
6759
6760 2008-04-06  Tom G. Christensen  <tgc@jupiterrise.com>
6761
6762         * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
6763
6764 2008-04-05  Uros Bizjak  <ubizjak@gmail.com>
6765
6766         PR target/12329
6767         * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
6768         attribute is used for nested functions.
6769
6770 2008-04-05  Jan Hubicka  <jh@suse.cz>
6771
6772         * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
6773
6774         * tree-dump.c (dump_enable_all): Remove prototype; do not accept
6775         letter argument.
6776         (dump_files): Update.
6777         (enable_rtl_dump_file): Do not accept letter argument.
6778         * tree-pass.h (dump_file_info): Remove letter argument.
6779         * toplev.c (decode_d_option): Update -da handling.
6780         * toplev.h (enable_rtl_dump_file): Update prototype.
6781         * passes.c (register_one_dump_file): Do not accept IPA argument; work
6782         it out based on pass type.
6783         (register_dump_files_1): Likewise.
6784         (init_optimization_passes): Update register_one_dump_file calls.
6785         (execute_one_pass): Sanity check that IPA passes are called at IPA
6786         level and RTL passes at RTL level.
6787         (execute_pass_list): IPA pass can not be after or subpass of
6788         GIMPLE/RTL pass.
6789         (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
6790         disallov RTL subpasses of IPA subpasses.
6791
6792 2008-04-05  Ben Elliston  <bje@au.ibm.com>
6793
6794         * tree-cfg.c (need_fake_edge_p): Return false for calls to
6795         builtins that return exactly once and do not throw. Cache call to
6796         call_expr_flags.
6797
6798 2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
6799
6800         PR rtl-optimization/34916
6801         PR middle-end/35519
6802         * combine.c (create_log_links): Do not create duplicate LOG_LINKS
6803         between instruction pairs.
6804
6805 2008-04-04  Naveen.H.S  <naveen.hs@kpitcummins.com>
6806
6807         * doc/invoke.texi: Document -mbitops for SH.
6808         * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
6809         * config/sh/predicates.md (bitwise_memory_operand): New predicate.
6810         * config/sh/sh.c (print_operand): Add %t operand code.
6811         * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
6812         * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
6813         (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
6814         (extendqihi2): Likewise.
6815         (movqi_i): Likewise.
6816         (insv): Use bset, bclr and bst instructions for SH2A if possible.
6817         (extv): Use bld instruction for SH2A if possible.
6818         (extzv): Likewise.
6819         (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
6820         bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
6821         bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
6822         (bset.b, bclr.b): Define peepholes.
6823         * config/sh/sh.opt (mbitops): New option.
6824
6825 2008-04-04  Janis Johnson  <janis187@us.ibm.com>
6826
6827         PR target/35620
6828         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
6829         and view convert expression.
6830
6831 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
6832
6833         PR target/35364
6834         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
6835
6836 2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>
6837
6838         * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
6839
6840         * config/i386/cpuid.h (bit_AES): New.
6841         (bit_PCLMUL): Likewise.
6842
6843         * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
6844         (override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
6845         SSE2 if AES or PCLMUL is enabled.
6846         (ix86_builtins): Add IX86_BUILTIN_AESENC128,
6847         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
6848         IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
6849         IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
6850         (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
6851         (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
6852         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
6853         IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
6854         (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
6855         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
6856         __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
6857         __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
6858         __builtin_ia32_aeskeygenassist128 and
6859         __builtin_ia32_pclmulqdq128.
6860         * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
6861         (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
6862         IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.
6863
6864         * config/i386/i386.h (TARGET_AES): New.
6865         (TARGET_PCLMUL): Likewise.
6866         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
6867
6868         * config/i386/i386.md (UNSPEC_AESENC): New.
6869         (UNSPEC_AESENCLAST): Likewise.
6870         (UNSPEC_AESDEC): Likewise.
6871         (UNSPEC_AESDECLAST): Likewise.
6872         (UNSPEC_AESIMC): Likewise.
6873         (UNSPEC_AESKEYGENASSIST): Likewise.
6874         (UNSPEC_PCLMUL): Likewise.
6875
6876         * config/i386/i386.opt (maes): New.
6877         (mpclmul): Likewise.
6878
6879         * config/i386/sse.md (aesenc): New pattern.
6880         (aesenclast): Likewise.
6881         (aesdec): Likewise.
6882         (aesdeclast): Likewise.
6883         (aesimc): Likewise.
6884         (aeskeygenassist): Likewise.
6885         (pclmulqdq): Likewise.
6886
6887         * config/i386/wmmintrin.h: New.
6888
6889         * doc/extend.texi: Document AES and PCLMUL built-in function.
6890
6891         * doc/invoke.texi: Document -maes and -mpclmul.
6892
6893 2008-04-04  Paolo Bonzini  <bonzini@gnu.org>
6894
6895         * function.c (free_after_parsing): Replace with
6896         cxx_push_function_context from C++ front-end.
6897         (allocate_struct_function): Don't call langhook.
6898         * langhooks.h (struct lang_hooks_for_functions): Delete.
6899         (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
6900         member "function".
6901         * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
6902         (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
6903         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
6904         LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
6905         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
6906         remove LANG_HOOKS_FUNCTION_INITIALIZER.
6907         * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
6908
6909         * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
6910         Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
6911         
6912 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
6913
6914         PR c/35440
6915         * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
6916         for all types.
6917
6918 2008-04-04  Richard Guenther  <rguenther@suse.de>
6919
6920         PR middle-end/35823
6921         * fold-const.c (optimize_minmax_comparison): Use the correct
6922         type for the constant in the simplified comparison.
6923
6924 2008-04-04  Zuxy Meng <zuxy.meng@gmail.com>
6925
6926         * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
6927         Pass L2 size as "--param l2-cache-size" to the compiler.
6928         (decode_l2_cache): New function to decode L2 cache parameters using
6929         0x8000006 extended cpuid function.
6930         (detect_caches_amd): Determine parameters of L2 cache using
6931         decode_l2_caches function.
6932         (decode_caches_intel): Decode L2 cache parameters.
6933         (detect_caches_intel): Determine L2 cache parameters using
6934         decode_caches_intel and decode_l2_caches functions.
6935
6936 2008-04-03  Bob Wilson  <bob.wilson@acm.org>
6937
6938         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
6939         secondary input reload for subword loads from the constant pool.
6940
6941 2008-04-03  Janis Johnson  <janis187@us.ibm.com>
6942
6943         PR target/35713
6944         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
6945           constants of the appropriate size for runtime calculations.
6946
6947         PR c/35712
6948         * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
6949           decimal-float literal constant zero.
6950
6951 2008-04-03  Jakub Jelinek  <jakub@redhat.com>
6952
6953         PR c/35738
6954         * c-parser.c (c_parser_omp_atomic): Call
6955         default_function_array_conversion on the RHS.
6956
6957         PR middle-end/35818
6958         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
6959         call is_variable_sized if decl has incomplete type.
6960
6961 2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>
6962
6963         * config/i386/i386-protos.h (ix86_aligned_p): Removed.
6964
6965 2008-04-03  Adam Nemet  <anemet@caviumnetworks.com>
6966
6967         * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
6968         iterators.
6969         (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
6970         (sgt<u>): Merge sgt and sgtu into new expander.
6971         (sgt, sgtu): Remove expanders.
6972         (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
6973         (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
6974         (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
6975         *sgtu_<mode>_mips16 into new pattern.
6976         (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
6977         (sge<u>): Merge sge and sgeu into new expander.
6978         (sge, sgeu): Remove expanders.
6979         (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
6980         new pattern.
6981         (*sge_<mode>, second *sge_<mode>): Remove patterns.
6982         (slt<u>): Merge slt and sltu into new expander.
6983         (slt, sltu): Remove expanders.
6984         (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
6985         (*slt_<mode>, *sltu_<mode>): Remove patterns.
6986         (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
6987         *sltu_<mode>_mips16 into new pattern.
6988         (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
6989         (sle<u>): Merge sle and sleu into new expander.
6990         (sle, sleu): Remove expanders.
6991         (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
6992         (*sle_<mode>, *sleu_<mode>): Remove patterns.
6993         (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
6994         *sleu_<mode>_mips16 into new pattern.
6995         (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
6996
6997 2008-04-03  Jan Hubicka  <jh@suse.cz>
6998
6999         PR tree-optimization/35795
7000         * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
7001         * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
7002         * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
7003         * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
7004         * score/score3.c (score3_output_mi_thunk): Likewise.
7005         * score/score7.c (score7_output_mi_thunk): Likewise.
7006         * mips/mips.c (mips_output_mi_thunk): Likewise.
7007
7008 2008-04-03  Richard Guenther  <rguenther@suse.de>
7009
7010         * tree-vrp.c (extract_range_from_unary_expr): Handle all
7011         conversions.  Simplify code.
7012
7013 2008-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
7014
7015         * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
7016
7017 2008-04-03  Tom Tromey  <tromey@redhat.com>
7018             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7019
7020         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
7021         * config/bfin/t-bfin-linux (generated_files): Add
7022         linux-sysroot-suffix.h.
7023         * doc/install.texi (Prerequisites): Require make 3.80.
7024         * doc/sourcebuild.texi (Front End Directory): Document new
7025         variable.
7026         * Makefile.in (generated_files): New variable.
7027         (ALL_HOST_OBJS): New variable.
7028         ($(ALL_HOST_OBJS)): New target.
7029
7030 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
7031
7032         * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
7033         (remap_block): Call id->transform_lang_insert_block instead
7034         of langhook.
7035         (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
7036         Set id.transform_lang_insert_block to NULL.
7037         (clone_body): Move to cp/optimize.c
7038         * tree-inline.h (struct copy_body_data): Change
7039         transform_lang_insert_block to function pointer.
7040         (copy_generic_body, copy_decl_no_change): Export.
7041         * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
7042         * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
7043         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
7044
7045         * c-tree.h (insert_block): Kill.
7046         * c-decl.c (insert_block): Kill.
7047
7048 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
7049
7050         * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
7051         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
7052         * c-tree.h (c_push_function_context, c_pop_function_context): Remove
7053         argument.
7054         * c-decl.c (c_push_function_context, c_pop_function_context): Remove
7055         argument, call {push,pop}_function_context from here.
7056         * c-parser.c: Use c_{push,pop}_function_context.
7057
7058         * function.c (push_function_context_to): Move meat ...
7059         (push_function_context): ... here.  Simplify.
7060         * function.c (pop_function_context_from): Move meat ...
7061         (pop_function_context): ... here.  Simplify.
7062         * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
7063         leave_nested).
7064         * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
7065         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
7066         (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
7067         * tree.h (push_function_context_to, pop_function_context_from): Remove.
7068
7069 2008-04-03  Ben Elliston  <bje@au.ibm.com>
7070
7071         * expmed.c (extract_force_align_mem_bit_field): Remove.
7072
7073 2008-04-03  Richard Guenther  <rguenther@suse.de>
7074
7075         PR middle-end/35800
7076         * expr.h (try_casesi): Adjust prototype.
7077         * expr.c (try_casesi): Take fallback label as extra parameter.
7078         Use that for gen_casesi if default_label is NULL.
7079         * stmt.c (expand_case): Pass fallback label to try_casesi,
7080         make sure to fill gaps with a fallback label if default_label
7081         is not present.
7082
7083 2008-04-03  Dominique d'Humieres <dominiq@lps.ens.fr>
7084
7085         PR target/35801
7086         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
7087
7088 2008-04-03  Ben Elliston  <bje@au.ibm.com>
7089
7090         * expmed.c (extract_split_bit_field): Remove if (0) code.
7091         * tree-ssa-structalias.c (do_sd_constraint): Likewise.
7092         (do_ds_constraint): Likewise.
7093
7094 2008-04-02  Joseph Myers  <joseph@codesourcery.com>
7095
7096         * doc/cppopts.texi (-dU): Document.
7097         * c-common.h (flag_dump_macros): Update comment.
7098         * c-opts.c (handle_OPT_d): Handle -dU.
7099         * c-ppoutput.c (macro_queue, define_queue, undef_queue,
7100         dump_queued_macros, cb_used_define, cb_used_undef): New.
7101         (init_pp_output): Handle -dU.
7102         (cb_line_change): Call dump_queued_macros.
7103         * toplev.c (decode_d_option): Accept -dU as preprocessor option.
7104
7105 2008-04-02  Anatoly Sokolov <aesok@post.ru>
7106
7107         * config/avr/predicates.md (io_address_operand): New predicate. 
7108         * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
7109         * config/avr/avr.c (avr_io_address_p): Remove function.
7110         (out_movqi_r_mr): Use 'io_address_operand' predicate instead of 
7111         'avr_io_address_p' function.
7112         (out_movhi_r_mr): (Ditto.).
7113         (out_movqi_mr_r): (Ditto.).
7114         (out_movhi_mr_r): (Ditto.).
7115         (avr_address_cost): (Ditto.).
7116
7117 2008-04-02  Uros Bizjak  <ubizjak@gmail.com>
7118
7119         * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
7120         Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
7121         in 32bit mode when XMM registers are available to avoid store
7122         forwarding stalls.
7123         (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
7124         corresponding post-reload splitters.
7125
7126 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
7127
7128         * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
7129         and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
7130         __builtin_ia32_roundss.
7131         (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
7132         __builtin_ia32_shufpd, __builtin_ia32_roundsd and
7133         __builtin_ia32_roundss.
7134         (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
7135         IX86_BUILTIN_SHUFPD here.
7136
7137 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
7138
7139         * config/i386/i386.md (plogic): New.
7140         (plogicprefix): Likewise.
7141
7142         * config/i386/mmx.md (mmx_<code><mode>3): New.
7143         (mmx_and<mode>3): Removed.
7144         (mmx_ior<mode>3): Likewise.
7145         (mmx_xor<mode>3): Likewise.
7146
7147         * config/i386/sse.md (<code><mode>3): New.
7148         (*<code><mode>3): Likewise.
7149         (*<code><mode>3): Likewise.
7150         (<code><mode>3): Likewise.
7151         (*sse_<code><mode>3): Likewise.
7152         (*sse2_<code><mode>3): Likewise.
7153         (<code>tf3): Likewise.
7154         (*<code>tf3): Likewise.
7155         (and<mode>3): Likewise.
7156         (*and<mode>3): Likewise.
7157         (ior<mode>3): Removed.
7158         (*ior<mode>3): Likewise.
7159         (xor<mode>3): Likewise.
7160         (*xor<mode>3): Likewise.
7161         (*and<mode>3): Likewise.
7162         (*ior<mode>3): Likewise.
7163         (*xor<mode>3): Likewise.
7164         (and<mode>3): Likewise.
7165         (*sse_and<mode>3): Likewise.
7166         (*sse2_and<mode>3): Likewise.
7167         (andtf3): Likewise.
7168         (*andtf3): Likewise.
7169         (ior<mode>3): Likewise.
7170         (*sse_ior<mode>3): Likewise.
7171         (*sse2_ior<mode>3): Likewise.
7172         (iortf3): Likewise.
7173         (*iortf3): Likewise.
7174         (xor<mode>3): Likewise.
7175         (*sse_xor<mode>3): Likewise.
7176         (*sse2_xor<mode>3): Likewise.
7177         (xortf3): Likewise.
7178         (*xortf3): Likewise.
7179
7180 2008-04-02  Richard Guenther  <rguenther@suse.de>
7181
7182         PR tree-optimization/14495
7183         PR tree-optimization/34793
7184         * tree-vrp.c (struct switch_update): New structure.
7185         (to_remove_edges, to_update_switch_stmts): New VECs.
7186         (simplify_switch_using_ranges): New function.  Remove not taken
7187         case labels and edges.
7188         (simplify_stmt_using_ranges): Call it.
7189         (identify_jump_threads): Mark edges we have queued for removal
7190         so we don't thread them.
7191         (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
7192         case label vector.
7193         * tree-cfg.c (group_case_labels): Deal with missing default label.
7194         (tree_verify_flow_info): Allow missing default label.
7195         * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
7196         (emit_case_nodes): Likewise.
7197         (expand_case): Do not rely on the default label to be present.
7198         * expr.c (try_casesi): Deal with NULL default_label.
7199         (do_tablejump): Likewise.
7200
7201 2008-04-02  Richard Guenther  <rguenther@suse.de>
7202
7203         PR tree-optimization/14495
7204         * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
7205         SWITCH_EXPR here ...
7206         (vrp_visit_switch_stmt): ... but here (new function).
7207         (find_case_label_index): New helper function.
7208         (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
7209
7210 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
7211
7212         * fwprop.c: Fix ISO-C99ism.
7213
7214 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
7215
7216         PR bootstrap/35752
7217         * Makefile.in (objdir): Set it here.
7218         * configure.ac: Not here.  Find dynamic linker characteristics.
7219         * exec-tool.in: Use them.
7220         * aclocal.m4: Regenerate.
7221         * configure: Regenerate.
7222
7223 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
7224
7225         * expr.c (expand_var): Delete it.
7226         * expr.h (expand_var): Delete prototype.
7227         * function.c (expand_function_start): Use expand_decl instead.
7228         * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
7229         langhook.
7230
7231 2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>
7232
7233         PR rtl-optimization/35542
7234         * fwprop.c (forward_propagate_and_simplify): Replace
7235         loc_reg_mentioned_in_p with reg_mentioned_p.
7236
7237 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
7238
7239         PR rtl-optimization/35281
7240         * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
7241         (propagate_rtx_1): Handle PR_HANDLE_MEM.
7242         (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
7243         (varying_mem_p): Move above propagate_rtx.
7244         (all_uses_available_at): Do not check MEMs.
7245
7246 2008-04-02  Rafael Espindola  <espindola@google.com>
7247
7248         * tree-vrp.c (extract_code_and_val_from_cond): Remove.
7249         (register_edge_assert_for_2): Split the cond argument.
7250         (register_edge_assert_for_1): Adjust for the change in
7251         register_edge_assert_for_2.
7252         (register_edge_assert_for): Split the cond argument.
7253         (find_switch_asserts): Adjust for the change in
7254         register_edge_assert_for.
7255
7256 2008-04-02  Kai Tietz  <kai.tietz@onevision.com>
7257
7258         * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
7259         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
7260         offsets for 64-bit mingw.
7261         * config/i386/i386.c (ix86_pass_by_reference): Correct calling
7262         abi for x86_64-pc-mingw.
7263
7264 2008-04-02  Richard Guenther  <rguenther@suse.de>
7265
7266         * tree-vrp.c (extract_range_from_assert): Make sure to not
7267         produce range min/max with TREE_OVERFOW set.
7268         If merging a anti-range and a range keep the anti-range if
7269         the range covers all values of the type.
7270         (register_edge_assert_for_2): Only allow sign-changing
7271         conversions in detecting canonical range checks.  Also
7272         register an assert for the unsigned name if useful.
7273
7274         PR tree-optimization/35787
7275         * tree-vrp.c (vrp_val_max): New function.
7276         (vrp_val_min): Likewise.
7277         (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
7278         (vrp_val_is_min): Likewise.
7279         (supports_overflow_infinity): Use vrp_val_{min,max}.
7280         (negative_overflow_infinity): Likewise.
7281         (positive_overflow_infinity): Likewise.
7282         (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
7283         (is_positive_overflow_infinity): Likewise.
7284         (is_overflow_infinity): Likewise.
7285         (avoid_overflow_infinity): Use vrp_val_{min,max} and
7286         vrp_val_is_{min,max}.
7287         (set_and_canonicalize_value_range): Canonicalize anti-ranges
7288         to ranges if possible.  Avoid empty ranges.
7289
7290 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7291
7292         PR middle-end/35705
7293         * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
7294         the expression is a function address.
7295
7296 2008-04-01  George Helffrich  <george@gcc.gnu.org>
7297
7298         PR fortran/35154, fortran/23057
7299         * dbxout.c: Emit .stabs debug info for Fortran COMMON block
7300         variables as base symbol name + offset using N_BCOMM/N_ECOMM.
7301         (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
7302         (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
7303         in common.
7304         (dbxout_syms): Check for COMMON-based symbol and wrap in
7305         N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
7306         in bracket for efficiency.
7307
7308         * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
7309         using DW_TAG_common_block + member offset.
7310         (add_pubname_string): New function.
7311         (dw_expand_expr): New function to find block name and offset for
7312         COMMON var.
7313         (common_check): New function to check whether symbol in Fortran COMMON.
7314         (gen_variable_die): If COMMON, use DW_TAG_common_block.
7315
7316 2008-04-01  Volker Reichelt  <v.reichelt@netcologne.de>
7317
7318         PR c/35436
7319         * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
7320
7321 2008-04-02  Ben Elliston  <bje@au.ibm.com>
7322
7323         * config/v850/v850.md (casesi): Remove if (0) code.
7324         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
7325         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
7326
7327 2008-04-01  Uros Bizjak  <ubizjak@gmail.com>
7328
7329         * config/i386/i386.md (rex64suffix): New mode attribute.
7330         (floathi<mode>2): Disable expander for SSE math.
7331         (*floathi<mode>2_1): New insn insn_and_split pattern.
7332         (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
7333         corresponding post-reload splitters.
7334         (*floathi<mode>2_i387): New macroized insn pattern.
7335         (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
7336         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
7337         insn_and_split pattern.
7338         (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
7339         New macroized instruction patterns and corresponding post-reload
7340         splitters.
7341         (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
7342         and corresponding post-reload splitters.
7343         (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
7344         New macroized instruction patterns.
7345         (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
7346         macroized instruction patterns and corresponding post-reload splitters.
7347         (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
7348         corresponding post-reload splitters.
7349         (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
7350         New macroized instruction patterns.
7351         (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
7352         corresponding post-reload splitters.
7353         (*floatsi<mode>2_i387): New macroized instruction patterns.
7354
7355 2008-04-01  H.J. Lu  <hongjiu.lu@intel.com>
7356
7357         * config/i386/i386.md (smaxmin): New.
7358         (umaxmin): Likewise.
7359         (maxminiprefix): Likewise.
7360         (maxminfprefix): Likewise.
7361         (<code><mode>3): Likewise.
7362         (smin<mode>3): Removed.
7363         (smax<mode>3): Likewise.
7364
7365         * config/i386/mmx.md (mmx_<code>v2sf3): New.
7366         (mmx_<code>v4hi3): Likewise.
7367         (mmx_<code>v8qi3): Likewise.
7368         (mmx_smaxv2sf3): Removed.
7369         (mmx_sminv2sf3): Likewise.
7370         (mmx_umaxv8qi3): Likewise.
7371         (mmx_smaxv4hi3): Likewise.
7372         (mmx_uminv8qi3): Likewise.
7373         (mmx_sminv4hi3): Likewise.
7374
7375         * config/i386/sse.md (<addsub><mode>3): New.
7376         (*<addsub><mode>3): Likewise.
7377         (<sse>_vm<addsub><mode>3): Likewise.
7378         (<maxmin><mode>3): Likewise.
7379         (*<maxmin><mode>3_finite): Likewise.
7380         (*<maxmin><mode>3): Likewise.
7381         (<sse>_vm<maxmin><mode>3): Likewise.
7382         (sse3_h<addsub>v4sf3): Likewise.
7383         (sse3_h<addsub>v2df3): Likewise.
7384         (<maxmin>v16qi3): Likewise.
7385         (*<maxmin>v16qi3): Likewise.
7386         (<maxmin>v8hi3): Likewise.
7387         (*<maxmin>v8hi3): Likewise.
7388         (*sse4_1_<maxmin><mode>3): Likewise.
7389         (*sse4_1_<maxmin><mode>3): Likewise.
7390         (add<mode>3): Removed.
7391         (*add<mode>3): Likewise.
7392         (<sse>_vmadd<mode>3): Likewise.
7393         (sub<mode>3): Likewise.
7394         (*sub<mode>3): Likewise.
7395         (<sse>_vmsub<mode>3): Likewise.
7396         (smin<mode>3): Likewise.
7397         (*smin<mode>3_finite): Likewise.
7398         (*smin<mode>3): Likewise.
7399         (<sse>_vmsmin<mode>3): Likewise.
7400         (smax<mode>3): Likewise.
7401         (*smax<mode>3_finite): Likewise.
7402         (*smax<mode>3): Likewise.
7403         (<sse>_vmsmax<mode>3): Likewise.
7404         (sse3_haddv4sf3): Likewise.
7405         (sse3_haddv2df3): Likewise.
7406         (sse3_hsubv4sf3): Likewise.
7407         (sse3_hsubv2df3): Likewise.
7408         (umaxv16qi3): Likewise.
7409         (*umaxv16qi3): Likewise.
7410         (smaxv8hi3): Likewise.
7411         (*smaxv8hi3): Likewise.
7412         (*sse4_1_smax<mode>3): Likewise.
7413         (*sse4_1_umax<mode>3): Likewise.
7414         (uminv16qi3): Likewise.
7415         (*uminv16qi3): Likewise.
7416         (sminv8hi3): Likewise.
7417         (*sminv8hi3): Likewise.
7418         (*sse4_1_smin<mode>3): Likewise.
7419         (*sse4_1_umin<mode>3): Likewise.
7420
7421 2008-04-01  Rafael Espindola  <espindola@google.com>
7422
7423         * tree-cfg.c (verify_expr): remove in_phi.
7424         (verify_stmt): Don't call walk_tree with verify_expr. Use
7425         is_gimple_min_invariant instead of is_gimple_val.
7426
7427 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
7428
7429         * doc/include/gpl_v3.texi: Update for manpage generation.
7430         * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
7431         gpl.texi.
7432         * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
7433         * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
7434         gpl_v3.texi instead of gpl.texi.
7435         (gpl.pod): New.
7436
7437 2008-04-01  Jakub Jelinek  <jakub@redhat.com>
7438
7439         PR pch/13675
7440         * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
7441
7442 2008-04-01  Rafael Espindola  <espindola@google.com>
7443
7444         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
7445         (extract_code_and_val_from_cond): Use
7446         extract_code_and_val_from_cond_with_ops.
7447
7448 2008-04-01  Jan Hubicka  <jh@suse.cz>
7449
7450         * function.c (free_after_compilation): Free epilogue_delay_list.
7451         (prepare_function_start): Assert that previous compilation was freed.
7452
7453 2008-04-01  Jan Hubicka  <jh@suse.cz>
7454             Jim Wilson  <wilson@tuliptree.org>
7455             Andreas Tobler <andreast@gcc.gnu.org>
7456
7457         PR middle-end/35781
7458         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
7459         rtl.emit instead cfun->emit.
7460         * sparc/sparc.h (INIT_EXPANDERS): Likewise.
7461         * ia64/ia64.h (INIT_EXPANDERS): Likewise.
7462
7463 2008-04-01  Ben Elliston  <bje@au.ibm.com>
7464
7465         * doc/c-tree.texi (Function Basics): Fix grammatical error.
7466
7467 2008-03-31  Seongbae Park <seongbae.park@gmail.com>
7468
7469         * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
7470         New options
7471         (fprofile-use): Add var flag_profile_use
7472         * coverage.c (coverage_begin_output): Do not open a gcno file for
7473         output only if -ftest-coverage is set.
7474         Do not add getpwd() to gcda file path.
7475         (build_gcov_info): Check the new flag
7476         flag_profile_datafile_relative_path.
7477         (coverage_init): Use profile_data_prefix.
7478         Read profile counter only if flag_profile_use is set.
7479         * opts.c (common_handle_option): New option fprofile-use=,
7480         fprofile-dir=, fprofile-generate=.
7481         * toplev.c (profile_data_prefix): New variable definition.
7482         * toplev.h (profile_data_prefix): New declaration.
7483         * doc/invoke.tex (Option Summary, Optimization Options):
7484         Add new options.
7485
7486 2008-03-31  James E. Wilson  <wilson@tuliptree.org>
7487
7488         * varasm.c (output_constant_pool_1): In LABEL_REF check,
7489         use tmp consistently.
7490
7491         PR target/35695
7492         * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
7493         * config/ia64/ia64.c (rtx_needs_barrier): Handle
7494         UNSPEC_FR_RECIP_APPROX_RES.
7495         * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
7496
7497 2008-03-31  Volker Reichelt  <v.reichelt@netcologne.de>
7498
7499         PR c/35750
7500         * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
7501
7502 2008-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7503
7504         PR middle-end/30186
7505         * fold-const.c (fold_indirect_ref_1): Support accessing non first
7506         element of the vector via a pointer.
7507
7508 2008-03-31  Ian Lance Taylor  <iant@google.com>
7509
7510         * tlink.c (scan_linker_output): Look for symbol name in single quotes.
7511
7512 2008-03-31  Jan Hubicka  <jh@suse.cz>
7513
7514         * builtins.c (expand_builtin_setjmp_receiver): Update call of
7515         get_arg_pointer_save_area.
7516         * expr.c (init_expr): Just clear out rtl.expr.
7517         * function.c (free_after_compilation): Clear out whole RTL structure.
7518         (get_func_frame_size): Merge into ...
7519         (get_frame_size): ... this one.
7520         (assign_stack_local_1): Merge into ...
7521         (assign_stack_local): ... this one.
7522         (expand_function_end): Update call of get_arg_pointer_save_area.
7523         (get_art_pointer_save_area): Remove cfun argument.
7524         * function.h (emit_status): regno_pointer_align does not need length
7525         attribute. Move x_regno_reg_rtx to ...
7526         (regno_reg_rtx): ... new global array.
7527         (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
7528         (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
7529         apply_args_value, forced_labels, stack_pointer_delta):
7530         Update accestors.
7531         (struct varasm_status): Move here from varasm.c
7532         (struct rtl_data): New. Move here some fields from struct function.
7533         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
7534         frame_offset, stack_check_probe_note, arg_pointer_save_area,
7535         used_temp_slots avail_temp_slots, temp_slot_level,
7536         nonlocal_goto_handler_labels): Update accesstors.
7537         (rtl): New global variable.
7538         (struct function): Move some fileds to rtl_data.
7539         (get_arg_pointer_save_area): Update prototype.
7540         * emit-rtl.c (rtl): Declare.
7541         (regno_reg_rtx): Declare.
7542         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
7543         Update.
7544         (gen_reg_rtx): Update.
7545         (init_virtual_regs): Do not tate emit_status argument.
7546         (init_emit): Do not allocate emit.
7547         * varasm.c (varasm_statuc): Move to function.h.
7548         (n_deferred_constatns): Update accestor.
7549         (init_varasm_status): Do not allocate varasm_status.
7550         (force_const_mem, get_pool_size, output_constant_pool): Update.
7551         * stmt.c (force_label_rtx): Do not use x_ prefixes.
7552         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
7553
7554 2008-03-31  Zdenek Dvorak  <ook@ucw.cz>
7555
7556         PR rtl-optimization/35729
7557         * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
7558         references.
7559
7560 2008-03-31  H.J. Lu  <hongjiu.lu@intel.com>
7561
7562         PR target/32000
7563         * config/i386/i386.md (*movti_internal): Emit unaligned SSE
7564         load/store if memory is unaligned.
7565         (*movti_rex64): Likewise.
7566
7567         * config/i386/predicates.md (misaligned_operand): New.
7568
7569 2008-03-31  Andrew Pinski  <pinskia@gmail.com>
7570
7571         PR tree-opt/35431
7572         * tree-ssa-phiopt.c (conditional_replacement): Return early for
7573         complex types.
7574
7575 2008-03-31  Jan Beulich  <jbeulich@novell.com>
7576
7577         * config/ia64/constraints.md: Add 'j' constraint.
7578         * config/ia64/ia64.md (movsi_internal): Add addp4 case.
7579         (movdi_internal): Likewise.
7580
7581 2008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>
7582
7583         PR c/35748
7584         * c-typeck.c (build_c_cast): Skip invalid fields in unions.
7585
7586 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
7587
7588         PR target/35757
7589         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
7590         proper error message for the third argument on blendpd and
7591         blendps.
7592
7593         * config/i386/sse.md (blendbits): New.
7594         (sse4_1_blendp<ssemodesuffixf2c>): Use it.
7595
7596 2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>
7597
7598         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
7599
7600 2008-03-30  Richard Guenther  <rguenther@suse.de>
7601
7602         PR middle-end/31023
7603         * fold-const.c (fold_sign_changed_comparison): Do leave
7604         conversions to base-types alone.
7605
7606 2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7607
7608         * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
7609         the link register if one altivec register is be saved.
7610
7611 2008-03-30  Ben Elliston  <bje@au.ibm.com>
7612
7613         * final.c (final_scan_insn): Remove if (0) code.
7614
7615 2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>
7616
7617         * c-parser.c (c_parser_next_token_is_keyword): Simplify.
7618
7619 2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>
7620
7621         * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
7622         of V4SFmode to ix86_binary_operator_ok.
7623
7624 2008-03-28  Uros Bizjak  <ubizjak@gmail.com>
7625
7626         * config/i386/i386.c (override_options): Initialize
7627         ix86_veclib_handler to ix86_veclibabi_svml when
7628         -mveclibabi=svml is used.
7629         (ix86_veclibabi_svml): New function for SVML ABI style
7630         vectorization support.
7631         * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
7632
7633 2008-03-28  Rafael Espindola  <espindola@google.com>
7634
7635         * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
7636         (tree_binary_nonnegative_warnv_p): Make it public.
7637         (tree_single_nonnegative_warnv_p): Make it public.
7638         (tree_invalid_nonnegative_warnv_p): Make it public.
7639         (tree_unary_nonzero_warnv_p): Make it public.
7640         (tree_binary_nonzero_warnv_p): Make it public
7641         (tree_single_nonzero_warnv_p): Make it public.
7642         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
7643         (extract_range_from_binary_expr): Split the expr argument.
7644         (extract_range_from_unary_expr): Split the expr argument.
7645         (extract_range_from_comparison): Split the expr argument.
7646         (extract_range_from_expr): Use the new aux functions.
7647         (vrp_evaluate_conditional_warnv): Use
7648         vrp_evaluate_conditional_warnv_with_ops.
7649         * tree.h (tree_unary_nonzero_warnv_p): Declare.
7650         (tree_binary_nonzero_warnv_p): Declare.
7651         (tree_single_nonzero_warnv_p): Declare.
7652         (tree_expr_nonzero_warnv_p): Declare.
7653         (tree_unary_nonnegative_warnv_p): Declare.
7654         (tree_binary_nonnegative_warnv_p): Declare.
7655         (tree_single_nonnegative_warnv_p): Declare.
7656         (tree_invalid_nonnegative_warnv_p): Declare.
7657
7658 2008-03-28  Richard Guenther  <rguenther@suse.de>
7659
7660         PR tree-optimization/30317
7661         PR tree-optimization/30911
7662         PR tree-optimization/34793
7663         * tree-vrp.c (set_and_canonicalize_value_range): New function.
7664         (struct assert_locus_d): New member EXPR.
7665         (register_new_assert_for): Add EXPR parameter to support
7666         ASSERT_EXPR <name, expr OP limit>.
7667         (register_edge_assert_for_1): Adjust callers.
7668         (find_assert_locations): Likewise.
7669         (process_assert_insertions_for): Build condition from expression.
7670         (extract_range_from_assert): Handle ASSERT_EXPRs
7671         of the form ASSERT_EXPR <name, expr OP limit>.
7672         (register_edge_assert_for_2): New helper registering
7673         asserts for comparisons.  Recognize range tests of the form
7674         (unsigned)i - CST1 OP CST2.
7675         (register_edge_assert_for_1): Use it.
7676         (register_edge_assert_for): Likewise.
7677         (needs_overflow_infinity): Integer sub-types
7678         do not need overflow infinities.
7679         (vrp_val_is_max): The extreme values of integer sub-types
7680         are those of the base type.
7681         (vrp_val_is_min): Likewise.
7682         * tree.def (ASSERT_EXPR): Document extra allowed conditional
7683         expressions.
7684
7685 2008-03-28  Nick Clifton  <nickc@redhat.com>
7686
7687         PR target/31110
7688         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
7689         Return GENERAL_REGS for stack adjustment reloads.
7690
7691 2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7692
7693         PR target/31334
7694         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
7695         const_vector when all the vectors are constant.
7696
7697 2008-03-27  Bob Wilson  <bob.wilson@acm.org>
7698
7699         * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
7700         comparisons.
7701         * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
7702         (any_scc_sf): Add uneq, unlt, unle and unordered operators.
7703         (scc_sf): New.
7704         (s<code>_sf): Use new scc_sf attribute for opcode names.
7705
7706 2008-03-27  Tom Tromey  <tromey@redhat.com>
7707
7708         * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
7709         configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
7710         config/spu/t-spu-elf, config/i386/t-interix,
7711         config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
7712         config/i386/x-darwin, config/i386/x-mingw32,
7713         config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
7714         config/sh/t-sh, config/sh/t-symbian, config/x-linux,
7715         config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
7716         config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
7717         config/rs6000/x-rs6000, config/rs6000/x-darwin64,
7718         config/rs6000/x-darwin, config/rs6000/t-rs6000,
7719         config/score/t-score-elf, config/arm/t-strongarm-pe,
7720         config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
7721         config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
7722         Revert automatic dependency patch.
7723
7724 2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
7725
7726         PR target/35657
7727         * config/i386/i386.c (ix86_function_arg_boundary): Align
7728         decimal floating point to its natural boundary.
7729
7730 2008-03-27  Richard Guenther  <rguenther@suse.de>
7731
7732         PR middle-end/35716
7733         * fold-const.c (fold_comparison): Restrict distinct decl
7734         comparison folding to VAR_DECLs and PARM_DECLs.  Do not
7735         solely rely on operand_equal_p.
7736
7737 2008-03-27  Richard Guenther  <rguenther@suse.de>
7738
7739         PR c/32511
7740         * c-common.c (handle_weak_attribute): Reject combination of
7741         weak and inline.
7742
7743 2008-03-27  Richard Guenther  <rguenther@suse.de>
7744
7745         PR tree-optimization/32810
7746         * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
7747         conversions from DECL_INITIAL.
7748         (fold_const_aggregate_ref): Likewise from constructor elements.
7749
7750 2008-03-27  Zdenek Dvorak  <ook@ucw.cz>
7751
7752         * tree-affine.h (aff_combination_expand): Declare.
7753         (get_inner_reference_aff): Likewise.
7754         * tree-affine.c (aff_combination_expand): Split out from
7755         tree_to_aff_combination_expand.
7756         (get_inner_reference_aff): New function.
7757         * tree-parloops.c (loop_parallel_p): Free vectorizer info.
7758         * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
7759         (struct lim_aux_data): sm_done field removed.
7760         (mem_ref_loc_p, mem_ref_locs_p): New types.
7761         (struct mem_ref): Added id, stored, accesses_in_loop,
7762         indep_loop, dep_loop, indep_ref, dep_ref fields.
7763         Removed is_stored, locs and next fields.
7764         (memory_accesses): New variable.
7765         (movement_possibility): Do not allow moving statements
7766         that store to memory.
7767         (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
7768         New functions.
7769         (determine_max_movement): For statements with memory references,
7770         find the outermost loop in that the reference is independent.
7771         (move_computations_stmt): Mark the virtual operands for renaming.
7772         (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
7773         gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
7774         vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
7775         add_vop_ref_mapping, create_vop_ref_mapping_loop,
7776         create_vop_ref_mapping, analyze_memory_references,
7777         cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
7778         get_all_locs_in_loop, ref_always_accessed_p,
7779         refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
7780         ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
7781         store_motion_loop, store_motion): New functions.
7782         (struct vop_to_refs_elt): New type.
7783         (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
7784         memref_hash, memref_eq, hoist_memory_references): Rewritten.
7785         (schedule_sm): Replaced by...
7786         (execute_sm): ... this.
7787         (determine_lsm_ref, hoist_memory_references,
7788         loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
7789         find_more_ref_vops, free_mem_ref, free_mem_refs,
7790         determine_lsm_loop, determine_lsm): Removed.
7791         (tree_ssa_lim_finalize): Free data structures used by store motion.
7792         (tree_ssa_lim): Call analyze_memory_references.  Use
7793         store_motion instead of determine_lsm.
7794
7795 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
7796
7797         * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
7798         rename tmake_file to m68hc11/t-m68hc11.
7799         (mcore): Set inhibit_libc to true.
7800         * config.host (alpha*-dec-*vms*): Set extra_programs.
7801         (interix3*): Don't use host_xmake_file.
7802         * configure.ac: Let config.gcc override inhibit_libc.
7803         * configure: Regenerate.
7804
7805         * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
7806         * config/t-openbsd-thread: Remove commented out lines.
7807         
7808         * config/x-interix: Remove.
7809
7810         * config/m68hc11/t-m68hc11-gas: Rename to...
7811         * config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.
7812
7813         * config/mcore/t-mcore: Remove T_CFLAGS.
7814         * config/mcore/t-mcore-pe: Likewise.
7815
7816 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
7817
7818         * configure.ac: Replace custom __GNU_SOURCE test with
7819         AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
7820         * aclocal.m4: Regenerate.
7821         * configure: Regenerate.
7822         * config.in: Regenerate.
7823
7824 2008-03-27  Richard Guenther  <rguenther@suse.de>
7825
7826         * fold-const.c (target.h): Include.
7827         (fold_comparison): Fold comparison of addresses of decls
7828         that bind locally or of constants.  Consolidate address folding code.
7829         * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
7830         results from fold_binary_to_constant.
7831         (compare_values_warnv): Likewise.
7832
7833 2008-03-27  Andrew Pinski  <pinskia@gmail.com>
7834
7835         PR middle-end/35429
7836         * fold-const.c (fold_truthop): Check for integeral types when folding
7837         a == 0 && b == 0 and a != 0 || b != 0 .
7838
7839 2008-03-26  Eric Botcazou  <ebotcazou@adacore.com>
7840
7841         * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
7842
7843 2008-03-26  Andreas Schwab  <schwab@suse.de>
7844
7845         * doc/invoke.texi: Fix use of @item vs. @itemx.
7846
7847 2008-03-26  Tom Tromey  <tromey@redhat.com>
7848
7849         * Makefile.in (build/gensupport.o, build/print-rtl.o,
7850         build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
7851         build/genattrtab.o, build/genautomata.o, build/gencheck.o,
7852         build/gencodes.o, build/genconditions.o, build/genconfig.o,
7853         build/genconstants.o, build/genemit.o, build/genextract.o,
7854         build/genflags.o, build/genmddeps.o, build/genopinit.o,
7855         build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
7856         options.h.
7857
7858 2008-03-26  Richard Guenther  <rguenther@suse.de>
7859
7860         Revert
7861         2008-03-26  Richard Guenther  <rguenther@suse.de>
7862
7863         * fold-const.c (target.h): Include.
7864         (fold_comparison): Fold comparison of addresses of two decls
7865         that bind locally.  Consolidate address folding code.
7866
7867 2008-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7868
7869         * builtins.c (expand_builtin_pow, fold_builtin_cabs,
7870         fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
7871         fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
7872         dconstsqrt2, dconstthird, dconste and/or dconst10.
7873         * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
7874         * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
7875         dconstsqrt2, dconste): Delete.
7876         (init_emit_once): Likewise.  Simplify initializing dconstm1.
7877         Constify variable.
7878         * real.c (get_real_const): New.
7879         * real.h (dconst3, dconst10, dconstm2, dconstthird,
7880         dconstsqrt2, dconste): Delete.
7881         (real_value_const, get_real_const): New.
7882
7883 2008-03-26  H.J. Lu  <hongjiu.lu@intel.com>
7884
7885         * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
7886
7887         * config/i386/i386.c (ix86_function_arg_boundary): Check
7888         BIGGEST_ALIGNMENT instead of 128.
7889         (setup_incoming_varargs_64): Likewise.
7890
7891 2008-03-26  Tom Tromey  <tromey@redhat.com>
7892
7893         * Makefile.in (DEPFILES): Add missing '/'.
7894
7895 2008-03-26  Richard Guenther  <rguenther@suse.de>
7896
7897         * fold-const.c (target.h): Include.
7898         (fold_comparison): Fold comparison of addresses of two decls
7899         that bind locally.  Consolidate address folding code.
7900
7901 2008-03-26  Nick Clifton  <nickc@redhat.com>
7902
7903         PR target/31232
7904         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
7905         not allow INT+INT as a legitimate addressing mode.
7906
7907 2008-03-26  Richard Guenther  <rguenther@suse.de>
7908
7909         * tree-flow.h (widen_bitfield): Remove declaration.
7910         * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
7911         (widen_bitfield): Remove function.
7912         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
7913         code.
7914
7915 2008-03-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7916
7917         PR target/31558
7918         * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
7919         error_mark_node's.
7920
7921 2008-03-25  Richard Sandiford  <rsandifo@nildram.co.uk>
7922
7923         PR rtl-optimization/35232
7924         * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
7925         (forget_old_reloads_1, forget_marked_reloads): Don't clear
7926         reg_reloaded_call_part_clobbered here.
7927         (reload_regs_reach_end_p): New function.
7928         (reload_reg_rtx_for_input): New variable.
7929         (reload_reg_rtx_for_output): Likewise.
7930         (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
7931         when reassigning a pseudo register.  Load reloadreg from 
7932         reload_reg_rtx_for_input, moving the mode and register
7933         calculation to...
7934         (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
7935         instead of the original when deciding whether an input reload
7936         would be a no-op or whether an output reload can be deleted.
7937         (emit_output_reload_insns): Use the mode-adjusted reg_rtx
7938         when setting up new_spill_reg_store.  Load it from
7939         reload_reg_rtx_for_output, moving the mode and register
7940         calculation to...
7941         (do_output_reload): ...here.  Use the mode-adjusted reg_rtx
7942         instead of the original when deciding whether an output reload
7943         would be a no-op.  Do the same when modifying insn notes.
7944         Use rtx_equal_p instead of == to compare the registers.
7945         (inherit_piecemeal_p): Take a mode and two register numbers
7946         as argument.
7947         (emit_reload_insns): Clear new_spill_reg_store for every hard
7948         register in the reload register.  Remove spill registers
7949         from reg_reloaded_valid before considering whether to record
7950         inheritance information for them.  Use reload_reg_rtx_for_output
7951         instead of reg_rtx when recording output reloads.  Use
7952         reload_reg_rtx_for_input instead of reg_rtx when recording
7953         input reloads.  Set or clear reg_reloaded_call_part_clobbered
7954         at the same time as setting reg_reloaded_valid.
7955         (delete_output_reload): Add a new_reload_reg parameter and use it
7956         instead of rld[j].reg_rtx.
7957         (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
7958         calls accordingly.
7959
7960 2008-03-25  Tom Tromey  <tromey@redhat.com>
7961
7962         * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
7963         (build/genattr.o): Likewise.
7964         (build/genattrtab.o): Likewise.
7965         (build/gencodes.o): Likewise.
7966         (build/genconfig.o): Likewise.
7967         (build/genconstants.o): Likewise.
7968         (build/genemit.o): Likewise.
7969         (build/genextract.o): Likewise.
7970         (build/genflags.o): Likewise.
7971
7972 2008-03-25  Bob Wilson  <bob.wilson@acm.org>
7973         
7974         * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
7975         instead of size_int for integer types.
7976         (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
7977         to match type of MINUS_EXPR.
7978         
7979 2008-03-25  Tom Tromey  <tromey@redhat.com>
7980
7981         * configure: Rebuilt.
7982         * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
7983         Makefile.
7984
7985 2008-03-25  Tom Tromey  <tromey@redhat.com>
7986
7987         * config/x-solaris (host-solaris.o): Update.
7988         * config/x-linux (host-linux.o): Update.
7989         * config/x-hpux (host-hpux.o): Update.
7990         * config/x-darwin (host-darwin.o): Update.
7991         * config/v850/t-v850e (v850-c.o): Update.
7992         * config/v850/t-v850 (v850-c.o): Update.
7993         * config/t-vxworks (vxworks.o): Update.
7994         * config/t-sol2 (sol2-c.o, sol2.o): Update.
7995         * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
7996         * config/spu/t-spu-elf (spu-c.o): Update.
7997         (spu.o): Remove.
7998         * config/sh/t-symbian (sh-c.o): Update.
7999         (symbian.o): Update.
8000         * config/sh/t-sh (sh-c.o): Update.
8001         * config/score/t-score-elf (score7.o, score3.o): Update.
8002         * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
8003         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
8004         * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
8005         * config/rs6000/t-rs6000 (rs6000-c.o): Update.
8006         (rs6000.o): Remove.
8007         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
8008         * config/m32c/t-m32c (m32c-pragma.o): Update.
8009         * config/ia64/t-ia64 (ia64-c.o): Update.
8010         * config/i386/x-mingw32 (host-mingw32.o): Update.
8011         * config/i386/x-i386 (driver-i386.o): Update.
8012         * config/i386/x-darwin (host-i386-darwin.o): Update.
8013         * config/i386/x-cygwin (host-cygwin.o): Update.
8014         * config/i386/t-nwld (nwld.o): Update.
8015         * config/i386/t-netware (netware.o): Update.
8016         * config/i386/t-interix (winnt.o): Update.
8017         * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
8018         * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
8019         msformat-c.o): Update.
8020         * config/bfin/t-bfin-linux (generated_files): Add
8021         linux-sysroot-suffix.h.
8022         * config/arm/t-wince-pe (pe.o): Update.
8023         * config/arm/t-strongarm-pe (pe.o): Update.
8024         * config/arm/t-pe (pe.o): Update.
8025         * config/arm/t-arm (arm-c.o): Update.
8026         * doc/install.texi (Prerequisites): Require make 3.80.
8027         * Makefile.in: Remove .o targets.
8028         (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
8029         (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
8030         (simple_generated_h, simple_generated_c): Move earlier.
8031         (generated_files): New variable.
8032         (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
8033         TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
8034         BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
8035         ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
8036         REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
8037         CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
8038         CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
8039         INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
8040         PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
8041         TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
8042         DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
8043         VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
8044         (.c.o): Remove.
8045         (COMPILE.base, COMPILE): New variables.
8046         (%.o): New pattern rule.
8047         (ALL_HOST_OBJS): New variable.
8048         (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
8049         (dummy-checksum.o, cc1-checksum.o): Remove.
8050         (DRIVER_SHLIB): New variable.
8051         (DRIVER_DEFINES): Use it.
8052         (gencondmd.c): Move out of build/.
8053         (s-conditions): Update.
8054         (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
8055         (ALL_BUILD_OBJS): Likewise.
8056         (build/%.o): Use BUILDCOMPILE.
8057         (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
8058         build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
8059         build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
8060         build/gencheck.o, build/gencodes.o, build/genconditions.o,
8061         build/genconfig.o, build/genconstants.o, build/genemit.o,
8062         build/genextract.o, build/genflags.o, build/genmddeps.o,
8063         build/genopinit.o, build/genoutput.o, build/genpeep.o,
8064         build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
8065         build/gen-protos.o, build/scan.o, build/fix-header.o,
8066         build/scan-decls.o): Simplify.
8067         (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
8068         cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
8069         prefix.o, toplev.o): Reduce to variable setting.
8070         (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
8071         ($(out_object_file), gcc-options.o): New targets.
8072         ($(ALL_HOST_OBJS)): New target.  Include dependency files.
8073         * configure: Rebuilt.
8074         * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
8075         * doc/sourcebuild.texi (Front End Directory): Document new variable.
8076
8077 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
8078
8079         * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
8080         complain when we hit an error, return ERROR_MARK_NODE.
8081
8082 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
8083
8084         * config/sh/constraints.md (Pso, Psz): New constraints.
8085         * config/sh/sh.c (print_operand): Add %V and %W operand codes.
8086         * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
8087
8088 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
8089
8090         * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
8091         * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
8092
8093 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
8094
8095         * config/sh/sh.md (prefetch): Add condition for SH2A target.
8096         (prefetch_sh2a): New.   
8097
8098 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
8099             Naveen.H.S  <naveen.hs@kpitcummins.com>
8100
8101         * config/sh/constraints.md (I28): New constraint.
8102         * config/sh/sh.c (broken_move): Add support for movi20s.
8103         * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
8104
8105 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
8106             Jayant Sonar  <Jayant.sonar@kpitcummins.com>
8107             Naveen.H.S  <naveen.hs@kpitcummins.com>
8108
8109         * config/sh/sh.c (SH_ATTRIBUTES): Define.
8110         (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
8111         (print_operand): Handle resbank in %@ operand code.
8112         (sh_encode_section_info): New.
8113         (push_regs): Add conditions for resbank.
8114         (sh_expand_epilogue): Likewise.
8115         (sh_insert_attributes): Likewise.
8116         (sh_attribute_table): Likewise.
8117         (sh_handle_resbank_handler_attribute): New.
8118         (sh2a_handle_function_vector_handler_attribute): New.
8119         (sh2a_is_function_vector_call): New.
8120         (sh2a_get_function_vector_number): New.
8121         (sh2a_function_vector_p): New.
8122         (sh_cfun_resbank_handler_p): New.
8123         * config/sh/sh.md (calli): Emit jsr/n if possible.
8124         (calli_tbr_rel): New.
8125         (calli_pcrel): Emit jsr/n if possible.
8126         (return_i): Emit rts/n if possible.
8127         (call_valuei_tbr_rel): New.
8128         (call_valuei_pcrel): Add condition for SH2A target.
8129         (call_value): Likewise.
8130         * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
8131         (sh2a_get_function_vector_number): Likewise.
8132         (sh2a_is_function_vector_call): Likewise.
8133         * doc/extend.texi: Document TBR relative addressing of SH2A.
8134         (resbank): Add description for SH2A.
8135
8136 2008-03-24  Richard Guenther  <rguenther@suse.de>
8137
8138         PR c/22371
8139         * gimplify.c (gimplify_modify_expr): For frontend type-correct
8140         pointer assignments change conversions according to middle-end rules.
8141         (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
8142         * configure.ac: Include type checking in yes.
8143         * configure: Regenerate.
8144
8145 2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8146
8147         * diagnostic.c (diagnostic_count_diagnostic): Delete.
8148         (diagnostic_report_diagnostic): Update. Handle ICEs here.
8149         
8150 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
8151
8152         * gthr-vxworks.h (UNUSED): Define.
8153
8154 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
8155
8156         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
8157
8158 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
8159
8160         * doc/extend.texi (Function Attributes): Add missing comma in the
8161         example of the "alloc_size" attribute.
8162         
8163 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
8164
8165         Revert:
8166         2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
8167
8168         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
8169         32bit host.
8170
8171         2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
8172
8173         PR target/35496
8174         * stor-layout.c (update_alignment_for_field): Set minimum alignment
8175         of the underlying type of a MS bitfield layout to the natural
8176         alignment of the type.
8177
8178         2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
8179
8180         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
8181         to their natural alignment to avoid store forwarding stalls.
8182
8183 2008-03-22  Richard Guenther  <rguenther@suse.de>
8184
8185         * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
8186         For PHI nodes verify the address is invariant.
8187         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
8188         (get_symbol_constant_value): Use is_gimple_min_invariant.
8189         (maybe_fold_stmt_indirect): Likewise.
8190
8191 2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>
8192
8193         PR rtl-optimization/33927
8194         * Makefile.in (dse.o): Depend on $(TM_P_H).
8195         * expr.h (extract_low_bits): Declare.
8196         * expmed.c (extract_low_bits): New function.
8197         * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
8198         * dse.c: Include tm_p.h.
8199         (find_shift_sequence): Remove the read_reg argument and return the
8200         read value.  Emit the instructions instead of returning them.
8201         Iterate on new_mode rather than calculating it each time.
8202         Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
8203         source to NEW_MODE and extract_low_bits to convert the shifted
8204         value to READ_MODE.
8205         (replace_read): Allow the load and store to have different mode
8206         classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
8207         or extraction instructions before trying the replacement.  Update
8208         dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
8209
8210 2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
8211
8212         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
8213         to their natural alignment to avoid store forwarding stalls.
8214
8215 2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8216
8217         PR target/27946
8218         * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
8219         encouraging but not allowing gprs for input;
8220         change the input constraint to !f#r.
8221         (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
8222         gprs for output;
8223         change the output constraint to !f#r.
8224
8225 2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
8226
8227         PR target/13958
8228         * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
8229         corresponding post-reload splitters.
8230         ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
8231         when x87 FP math is selected.
8232         * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
8233         New function prototype.
8234         * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
8235         unreachable function to ease macroization of insn patterns.
8236
8237 2008-03-21  Martin Jambor  <mjambor@suse.cz>
8238
8239         * tree-data-ref.c (dump_data_dependence_relation): Avoid data
8240         reference dumps if ddr is NULL or dependence is unknown.
8241
8242 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
8243
8244         * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
8245         unsigned extension into account.
8246         (ATOMIC_COMPARE_AND_SWAP): Likewise.
8247         (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
8248         Do computations on a scratch register.
8249
8250 2008-03-21  Richard Guenther  <rguenther@suse.de>
8251
8252         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
8253         Use is_gimple_min_invariant instead of TREE_INVARIANT.
8254         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
8255         * tree-ssa-dom.c (record_equality): Likewise.
8256         * tree-inline.c (copy_body_r): Likewise.
8257         * tree-ssa-pre.c (make_values_for_stmt): Remove test for
8258         TREE_INVARIANT.
8259
8260 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
8261
8262         * config/sh/sh.c (split_branches): Pass zero to redirect_jump
8263         as 'delete_unused' argument.
8264
8265 2008-03-20  Richard Guenther  <rguenther@suse.de>
8266
8267         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
8268         special casing of constant qualifiers.
8269         * tree-ssa.c (useless_type_conversion_p_1): Instead do not
8270         care about them in general.
8271         * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
8272         regardless of their type.
8273         (fold_stmt_r): Forcefully fold *& if we end up with that.
8274
8275 2008-03-20  Paul Brook  <paul@codesourcery.com>
8276
8277         * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
8278         * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
8279         linker flags.
8280         * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
8281         definition.
8282         (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
8283         * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
8284
8285 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
8286
8287         * common.opt (Wmudflap): New option.
8288         * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
8289         (mx_register_decls): Likewise.
8290         (mudflap_finish_file): Likewise.
8291         * doc/invoke.texi: Document -Wno-mudflap.
8292
8293 2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
8294
8295         * c-format.c (replace_format_name_to_system_name): New.
8296         (cmp_attribs): New.
8297         (convert_format_name_to_system_name): New.
8298         (decode_format_attr): Add use of convert_format_name_to_system_name.
8299         (format_types_orig): Add gnu_ prefix to names.
8300         (check_format_info_main): Special treating of \0 escaped names for
8301         supporting multi-character format specifiers as I32, I64.
8302         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
8303         (gnu_target_overrides_format_attributes): New.
8304         * c-format.h: Add structure target_ovr_attr to hold
8305         system specific formatter names.
8306         * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
8307         msformat-c.o file to c_target_objs and cxx_target_objs.
8308         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
8309         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
8310         (TARGET_N_FORMAT_TYPES): New.
8311         * config/i386/msformat-c.c: New.
8312         * config/i386/t-cygming: Add build rule for msformat-c.o.
8313         * doc/extend.texi: Add new format names gnu_* and ms_* and
8314         further details.
8315         * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
8316
8317 2008-03-20  Ira Rosen  <irar@il.ibm.com>
8318
8319         * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
8320         optimizations turned on under -O3.
8321         (ftree-vectorize): Add that the flag is turned on with -O3.
8322
8323 2008-03-20  Ben Elliston  <bje@au.ibm.com>
8324
8325         * regmove.c (try_auto_increment): Fix spelling error in comment.
8326         * final.c (final_scan_insn): Likewise.
8327
8328 2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
8329
8330         PR target/14552
8331         * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
8332         allocator preferences for "y" and "r" class registers.
8333         ("*mov<mode>_internal"): Ditto.
8334         ("*movv2sf_internal_rex64"): Ditto.
8335         ("*movv2sf_internal"): Ditto.
8336
8337 2008-03-19  Michael Matz  <matz@suse.de>
8338
8339         PR middle-end/35616
8340         * calls.c (expand_call): Check overlap of arguments with call
8341         address for sibcalls.
8342
8343 2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
8344
8345         PR target/35496
8346         * stor-layout.c (update_alignment_for_field): Set minimum alignment
8347         of the underlying type of a MS bitfield layout to the natural
8348         alignment of the type.
8349
8350 2008-03-19  Jan Hubicka  <jh@suse.cz>
8351
8352         PR other/35094
8353         * toplev.c (decode_d_option): Handle all CPP flags.
8354         * tree-vrp.c: Update tree_pass descriptors.
8355         * regrename.c: Update tree_pass descriptors.
8356         * fwprop.c: Update tree_pass descriptors.
8357         * doc/invoke.texi: Remove documentation of dropped -d? flags.
8358         * tree-into-ssa.c: Update tree_pass descriptors.
8359         * tree-dump.c: Update tree_pass descriptors.
8360         * tree-complex.c: Update tree_pass descriptors.
8361         * tree-dump.h: Update tree_pass descriptors.
8362         * see.c: Update tree_pass descriptors.
8363         * cgraphbuild.c: Update tree_pass descriptors.
8364         * tracer.c: Update tree_pass descriptors.
8365         * tree-loop-distribution.c: Update tree_pass descriptors.
8366         * cgraph.c: Update tree_pass descriptors.
8367         * postreload-gcse.c: Update tree_pass descriptors.
8368         * postreload.c: Update tree_pass descriptors.
8369         * tree-ssa-loop-ch.c: Update tree_pass descriptors.
8370         * tree-tailcall.c: Update tree_pass descriptors.
8371         * tree-pass.h (tree_opt_pass): Rename to ...
8372         (opt_pass) ... this one; add "type" field and remove letter field.
8373         (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
8374         (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
8375         all_lowering_passes): Update declaration.
8376         * ipa-cp.c: Update tree_pass descriptors.
8377         * final.c: Update tree_pass descriptors.
8378         * omp-low.c: Update tree_pass descriptors.
8379         * tree-ssa-dse.c: Update tree_pass descriptors.
8380         * ipa-reference.c: Update tree_pass descriptors.
8381         * tree-ssa-uncprop.c: Update tree_pass descriptors.
8382         * auto-inc-dec.c: Update tree_pass descriptors.
8383         * reorg.c: Update tree_pass descriptors.
8384         * cgraphunit.c: Update tree_pass descriptors.
8385         * tree-ssa-copyrename.c: Update tree_pass descriptors.
8386         * tree-ssa-ccp.c: Update tree_pass descriptors.
8387         * df-core.c: Update tree_pass descriptors.
8388         * mode-switching.c: Update tree_pass descriptors.
8389         * tree-nomudflap.c: Update tree_pass descriptors.
8390         * modulo-sched.c: Update tree_pass descriptors.
8391         * ipa-pure-const.c: Update tree_pass descriptors.
8392         * cse.c: Update tree_pass descriptors.
8393         * web.c: Update tree_pass descriptors.
8394         * tree-stdarg.c: Update tree_pass descriptors.
8395         * tree-ssa-math-opts.c: Update tree_pass descriptors.
8396         * tree-ssa-dom.c: Update tree_pass descriptors.
8397         * tree-nrv.c: Update tree_pass descriptors.
8398         * tree-ssa-alias.c: Update tree_pass descriptors.
8399         * loop-init.c: Update tree_pass descriptors.
8400         * gimple-low.c: Update tree_pass descriptors.
8401         * ipa-inline.c: Update tree_pass descriptors.
8402         * tree-ssa-sink.c: Update tree_pass descriptors.
8403         * global.c: Update tree_pass descriptors.
8404         * ifcvt.c: Update tree_pass descriptors.
8405         * jump.c: Update tree_pass descriptors.
8406         * predict.c: Update tree_pass descriptors.
8407         * tree-ssa-loop.c: Update tree_pass descriptors.
8408         * recog.c: Update tree_pass descriptors.
8409         * dse.c: Update tree_pass descriptors.
8410         * tree-ssa-ifcombine.c: Update tree_pass descriptors.
8411         * tree-eh.c: Update tree_pass descriptors.
8412         * regmove.c: Update tree_pass descriptors.
8413         * local-alloc.c
8414         * function.c: Update tree_pass descriptors.
8415         * tree-vectorizer.c: Update tree_pass descriptors.
8416         * gcse.c: Update tree_pass descriptors.
8417         * ipa-type-escape.c: Update tree_pass descriptors.
8418         * tree-if-conv.c: Update tree_pass descriptors.
8419         * init-regs.c: Update tree_pass descriptors.
8420         * ipa.c: Update tree_pass descriptors.
8421         * tree-ssa-phiopt.c: Update tree_pass descriptors.
8422         * rtl-factoring.c: Update tree_pass descriptors.
8423         * lower-subreg.c: Update tree_pass descriptors.
8424         * bt-load.c: Update tree_pass descriptors.
8425         * tree-dfa.c: Update tree_pass descriptors.
8426         * except.c: Update tree_pass descriptors.
8427         * emit-rtl.c: Update tree_pass descriptors.
8428         * cfgexpand.c: Update tree_pass descriptors.
8429         * tree-cfgcleanup.c: Update tree_pass descriptors.
8430         * cfgcleanup.c: Update tree_pass descriptors.
8431         * tree-ssa-pre.c: Update tree_pass descriptors.
8432         * tree-sra.c: Update tree_pass descriptors.
8433         * tree-mudflap.c: Update tree_pass descriptors.
8434         * tree-ssa-copy.c: Update tree_pass descriptors.
8435         * cfglayout.c: Update tree_pass descriptors.
8436         * tree-ssa-forwprop.c: Update tree_pass descriptors.
8437         * tree-ssa-dce.c: Update tree_pass descriptors.
8438         * tree-ssa.c: Update tree_pass descriptors.
8439         * regclass.c: Update tree_pass descriptors.
8440         * integrate.c: Update tree_pass descriptors.
8441         * tree-optimize.c: Update tree_pass descriptors.
8442         * tree-ssa-phiprop.c: Update tree_pass descriptors.
8443         * tree-object-size.c: Update tree_pass descriptors.
8444         * combine.c: Update tree_pass descriptors.
8445         * tree-outof-ssa.c: Update tree_pass descriptors.
8446         * bb-reorder.c: Update tree_pass descriptors.
8447         * stack-ptr-mod.c: Update tree_pass descriptors.
8448         * var-tracking.c: Update tree_pass descriptors.
8449         * tree-profile.c: Update tree_pass descriptors.
8450         * tree-vect-generic.c: Update tree_pass descriptors.
8451         * reg-stack.c: Update tree_pass descriptors.
8452         * sched-rgn.c: Update tree_pass descriptors.
8453         * tree-ssa-structalias.c: Update tree_pass descriptors.
8454         * tree-cfg.c: Update tree_pass descriptors.
8455         * passes.c (current_pass): Update declaration.
8456         (finish_optimization_passes): Update.
8457         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
8458         (register_one_dump_file, register_dump_files_1, next_pass_1):
8459         Update arguments.
8460         (init_optimization_passes): Update handling of new types.
8461         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
8462         * ipa-struct-reorg.c: Update tree_pass descriptors.
8463         * tree-ssa-reassoc.c: Update tree_pass descriptors.
8464         * combine-stack-adj.c: Update tree_pass descriptors.
8465         * cfgrtl.c: Update tree_pass descriptors.
8466         * dce.c: Update tree_pass descriptors.
8467         * tree-ssanames.c: Update tree_pass descriptors.
8468
8469 2008-03-19  Richard Guenther  <rguenther@suse.de>
8470
8471         PR middle-end/35609
8472         * tree-ssa.c (walk_data): New structure.
8473         (warn_uninitialized_var): If not always_executed warn with "maybe"
8474         instead of "is".
8475         (execute_early_warn_uninitialized): Compute post-dominators.
8476         Initialize always_executed before processing each basic block.
8477
8478 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
8479
8480         PR target/35504
8481         * config/i386/i386.c (x86_this_parameter): Calculate correct location
8482         of "this" pointer when "regparm = N" or "fastcall" is in effect.
8483
8484 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8485
8486         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
8487
8488 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
8489
8490         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
8491         is true.
8492         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
8493         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
8494         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
8495         target after ignore has been set, and move there also the commputation
8496         of subtarget and original_target.
8497         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
8498         (LANG_HOOKS_INITIALIZER): Remove it.
8499         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
8500
8501 2008-03-18  Richard Guenther  <rguenther@suse.de>
8502
8503         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
8504         found an expression with constants, note that in the VN for the lhs.
8505         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
8506         fold them to constants if possible.  Run cleanup_cfg if done so.
8507         (execute_pre): Return todo.
8508         (do_pre): Likewise.
8509         (execute_fre): Likewise.
8510         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
8511         of constants.
8512         (get_prop_source_stmt): Look through pointer conversions.
8513
8514 2008-03-18  Jan Hubicka  <jh@suse.cz>
8515
8516         * tree-pretty-print.c: Include predict.h.
8517         (dump_generic_node): Dump predictor.
8518         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
8519         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
8520         * gimple-low.c (lower_stmt): Likewise.
8521         * expr.c (expand_expr_real): Likewise.
8522         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
8523         them.
8524         (build_predict_expr, build_predict_expr): New.
8525         * predict.h (predictor_name, build_predict_expr): Update.
8526         * c-typeck.c (c_finish_bc_stmt): Add prediction.
8527         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
8528         * predict.def (PRED_CONTINUE): Update hitrate.
8529         * tree.def (PREDICT_EXPR): Define.
8530         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
8531         do not handle BIND_EXPR.
8532         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
8533         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
8534         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
8535         operands.
8536
8537 2008-03-18  Michael Matz  <matz@suse.de>
8538
8539         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
8540
8541 2008-03-18  Richard Guenther  <rguenther@suse.de>
8542
8543         * tree-gimple.h (is_gimple_invariant_address): Declare.
8544         (is_gimple_constant): Likewise.
8545         * tree-gimple.c (is_gimple_constant): New function.
8546         (is_gimple_invariant_address): Likewise.
8547         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
8548         and is_gimple_invariant_address.
8549         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
8550         previous change.
8551         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
8552         an addressable base.
8553
8554 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
8555
8556         PR middle-end/35611
8557         * gimplify.c (gimplify_expr): Gimplify second operand of
8558         OMP_ATOMIC_LOAD.
8559
8560 2008-03-17  Richard Guenther  <rguenther@suse.de>
8561
8562         PR tree-optimization/19637
8563         * fold-const.c (fold_unary): Remove restrictions of removing
8564         intermediate pointer-conversions (P2)(P1)P0.
8565         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
8566         conversion to void pointer.
8567         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
8568
8569 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
8570
8571         PR debug/31510
8572         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
8573         emulated thread local variables.
8574
8575 2008-03-16  Richard Guenther  <rguenther@suse.de>
8576
8577         PR middle-end/35607
8578         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
8579         expand TREE_INVARIANT operations that are not gimple invariant.
8580
8581 2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
8582
8583         * doc/extend.texi (Alignment): Say that the ABI controls
8584         the __alignof__ for non-strict-alignment targets rather
8585         than being a recommendation.
8586
8587 2008-03-15  Paul Brook  <paul@codesourcery.com>
8588
8589         * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
8590         annotations.
8591         (arm_output_fn_unwind): Mark functions that can not be unwound.
8592
8593 2008-03-15  Paul Brook  <paul@codesourcery.com>
8594
8595         * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
8596         extension instructions.
8597
8598 2008-03-15  Richard Guenther  <rguenther@suse.de>
8599
8600         * tree-ssa-ccp.c (ccp_fold): Also read from constant values
8601         and fold constant aggregate refs.
8602         (fold_const_aggregate_ref): Handle string constants
8603         and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
8604         (evaluate_stmt): Simplify now that ccp_fold folds constant
8605         aggregate refs.
8606
8607 2008-03-15  Paul Brook  <paul@codesourcery.com>
8608
8609         * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
8610         (extzv): Use gen_extzv_t2.
8611         (insv_t2, insv_zero, extv, extzv_t2): New patterns.
8612
8613 2008-03-15  Richard Guenther  <rguenther@suse.de>
8614
8615         * tree-ssa-ccp.c (get_symbol_constant_value): Export.
8616         (fold_const_aggregate_ref): Likewise.
8617         (get_value): Return NULL if we don't have any values.
8618         (ccp_finalize): Set const_val to NULL after freeing it.
8619         * tree-flow.h (get_symbol_constant_value): Declare.
8620         (fold_const_aggregate_ref): Likewise.
8621         * tree-ssa-sccvn.c (try_to_simplify): Use them.
8622
8623 2008-03-15  Richard Guenther  <rguenther@suse.de>
8624
8625         PR middle-end/35593
8626         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
8627         to not produce negative array indices if not allowed.  Add
8628         parameter to indicate that.
8629         (maybe_fold_offset_to_component_ref): Allow negative array
8630         indices only for the first member of a structure.
8631         (maybe_fold_offset_to_reference): Allow negative array indices.
8632         (maybe_fold_stmt_addition): Likewise.
8633
8634 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
8635             Anatoly Sokolov <aesok@post.ru>
8636
8637         * config/avr/avr.c (avr_arch_types): Add avr6 entry.
8638         (avr_arch): Add ARCH_AVR6.
8639         (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
8640         (initial_elimination_offset): Initialize and use 'avr_pc_size' 
8641         instead of fixed value 2.
8642         (print_operand_address): Use gs() asm specifier instead of pm().
8643         (avr_assemble_integer): (Ditto.).
8644         (avr_output_addr_vec_elt): (Ditto.).
8645         (print_operand): Handle "!" code.
8646         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add 
8647         __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
8648         (AVR_HAVE_EIJMP_EICALL): Define.
8649         (AVR_3_BYTE_PC): Redefine.
8650         (AVR_2_BYTE_PC): (Ditto.).
8651         (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
8652         (LINK_SPEC): Add atmega2560 and atmega2561.
8653         (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561 
8654         (crtm2561.o).
8655         * config/avr/avr.md (call_insn): Use eicall instead of icall 
8656         for 3 byte PC devices.
8657         (call_value_insn): (Ditto.).
8658         (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
8659         (indirect_jump): Use only for for 2 byte PC devices.
8660         (*tablejump): (Ditto.).
8661         (*indirect_jump_avr6): Add insn.
8662         (*tablejump_rjmp): Don't use for 3 byte PC devices.
8663         * config/avr/libgcc.S (__prologue_saves__): Use eijmp 
8664         instead of ijmp for 3 byte PC devices.
8665         (__tablejump2__): (Ditto.).
8666         * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
8667         (MULITLIB_DIRNAMES): (Ditto.). 
8668         (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
8669
8670 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
8671
8672         * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
8673         "sse2_umulsidi3".  Use V1DI mode for operand 0.
8674         ("mmx_psadbw"): Use V1DI mode for operand 0.
8675         * config/i386/i386-modes.def (V1SI): New vector mode.
8676         * config/i386/i386.c (struct builtin_description)
8677         [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
8678         (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
8679         (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
8680         (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
8681         v1di_ftype_v8qi_v8qi type.
8682         [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
8683
8684         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
8685         __builtin_ia32_pmuludq]: Fix the mode of return value.
8686
8687 2008-03-15  Richard Guenther  <rguenther@suse.de>
8688
8689         PR middle-end/35595
8690         * tree-ssa-pre.c (bitmap_find_leader): Handle expression
8691         being a PHI_NODE.
8692
8693 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
8694         
8695         * doc/invoke.texi (Option Summary, Xtensa Options): Document
8696         -mserialize-volatile and -mno-serialize-volatile Xtensa options.
8697         * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
8698         unless TARGET_SERIALIZE_VOLATILE is enabled.
8699         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
8700         * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
8701         * config/xtensa/xtensa.opt (mserialize_volatile): New option.
8702
8703 2008-03-14  Richard Guenther  <rguenther@suse.de>
8704
8705         PR tree-optimization/34172
8706         * tree-flow.h (refs_may_alias_p): Declare.
8707         (get_single_def_stmt): Likewise.
8708         (get_single_def_stmt_from_phi): Likewise.
8709         (get_single_def_stmt_with_phi): Likewise.
8710         * tree-dfa.c (refs_may_alias_p): New function.
8711         (get_single_def_stmt): Likewise.
8712         (get_single_def_stmt_from_phi): Likewise.
8713         (get_single_def_stmt_with_phi): Likewise.
8714         * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
8715         (vn_reference_lookup_1): New helper function.
8716         (vn_reference_lookup): Walk the virtual use-def chain to
8717         continue searching for a match if the def does not alias the
8718         reference we are looking for.
8719
8720 2008-03-14  David Edelsohn  <edelsohn@gnu.org>
8721
8722         * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
8723         archive and Perzl.  Update The Written Word listing.
8724
8725 2008-03-14  Richard Guenther  <rguenther@suse.de>
8726
8727         PR tree-optimization/34043
8728         PR tree-optimization/33989
8729         * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
8730         when doing FRE.
8731         (bitmap_find_leader): Use extra argument to verify dominance
8732         relationship inside a basic-block.
8733         (can_PRE_operation): Add VIEW_CONVERT_EXPR.
8734         (find_leader_in_sets): Adjust.
8735         (create_component_ref_by_pieces): Take extra argument for
8736         dominance check, handle lookup failures.
8737         (find_or_generate_expression): Likewise.
8738         (create_expression_by_pieces): Likewise.
8739         (insert_into_preds_of_block): Adjust.
8740         (create_value_expr_from): If asked for, verify all operands
8741         are in the blocks AVAIL_OUT set.
8742         (make_values_for_stmt): Check for SSA_NAMEs that are life
8743         over an abnormal edge.
8744         (compute_avail): Remove such check.
8745         (do_SCCVN_insertion): New function.
8746         (eliminate): If we do not find a leader suitable for replacement
8747         insert a replacement expression from SCCVN if available.
8748         * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
8749         (struct vn_ssa_aux): Add needs_insertion flag.
8750         * tree-ssa-sccvn.c (may_insert): New global flag.
8751         (copy_reference_ops_from_ref): Value-number union member access
8752         based on its size, not type and member if insertion is allowed.
8753         (visit_reference_op_load): For a weak match from union type
8754         punning lookup a view-converted value and insert a SSA_NAME
8755         for that value if that is not found.
8756         (visit_use): Make dumps shorter.  Do not disallow value numbering
8757         SSA_NAMEs that are life over an abnormal edge to constants.
8758         (free_scc_vn): Release inserted SSA_NAMEs.
8759         (run_scc_vn): New flag to specify whether insertion is allowed.
8760         Process SSA_NAMEs in forward order.
8761         * tree-ssa-loop-im.c (for_each_index): Handle invariant
8762         ADDR_EXPRs inside VIEW_CONVERT_EXPR.
8763         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
8764         pointer type to/from integral types that do not change the
8765         precision to regular conversions.
8766
8767 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
8768
8769         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
8770         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
8771         __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
8772         __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
8773         input arguments and the mode of return value.  Built-in functions
8774         that operate on whole 64-bit MMX register now use V1DI mode.
8775
8776 2008-03-13  Alon Dayan  <alond@il.ibm.com>
8777             Olga Golovanevsky  <olga@il.ibm.com>
8778
8779         PR tree-optimization/35041
8780         * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
8781         to locate the right position in a statement.
8782
8783 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
8784
8785         PR target/34000
8786         PR target/35553
8787         * config/i386/xmmintrin.h:  Change all static inline functions to
8788         extern inline and add __gnu_inline__ attribute.
8789         * config/i386/bmintrin.h: Ditto.
8790         * config/i386/smmintrin.h: Ditto.
8791         * config/i386/tmmintrin.h: Ditto.
8792         * config/i386/mmintrin-common.h: Ditto.
8793         * config/i386/ammintrin.h: Ditto.
8794         * config/i386/emmintrin.h: Ditto.
8795         * config/i386/pmmintrin.h: Ditto.
8796         * config/i386/mmintrin.h: Ditto.
8797         * config/i386/mm3dnow.h: Ditto.
8798
8799 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
8800
8801         PR middle-end/35185
8802         * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
8803         (lower_omp_2): New function.
8804         (lower_omp_1, lower_omp): Rewritten.
8805
8806 2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
8807
8808         PR 35054
8809         * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
8810         with the phrase "Microsoft Windows compilers".
8811         (Push/Pop Macro Pragmas): New subsection. Document
8812         #pragma push_macro and pragma pop_macro.
8813
8814 2008-03-12  Paul Brook  <paul@codesourcery.com>
8815
8816         * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
8817
8818 2008-03-12  Paul Brook  <paul@codesourcery.com>
8819
8820         * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
8821         (thumb2_alusi3_short): Exclude PLUS and MINUS.
8822         (thumb2_addsi_shortim): Rename ...
8823         (thumb2_addsi_short): ... to this.  Allow register operands.
8824         (thumb2_subsi_short): New pattern.
8825         (thumb2_one_cmplsi2_short,
8826         thumb2_negsi2_short): New patterns and peepholes.
8827
8828 2008-03-12  Paul Brook  <paul@codesourcery.com>
8829
8830         * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
8831
8832 2008-03-12  Uros Bizjak  <ubizjak@gmail.com>
8833
8834         * config/i386/i386.md (int_cond): New code iterator.
8835         (fp_cond): Ditto.
8836         ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
8837         sge, sgeu, sle and sleu expanders usign int_cond code iterator.
8838         ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
8839         sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
8840         ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
8841         bge, bgeu, ble and bleu expanders usign int_cond code iterator.
8842         ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
8843         bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
8844
8845 2008-03-12  Paul Brook  <paul@codesourcery.com>
8846
8847         * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
8848         instead of {arm,thumb}_compute_save_reg_mask.
8849         (output_return_instruction): Ditto.
8850         (thumb_unexpanded_epilogue): Ditto.
8851         (thumb1_expand_prologue): Ditto.
8852         (thumb1_output_function_prologue): Ditto.
8853         (arm_set_return_address): Ditto.
8854         (thumb_set_return_address): Ditto.
8855         (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
8856         regs to achieve stack alignment.
8857         (thumb1_compute_save_reg_mask): Fix compiler warning.
8858         (arm_output_epilogue): Use offsets->saved_regs_mask.
8859         Adjust stack pointer by poping call clobered registers.
8860         (arm_expand_prologue): Use offsets->saved_regs_mask.
8861         Adjust stack pointer by pushing extra registers.
8862         * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
8863
8864 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
8865
8866         PR tree-opt/35422
8867         * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
8868         conversion to the operands of a multiplication.
8869
8870 2008-03-12  Richard Guenther  <rguenther@suse.de>
8871
8872         * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
8873         (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
8874         * timevar.def (TV_TREE_PHIPROP): Add.
8875         * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
8876         pass description.  Use TV_TREE_PHIPROP.
8877         * tree-ssa-forwprop.c: Remove phiprop code.
8878
8879 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
8880
8881         PR middle-end/35549
8882         * omp-low.c (maybe_lookup_decl): Constify first argument.
8883         (use_pointer_for_field): Change last argument from bool to
8884         omp_context *.  Disallow shared copy-in/out in nested
8885         parallel if decl is shared in outer parallel too.
8886         (build_outer_var_ref, scan_sharing_clauses,
8887         lower_rec_input_clauses, lower_copyprivate_clauses,
8888         lower_send_clauses, lower_send_shared_vars): Adjust callers.
8889
8890 2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
8891             Ira Rosen  <irar@il.ibm.com>
8892
8893         * tree-vectorizer.c (free_stmt_vec_info): New function.
8894         (destroy_loop_vec_info): Move code to free_stmt_vec_info().
8895         Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
8896         * tree-vectorizer.h (free_stmt_vec_info): Declare.
8897         * tree-vect-transform.c (vectorizable_conversion): Free
8898         vec_oprnds0 if it was allocated.
8899         (vect_permute_store_chain): Remove unused VECs.
8900         (vectorizable_store): Free VECs that are allocated in the..
8901         function.
8902         (vect_transform_strided_load, vectorizable_load): Likewise.
8903         (vect_remove_stores): Simplify the code.
8904         (vect_transform_loop): Move code to vect_remove_stores().
8905         Call vect_remove_stores() and free_stmt_vec_info().
8906
8907 2008-03-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8908
8909         * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
8910         TARGET_HPUX.  Revise comment.
8911         (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
8912         * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
8913         Use sr4 variant of `be' instruction when not generating PIC code.
8914         (attr_length_call): Adjust for above change.
8915
8916 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8917
8918         * ipa-reference.c (static_execute): Remove module_statics_const and
8919         associated setting code.
8920
8921 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
8922
8923         PR target/35540
8924         * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
8925         predicate for operand 1.
8926         (paritysi2_cmp): Use register_operand predicate for operand 2.
8927         Use earlyclobber modifier for operand 1.  Remove support for
8928         memory operands.
8929         (paritydi2_cmp): Use register_operand predicate for operand 3.
8930         Use earlyclobber modifier for operand 1.  Remove support for
8931         memory operands.
8932
8933 2008-03-11  Paul Brook  <paul@codesourcery.com>
8934             Vladimir Prus  <vladimir@codesourcery.com>
8935
8936         * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
8937         (arm_compute_save_reg0_reg12_mask): Always
8938         check if register 11 must be saved.  Always safe hard frame pointer
8939         when frame_pointer_needeed.
8940         (arm_compute_save_reg_mask): Save IP and PC
8941         only with apcs frames.
8942         (arm_output_epilogue): Adjust Thumb2 codepath to
8943         be also invoked and work for ARM non-apcs frames.
8944         (arm_expand_prologue): Don't bother saving IP
8945         for non-apcs frame, since it's not clobbered by
8946         prologue code.  Implement non-apcs frame
8947         layout.
8948
8949 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
8950
8951         PR rtl-optimization/35281
8952         * expr.c (convert_move): Use a new pseudo for the intermediate
8953         from_mode->word_mode result.
8954
8955 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
8956
8957         * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
8958         * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
8959         * toplev.c (compile_file): Don't call it.
8960
8961 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
8962
8963         PR middle-end/35526
8964         * expr.c (store_expr): Call emit_block_move if the mode
8965         of "temp" RTX is BLKmode.
8966
8967 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8968             Richard Guenther  <rguenther@suse.de>
8969
8970         PR tree-optimization/31358
8971         * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
8972         the step with a NULL_TREE.
8973         * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
8974         to sizetype if type is a pointer type.
8975         (add_candidate_1): Don't convert the base and step to
8976         the generic type if the orginal type is a pointer type.
8977         (add_iv_value_candidates): Use sizetype for the step
8978         if type is a pointer type.
8979         (cand_value_at): Likewise.
8980         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
8981         for pointer types.
8982         * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
8983         Don't convert the tem affine to the type.
8984         (add_elt_to_tree): Use sizetype for the step if a pointer.
8985         Use POINTER_PLUS_EXPR for pointers.
8986         (aff_combination_to_tree): Use sizetype for the step if a
8987         pointer.
8988
8989 2008-03-10  Vladimir Makarov  <vmakarov@redhat.com>
8990
8991         * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
8992         Remove commutativity hint.
8993
8994 2008-03-10  Jakub Jelinek  <jakub@redhat.com>
8995
8996         PR c/35438
8997         PR c/35439
8998         * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
8999         errorneous type.  Check that v is a VAR_DECL.
9000
9001         PR middle-end/35099
9002         * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
9003
9004 2008-03-10  H.J. Lu  <hongjiu.lu@intel.com>
9005
9006         PR tree-optimization/35494
9007         * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
9008         may be overriden at link and run time.
9009
9010 2008-03-10  Richard Guenther  <rguenther@suse.de>
9011
9012         PR tree-optimization/34677
9013         * tree-ssa-pre.c (modify_expr_node_pool): Remove.
9014         (poolify_tree): Likewise.
9015         (modify_expr_template): Likewise.
9016         (poolify_modify_stmt): Likewise.
9017         (insert_fake_stores): Handle all component-ref style stores
9018         in addition to INDIRECT_REF.  Also handle complex types.
9019         Do not poolify the inserted load.
9020         (realify_fake_stores): Do not rebuild the tree but only
9021         make it a SSA_NAME copy.
9022         (init_pre): Remove initialzation of modify_expr_template.
9023         Do not allocate modify_expr_node_pool.
9024         (fini_pre): Do not free modify_expr_node_pool.
9025
9026 2008-03-10  Paul Brook  <paul@codesourcery.com>
9027
9028         * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
9029         to avoid conflicts.
9030
9031 2008-03-10  Paul Brook  <paul@codesourcery.com>
9032             Mark Shinwell  <shinwell@codesourcery.com>
9033
9034         * config/arm/cortex-r4.md: New.
9035         * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
9036         insn attributes.
9037         * config/arm/arm.md: Include cortex-r4.md.
9038         (insn): Add smmls, sdiv and udiv values.
9039         (generic_sched): Don't use generic scheduling for Cortex-R4.
9040         (arm_issue_rate): New function.
9041         (TARGET_SCHED_ISSUE_RATE): Define.
9042
9043 2008-03-10  Sebastian Pop  <sebastian.pop@amd.com>
9044
9045         * doc/invoke.texi (-ftree-loop-distribution): Add an example.
9046
9047 2008-03-10  Richard Guenther  <rguenther@suse.de>
9048
9049         * tree-ssa-pre.c (get_sccvn_value): Simplify.
9050         (compute_avail): Do not add stmt uses to AVAIL_OUT.
9051
9052 2008-03-10  Paolo Bonzini  <bonzini@gnu.org>
9053
9054         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
9055         Set default to true.
9056
9057 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9058
9059         * c.opt (Wsynth): Deprecate.
9060         * doc/invoke.texi (Option Summary, Warning Options): Document
9061         -Wno-format-contains-nul.
9062
9063 2008-03-09  Uros Bizjak  <ubizjak@gmail.com>
9064
9065         PR target/35496
9066         * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
9067         ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
9068
9069 2008-03-09  Ira Rosen  <irar@il.ibm.com>
9070
9071         * config/rs6000/rs6000.c (builtin_description): Rename vector
9072         left shift operations.
9073         * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
9074         (altivec_vsl<VI_char>): Rename to ...
9075         (ashl<mode>3): ... new name.
9076         (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
9077         gen_ashlv4si3.
9078         (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
9079
9080 2008-03-08  Richard Guenther  <rguenther@suse.de>
9081
9082         * coverage.h (tree_coverage_counter_addr): Declare.
9083         * coverage.c (tree_coverage_counter_addr): New function.
9084         * tree-profile.c (tree_gen_edge_profiler): Unshare counter
9085         before using again.
9086         (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
9087         (tree_gen_one_value_profiler): Likewise.
9088         (tree_gen_ic_profiler): Likewise.
9089         (tree_gen_average_profiler): Likewise.
9090         (tree_gen_ior_profiler): Likewise.
9091
9092 2008-03-08  Richard Guenther  <rguenther@suse.de>
9093
9094         * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
9095         (vn_binary_op_insert): Likewise.
9096         (vn_unary_op_lookup): Likewise.
9097         (vn_unary_op_insert): Likewise.
9098         (vn_nary_op_lookup): Declare.
9099         (vn_nary_op_insert): Likewise.
9100         * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
9101         and binary hashes, use a single obstack for unary_op_pool
9102         and binary_op_pool.
9103         (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
9104         a single struct vn_nary_op_s.  Store tree code length and
9105         a variable number of operands.
9106         (struct vn_reference_op_struct): Remove unused op2.
9107         (vn_reference_op_eq): Do not compare op2.
9108         (vn_reference_op_compute_hash): Do not compute hash of op2.
9109         (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
9110         (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
9111         with vn_nary_op_compute_hash.
9112         (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
9113         (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
9114         vn_nary_op_lookup.
9115         (vn_unary_op_insert, vn_binary_op_insert): Replace with
9116         vn_nary_op_insert.
9117         (visit_unary_op): Call nary functions.
9118         (visit_binary_op): Likewise.
9119         (process_scc): Adjust for struct vn_tables_s changes.
9120         (allocate_vn_table): Likewise.
9121         (free_vn_table): Likewise.
9122         * tree-vn.c (vn_add): Call nary functions.
9123         (vn_lookup): Likewise.
9124
9125 2008-03-08  Jakub Jelinek  <jakub@redhat.com>
9126
9127         PR target/35498
9128         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
9129         wdst back after sync_compare_and_swapqhi_internal.
9130
9131 2008-03-08  Uros Bizjak  <ubizjak@gmail.com>
9132
9133         PR target/22152
9134         * config/i386/i386-modes.def (V1DI): New vector mode.
9135         * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
9136         * config/i386/mmx.md (MMXMODEI8): New mode iterator.
9137         (MMXMODE248): Ditto.
9138         (MMXMODE): Add V1DI mode.
9139         (mmxvecsize): Change DI mode to V1DI mode.
9140         ("mov<mode>): Use MMXMODEI8 mode iterator.
9141         ("*mov<mode>_internal_rex64"): Ditto.
9142         ("*mov<mode>_internal"): Ditto.
9143         ("mmx_add<mode>3"): Ditto.  Handle V1DImode for TARGET_SSE2.
9144         ("mmx_sub<mode>3"): Ditto.
9145         ("mmx_adddi3"): Remove insn pattern.
9146         ("mmx_subdi3"): Ditto.
9147         ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
9148         ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
9149         ("mmx_ashl<mode>3"): Ditto.
9150         ("mmx_lshrdi3"): Remove insn pattern.
9151         ("mmx_ashldi3"): Ditto.
9152         * config/i386/i386.c (classify_argument): Handle V1DImode.
9153         (function_arg_advance_32): Ditto.
9154         (function_arg_32): Ditto.
9155         (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
9156         mmx_addv1di3 insn pattern.
9157         [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
9158         [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
9159         IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
9160         IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
9161         Remove definitions of built-in functions.
9162         (V1DI_type_node): New node.
9163         (v1di_ftype_v1di_int): Ditto.
9164         (v1di_ftype_v1di_v1di): Ditto.
9165         (v2si_ftype_v2si_si): Ditto.
9166         (v4hi_ftype_v4hi_di): Remove node.
9167         (v2si_ftype_v2si_di): Ditto.
9168         (ix86_init_mmx_sse_builtins): Handle V1DImode.
9169         (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
9170         Redefine builtins using def_builtin_const with *_ftype_*_int node.
9171         (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
9172         Add new builtins using def_builtin_const.
9173         (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
9174         IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
9175         IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
9176         * config/i386/mmintrin.h (__v1di): New typedef.
9177         (_mm_add_si64): Cast arguments to __v1di type.
9178         (_mm_sub_si64): Ditto.
9179         (_mm_sll_pi16): Cast __count to __v4hi type.
9180         (_mm_sll_pi32): Cast __count to __v2si type.
9181         (_mm_sll_si64): Cast arguments to __v1di type.
9182         (_mm_srl_pi16): Cast __count to __v4hi type.
9183         (_mm_srl_pi32): Cast __count to __v2si type.
9184         (_mm_srl_si64): Cast arguments to __v1di type.
9185         (_mm_sra_pi16): Cast __count to __v4hi type.
9186         (_mm_sra_pi32): Cast __count to __v2si type.
9187         (_mm_slli_pi16): Use __builtin_ia32_psllwi.
9188         (_mm_slli_pi32): Use __builtin_ia32_pslldi.
9189         (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
9190         (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
9191         (_mm_srli_pi32): Use __builtin_ia32_psrldi.
9192         (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
9193         (_mm_srai_pi16): Use __builtin_ia32_psrawi.
9194         (_mm_srai_pi32): Use __builtin_ia32_psradi.
9195         * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
9196         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
9197         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
9198         __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
9199
9200 2008-03-07  Joseph Myers  <joseph@codesourcery.com>
9201
9202         * doc/include/texinfo.tex: Update to version 2008-03-07.10.
9203
9204 2008-03-07  Peter Bergner  <bergner@vnet.ibm.com>
9205
9206         PR target/35373
9207         * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
9208         reg+const addressing for Altivec modes.  Don't generate reg+reg
9209         addressing for TFmode or TDmode quantities.
9210
9211 2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
9212
9213         * c-common.c (vector_types_convertible_p): Call langhook
9214         instead of comptypes.
9215
9216 2008-03-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9217
9218         PR tree-opt/35402
9219         * tree-ssa-ccp.c (get_symbol_constant_value): Handle
9220         integral and scalar float variables which have a
9221         NULL DECL_INITIAL.
9222
9223 2008-03-06  Nathan Froyd  <froydnj@codesourcery.com>
9224
9225         * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
9226         dwarf_register_span hook when emitting unwind information for
9227         register-to-memory saves.
9228         * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
9229         (rs6000_frame_related): Remove call to spe_synthesize_frame.
9230
9231 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
9232
9233         * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
9234         for the same VAR_DECL.
9235
9236 2008-03-06  Tom Tromey  <tromey@redhat.com>
9237
9238         * treelang: Delete.
9239         * doc/standards.texi (Standards): Don't mention treelang.
9240         * doc/invoke.texi (Overall Options): Don't mention treelang.
9241         * doc/install.texi (Prerequisites): Don't mention bison or
9242         treelang.
9243         (Configuration): Don't mention treelang.
9244         (Building): Likewise.
9245         * doc/frontends.texi (G++ and GCC): Don't mention treelang.
9246
9247 2008-03-06  Paolo Bonzini  <bonzini@gnu.org>
9248
9249         * simplify-rtx.c (simplify_subreg): Remove useless shifts from
9250         word-extractions out of a multi-word object.
9251
9252 2008-03-06  Richard Guenther  <rguenther@suse.de>
9253
9254         * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
9255         * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
9256         result type and precision.
9257         * expr.c (get_inner_reference): Set unsignedp based on the result
9258         type of BIT_FIELD_REF.
9259         * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
9260         * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
9261         (try_instantiate_multiple_fields): Likewise.  Use the correct type
9262         for BIT_FIELD_REF.
9263         (sra_build_assignment): Likewise.
9264         (sra_build_elt_assignment): Likewise.
9265         (sra_explode_bitfield_assignment): Likewise.
9266         * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
9267         * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
9268         set BIT_FIELD_REF_UNSIGNED.
9269         (vectorizable_load): Likewise.
9270
9271 2008-03-06  Andreas Krebbel  <krebbel1@de.ibm.com>
9272
9273         * cse.c (cse_extended_basic_block): Invalidate artificial defs
9274         at bb start.
9275
9276 2008-03-06  Richard Guenther  <rguenther@suse.de>
9277
9278         * alias.c (struct alias_set_entry): Move has_zero_child field
9279         to pack with alias_set.
9280
9281 2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
9282
9283         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
9284         32bit host.
9285
9286 2008-03-05  Ian Lance Taylor  <iant@google.com>
9287
9288         * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
9289
9290 2008-03-05  Kenneth Zadeck  <zadeck@naturalbridge.com>
9291
9292         * fwprop.c (update_df): Support width and offset parameters of
9293         df_ref_create.
9294         * ra-conflict.c (mark_reg_store, clear_reg_in_live,
9295         global_conflicts): Change DF_REF_EXTRACT to either
9296         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
9297         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
9298         * df-scan.c (df_ref_record, df_defs_record,
9299         df_ref_create_structure, df_def_record_1, df_uses_record,
9300         df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
9301         df_bb_refs_collect, df_entry_block_defs_collect,
9302         df_exit_block_uses_collect): Support new width and offset fields.
9303         (ref_extract_pool): New storage pool.
9304         (df_free_ref): New function.
9305         (df_reg_chain_unlink, df_free_collection_rec,
9306         df_sort_and_compress_refs): Call df_free_ref.
9307         (df_ref_equal_p, df_ref_compare): Compare offset and width fields
9308         of df_ref_extract.
9309         (df_ref_create_structure): Allocate df_ref_extract if offset and
9310         width fields are used.
9311         (df_def_record_1): Get offset and width from ZERO_EXTRACT.
9312         (df_uses_record): Get offset and width from ZERO_EXTRACT 
9313         and SIGN_EXTRACT.
9314         * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
9315         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
9316         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
9317         * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
9318         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
9319         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
9320         (df_ref_extract): New structure.
9321         (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
9322         (df_ref_create): Add width and offset parameters.
9323         
9324 2008-03-05  Richard Guenther  <rguenther@suse.de>
9325
9326         * tree-ssa-structalias.c (get_constraint_for_component_ref):
9327         Use ranges_overlap_p.
9328         (offset_overlaps_with_access): Rename
9329         to ranges_overlap_p and move ...
9330         * tree-flow-inline.h (ranges_overlap_p): ... here.
9331
9332         * tree.h (get_inner_reference, handled_component_p): Update
9333         comments.
9334
9335         * tree.h (record_component_aliases, get_alias_set,
9336         alias_sets_conflict_p, alias_sets_must_conflict_p,
9337         objects_must_conflict_p): Move declarations ...
9338         * alias.h (record_component_aliases, get_alias_set,
9339         alias_sets_conflict_p, alias_sets_must_conflict_p,
9340         objects_must_conflict_p): ... here.
9341         Include coretypes.h.
9342         * Makefile.in (ALIAS_H): Add coretypes.h dependency.
9343
9344 2008-03-05  Aldy Hernandez  <aldyh@redhat.com>
9345
9346         * cfg.c: Include tree-flow.h.
9347         (remove_edge_raw): Call redirect_edge_var_map_clear.
9348         (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
9349         * tree-flow-inline.h (redirect_edge_var_map_def): New.
9350         (redirect_edge_var_map_result): New.
9351         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
9352         PENDING_STMT use with redirect_edge_var_map_*.
9353         * tree-ssa.c (edge_var_maps): New definition.
9354         (redirect_edge_var_map_add): New.
9355         (redirect_edge_var_map_clear): New.
9356         (redirect_edge_var_map_dup): New.
9357         (redirect_edge_var_map_vector): New.
9358         (redirect_edge_var_map_destroy): New.
9359         (ssa_redirect_edge): Replace PENDING_STMT use with
9360         redirect_edge_var_map_*.
9361         (flush_pending_stmts): Same.
9362         (delete_tree_ssa): Destroy edge var map.
9363         * tree-flow.h (struct _edge_var_map): New.
9364         Define edge_var_map vector type.
9365         Declare redirect_edge_var_map_* prototypes.
9366         * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
9367         * tree-cfg.c (reinstall_phi_args): Replace
9368         PENDING_STMT use with redirect_edge_var_map_*.
9369
9370 2008-03-05  Richard Guenther  <rguenther@suse.de>
9371
9372         PR tree-optimization/35472
9373         * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
9374         whose single use_stmt has a overlapping set of loaded and
9375         stored symbols as that use_stmt might be a noop assignment then.
9376
9377 2008-03-05  Joel Sherrill <joel.sherrill@oarcorp.com>
9378
9379         * gthr-rtems.h: Implement __gthread_mutex_destroy.
9380
9381 2008-03-05  Richard Guenther  <rguenther@suse.de>
9382
9383         PR c++/35336
9384         * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
9385         should be constants.
9386         * tree-cfg.c (verify_expr): Verify it.
9387         * fold-const.c (fold_truthop): Remove code generating
9388         BIT_FIELD_REFs of structure bases.
9389         (fold_binary): Likewise.
9390         (fold_ternary): Position and size of BIT_FIELD_REFs are
9391         always host integers.
9392         (make_bit_field_ref): Remove.
9393         (optimize_bit_field_compare): Remove.
9394         (all_ones_mask_p): Remove.
9395
9396 2008-03-05  Gabor Loki  <loki@gcc.gnu.org>
9397
9398         PR gcc/33009
9399         * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
9400         (split_block_and_df_analyze): New. Split basic block and rebuild
9401         dataflow.
9402         (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
9403         SPLIT_BLOCK.
9404         (split_pattern_seq): Likewise.
9405         (erase_matching_seqs): Likewise.
9406         (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
9407
9408 2008-03-04  Geoff Keating  <geoffk@apple.com>
9409
9410         * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
9411         declaration and code.
9412         (tree_invalid_nonnegative_warnv_p): Likewise.
9413
9414 2008-03-05  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
9415
9416         * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
9417         examples.  Truncate option-names then causing overfull hbox.
9418
9419 2008-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9420
9421         PR target/35222
9422         * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
9423         on hpux10.
9424         * configure: Rebuilt.
9425
9426 2008-03-04  Rafael Espindola  <espindola@google.com>
9427
9428         * fold-const.c (tree_simple_nonnegative_warnv_p): New.
9429         (tree_unary_nonnegative_warnv_p): New.
9430         (tree_binary_nonnegative_warnv_p): New.
9431         (tree_single_nonnegative_warnv_p): New.
9432         (tree_invalid_nonnegative_warnv_p): New.
9433         (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
9434
9435 2008-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9436
9437         PR 28322
9438         * opts.c (handle_option): Postpone 'unknown option' errors only for
9439         warning options.
9440
9441 2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>
9442
9443         PR target/35453
9444         * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
9445         (_SIDD_XXX): This.
9446
9447 2008-03-04  Rafael Espindola  <espindola@google.com>
9448
9449         * fold-const.c (tree_unary_nonzero_warnv_p): New.
9450         (tree_binary_nonzero_warnv_p): New.
9451         (tree_single_nonzero_warnv_p): New.
9452         (tree_expr_nonzero_warnv_p): Redefine using the new functions.
9453
9454 2008-03-04  Uros Bizjak  <ubizjak@gmail.com>
9455
9456         PR middle-end/35456
9457         * fold-const.c (fold_cond_expr_with_comparison): Prevent
9458         transformations for modes that have signed zeros.
9459         * ifcvt.c (noce_try_abs): Ditto.
9460
9461 2008-03-04  Joseph Myers  <joseph@codesourcery.com>
9462
9463         * config/i386/i386.c (override_options): Force
9464         -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
9465
9466 2008-03-04  Jan Hubicka  <jh@suse.cz>
9467
9468         PR c++/35262
9469         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
9470         in last commit.
9471
9472 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
9473
9474         * config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
9475         label to probe the stack.
9476
9477 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
9478
9479         * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
9480         (__gthr_win32_mutex_destroy): Declare.
9481         [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
9482         __gthr_win32_mutex_destroy.
9483         * config/i386/gthr-win32.c  (__gthr_win32_mutex_destroy): Define.
9484
9485 2008-03-03  Jan Hubicka  <jh@suse.cz>
9486
9487         PR c++/35262
9488         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
9489         aggressive on inlining cold calls.
9490
9491 2008-03-03  Richard Guenther  <rguenther@suse.de>
9492
9493         * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
9494         struct copies into the expression table.
9495         (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
9496         (try_to_simplify): Likewise.
9497         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
9498         integral and pointer arguments which do not change the
9499         precision to NOP_EXPRs.
9500         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
9501         VIEW_CONVERT_EXPR case.
9502
9503 2008-03-02  Sebastian Pop  <sebastian.pop@amd.com>
9504
9505         * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
9506         defined in a loop at depth 0 is invariant.
9507         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
9508         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
9509         be called at loop depth 0.
9510
9511 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
9512
9513         PR driver/35420
9514         * gcc.c (process_command): Update copyright notice dates.
9515         * gcov.c (print_version): Likewise.
9516         * gcov-dump.c (print_version): Likewise.
9517         * mips-tfile.c (main): Likewise.
9518         * mips-tdump.c (main): Likewise.
9519
9520 2008-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9521
9522         PR 24924
9523         * c-common.c (flag_permissive): Delete.
9524         (constant_expression_warnings): Check flags first.
9525         (constant_expression_error): New.
9526         * c-common.h (flag_permissive): Delete.
9527         (constant_expression_error): Declare.
9528         * flags.h (flag_permissive): Declare. Update description.
9529         * diagnostic.c (pedwarn): Update.
9530         (permerror): New.
9531         * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
9532         (permissive_error_kind): New.
9533         * toplev.c (flag_permissive): Define. Update description.
9534         * toplev.h (permissive_error_kind): Declare.
9535         * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
9536         (pedwarn_c90): Use pedantic_warning_kind.
9537         * c-opts.c (c_common_post_options): flag_permissive does not affect
9538         flag_pedantic_errors.
9539
9540 2008-03-02  Joseph Myers  <joseph@codesourcery.com>
9541
9542         * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
9543         __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
9544         __absvsi2, __absvDI2): Use unsigned arithmetic.
9545
9546 2008-03-02  Andi Kleen  <ak@suse.de>
9547             Richard Guenther  <rguenther@suse.de>
9548
9549         * struct-equiv.c: Remove file.
9550         * cfg_cleanup.c (condjump_equiv_p): Remove.
9551         * Makefile.in (OBJS-common): Remove struct-equiv.o.
9552         (struct-equiv.o): Remove rule.
9553         * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
9554         insns_match_p, struct_equiv_block_eq, struct_equiv_init, 
9555         rtx_equiv_p, condjump_equiv_p): Remove prototypes.
9556
9557 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
9558
9559         * ifcvt.c (noce_process_if_block): Try to handle only the then
9560         block if the else block exists but isn't suitable.
9561
9562 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
9563
9564         PR gcc/35063
9565         * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
9566         * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
9567         regression from previous patch.
9568
9569 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
9570
9571         PR gcc/35063
9572         * gthr.h: Add __gthread_mutex_destroy as a function that must be
9573         implemented.
9574         * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
9575         * gthr-single.h (__gthread_mutex_destroy): Likewise.
9576         * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
9577         * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
9578         * gthr-nks.h (__gthread_mutex_destroy): Likewise.
9579         * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
9580         * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
9581         (__gthread_mutex_destroy_function): Rename to
9582         __gthread_mutex_destroy.
9583         * gthr-dce.h (__gthread_mutex_destroy): Call
9584         pthread_mutex_destroy.
9585         * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
9586         * gthr-posix.h (__gthread_mutex_destroy): Likewise.
9587         * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
9588
9589 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
9590
9591         * df-scan.c (df_ref_chain_change_bb): Simplify.
9592         (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
9593         set_block_for_insn if there's any change.
9594         * df.h ((df_insn_change_bb): Fix prototype.
9595         * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
9596         df_insn_change_bb, don't call set_block_for_insn.
9597         * emit-rtl.c (reorder_insns): Likewise.
9598         * haifa-sched.c (move_insn): Likewise.
9599
9600 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
9601
9602         * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
9603
9604 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
9605
9606         * tree-flow-inline.h (next_readonly_imm_use): Return
9607         NULL_USE_OPERAND_P after the end.
9608
9609 2008-03-01  Richard Guenther  <rguenther@suse.de>
9610
9611         PR tree-optimization/35411
9612         * tree-sra.c (sra_build_assignment): Split conversion to
9613         final type to a separate statement if we are not assigning
9614         to a register.
9615
9616 2008-02-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
9617
9618         * fold-const.c (fold_convertible_p): Correct the logic to follow
9619         that in fold_convert().
9620
9621 2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>
9622
9623         PR c++/35315
9624         * tree-inline.c (build_duplicate_type): When we make a
9625         duplicate type, make it unique in the canonical types system.
9626
9627 2008-02-29  Tom Tromey  <tromey@redhat.com>
9628
9629         * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
9630         input_file_stack_history, input_file_stack_restored): Remove.
9631         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
9632         * input.h (struct file_stack): Remove.
9633         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
9634         (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
9635         Likewise.
9636         * diagnostic.h (struct diagnostic_context) <last_module>: Change
9637         type.
9638         (diagnostic_last_module_changed): Add 'map' argument.
9639         (diagnostic_set_last_function): Likewise.
9640         * diagnostic.c (undiagnostic_report_current_module): Iterate using
9641         line map, not input_file_stack.
9642         * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
9643
9644 2008-02-29  Paul Brook  <paul@codesourcery.com>
9645
9646         * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
9647
9648 2008-02-29  Paul Brook  <paul@codesourcery.com>
9649
9650         * config/arm/ieee754-df.S (muldf3): Use RET macros.
9651
9652 2008-02-29  Richard Guenther  <rguenther@suse.de>
9653
9654         * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
9655         vn_lookup_or_add.
9656         * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
9657         value for comparing for a store match.
9658         (simplify_unary_expression): Do nothing for SSA_NAMEs.
9659         (try_to_simplify): Do not do a full-blown reference lookup.
9660
9661 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
9662
9663         * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
9664         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
9665
9666         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
9667
9668 2008-02-29  Sebastian Pop  <sebastian.pop@amd.com>
9669
9670         * tree-loop-linear.c (try_interchange_loops): Compare memory access
9671         strides against cache sizes.
9672
9673 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
9674
9675         * config/sh/sh.c (sh_secondary_reload): Handle loading a float
9676         constant to fpul.
9677
9678 2008-02-28  Richard Sandiford  <rsandifo@nildram.co.uk>
9679
9680         * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
9681         of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
9682         is smaller than the original promoted value.
9683         (simplify_subreg): If OP is a SUBREG, try to preserve its
9684         SUBREG_PROMOTED_VAR_P information.
9685
9686 2008-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
9687
9688         * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
9689         (VN_INFO_GET): Allocate new objects on the obstack.
9690         (init_scc_vn): Initialize the obstack.  Use XDELETE instead of free
9691         for rpo_numbers_temp, for consistency.
9692         (free_scc_vn): Free the obstack.
9693
9694 2008-02-28  Sebastian Pop  <sebastian.pop@amd.com>
9695
9696         * doc/invoke.texi: Document -ftree-loop-distribution.
9697         * tree-loop-distribution.c: New.
9698         * tree-pass.h (pass_loop_distribution): New.
9699         * graphds.h (struct graph): Add htab_t indices.
9700         * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
9701         * tree-vectorizer.c (rename_variables_in_loop): Extern.
9702         (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
9703         * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
9704         * tree-data-ref.c (debug_data_dependence_relations): New.
9705         (dump_data_dependence_relation): Also print data references.
9706         (free_data_ref): Extern.
9707         (same_access_functions): Moved...
9708         (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
9709         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
9710         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
9711         struct rdg_vertex_info, rdg_vertex_for_stmt): New.
9712         (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
9713         (stmts_from_loop): Skip LABEL_EXPR.
9714         (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
9715         New.
9716         (build_rdg): Initialize rdg->indices htab.
9717         (free_rdg, stores_from_loop, ref_base_address,
9718         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
9719         have_similar_memory_accesses_1, ref_base_address_1,
9720         remove_similar_memory_refs): New.
9721         * tree-data-ref.h: Depend on tree-chrec.h.
9722         (debug_data_dependence_relations, free_data_ref): Declared.
9723         (same_access_functions): ... here.
9724         (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
9725         New.
9726         (struct rdg_vertex): Add has_mem_write and has_mem_reads.
9727         (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
9728         RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
9729         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
9730         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
9731         rdg_vertex_for_stmt): Declared.
9732         (struct rdg_edge): Add level.
9733         (RDGE_LEVEL): New.
9734         (free_rdg, stores_from_loop, remove_similar_memory_refs,
9735         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
9736         Declared.
9737         (rdg_has_similar_memory_accesses): New.
9738         * tree-vect-analyze.c: Remove unused static decls.
9739         * lambda.h (dependence_level): New.
9740         * common.opt (ftree-loop-distribution): New.
9741         * tree-flow.h (mark_virtual_ops_in_bb, 
9742         slpeel_tree_duplicate_loop_to_edge_cfg,
9743         rename_variables_in_loop): Declared.
9744         * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
9745         (OBJS-common): Add tree-loop-distribution.o.
9746         (tree-loop-distribution.o): New rule.
9747         * tree-cfg.c (mark_virtual_ops_in_bb): New.
9748         (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
9749         * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
9750
9751 2008-02-28  Joseph Myers  <joseph@codesourcery.com>
9752
9753         PR target/33963
9754         * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
9755         other than structures and unions.
9756
9757 2008-02-28  Richard Guenther  <rguenther@suse.de>
9758
9759         Revert:
9760         2008-02-26  Richard Guenther  <rguenther@suse.de>
9761
9762         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
9763         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
9764         (lookup_decl_from_uid): Declare.
9765         (remove_decl_from_map): Likewise.
9766         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
9767         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
9768         (decl_for_uid_map): New global hashtable mapping DECL_UID
9769         to the decl tree.
9770         (init_ttree): Allocate it.
9771         (insert_decl_to_uid_decl_map): New helper function.
9772         (make_node_stat): Insert new decls into the map.
9773         (copy_node_stat): Likewise.
9774         (lookup_decl_from_uid): New function.
9775         (remove_decl_from_map): Likewise.
9776         (print_decl_for_uid_map_statistics): New helper.
9777         (dump_tree_statistics): Call it.
9778
9779         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
9780         (referenced_var_iterator): Adjust.
9781         (FOR_EACH_REFERENCED_VAR): Adjust.
9782         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
9783         (num_referenced_vars): Adjust.
9784         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
9785         (first_referenced_var): Remove.
9786         (end_referenced_vars_p): Likewise.
9787         (next_referenced_var): Likewise.
9788         (referenced_var_iterator_set): New helper function.
9789         * tree-dfa.c (referenced_var_lookup): Adjust.
9790         (referenced_var_check_and_insert): Likewise.
9791         (remove_referenced_var): Likewise.
9792         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
9793         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
9794         (verify_call_clobbering): Likewise.
9795         (verify_memory_partitions): Likewise.
9796         (init_tree_ssa): Allocate bitmap instead of hashtable for
9797         referenced_vars.
9798         (delete_tree_ssa): Adjust.
9799         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
9800         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
9801         (compute_tag_properties): Likewise.
9802         (set_initial_properties): Likewise.
9803         (find_partition_for): Likewise.
9804         (update_reference_counts): Likewise.
9805         (dump_may_aliases_for): Likewise.
9806         * tree-ssa-operands.c (add_virtual_operand): Likewise.
9807         (add_call_clobber_ops): Likewise.
9808         (add_call_read_ops): Likewise.
9809         (get_asm_expr_operands): Likewise.
9810         * tree-into-ssa.c (dump_decl_set): Likewise.
9811         (update_ssa): Likewise.
9812         * tree-sra.c (scan_function): Likewise.
9813         (decide_instantiations): Likewise.
9814         (scalarize_parms): Likewise.
9815         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
9816         (dsa_named_for): Likewise.
9817         * tree-ssa-structalias.c (update_alias_info): Likewise.
9818         (merge_smts_into): Likewise.
9819
9820 2008-02-27  David Daney  <ddaney@avtrex.com>
9821
9822         PR target/34409
9823         * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
9824         * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
9825         * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
9826         * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
9827         * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
9828
9829 2008-02-27  Uros Bizjak  <ubizjak@gmail.com>
9830
9831         PR target/25477
9832         * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
9833         (BUILT_IN_NEXTTOWARD): Remove.
9834         (BUILT_IN_NEXTTOWARDF): Ditto.
9835         * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
9836         alloca/strcpy/strcat.  Remove commented-out code.  Fix whitespace.
9837
9838 2008-02-27  Tom Tromey  <tromey@redhat.com>
9839
9840         * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
9841         DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
9842
9843 2008-02-27  Jan Beulich  <jbeulich@novell.com>
9844
9845         * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
9846         update the respective field on newdecl.
9847
9848 2008-02-27  Revital Eres  <eres@il.ibm.com>
9849
9850         PR rtl-optimization/34999
9851         * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
9852         crossing edges that ends with a call insn.
9853         (fix_up_fall_thru_edges): Handle crossing edges that ends with a
9854         call insn and clear the EDGE_CROSSING flag of the crossing edge
9855         when fixing fallthru edges.
9856
9857 2008-02-27  Richard Guenther  <rguenther@suse.de>
9858
9859         PR middle-end/35390
9860         * fold-const.c (fold_unary): Return the correct argument,
9861         converted to the result type.
9862
9863 2008-02-27  Richard Guenther  <rguenther@suse.de>
9864
9865         PR middle-end/34971
9866         * expr.c (expand_expr_real_1): Assert on rotates that operate
9867         on partial modes.
9868         * fold-const.c (fold_binary): Use the types precision, not the
9869         bitsize of the mode if folding rotate expressions.  Build rotates
9870         only for full modes.
9871
9872 2008-02-27  Jakub Jelinek  <jakub@redhat.com>
9873
9874         * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
9875         and CPP_PRAGMA_EOL.
9876         * c-pragma.c (pragma_ns_name): New typedef.
9877         (registered_pp_pragmas): New variable.
9878         (c_pp_lookup_pragma): New function.
9879         (c_register_pragma_1): If flag_preprocess_only, do nothing
9880         for non-expanded pragmas, for expanded ones push pragma's
9881         namespace and name into registered_pp_pragmas vector.
9882         (c_invoke_pragma_handler): Register OpenMP pragmas even when
9883         flag_preprocess_only, don't register GCC pch_preprocess
9884         pragma if flag_preprocess_only.
9885         * c-opts.c (c_common_init): Call init_pragma even if
9886         flag_preprocess_only.
9887         * c-pragma.c (c_pp_lookup_pragma): New prototype.
9888         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
9889         cpp_register_pragma if flag_preprocess_only.
9890
9891 2008-02-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9892
9893         PR c/28800
9894         * c-parser.c (c_parser_translation_unit): Warn for empty
9895         translation unit, not empty source file.
9896
9897 2008-02-26  Paul Brook  <paul@codesourcery.com>
9898
9899         * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
9900         operand for Thumb-2.
9901         * config/arm/arm.h (reg_class): Add CORE_REGS.
9902         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
9903         (BASE_REG_CLASS): Use CORE_REGS.
9904         (PREFERRED_RELOAD_CLASS): Add STACK_REG.
9905         (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
9906         (REGNO_OK_FOR_INDEX_P): Exclude SP.
9907         (ARM_REG_OK_FOR_INDEX_P): Always define.  Use
9908         ARM_REGNO_OK_FOR_INDEX_P.
9909         (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
9910         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
9911         arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
9912         (ldm/stm peepholes): Ditto.
9913         * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
9914         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
9915         * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
9916         * config/arm/constraints.md: Enable "k" constraint on ARM.
9917
9918 2008-02-27  Ben Elliston  <bje@au.ibm.com>
9919
9920         * config/rs6000/rs6000.c: Annotate cache line size field in all
9921         instances of struct processor_costs.
9922
9923 2008-02-26  David Edelsohn  <edelsohn@gnu.org>
9924
9925         * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
9926         dse2, gcse, if_conversion, if_after_combine, if_after_reload,
9927         jump_bypass): New counters.
9928         * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
9929         * dce.c (gate_ud_dce): Same.
9930         (gate_fast_dce): Same.
9931         * dse.c (gate_dse1): New function.
9932         (gate_dse2): New function.
9933         (gate_dse): Merge results of new gate functions.
9934         * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
9935         (gate_handle_jump_bypass): Add dbg_cnt.
9936         (gate_handle_gcse): Add dbg_cnt.
9937         * ifcvt.c (gate_handle_if_conversion): Same.
9938         (gate_handle_if_after_combine): Same.
9939         (gate_handle_if_after_reload): Same.
9940         * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
9941
9942 2008-02-26  Edmar Wienskoski  <edmar@freescale.com>
9943
9944         * config/rs6000/rs6000.c (processor_costs): Update e300 cache
9945         line sizes.
9946         * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
9947
9948 2008-02-26  Jason Merrill  <jason@redhat.com>
9949
9950         PR c++/35315
9951         * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE 
9952         alone if it's the naming decl for the type's main variant.
9953
9954 2008-02-26  Tom Tromey  <tromey@redhat.com>
9955
9956         * system.h (USE_MAPPED_LOCATION): Poison.
9957         * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
9958         * tree-cfg.c (make_cond_expr_edges): Remove old location code.
9959         (make_goto_expr_edges): Likewise.
9960         (remove_bb): Likewise.
9961         (execute_warn_function_return): Likewise.
9962         * basic-block.h (struct edge_def) <goto_locus>: Change type to
9963         location_t.
9964         * c-common.c (fname_decl): Remove old location code.
9965         * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
9966         location code.
9967         * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
9968         variant.
9969         (ASM_INPUT_SOURCE_LOCATION): Likewise.
9970         (gen_rtx_ASM_INPUT): Likewise.
9971         (gen_rtx_ASM_INPUT_loc): Likewise.
9972         (get_rtx_asm_OPERANDS): Remove.
9973         * cfglayout.c (insn_locators_alloc): Remove old location code.
9974         (set_curr_insn_source_location): Likewise.
9975         (curr_insn_locator): Likewise.
9976         * print-tree.c (print_node): Remove old location code.
9977         * tree-mudflap.c (mf_varname_tree): Remove old location code.
9978         (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
9979         * cfgexpand.c (expand_gimple_cond_expr): Don't use
9980         location_from_locus.
9981         (construct_exit_block): Remove old location code.
9982         * emit-rtl.c (force_next_line_note): Remove old location code.
9983         * profile.c (branch_prob): Remove old location code.
9984         * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
9985         LOC_LINE): Remove old-location variants.
9986         * langhooks.c (lhd_print_error_function): Remove old location
9987         code.
9988         * configure, config.in: Rebuilt.
9989         * configure.ac (--enable-mapped-location): Remove.
9990         * c-decl.c (c_init_decl_processing): Remove old location code.
9991         (finish_function): Likewise.
9992         * recog.c (decode_asm_operands): Remove old location code.
9993         * c-pch.c (c_common_read_pch): Remove old location code.
9994         * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
9995         variants.
9996         * gimple-low.c (lower_function_body): Remove old location code.
9997         * toplev.c (unknown_location): Remove.
9998         (push_srcloc): Remove old-location variant.
9999         (process_options): Remove old location code.
10000         (lang_dependent_init): Likewise.
10001         * input.h (UNKNOWN_LOCATION): Move definition.
10002         (location_t): Undeprecate.
10003         (source_locus): Remove.
10004         (location_from_locus): Remove.
10005         (struct location_s): Remove.
10006         Remove all old-location code.
10007         (input_line, input_filename): Remove.
10008         * final.c (final_scan_insn): Remove old location code.
10009         * diagnostic.c (diagnostic_build_prefix): Remove
10010         USE_MAPPED_LOCATION test.
10011         * tree.h (gimple_stmt) <locus>: Now a location_t.
10012         (tree_exp) <locus>: Likewise.
10013         (DECL_IS_BUILTIN): Remove old-location variant.
10014         (annotate_with_file_line, annotate_with_locus): Likewise.
10015         (expr_locus, set_expr_locus): Update.
10016         * tree.c (build1_stat): Remove old location code.
10017         (last_annotated_node): Remove.
10018         (annotate_with_file_line): Remove old-location variant.
10019         (annotate_with_locus): Likewise.
10020         (expr_location): Remove old location code.
10021         (set_expr_location): Likewise.
10022         (expr_has_location): Likewise.
10023         (expr_locus): Likewise.
10024         (set_expr_locus): Likewise.
10025         (expr_filename): Don't use location_from_locus.
10026         (expr_lineno): Likewise.
10027         * rtl-error.c (location_for_asm): Remove old location code.
10028         * c-lex.c (cb_line_change): Remove old location code.
10029         (fe_file_change): Likewise.
10030         (cb_def_pragma): Likewise.
10031         (c_lex_with_flags): Likewise.
10032         * gengtype.c (do_typedef): Don't special-case location types.
10033         (define_location_structures): Remove.
10034         (main): Don't call define_location_structures.
10035         * tree-pretty-print.c (dump_implicit_edges): Remove old location
10036         code.
10037
10038 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10039
10040         PR 26264
10041         * builtins.def (BUILT_IN_STDARG_START): Remove.
10042         * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
10043         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
10044         * tree-inline.c (inline_forbidden_p_1): Likewise.
10045         
10046 2008-02-26  Richard Guenther  <rguenther@suse.de>
10047
10048         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
10049         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
10050         (lookup_decl_from_uid): Declare.
10051         (remove_decl_from_map): Likewise.
10052         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
10053         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
10054         (decl_for_uid_map): New global hashtable mapping DECL_UID
10055         to the decl tree.
10056         (init_ttree): Allocate it.
10057         (insert_decl_to_uid_decl_map): New helper function.
10058         (make_node_stat): Insert new decls into the map.
10059         (copy_node_stat): Likewise.
10060         (lookup_decl_from_uid): New function.
10061         (remove_decl_from_map): Likewise.
10062         (print_decl_for_uid_map_statistics): New helper.
10063         (dump_tree_statistics): Call it.
10064
10065         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
10066         (referenced_var_iterator): Adjust.
10067         (FOR_EACH_REFERENCED_VAR): Adjust.
10068         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
10069         (num_referenced_vars): Adjust.
10070         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
10071         (first_referenced_var): Remove.
10072         (end_referenced_vars_p): Likewise.
10073         (next_referenced_var): Likewise.
10074         (referenced_var_iterator_set): New helper function.
10075         * tree-dfa.c (referenced_var_lookup): Adjust.
10076         (referenced_var_check_and_insert): Likewise.
10077         (remove_referenced_var): Likewise.
10078         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
10079         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
10080         (verify_call_clobbering): Likewise.
10081         (verify_memory_partitions): Likewise.
10082         (init_tree_ssa): Allocate bitmap instead of hashtable for
10083         referenced_vars.
10084         (delete_tree_ssa): Adjust.
10085         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
10086         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
10087         (compute_tag_properties): Likewise.
10088         (set_initial_properties): Likewise.
10089         (find_partition_for): Likewise.
10090         (update_reference_counts): Likewise.
10091         (dump_may_aliases_for): Likewise.
10092         * tree-ssa-operands.c (add_virtual_operand): Likewise.
10093         (add_call_clobber_ops): Likewise.
10094         (add_call_read_ops): Likewise.
10095         (get_asm_expr_operands): Likewise.
10096         * tree-into-ssa.c (dump_decl_set): Likewise.
10097         (update_ssa): Likewise.
10098         * tree-sra.c (scan_function): Likewise.
10099         (decide_instantiations): Likewise.
10100         (scalarize_parms): Likewise.
10101         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
10102         (dsa_named_for): Likewise.
10103         * tree-ssa-structalias.c (update_alias_info): Likewise.
10104         (merge_smts_into): Likewise.
10105
10106 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10107
10108         PR 34351
10109         * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
10110         * c-opts.c (c_common_handle_option): Wall enables
10111         Wvolatile-register-var.
10112         * common.opt: Move Wvolatile-register-var to...
10113         * c.opt: ...here.
10114         
10115 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10116
10117         * common.opt (Wlarger-than=): New.
10118         * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
10119         -Wlarger-than=.
10120         * opts.c (common_handle_option): Handle -Wlarger-than=.
10121         * optc-gen.awk: Likewise.
10122         * opth-gen.awk: Likewise.
10123         * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
10124         * tree-optimize.c (tree_rest_of_compilation): Likewise.
10125         
10126 2008-02-26  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
10127
10128         * c-common.c (match_case_to_enum_1): Add appropriate
10129         OPT_W* parameter to warning.
10130         (c_do_switch_warnings): Likewise.
10131         * c-typeck.c (warning_init): Add one more parameter following
10132         'warning' function.
10133         (push_init_level): Update call to warning_init.
10134         (pop_init_level): Likewise.
10135         (add_pending_init): Likewise.
10136         (output_init_element: Likewise.
10137
10138 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10139
10140         PR 28322
10141         * toplev.c (toplev_main): If there are warnings or error, print
10142         errors for ignored options.
10143         * opts.c (ignored_options): New static variable.
10144         (postpone_unknown_option_error): New.
10145         (print_ignored_options): New.
10146         (handle_option): Postpone errors for unknown -Wno-* options.
10147         * opts.h (print_ignored_options): Declare.
10148         
10149 2008-02-25  Richard Sandiford  <rsandifo@nildram.co.uk>
10150
10151         * config/mips/mips.md (loadgp_blockage, blockage): Change type
10152         to "ghost".
10153
10154 2008-02-25  Richard Guenther  <rguenther@suse.de>
10155
10156         Revert:
10157         2008-02-25  Richard Guenther  <rguenther@suse.de>
10158
10159         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
10160         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
10161         (lookup_decl_from_uid): Declare.
10162         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
10163         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
10164         (decl_for_uid_map): New global hashtable mapping DECL_UID
10165         to the decl tree.
10166         (init_ttree): Allocate it.
10167         (insert_decl_to_uid_decl_map): New helper function.
10168         (make_node_stat): Insert new decls into the map.
10169         (copy_node_stat): Likewise.
10170         (lookup_decl_from_uid): New function.
10171         (print_decl_for_uid_map_statistics): New helper.
10172         (dump_tree_statistics): Call it.
10173
10174         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
10175         (referenced_var_iterator): Adjust.
10176         (FOR_EACH_REFERENCED_VAR): Adjust.
10177         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
10178         (num_referenced_vars): Adjust.
10179         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
10180         (first_referenced_var): Remove.
10181         (end_referenced_vars_p): Likewise.
10182         (next_referenced_var): Likewise.
10183         (referenced_var_iterator_set): New helper function.
10184         * tree-dfa.c (referenced_var_lookup): Adjust.
10185         (referenced_var_check_and_insert): Likewise.
10186         (remove_referenced_var): Likewise.
10187         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
10188         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
10189         (verify_call_clobbering): Likewise.
10190         (verify_memory_partitions): Likewise.
10191         (init_tree_ssa): Allocate bitmap instead of hashtable for
10192         referenced_vars.
10193         (delete_tree_ssa): Adjust.
10194         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
10195         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
10196         (compute_tag_properties): Likewise.
10197         (set_initial_properties): Likewise.
10198         (find_partition_for): Likewise.
10199         (update_reference_counts): Likewise.
10200         (dump_may_aliases_for): Likewise.
10201         * tree-ssa-operands.c (add_virtual_operand): Likewise.
10202         (add_call_clobber_ops): Likewise.
10203         (add_call_read_ops): Likewise.
10204         (get_asm_expr_operands): Likewise.
10205         * tree-into-ssa.c (dump_decl_set): Likewise.
10206         (update_ssa): Likewise.
10207         * tree-sra.c (scan_function): Likewise.
10208         (decide_instantiations): Likewise.
10209         (scalarize_parms): Likewise.
10210         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
10211         (dsa_named_for): Likewise.
10212         * tree-ssa-structalias.c (update_alias_info): Likewise.
10213         (merge_smts_into): Likewise.
10214
10215 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
10216
10217         PR fortran/29549
10218         * doc/invoke.texi (-fcx-limited-range): Document new option.
10219         * toplev.c (process_options): Handle -fcx-fortran-rules.
10220         * common.opt: Add documentation for -fcx-fortran-rules.
10221
10222 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
10223
10224         PR c/35162
10225         * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
10226         actual behaviour and C99.
10227         
10228 2008-02-26  Ben Elliston  <bje@au.ibm.com>
10229
10230         * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
10231         (ASM_CPU_POWER6_SPEC): Likewise.
10232         (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
10233         Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
10234         (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
10235
10236 2008-02-25  Richard Guenther  <rguenther@suse.de>
10237
10238         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
10239         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
10240         (lookup_decl_from_uid): Declare.
10241         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
10242         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
10243         (decl_for_uid_map): New global hashtable mapping DECL_UID
10244         to the decl tree.
10245         (init_ttree): Allocate it.
10246         (insert_decl_to_uid_decl_map): New helper function.
10247         (make_node_stat): Insert new decls into the map.
10248         (copy_node_stat): Likewise.
10249         (lookup_decl_from_uid): New function.
10250         (print_decl_for_uid_map_statistics): New helper.
10251         (dump_tree_statistics): Call it.
10252
10253         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
10254         (referenced_var_iterator): Adjust.
10255         (FOR_EACH_REFERENCED_VAR): Adjust.
10256         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
10257         (num_referenced_vars): Adjust.
10258         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
10259         (first_referenced_var): Remove.
10260         (end_referenced_vars_p): Likewise.
10261         (next_referenced_var): Likewise.
10262         (referenced_var_iterator_set): New helper function.
10263         * tree-dfa.c (referenced_var_lookup): Adjust.
10264         (referenced_var_check_and_insert): Likewise.
10265         (remove_referenced_var): Likewise.
10266         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
10267         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
10268         (verify_call_clobbering): Likewise.
10269         (verify_memory_partitions): Likewise.
10270         (init_tree_ssa): Allocate bitmap instead of hashtable for
10271         referenced_vars.
10272         (delete_tree_ssa): Adjust.
10273         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
10274         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
10275         (compute_tag_properties): Likewise.
10276         (set_initial_properties): Likewise.
10277         (find_partition_for): Likewise.
10278         (update_reference_counts): Likewise.
10279         (dump_may_aliases_for): Likewise.
10280         * tree-ssa-operands.c (add_virtual_operand): Likewise.
10281         (add_call_clobber_ops): Likewise.
10282         (add_call_read_ops): Likewise.
10283         (get_asm_expr_operands): Likewise.
10284         * tree-into-ssa.c (dump_decl_set): Likewise.
10285         (update_ssa): Likewise.
10286         * tree-sra.c (scan_function): Likewise.
10287         (decide_instantiations): Likewise.
10288         (scalarize_parms): Likewise.
10289         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
10290         (dsa_named_for): Likewise.
10291         * tree-ssa-structalias.c (update_alias_info): Likewise.
10292         (merge_smts_into): Likewise.
10293
10294 2008-02-25  Andreas Krebbel  <krebbel1@de.ibm.com>
10295
10296         PR target/35258
10297         * cse.c (cse_insn): Avoid creation of overlapping MEMs.
10298         * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
10299         * alias.h (nonoverlapping_memrefs_p): Likewise.
10300
10301 2008-02-25  Jan Beulich  <jbeulich@novell.com>
10302
10303         * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
10304         * config/i386/netware-libgcc.exp: Add __bswap?i2,
10305         __emultls_get_address, __emultls_register_common,
10306         __floatundi?f, and _Unwind_GetIPInfo.
10307         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
10308         Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
10309         (gen_regparm_prefix): Likewise.
10310         (i386_nlm_encode_section_info): Sync with
10311         config/i386/winnt.c:i386_pe_encode_section_info().
10312         (i386_nlm_maybe_mangle_decl_assembler_name): New.
10313         i386_nlm_mangle_decl_assembler_name): New.
10314         (netware_override_options): New.
10315         * config/i386/netware.h (netware_override_options): Declare.
10316         (OVERRIDE_OPTIONS): Re-define to netware_override_options.
10317         (i386_nlm_mangle_decl_assembler_name): Declare.
10318         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
10319
10320 2008-02-25  Ben Elliston  <bje@au.ibm.com>
10321
10322         PR other/32948
10323         * c-decl.c (grokdeclarator): Remove unused local variables
10324         `typedef_type' and `type_as_written'.
10325         * bb-reorder.c
10326         (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
10327         unused local variable `has_hot_blocks'.
10328         (fix_crossing_conditional_branches): Remove unused local variable
10329         `prev_bb'.
10330         
10331 2008-02-25  Uros Bizjak  <ubizjak@gmail.com>
10332
10333         PR middle-end/19984
10334         * builtins.def (BUILT_IN_NAN): Define as c99 builtin
10335         using DEF_C99_BUILTIN.
10336         (BUILT_IN_NANF): Ditto.
10337         (BUILT_IN_NANL): Ditto.
10338
10339 2008-02-25  Ayal Zaks  <zaks@il.ibm.com>
10340             Revital Eres  <eres@il.ibm.com>
10341
10342         * modulo-sched.c (calculate_must_precede_follow): Address TODO
10343         regarding the order of two dependent insns in the same row.
10344
10345 2008-02-25  Eric Botcazou  <ebotcazou@adacore.com>
10346
10347         * stor-layout.c (layout_decl): Do not bump the alignment of a
10348         bit-field to more than byte alignment if it is packed.
10349
10350 2008-02-24  David Edelsohn  <edelsohn@gnu.org>
10351
10352         * config/rs6000/rs6000.c (processor_costs): Add cache costs for
10353         e300c2 and e300c3.
10354
10355 2008-02-24  Diego Novillo  <dnovillo@google.com>
10356
10357         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
10358
10359         PR 33738
10360         * tree-vrp.c (vrp_evaluate_conditional): With
10361         -Wtype-limits, emit a warning when comparing against a
10362         constant outside the natural range of OP0's type.
10363         * c.opt (Wtype-limits): Move ...
10364         * common.opt (Wtype-limits): ... here.
10365
10366 2008-02-24  Edmar Wienskoski  <edmar@freescale.com>
10367
10368         * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
10369         * config/rs6000/e300c2c3.md: New file.
10370         * config/rs6000/rs6000.c (processor_costs): Add new costs for
10371         e300c2 and e300c3.
10372         (rs6000_override_options): Add e300c2 and e300c3 cases to
10373         processor_target_table. Do not allow usage of Altivec or Spe
10374         with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
10375         (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
10376         * config/rs6000/rs6000.h (processor_type): Add
10377         PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
10378         (ASM_CPU_SPEC): Add e300c2 and e300c3.
10379         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
10380         and ppce300c3. Include e300c2c3.md.
10381
10382 2008-02-23  David Edelsohn  <edelsohn@gnu.org>
10383
10384         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
10385         instead of TARGET_STRICT_ALIGN.
10386
10387 2008-02-23  Joseph Myers  <joseph@codesourcery.com>
10388
10389         * explow.c (memory_address): Assert that the generated address is
10390         valid.
10391
10392 2008-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
10393
10394         PR target/25477
10395         * config/darwin-protos.h: Add darwin_patch_builtins prototype.
10396         * config/darwin-ppc-ldouble-patch.def: New file.
10397         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
10398         * config/rs6000/rs6000.c (rs6000_init_builtins): Call
10399         SUBTARGET_INIT_BUILTINS if defined.
10400         * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
10401         New functions.
10402
10403 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10404
10405         PR rtl-opt/33512
10406         * simplify-rtx.c (simplify_binary_operation_1): Add simplification
10407         of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
10408
10409 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10410
10411         PR pch/35027
10412         * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
10413         file" warning condtional on -Winvalid-PCH.
10414
10415 2008-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
10416
10417         * expmed.c (extract_bit_field): Always use adjust_address for MEM.
10418
10419 2008-02-23  Uros Bizjak  <ubizjak@gmail.com>
10420
10421         PR target/22076
10422         PR target/34256 
10423         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
10424         prevent reload from using MMX registers.
10425         (*mov<mode>_internal): Ditto.
10426         (*movv2sf_internal_rex64): Ditto.
10427         (*movv2sf_internal): Ditto.
10428
10429 2008-02-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10430
10431         PR documentation/31569
10432         * doc/install.texi2html: Use makeinfo --no-number-sections.
10433
10434 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
10435
10436         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
10437         ensure that we can address an entire entity > 8 bytes.  Don't
10438         generate reg+reg addressing for such data.
10439
10440 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
10441
10442         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
10443         strings when optimizing for size, unless the target cares about
10444         alignment.
10445
10446 2008-02-22  Tom Tromey  <tromey@redhat.com>
10447
10448         * regclass.c (current_pass): Remove declaration.
10449
10450 2008-02-22  Anatoly Sokolov <aesok@post.ru>
10451
10452         * config/avr/libgcc.S (__RAMPZ__): Define.
10453         (__do_copy_data): Add for devices with 128KB code memory.
10454
10455 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
10456
10457         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
10458         Use spe_abi.
10459         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
10460
10461 2008-02-22  Hans-Peter Nilsson  <hp@axis.com>
10462
10463         * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
10464         GENNONACR_REGS.
10465
10466 2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10467
10468         PR c/19999
10469         * c-typeck.c (build_binary_op): Warn about floating point
10470         comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
10471
10472 2008-02-21  Janis Johnson  <janis187@us.ibm.com>
10473
10474         PR target/34526
10475         * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
10476         (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
10477         add vrsave.
10478         (rs6000_override_options): Set altivec_abi as default, not override,
10479         for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
10480         TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
10481         is used; use new member spe_abi.
10482         (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
10483         spe_abi and altivec_abi.
10484
10485 2008-02-22  Tomas Bily  <tbily@suse.cz>
10486
10487         * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
10488
10489 2008-02-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10490
10491         PR bootstrap/35273
10492         * config.build (build_file_translate): Set to `CMD //c' only if
10493         it works.
10494         * Makefile.in (build_file_translate): Improve comment.
10495
10496 2008-02-21  Jan Hubicka  <jh@suse.cz>
10497
10498         * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
10499         PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
10500         PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
10501
10502 2008-02-21  Michael Matz  <matz@suse.de>
10503
10504         PR target/35264
10505         * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
10506
10507 2008-02-21  Uros Bizjak  <ubizjak@gmail.com>
10508
10509         * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
10510         movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
10511         as insn constraint.
10512         * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
10513         from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
10514         SSE_VEC_FLOAT_MODE_P as insn constraint.
10515         (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
10516         (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
10517         sse4a_movntdf using MODEF mode iterator.
10518         (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
10519         sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
10520         (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
10521         (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
10522         (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
10523         (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
10524         (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
10525
10526 2008-02-21  Richard Guenther  <rguenther@suse.de>
10527
10528         * tree.def (PAREN_EXPR): New tree code.
10529         * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
10530         and PAREN_EXPR.
10531         * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
10532         * expr.c (expand_expr_real_1): Likewise.
10533         * tree-inline.c (estimate_num_insns_1): Likewise.
10534         * tree-complex.c (expand_complex_move): Likewise.
10535         * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
10536         as plain x.
10537
10538 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
10539
10540         PR target/35225
10541         * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
10542
10543 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
10544
10545         PR target/35190
10546         * config/sh/sh.md (jump_compact): Disable for crossing jumps.
10547
10548         * config/sh/sh.c (find_barrier): Don't go past
10549         NOTE_INSN_SWITCH_TEXT_SECTIONS note.
10550
10551 2008-02-20  DJ Delorie  <dj@redhat.com>
10552
10553         * config/h8300/h8300.md (insv): Force source operand to be a register.
10554
10555         * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
10556         as a jump, not as a plain insn.
10557         
10558 2008-02-20  Seongbae Park <seongbae.park@gmail.com>
10559
10560         * doc/invoke.texi (Warning Options): Add new option
10561         -Wframe-larger-than=.
10562         (-Wframe-larger-than): Document.
10563
10564         * flags.h (warn_frame_larger_than, frame_larger_than_size):
10565         Add declarations for new option variables.
10566
10567         * final.c (final_start_function): Check the frame size
10568         before emission and issue a Wframe-larger-than warning.
10569
10570         * opts.c (warn_frame_larger_than, frame_larger_than_size):
10571         Add definitions for new option variables.
10572         (common_handle_option): Handle new option OPT_Wframe_larger_than_.
10573
10574         * common.opt (Wframe-larger-than=): New option.
10575
10576 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
10577
10578         * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
10579         (<sse>_div<mode>3): Ditto.
10580         (<sse>_vmdiv<mode>3): Ditto.
10581         (<sse>_vmsqrt<mode>2): Ditto.
10582         (*smax<mode>3): Ditto.
10583         (sse5_frcz<mode>2): Ditto.
10584         (sse5_vmfrcz<mode>2): Ditto.  Use TARGET_SSE5 instead of TARGET_ROUND
10585         as insn constraint.
10586
10587 2008-02-20  Richard Guenther  <rguenther@suse.de>
10588
10589         PR middle-end/35265
10590         * builtins.c (validate_arg): If we want an INTEGER_TYPE,
10591         be happy with INTEGRAL_TYPE_P.
10592
10593 2008-02-20  Richard Guenther  <rguenther@suse.de>
10594
10595         * fold-const.c (split_tree): Associate floatig-point expressions
10596         if flag_associative_math is set.
10597
10598 2008-02-20  Richard Guenther  <rguenther@suse.de>
10599
10600         * tree.h (fold_real_zero_addition_p): Declare.
10601         * fold-const.c (fold_real_zero_addition_p): Export.
10602         * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
10603         floating-point operations with zero and one.
10604
10605 2008-02-20  Paolo Bonzini  <bonzini@gnu.org>
10606
10607         * doc/install.texi: Correct references to CFLAGS, replacing them
10608         with BOOT_CFLAGS.  Document flags used during bootstrap for
10609         target libraries.
10610                                 
10611 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
10612
10613         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
10614         * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
10615         and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
10616         insn constraint.
10617         (smin<mode>3): Ditto from similar patterns.
10618         (smax<mode>3): Ditto.
10619         (*ieee_smin<mode>3): Ditto.
10620         (*ieee_smax<mode>3): Ditto.
10621         * config/i386/sse.md (sse): New mode attribute.
10622         (mov<mode>): Macroize expander from movv4sf and movv2df using
10623         SSEMODEF2P mode iterator.
10624         (<sse>_movnt<mode>): Ditto from similar patterns. Use
10625         SSE_VEC_FLOAT_MODE_P as insn constraint.
10626         (storent<mode>): Ditto.
10627         (storent<mode>): Macroize expander from storentsf and storentdf using
10628         MODEF mode iterator.
10629         (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
10630         mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
10631         (abs<mode>2): Ditto from similar patterns.
10632         (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
10633         (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
10634         (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
10635         (<sse>_vmsqrt<mode>2): Ditto.
10636         (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
10637         (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
10638         (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
10639         (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
10640         (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
10641         sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
10642         mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
10643         insn constraint.
10644         (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
10645         iterator and SSE_FLOAT_MODE_P as insn constraint.
10646         (<sse>_ucomi): Ditto from similar patterns.
10647         (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
10648         sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
10649         SSE_VEC_FLOAT_MODE_P as insn constraint.
10650         (vcond<mode>): Ditto from similar patterns.
10651         (and<mode>3, *and<mode>3): Ditto.
10652         (<sse>_nand<mode>3): Ditto.
10653         (ior<mode>3, *ior<mode>3): Ditto.
10654         (xor<mode>3, *xor<mode>3): Ditto.
10655         (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
10656         iterator and SSE_FLOAT_MODE_P as insn constraint.
10657         (*nand<mode>3): Ditto from similar patterns.
10658         (*ior<mode>3): Ditto.
10659         (*xor<mode>3): Ditto.
10660
10661 2008-02-20  Ira Rosen  <irar@il.ibm.com>
10662
10663         * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
10664         vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
10665         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
10666
10667 2008-02-19  Jan Hubicka  <jh@suse.cz>
10668
10669         * predict.c (tree_bb_level_predictions): Remove variable next
10670         mistakely introduced by previous commit.
10671
10672 2008-02-19  Jan Hubicka  <jh@suse.cz>
10673
10674         * predict.c (predict_paths_leading_to): Rewrite.
10675         (predict_paths_for_bb): New.
10676         (tree_bb_level_predictions): Update call of predict_paths_leading_to.
10677
10678 2008-02-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10679
10680         PR bootstrap/35218
10681         * Makefile.in (build_file_translate): New.
10682         (gcc-vers.texi): Use it for translating $(abs_srcdir).
10683         * config.build (build_file_translate): Set to `CMD //c' on MinGW.
10684         * configure.ac (build_file_translate): Substitute it.
10685         * configure: Regenerate.
10686
10687 2008-02-19  Jan Hubicka  <jh@suse.cz>
10688
10689         PR rtl-optimization/34408
10690         * see.c (see_def_extension_not_merged): Copy subreg so we don't have
10691         invalid sharing.
10692
10693 2008-02-19  Jan Hubicka  <jh@suse.cz>
10694
10695         PR middle-end/28779
10696         * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
10697         call_expr.
10698
10699 2008-02-19  H.J. Lu  <hongjiu.lu@intel.com>
10700
10701         PR Ada/35186
10702         * config/i386/i386-modes.def: Revert the last DI alignment
10703         change until Ada people can look into it.
10704
10705 2008-02-19  Nick Clifton  <nickc@redhat.com>
10706
10707         * opts.c (print_specific_help): Fix typo in --help text.
10708
10709 2008-02-19  Jakub Jelinek  <jakub@redhat.com>
10710
10711         PR target/35239
10712         * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
10713         32-bit inline asm without asm alternatives for host GCC < 3.0.
10714
10715 2008-02-19  Richard Guenther  <rguenther@suse.de>
10716
10717         PR tree-optimization/34989
10718         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
10719         Allow propagation to INDIRECT_REF if we can simplify only.
10720
10721 2008-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10722
10723         * c-common.c (warn_for_collisions_1): Use appropriate option when
10724         warning.
10725
10726 2008-02-19  Nick Clifton  <nickc@redhat.com>
10727
10728         PR other/31349
10729         * opts.c (undocumented_msg): Leave blank unless checking is enabled.
10730         (handle_options): Fix indentation.
10731         (print_filtered_help): If no language-specific options were
10732         displayed tell the user how to list all the options supported by
10733         the language's front-end.
10734         (print_specific_help): Fix indentation and remove duplicate line.
10735         (common_handle_option): Handle the -v option.
10736         For --help enable the display of undocumented options if the -v
10737         switch has been included on the command line.
10738         For --help= check for overlaps in the arguments between the option
10739         classes and the language names and issue a warning when they
10740         cannot be disambiguated.
10741         * c.opt (v): Pass on to the common option handler.
10742
10743 2008-02-19  Revital Eres  <eres@il.ibm.com> 
10744
10745         * modulo-sched.c (sms_schedule): Change dump message when
10746         create_ddg function fails.
10747         (try_scheduling_node_in_cycle): Rename row to cycle.
10748         (print_partial_schedule): Rename CYCLE to ROW.
10749
10750 2008-02-19  Christian Bruel  <christian.bruel@st.com>
10751             Zdenek Dvorak  <ook@ucw.cz>
10752
10753         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
10754
10755 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
10756
10757         PR target/33555
10758         * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
10759         (*x86_movdicc_0_m1_se): Ditto.
10760
10761 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
10762
10763         * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
10764         (CMPtype): Define as __gcc_CMPtype.
10765         * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
10766         (CMPtype): Define as __gcc_CMPtype.
10767
10768 2008-02-19  Hans-Peter Nilsson  <hp@axis.com>
10769
10770         Support valgrind 3.3 for --enable-checking=valgrind.
10771         * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
10772         here.
10773         [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
10774         [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
10775         [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
10776         * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
10777         Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
10778         VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
10779         VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
10780         respectively.
10781         * ggc-zone.c: Similar.
10782         * ggc-page.c: Similar.
10783
10784 2008-02-19  Paul Brook  <paul@codesourcery.com>
10785
10786         PR target/35071
10787         * config/arm/ieee754-df.S: Fix do_it typo.
10788         * config/arm/ieee754-sf.S: Fix do_it typo.
10789
10790 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
10791
10792         PR target/35189
10793         * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
10794         (OPTION_MASK_ISA_3DNOW_SET): Likewise.
10795         (OPTION_MASK_ISA_SSE_SET): Likewise.
10796         (OPTION_MASK_ISA_SSE2_SET): Likewise.
10797         (OPTION_MASK_ISA_SSE3_SET): Likewise.
10798         (OPTION_MASK_ISA_SSSE3_SET): Likewise.
10799         (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
10800         (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
10801         (OPTION_MASK_ISA_SSE4_SET): Likewise.
10802         (OPTION_MASK_ISA_SSE4A_SET): Likewise.
10803         (OPTION_MASK_ISA_SSE5_SET): Likewise.
10804         (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
10805         (OPTION_MASK_ISA_MMX_UNSET): Updated.
10806         (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
10807         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
10808         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
10809         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
10810         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
10811         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
10812         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
10813         (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
10814         (OPTION_MASK_ISA_SSE4): Removed.
10815         (ix86_handle_option): Turn on bits in ix86_isa_flags and
10816         ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
10817         (override_options): Don't turn on implied SSE/MMX bits in
10818         ix86_isa_flags.
10819
10820 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
10821
10822         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
10823         32bit host.
10824
10825 2008-02-18  Joey Ye  <joey.ye@intel.com>
10826
10827         PR middle-end/34921
10828         * tree-nested.c (insert_field_into_struct): Set type alignment
10829         to field alignment if the former is less than the latter.
10830
10831 2008-02-18  Jakub Jelinek  <jakub@redhat.com>
10832
10833         * BASE-VER: Set to 4.4.0.
10834
10835 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10836
10837         * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
10838         * doc/cfg.texi: Likewise.
10839         * doc/extend.texi: Likewise.
10840         * doc/gty.texi: Likewise.
10841         * doc/invoke.texi: Likewise.
10842         * doc/loop.texi: Likewise.
10843         * doc/md.texi: Likewise.
10844         * doc/passes.texi: Likewise.
10845         * doc/rtl.texi: Likewise.
10846         * doc/sourcebuild.texi: Likewise.
10847         * doc/tm.texi: Likewise.
10848         * doc/tree-ssa.texi: Likewise.
10849
10850 2008-02-17  Richard Guenther  <rguenther@suse.de>
10851
10852         PR middle-end/35227
10853         * tree-complex.c (init_parameter_lattice_values): Handle parameters
10854         without default definition.
10855
10856 2008-02-17  Richard Guenther  <rguenther@suse.de>
10857
10858         PR tree-optimization/35231
10859         * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
10860         if A | B != 1.
10861
10862 2008-02-17  Uros Bizjak  <ubizjak@gmail.com>
10863
10864         Revert:
10865         2008-02-15  Uros Bizjak  <ubizjak@gmail.com>    
10866         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
10867         libgcc_cmp_return mode.
10868
10869 2008-02-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10870
10871         PR c/28368
10872         * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
10873
10874 2008-02-16  Ralf Corsepius  <ralf.corsepius@rtems.org>
10875
10876         * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
10877         multilibs.
10878
10879 2008-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10880
10881         * doc/c-tree.texi: Use `@.' where appropriate.
10882         * doc/extend.texi: Likewise.
10883         * doc/install.texi: Likewise.
10884         * doc/invoke.texi: Likewise.
10885         * doc/loop.texi: Likewise.
10886         * doc/makefile.texi: Likewise.
10887         * doc/md.texi: Likewise.
10888         * doc/passes.texi: Likewise.
10889         * doc/standards.texi: Likewise.
10890         * doc/tm.texi: Likewise.
10891
10892 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
10893
10894         PR middle-end/35196
10895         * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
10896         in entry_bb.
10897         (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
10898         rather than in entry_bb.
10899
10900 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
10901
10902         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
10903         libgcc_cmp_return mode.
10904
10905 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
10906
10907         PR middle-end/35130
10908         * tree-nested.c (convert_call_expr): Put FRAME.* vars into
10909         OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
10910
10911 2008-02-15  Richard Guenther  <rguenther@suse.de>
10912             Zdenek Dvorak  <ook@ucw.cz>
10913
10914         PR tree-optimization/35164
10915         * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
10916         * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
10917         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
10918         Only propagate addresses which do not have abnormal SSA_NAMEs
10919         in their operands.
10920
10921 2008-02-15  Joseph Myers  <joseph@codesourcery.com>
10922
10923         PR target/35088
10924         * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
10925
10926 2008-02-15  Jan Hubicka  <jh@suse.cz>
10927
10928         PR middle-end/35149
10929         * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
10930
10931 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
10932
10933         PR middle-end/34621
10934         * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
10935         when calculating alignment_pad.
10936
10937 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
10938
10939         * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
10940         (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
10941         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
10942         and STACK_BOUNDARY define.
10943
10944 2008-02-14  Danny Smith  <dannysmith@users.sourceforge.net>
10945
10946         PR preprocessor/35061
10947         * c-pragma.c (handle_pragma_pop_macro): Check that
10948         pushed_macro_table has been allocated.
10949
10950 2008-02-14  Eric Botcazou  <ebotcazou@adacore.com>
10951
10952         PR middle-end/35136
10953         * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
10954         (force_gimple_operand): Likewise.
10955         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
10956         for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
10957         Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
10958         (find_interesting_uses_address): Check addressability and alignment
10959         of the base expression only after substituting bases of IVs into it.
10960
10961 2008-02-14  Michael Matz  <matz@suse.de>
10962
10963         PR target/34930
10964         * function.c (instantiate_virtual_regs_in_insn): Reload address
10965         before falling back to reloading the whole operand.
10966
10967 2008-02-14  Andreas Krebbel  <krebbel1@de.ibm.com>
10968
10969         * config/s390/s390.c (s390_mainpool_start): Emit the pool
10970         before the first section switch note.
10971
10972 2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10973
10974         * doc/bugreport.texi: Update copyright years.
10975         * doc/c-tree.texi: Likewise.
10976         * doc/cfg.texi: Likewise.
10977         * doc/cpp.texi: Likewise.
10978         * doc/cppinternals.texi: Likewise.
10979         * doc/fragments.texi: Likewise.
10980         * doc/frontends.texi: Likewise.
10981         * doc/gcc.texi: Likewise.
10982         * doc/gty.texi: Likewise.
10983         * doc/hostconfig.texi: Likewise.
10984         * doc/implement-c.texi: Likewise.
10985         * doc/libgcc.texi: Likewise.
10986         * doc/loop.texi: Likewise.
10987         * doc/makefile.texi: Likewise.
10988         * doc/options.texi: Likewise.
10989         * doc/passes.texi: Likewise.
10990         * doc/rtl.texi: Likewise.
10991         * doc/sourcebuild.texi: Likewise.
10992         * doc/standards.texi: Likewise.
10993         * doc/tree-ssa.texi: Likewise.
10994         * doc/trouble.texi: Likewise.
10995
10996         * doc/extend.texi: Use @: or add comma where appropriate.
10997         * doc/invoke.texi: Likewise.
10998         * doc/tm.texi: Likewise.
10999
11000 2008-02-14  Alan Modra  <amodra@bigpond.net.au>
11001
11002         PR target/34393
11003         * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
11004         to a reg.
11005
11006 2008-02-14  Jesper Nilsson  <jesper.nilsson@axis.com>
11007
11008         * doc/md.texi (clz, ctz): Add reference.
11009         * doc/rtl.texi (clz, ctz): Likewise.
11010
11011 2008-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11012
11013         PR other/35148
11014         * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
11015         srcdir.
11016
11017 2008-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
11018
11019         * config/s390/s390.c (struct constant_pool): New field
11020         emit_pool_after added.
11021         (s390_mainpool_start): Set the emit_pool_after flag according
11022         to the section switch notes.
11023         (s390_mainpool_finish): Consider emit_pool_after when emitting
11024         the literal pool at the end of the function.
11025         (s390_chunkify_start): Force literal pool splits at section
11026         switch notes.
11027
11028 2008-02-13  Michael Matz  <matz@suse.de>
11029
11030         PR debug/35065
11031         * var-tracking.c (clobber_variable_part): Correctly traverse the
11032         list.
11033
11034 2008-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11035
11036         PR 29673
11037         * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
11038         Add -fdump-ipa-inline.
11039         * tree-dump.c (dump_files): Remove tree-inlined dump.
11040         * tree-pass.h (tree_dump_index): Remove TDI_inlined.
11041         
11042 2008-02-12  Richard Guenther  <rguenther@suse.de>
11043
11044         PR tree-optimization/35171
11045         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
11046         default defs.
11047
11048 2008-02-12  Richard Guenther  <rguenther@suse.de>
11049
11050         PR middle-end/35163
11051         * fold-const.c (fold_widened_comparison): Use get_unwidened in
11052         value-preserving mode.  Disallow final truncation.
11053
11054 2008-02-12  Eric Botcazou  <ebotcazou@adacore.com>
11055
11056         PR middle-end/35136
11057         * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
11058         code from here to...
11059         (force_gimple_operand): ...here.
11060
11061 2008-02-12  Jakub Jelinek  <jakub@redhat.com>
11062
11063         PR c++/35144
11064         * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
11065         non-compatible pointers.
11066         (generate_element_copy): If SRC and DST are RECORD_TYPEs with
11067         different FIELD_DECLs, try harder by comparing field offsets, sizes
11068         and types.
11069
11070         PR inline-asm/35160
11071         * function.c (match_asm_constraints_1): Don't replace the same input
11072         multiple times.
11073
11074 2008-02-12  Anatoly Sokolov <aesok@post.ru>
11075
11076         * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
11077         * config/avr/avr.c (expand_prologue): Save RAMPZ register.
11078         (expand_epilogue): Restore RAMPZ register.
11079         * config/avr/avr.md (RAMPZ_ADDR): New constant.
11080
11081 2008-02-11  Kai Tietz  <kai.tietz@onevision.com>
11082
11083         * config/i386/cygwin.asm: (__alloca): Correct calling
11084         convention and alignment.
11085         (__chkstk): Force 8 byte stack alignment.
11086
11087 2008-02-11  Uros Bizjak  <ubizjak@gmail.com>
11088             Richard Guenther  <rguenther@suse.de>
11089
11090         PR tree-optimization/33992
11091         * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
11092         the zero we compare against.
11093
11094 2008-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
11095
11096         PR libfortran/35063
11097         * gthr-win32.h (__gthread_mutex_destroy_function): New function
11098         to CloseHandle after unlocking to prevent accumulation of handle
11099         count.
11100
11101 2008-02-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11102
11103         PR middle_end/34150
11104         * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
11105         pic_label_operand source.  Similarly, add a REG_LABEL_OPERAND note
11106         and update LABEL_NUSES during and after reload.
11107
11108 2008-02-08  Steven Bosscher  <stevenb.gcc@gmail.com>
11109
11110         PR middle-end/34627
11111         * combine.c (simplify_if_then_else): Make sure the comparison is
11112         against const0_rtx when simplifying to (abs x) or (neg (abs X)).
11113
11114 2008-02-08  Richard Sandiford  <rsandifo@nildram.co.uk>
11115
11116         PR bootstrap/35051
11117         * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
11118         (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
11119         * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
11120         (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
11121         * tree.h (get_type_static_bounds): Likewise.
11122
11123 2008-02-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11124
11125         * doc/invoke.texi (Option Summary, C++ Dialect Options)
11126         (Objective-C and Objective-C++ Dialect Options, Warning Options):
11127         Make -Wfoo language annotations match what the compiler outputs.
11128
11129 2008-02-08  Sa Liu  <saliu@de.ibm.com>
11130
11131         * config/spu/spu-builtins.def: Fixed wrong parameter type in spu 
11132         intrinsics spu_convts, spu_convtu, spu_convtf.
11133
11134 2008-02-08  Hans-Peter Nilsson  <hp@axis.com>
11135
11136         * doc/extend.texi (Function Attributes) <noinline>: Mention
11137         asm ("") as method to keep calls.
11138
11139 2008-02-07  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11140
11141         PR other/32754
11142         * doc/options.texi (Options): Replace references to opts.sh with
11143         optc-gen.awk.
11144         * opts-common.c: Likewise.
11145         * optc-gen.awk: Likewise.
11146         
11147 2008-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
11148
11149         * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
11150
11151 2008-02-07  Richard Henderson  <rth@redhat.com>
11152
11153         PR rtl-opt/33410
11154         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
11155         EXPR_LIST for the REG_EQUAL instead of a comparison with a 
11156         funny mode.
11157
11158 2008-02-07  Uros Bizjak  <ubizjak@gmail.com>
11159
11160         PR tree-optimization/35085
11161         * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
11162         for operand entry oe2 in addition to operand entry oe3 in order to
11163         expose more opportunities for vectorizer sum reduction.
11164
11165 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11166
11167         PR other/35107
11168         * Makefile.in (LIBS): Remove $(GMPLIBS).
11169         (cc1-dummy, cc1): Add $(GMPLIBS).
11170
11171 2008-02-06  Jan Hubicka  <jh@suse.cz>
11172
11173         PR target/23322
11174         * i386.md (moddf_integer): Do not produce partial memory stalls for
11175         targets where it hurts.
11176
11177 2008-02-06  Uros Bizjak  <ubizjak@gmail.com>
11178
11179         PR target/35083
11180         * optabs.c (expand_float): Do not check for decimal modes when
11181         expanding unsigned integer through signed conversion.
11182
11183 2008-02-06  Nick Clifton  <nickc@redhat.com>
11184
11185         * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
11186         inside the clobber with a match_operand and duplicated operand
11187         number in the constraint.
11188         (ineqbranchsi): Delete redundant comment.
11189
11190 2008-02-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
11191
11192         * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add 
11193         builtin_define ("__USE_INIT_FINI__").
11194         * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
11195         -msx multilibs.
11196         * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
11197
11198 2008-02-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11199
11200         PR documentation/30330
11201         * doc/invoke.texi (C++ Dialect Options)
11202         (Objective-C and Objective-C++ Dialect Options, Warning Options):
11203         For each warning option -Wfoo that allows -Wno-foo, ensure both
11204         -Wfoo and -Wno-foo are listed in the option index.  Fix index
11205         entry of -Wswitch-default, index -Wnormalized= including the
11206         `=', and -Wlarger-than-@var{len} including @var{len}.
11207
11208 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
11209
11210         * config/i386/i386.md (floatunssisf2): Use
11211         ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
11212         (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
11213         Macroize expander using MODEF mode iterator.
11214
11215 2008-02-05  Diego Novillo  <dnovillo@google.com>
11216
11217         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
11218
11219         PR 33738
11220         * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
11221
11222 2008-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11223
11224         PR other/35070
11225         * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
11226
11227 2008-02-05  H.J. Lu  <hongjiu.lu@intel.com>
11228
11229         PR target/35084
11230         * config/i386/i386.c (ix86_function_sseregparm): Add an arg
11231         to indicate if a message should be generated.
11232         (init_cumulative_args): Updated.
11233         (function_value_32): Likewise.
11234
11235 2008-02-05  Joseph Myers  <joseph@codesourcery.com>
11236
11237         * doc/include/texinfo.tex: Update to version 2008-02-04.16.
11238
11239 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
11240
11241         PR target/35083
11242         * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
11243         Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
11244
11245 2008-02-04  Diego Novillo  <dnovillo@google.com>
11246
11247         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
11248
11249         PR 33738
11250         * tree-vrp.c (vrp_evaluate_conditional): With
11251         -Wtype-limits, emit a warning when comparing against a
11252         constant outside the natural range of OP0's type.
11253
11254 2008-02-04  Richard Guenther  <rguenther@suse.de>
11255
11256         PR middle-end/33631
11257         * expr.c (count_type_elements): Give for unions instead of
11258         guessing.
11259
11260 2008-02-04  Richard Guenther  <rguenther@suse.de>
11261
11262         PR middle-end/35043
11263         * gimplify.c (gimplify_init_ctor_eval): Convert array indices
11264         to TYPE_DOMAINs base type instead of using bitsizetype here.
11265
11266 2008-02-03  Jason Merrill  <jason@redhat.com>
11267
11268         * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
11269
11270 2008-02-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11271
11272         PR other/29972
11273         * doc/invoke.texi (C++ Dialect Options, Optimize Options)
11274         (HPPA Options, i386 and x86-64 Options, IA-64 Options)
11275         (RS/6000 and PowerPC Options): Fix typos and markup.
11276         * doc/passes.texi (Tree-SSA passes): Likewise.
11277
11278 2008-02-02  Michael Matz  <matz@suse.de>
11279
11280         PR target/35045
11281         * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
11282         from record_last_reg_set_info.
11283         (record_last_reg_set_info): Take an RTX argument, iterate over all
11284         constituent hardregs.
11285         (record_last_set_info, record_opr_changes): Change calls to
11286         new signature or to record_last_reg_set_info_regno.
11287
11288 2008-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
11289
11290         * doc/extend.texi (X86 Built-in Functions): Fix grammar.
11291
11292 2008-02-01  Hans-Peter Nilsson  <hp@axis.com>
11293
11294         PR rtl-optimization/34773
11295         * reg-notes.def (EQUAL): Mention significance of combination of
11296         REG_EQUAL and REG_RETVAL.
11297         * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
11298         insn that has a REG_RETVAL.
11299
11300 2008-02-01  Roger Sayle  <roger@eyesopen.com>
11301
11302         PR bootstrap/33781
11303         * configure.ac (--enable-fixed-point): Disable unless explicitly
11304         requested on IRIX.
11305         * configure: Regenerate.
11306
11307 2008-02-01  Richard Guenther  <rguenther@suse.de>
11308
11309         PR other/35042
11310         * invoke.texi (-finline-limit): Remove no longer true parts
11311         of the documentation.  Note that there is no default value.
11312
11313 2008-02-01  Andrew Pinski  <pinskia@gmail.com>
11314             Mark Mitchell  <mark@codesourcery.com>
11315             Ben Elliston  <bje@au.ibm.com>
11316
11317         PR c/29326
11318         * doc/extend.texi (Other Builtins): Document.
11319
11320 2008-01-31  Tom Browder <tom.browder@gmail.com>
11321
11322         * doc/c-tree.texi (Types): Fix grammar.
11323         (Expression trees): Ditto.
11324         * doc/passes.texi (Tree-SSA passes): Ditto.
11325         
11326         * doc/configterms.texi (Configure Terms): Fix typo.
11327         * doc/cpp.texi (Common Predefined Macros): Ditto.
11328         * doc/md.texi (Machine Constraints): Ditto.
11329         
11330         * doc/makefile.texi (Makefile): Add comma.
11331
11332 2008-01-31  Tom Browder  <tom.browder@gmail.com>
11333             Gerald Pfeifer  <gerald@pfeifer.com>
11334         
11335         * doc/sourcebuild.texi (Front End): Remove references to CVS
11336         and CVSROOT/modules.
11337         (Texinfo Manuals): Replace reference to CVS by one to SVN.
11338         (Back End): Remove reference to CVS.
11339
11340 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
11341
11342         PR target/34900
11343         * config/mips/mips.c (gen_load_const_gp): New function, taking a
11344         comment from...
11345         (mips16_gp_pseudo_reg): ...here.
11346         * config/mips/mips.md (load_const_gp): Replace with...
11347         (load_const_gp_<mode>): ...this :P-based insn.
11348
11349 2008-01-31  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11350
11351         * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
11352         options. Minor fixes.
11353         (-std): Move reference to standards closer to where language
11354         standards are first mentioned.
11355         
11356 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
11357
11358         PR rtl-optimization/34995
11359         * reload.c (alternative_allows_const_pool_ref): Take an rtx
11360         parameter and return a bool.  If the rtx parameter is nonnull,
11361         check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
11362         (find_reloads): Update call accordingly.  Pass the new operand
11363         if it needed no address reloads, otherwise pass null.
11364
11365 2008-01-30  Richard Henderson  <rth@redhat.com>
11366
11367         PR c/34993
11368         * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
11369         for unbounded arrays.
11370
11371 2008-01-30  Silvius Rus  <rus@google.com>
11372
11373         * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
11374
11375 2008-01-30  Jan Hubicka  <jh@suse.cz>
11376
11377         PR target/34982
11378         * i386.c (init_cumulative_args): Use real function declaration when
11379         calling locally.
11380
11381 2008-01-30  Richard Sandiford  <rsandifo@nildram.co.uk>
11382
11383         PR rtl-optimization/34998
11384         * global.c (build_insn_chain): Treat non-subreg_lowpart
11385         SUBREGs of pseudos as clobbering all the words covered by the
11386         SUBREG, not just all the bytes.
11387         * ra-conflict.c (clear_reg_in_live): Likewise.  Take the
11388         original df_ref rather than an extract parameter.
11389         (global_conflicts): Update call accordingly.
11390
11391 2008-01-30  Andreas Krebbel  <krebbel1@de.ibm.com>
11392
11393         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
11394         the overflow check to make it easier to read.
11395         (__fixtfdi): Change the type of the ll member in union
11396         long_double to UDItype_x.
11397
11398 2008-01-30  Jakub Jelinek  <jakub@redhat.com>
11399
11400         PR middle-end/34969
11401         * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
11402         * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
11403         * tree-inline.c (fold_marked_statements): Call
11404         cgraph_update_edges_for_call_stmt if folding a call statement.
11405         * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
11406         debug_generic_stmt calls, reset it back afterwards.
11407
11408         PR c/35017
11409         * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
11410         static decls.
11411         * c-typeck.c (build_external_ref): Don't pedwarn about
11412         static vars in current function's scope.
11413
11414 2008-01-29  Joseph Myers  <joseph@codesourcery.com>
11415
11416         * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
11417
11418 2008-01-29  Bernhard Fischer  <aldot@gcc.gnu.org>
11419
11420         PR c/35002
11421         * ipa-struct-reorg.c: Fix spelling.
11422         * params.def: Ditto.
11423
11424 2008-01-29  Richard Guenther  <rguenther@suse.de>
11425
11426         PR middle-end/35006
11427         * tree-inline.h (struct copy_body_data): Add remapping_type_depth
11428         field.
11429         * tree-inline.c (remap_type): Increment remapping_type_depth
11430         around remapping types.
11431         (copy_body_r): Only add referenced variables if they are referenced
11432         from code, not types.
11433
11434 2008-01-29  Douglas Gregor  <doug.gregor@gmail.com>
11435
11436         PR c++/34055
11437         PR c++/34103
11438         PR c++/34219
11439         PR c++/34606
11440         PR c++/34753
11441         PR c++/34754
11442         PR c++/34755
11443         PR c++/34919
11444         PR c++/34961
11445         * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
11446         qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
11447
11448 2008-01-28  Andy Hutchinson   <hutchinsonandy@netscape.net>
11449
11450         PR target/34412
11451         * config/avr/avr.c (expand_prologue): Use correct QI mode frame 
11452         pointer for tiny stack.
11453
11454 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
11455
11456         * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
11457
11458 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
11459
11460         * config/vx-common.h: Fix typo in comment.
11461
11462 2008-01-28  Ian Lance Taylor  <iant@google.com>
11463
11464         PR c++/34862
11465         PR c++/33407
11466         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
11467         coalesce pointers if they have different DECL_NO_TBAA_P values.
11468         * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
11469         between variables with different DECL_NO_TBAA_P values.
11470
11471 2008-01-28  Nathan Froyd  <froydnj@codesourcery.com>
11472
11473         PR 31535
11474         * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
11475         are not legitimate small data references on SPE targets.
11476
11477 2008-01-28  David Daney  <ddaney@avtrex.com>
11478
11479         * doc/install.texi (mips-*-*): Recommend binutils 2.18.
11480
11481 2008-01-28  David Daney  <ddaney@avtrex.com>
11482
11483         * doc/install.texi (--disable-libgcj-bc):  Reword documentation.
11484
11485 2008-01-27  Joseph Myers  <joseph@codesourcery.com>
11486
11487         * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
11488         m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
11489         *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
11490         *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
11491         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
11492         i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
11493         i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
11494         vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
11495
11496 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
11497
11498         * basic-block.h (condjump_equiv_p): Fix comment.
11499
11500 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
11501
11502         * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
11503         print_generic_stmt_indented): Fix comment.
11504
11505 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
11506
11507         * configure.ac (__stack_chk_fail): Add detecion for availability
11508         of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
11509         * configure: Regenerate.
11510
11511 2008-01-26  Maxim Kuvyrkov  <maxim@codesourcery.com>
11512
11513         PR middle-end/34688
11514         * final.c (output_addr_const): Handle TRUNCATE.
11515
11516 2008-01-26  Zdenek Dvorak  <ook@ucw.cz>
11517
11518         PR target/34711
11519         * tree-ssa-loop-ivopts.c (comp_cost): New type.
11520         (zero_cost, infinite_cost): New constants.
11521         (struct cost_pair): Change type of cost to comp_cost.
11522         (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
11523         (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
11524         New functions.
11525         (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
11526         split_address_cost, ptr_difference_cost, difference_cost,
11527         get_computation_cost_at, get_computation_cost,
11528         determine_use_iv_cost_generic, determine_use_iv_cost_address,
11529         determine_use_iv_cost_condition, determine_use_iv_costs,
11530         cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
11531         iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
11532         iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
11533         Change type of cost to comp_cost.
11534         (determine_iv_cost): Increase cost of non-original ivs, instead
11535         of decreasing the cost of original ones.
11536         (get_address_cost): Indicate the complexity of the addressing mode 
11537         in comp_cost.
11538         (try_add_cand_for): Prefer using ivs not specific to some object.
11539         * tree-flow.h (force_expr_to_var_cost): Declaration removed.
11540
11541 2008-01-26  Peter Bergner  <bergner@vnet.ibm.com>
11542             Janis Johnson  <janis187@us.ibm.com>
11543
11544         PR target/34814
11545         * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
11546         (TARGET_INSTANTIATE_DECLS): Likewise.
11547         * target.h (expand_to_rtl_hook): New target hook.
11548         (instantiate_decls): Likewise.
11549         * function.c (instantiate_decl): Make non-static.  Rename to...
11550         (instantiate_decl_rtl): ... this.
11551         (instantiate_expr): Use instantiate_decl_rtl.
11552         (instantiate_decls_1): Likewise.
11553         (instantiate_decls): Likewise.
11554         (instantiate_virtual_regs: Call new instantiate_decls taget hook.
11555         * function.h (instantiate_decl_rtl): Add prototype.
11556         * cfgexpand.c (target.h): New include.
11557         (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
11558         * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
11559         (TARGET_INSTANTIATE_DECLS): Likewise.
11560         (TARGET_INITIALIZER): New target hooks added.
11561         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
11562         New prototype.
11563         * config/rs6000/rs6000.c (tree-flow.h): New include.
11564         (machine_function): Add sdmode_stack_slot field.
11565         (rs6000_alloc_sdmode_stack_slot): New function.
11566         (rs6000_instantiate_decls): Likewise.
11567         (rs6000_secondary_memory_needed_rtx): Likewise.
11568         (rs6000_check_sdmode): Likewise.
11569         (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
11570         (TARGET_INSTANTIATE_DECLS): Likewise.
11571         (rs6000_hard_regno_mode_ok): Allow SDmode.
11572         (num_insns_constant): Likewise.  Handle _Decimal32 constants.
11573         (rs6000_emit_move): Handle SDmode.
11574         (function_arg_advance): Likewise.
11575         (function_arg): Likewise.
11576         (rs6000_gimplify_va_arg): Likewise.  Add special handling of
11577         SDmode var args for 32-bit compiles.
11578         (rs6000_secondary_reload_class): Handle SDmode.
11579         (rs6000_output_function_epilogue): Likewise.
11580         (rs6000_function_value): Simplify if statement.
11581         (rs6000_libcall_value): Likewise.
11582         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
11583         (SECONDARY_MEMORY_NEEDED_RTX): Add define.
11584         * config/rs6000/dfp.md (movsd): New define_expand and splitter.
11585         (movsd_hardfloat): New define_insn.
11586         (movsd_softfloat): Likewise.
11587         (movsd_store): Likewise.
11588         (movsd_load): Likewise.
11589         (extendsddd2): Likewise.
11590         (extendsdtd2): Likewise.
11591         (truncddsd2): Likewise.
11592         (movdd_hardfloat64): Fixup comment.
11593         (UNSPEC_MOVSD_LOAD): New constant.
11594         (UNSPEC_MOVSD_STORE): Likewise.
11595
11596 2008-01-26  Jakub Jelinek  <jakub@redhat.com>
11597
11598         PR c++/34965
11599         * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
11600         TRUTH_XOR_EXPR.
11601         (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
11602         (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
11603         (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
11604         and TRUTH_XOR_EXPR.
11605
11606 2008-01-26  David Edelsohn  <edelsohn@gnu.org>
11607
11608         PR target/34794
11609         * config.gcc: Separate AIX 5.3 from AIX 6.1.
11610         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
11611         __LONGDOUBLE128 too.
11612         * config/rs6000/aix61.h: New file.
11613
11614 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
11615
11616         PR rtl-optimization/34959
11617         * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
11618         popcount and parity rtxes the same mode as their operand.
11619         Truncate or extend the result to the return value's mode
11620         if necessary.
11621
11622 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
11623
11624         PR target/34981
11625         * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
11626         * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
11627         to GOT_VERSION_REGNUM.
11628         (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
11629         (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
11630         * config/mips/mips.c (mips_emit_call_insn): New function.
11631         (mips_call_tls_get_addr): Call mips_expand_call directly.
11632         (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
11633         emit_call_insn.
11634         (mips16_build_call_stub): Likewise.  Return the call insn or null.
11635         (mips_expand_call): Update the call to mips16_build_call_stub
11636         accordingly and a remove redundant condition.  Assert that MIPS16
11637         stubs do not use lazy binding.  Use mips_emit_call_insn and return
11638         the call insn.
11639         (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
11640         TARGET_USE_GOT.
11641         (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
11642         (mips_avoid_hazard): Remove hazard_set handling.
11643         * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
11644         (UNSPEC_RESTORE_GP): ...this.
11645         (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
11646         (FAKE_CALL_REGNO): Rename to...
11647         (GOT_VERSION_REGNUM): ...this.
11648         (type): Add "ghost" value.  Add an associated insn reservation.
11649         (hazard_set): Remove.
11650         (exception_receiver): Rename to...
11651         (restore_gp): ...this and update the unspec identifier accordingly.
11652         (exception_receiver, nonlocal_got_receiver): New expanders.
11653         (load_call<mode>): Use GOT_VERSION_REGNUM.  Don't set
11654         FAKE_CALL_REGNO.  Remove hazard_set attribute.
11655         (set_got_version, update_got_version): New patterns.
11656
11657 2008-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
11658
11659         PR target/34970
11660         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
11661
11662 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
11663
11664         PR other/31955
11665         * doc/install.texi2html: Generate gcc-vers.texi.
11666
11667 2008-01-25  DJ Delorie  <dj@redhat.com>
11668
11669         * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
11670
11671 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
11672
11673         * config/c4x: Remove directory.
11674         * config.gcc (crx-*, mt-*): Mark obsolete.
11675         (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
11676         h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
11677         sh-*-rtemscoff*): Remove cases.
11678         * defaults.h (C4X_FLOAT_FORMAT): Remove.
11679         * real.c (encode_c4x_single, decode_c4x_single,
11680         encode_c4x_extended, decode_c4x_extended, c4x_single_format,
11681         c4x_extended_format): Remove.
11682         * real.h (c4x_single_format, c4x_extended_format): Remove.
11683         * doc/extend.texi (interrupt, naked): Remove mention of attributes
11684         on C4x.
11685         (Pragmas): Remove comment about c4x pragmas.
11686         * doc/install.texi (c4x): Remove target-specific instructions.
11687         * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
11688         * doc/md.texi (Machine Constraints): Remove C4x documentation.
11689         * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
11690         refer to C4x source files as examples.
11691         (C4X_FLOAT_FORMAT): Remove documentation.
11692
11693 2008-01-25  Bernd Schmidt  <bernd.schmidt@analog.com>
11694
11695         * config/bfin/bfin.c (override_options): Reorder tests so that
11696         flag_pic gets enabled for -msep-data.
11697
11698 2008-01-25  Richard Guenther  <rguenther@suse.de>
11699
11700         PR middle-end/32244
11701         * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
11702         to its bitfield precision if required.
11703
11704 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
11705
11706         PR middle-end/33880
11707         * tree-nested.c (walk_omp_for): New function.
11708         (convert_nonlocal_reference, convert_local_reference): Call
11709         walk_omp_for on OMP_FOR.
11710         (convert_call_expr): Call walk_body on OMP_FOR's
11711         OMP_FOR_PRE_INIT_BODY.
11712
11713 2008-01-25  Richard Guenther  <rguenther@suse.de>
11714
11715         PR tree-optimization/34966
11716         * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
11717         default defs and PHI_NODEs we have to insert after the
11718         defining statement.
11719
11720 2008-01-24  Nick Clifton  <nickc@redhat.com>
11721
11722         * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
11723         Provide a default definition.
11724         (LIBGCC2_UNITS_PER_WORD): Likewise.
11725
11726         * config/stormy16/stormy16.c: Include df.h for the prototype
11727         for df_regs_ever_live_p.
11728         (xstormy16_expand_builtin_va_start): Convert the stack offset
11729         into a component_ref and then use POINTER_PLUS_EXPR to add it
11730         to the incoming_virtual_args_rtx.
11731         (xstormy16_gimplify_va_arg_expr): Rename to
11732         xstormy16_gimplify_va_arg_expr.
11733         Use POINTER_PLUS_EXPR when performing pointer arithmetic.
11734         (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
11735         xstormy16_gimplify_va_arg_expr.
11736         Fix up some formatting issues.
11737
11738         * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
11739         Move to predicates.md.
11740         (xs_hi_general_operand): Likewise.
11741         (xs_hi_nonmemory_operand): Likewise.
11742         * config/stormy16/predicates.md:
11743         (xstormy16_carry_plus_operand): New predicate.
11744         (xs_hi_general_operand): New predicate.
11745         (xs_hi_nonmemory_operand): New predicate.
11746         * config/stormy16/stormy16-protos.h:
11747         (xstormy16_carry_plus_operand): Delete prototype.
11748         (xs_hi_general_operand): Likewise.
11749         (xs_hi_nonmemory_operand): Likewise.
11750
11751         * config/storm16/stormy16.md (addhi3): Remove earlyclobber
11752         modifiers as they are no longer needed and they can trigger
11753         reload spill failures.
11754
11755         * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
11756         with a match_operand in order to help reload.
11757
11758         * config/storm16/stormy16.md (movhi_internal): Replace 'r'
11759         constraint with 'e' for the 8th alternative as this version of
11760         the mov.w instruction only accepts the lower 8 registers.
11761
11762 2008-01-25  Uros Bizjak  <ubizjak@gmail.com>
11763
11764         PR target/34856
11765         * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
11766         Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
11767         vector elements.
11768
11769 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
11770
11771         PR middle-end/33333
11772         * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
11773
11774 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
11775
11776         * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
11777         New functions.
11778         (remove_structure): Update allocations list before removing structure.
11779         
11780 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
11781
11782         * ipa-struct-reorg.c (is_safe_cond_expr, 
11783         create_new_stmts_for_cond_expr): Use integer_zerop function,
11784         that recognize not only zero-pointer, but zero-integer too.
11785
11786 2008-01-25  Ben Elliston  <bje@au.ibm.com>
11787
11788         PR other/22232
11789         * fixproto: Escape "." in sed expression that strips leading "./".
11790
11791 2008-01-24  H.J. Lu  <hongjiu.lu@intel.com>
11792
11793         PR driver/34904
11794         * gcc.c (SWITCH_OK): Removed.
11795         (SWITCH_LIVE): Changed to bit.
11796         (SWITCH_FALSE): Likewise.
11797         (SWITCH_IGNORE): Likewise.
11798         (switchstr): Change live_cond to unsigned int.
11799         (process_command): Replace SWITCH_OK with 0.
11800         (do_self_spec): Likewise.
11801         (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
11802         (give_switch): Likewise.
11803         (used_arg): Likewise.
11804         (do_spec_1): Set the SWITCH_IGNORE bit.
11805         (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
11806         bits.  Set the SWITCH_LIVE bit.
11807
11808 2008-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
11809
11810         * config/s390/s390.h (MOVE_RATIO): Define new target macro.
11811
11812 2008-01-24  Richard Sandiford  <rsandifo@nildram.co.uk>
11813
11814         PR tree-optimization/34472
11815         * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
11816         parameter to a "bool *" and set *DATA to false if there is
11817         an unsafe access.  Do not delete the structure here.
11818         (check_cond_exprs): Delete it here instead.
11819         (check_cond_exprs, exclude_cold_structs): Do not increase
11820         I when removing a structure.
11821
11822 2008-01-24  Uros Bizjak  <ubizjak@gmail.com>
11823
11824         PR target/34856
11825         * config/i386/i386.c (ix86_expand_vector_init): Consider only
11826         CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
11827
11828 2008-01-24  Jakub Jakub Jelinek  <jakub@redhat.com>
11829
11830         PR middle-end/34934
11831         * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
11832         a fixed vector for stack.
11833
11834 2008-01-24  Ben Elliston  <bje@au.ibm.com>
11835
11836         PR c++/25701
11837         * doc/gcc.texi (Software development): Add a direntry for g++.
11838         
11839 2008-01-23  Hans-Peter Nilsson  <hp@axis.com>
11840
11841         * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
11842         stale and straggling -fforce-addr comments above.
11843
11844         * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
11845         define.
11846         * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
11847         * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
11848
11849 2008-01-23  Michael Matz  <matz@suse.de>
11850
11851         PR debug/34895
11852         * dwarf2out.c (force_type_die): Use modified_type_die instead of
11853         gen_type_die.
11854
11855 2008-01-23  Andreas Krebbel  <krebbel1@de.ibm.com>
11856
11857         * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
11858         malloc result type.
11859
11860 2008-01-23 Anatoly Sokolov <aesok@post.ru>
11861
11862         * config/avr/avr.c (avr_current_arch): New variable.
11863         (avr_arch_types): Add 'avr31' and 'avr51' entries.
11864         (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
11865         (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
11866         (avr_override_options): Init 'avr_current_arch'. 
11867         (base_arch_s): Move from here...
11868         * config/avr/avr.h (base_arch_s): ... here. Add new members 
11869         'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename 
11870         'mega' to 'have_jmp_call'.
11871         (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__", 
11872         "__AVR_HAVE_RAMPZ__",   "__AVR_HAVE_ELPM__" and  "__AVR_HAVE_ELPMX__"
11873         macros.
11874         (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51' 
11875         architectures.
11876         * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, 
11877         MULTILIB_MATCHES): (Ditto.).
11878
11879 2008-01-23  Richard Guenther  <rguenther@suse.de>
11880
11881         PR middle-end/31529
11882         * cgraphunit.c (cgraph_reset_node): Always mark the node
11883         not reachable if it is not queued already.
11884
11885 2008-01-23  Bernd Schmidt  <bernd.schmidt@analog.com>
11886
11887         * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
11888         * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
11889         (cputype_selected): New static variable.
11890         (bfin_handle_option): Set it if -mcpu is used.
11891         (override_option): Select default set of workarounds if no cpu type
11892         selected on the command line.
11893         (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
11894
11895         From  Michael Frysinger  <michael.frysinger@analog.com>
11896         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
11897         BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
11898
11899         * config/bfin/elf.h (LIB_SPEC): Use proper linker script
11900         for bf547, bf523, bf524, and bf526.
11901         * config/bfin/bfin.c (bfin_cpus[]): Add bf547,  bf523, bf524, and
11902         bf526.
11903         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
11904         __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
11905         __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
11906         __ADSPBF547__ and __ADSPBF54x__ for bf547.
11907         * doc/invoke.texi (Blackfin Options): Document that
11908         -mcpu now accept bf547, bf523, bf524, and bf526.
11909
11910 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
11911
11912         PR rtl-optimization/34628
11913         * combine.c (try_combine): Stop and undo after the first combination
11914         if an autoincrement side-effect on the first insn has effectively
11915         been lost.
11916
11917 2008-01-22  David Edelsohn  <edelsohn@gnu.org>
11918
11919         PR target/34529
11920         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
11921         Offset addresses are not valid for Altivec or paired float modes.
11922
11923 2008-01-22  Jakub Jelinek  <jakub@redhat.com>
11924
11925         PR c++/34607
11926         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
11927         if DECL_INITIAL (decl) is error_mark_node.
11928
11929         PR c++/34914
11930         * c-common.c (handle_vector_size_attribute): Only allow
11931         integral, scalar float and fixed point types.  Handle OFFSET_TYPE
11932         the same way as pointer, array etc. types.
11933         * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
11934
11935         PR c++/34917
11936         * tree.c (build_type_attribute_qual_variant): Call
11937         build_qualified_type if attributes are equal, but quals are not.
11938
11939 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11940
11941         PR 32102
11942         * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
11943         * flags.h (warn_strict_aliasing): Remove.
11944         (warn_strict_overflow): Remove.
11945         * opts.c (warn_strict_aliasing): Remove.
11946         (warn_strict_overflow): Remove.
11947         * c-opts.c (c_common_handle_option): -Wall only sets
11948         -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
11949         (c_common_post_options): Give default values to -Wstrict-aliasing
11950         and -Wstrict-overflow if they are uninitialized.
11951         * common.opt (Wstrict-aliasing): Specify Var and Init.
11952         (Wstrict-overflow): Likewise.
11953
11954 2008-01-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
11955
11956         PR rtl-optimization/26854
11957         PR rtl-optimization/34400
11958         PR rtl-optimization/34884
11959         * ddg.c (create_ddg_dep_from_intra_loop_link): Use
11960         DF_RD->gen.
11961         * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
11962         (df_rd_bb_info.expanded_lr_out): Deleted
11963         * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
11964         * loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
11965         (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
11966         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
11967         Removed code to allocate, initialize or free expanded_lr_out.
11968         (df_rd_bb_local_compute_process_def): Restructured to make more
11969         understandable.
11970         (df_rd_confluence_n): Removed code to no apply invalidate_by_call
11971         sets if the sets are being trimmed.
11972
11973 2008-01-22  H.J. Lu  <hongjiu.lu@intel.com>
11974
11975         PR bootstrap/32287
11976         * configure.ac (ld_vers): Support GNU linker version xx.xx.*
11977         (as_vers): Likewise.
11978         * configure: Regenerated.
11979
11980 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11981
11982         PR middle-end/33092
11983         * tree-pass.h (pass_build_alias): New pass.
11984         * tree-ssa-alias.c (gate_build_alias): New.
11985         (pass_build_alias): New.
11986         * passes.c (init_optimization_passes): Add pass_build_alias after
11987         pass_create_structure_vars.
11988
11989 2008-01-22  Wolfgang Gellerich  <gellerich@de.ibm.com>
11990
11991         * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
11992         Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
11993         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
11994         S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
11995         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
11996         S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
11997         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
11998         S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
11999         (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
12000         (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
12001         (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
12002         (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
12003         * config/s390/s390.md (FP_ALL): New mode iterator.
12004         (_d): New mode attribute.
12005         ("*signbit<mode>2>"): Changed mode of first operand.
12006         ("isinf<mode>2"): Changed mode of first operand.
12007         ("*TDC_insn"): Adaptation for DFP modes.
12008
12009 2008-01-22  Ben Elliston  <bje@au.ibm.com>
12010
12011         * tree.c (check_qualified_type): Improve function description.
12012
12013 2008-01-21  Jason Merrill  <jason@redhat.com>
12014
12015         PR c++/34196
12016         * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
12017         * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
12018         if it is set.
12019
12020 2008-01-21  DJ Delorie  <dj@redhat.com>
12021
12022         * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
12023         return zero.
12024
12025 2008-01-21  Richard Guenther  <rguenther@suse.de>
12026
12027         PR middle-end/34856
12028         * tree-cfg.c (verify_expr): Allow all invariant expressions
12029         instead of just constant class ones as reference argument.
12030         * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
12031         like any other constant.
12032         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
12033
12034 2008-01-21  H.J. Lu  <hongjiu.lu@intel.com>
12035
12036         * regmove.c (fixup_match_1): Update call crossed frequencies.
12037
12038 2008-01-21  Richard Guenther  <rguenther@suse.de>
12039
12040         PR c/34885
12041         * tree-inline.c (setup_one_parameter): Deal with mismatched
12042         types using a VIEW_CONVERT_EXPR.
12043
12044 2008-01-21  Alon Dayan  <alond@il.ibm.com>
12045             Olga Golovanevsky  <olga@il.ibm.com>
12046         
12047         PR tree-optimization/34701
12048         * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
12049         when the structure size is not a power of 2.
12050
12051 2008-01-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
12052
12053         * doc/install.texi: Add doc for --enable-checking=df.
12054         
12055 2008-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
12056
12057         PR rtl-optimization/34808
12058         * emit-rtl.c (try_split): Handle REG_RETVAL notes.
12059
12060 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
12061
12062         * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
12063         input.
12064
12065 2008-01-19  Kenneth Zadeck  <zadeck@naturalbridge.com>
12066
12067         PR rtl-optimization/26854
12068         PR rtl-optimization/34400
12069         * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
12070         DF_RD->gen.
12071         * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
12072         (df_rd_bb_info.expanded_lr_out): New.
12073         * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
12074         * loop_iv.c (iv_analysis_loop_init): Ditto.
12075         * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
12076         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
12077         Added code to allocate, initialize or free expanded_lr_out.
12078         (df_rd_bb_local_compute_process_def): Restructured to make
12079         more understandable.
12080         (df_rd_confluence_n): Add code to do nothing with fake edges and
12081         code to no apply invalidate_by_call sets if the sets are being trimmed.
12082         (df_lr_local_finalize): Renamed to df_lr_finalize.
12083         (df_live_local_finalize): Renamed to df_live_finalize.
12084
12085 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
12086
12087         PR target/34831
12088         * config/mips/mips.md (div<mode>3): Use <recip_condition> when
12089         deciding whether to use reciprocal instructions.
12090
12091 2008-01-19  Uros Bizjak  <ubizjak@gmail.com>
12092
12093         * dwarf2out.c (dwarf2out_switch_text_section): Do not call
12094         dwarf2out_note_section_used if cold_text_section is NULL.
12095
12096 2008-01-19  Jakub Jelinek  <jakub@redhat.com>
12097
12098         PR gcov-profile/34610
12099         * tree-cfg.c (make_edges): Mark both outgoing edges from
12100         OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
12101         * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
12102         from OMP_FOR and OMP_CONTINUE outgoing edges.
12103
12104         * tree-profile.c (tree_profiling): Return early if
12105         cfun->after_tree_profile != 0.  Set cfun->after_tree_profile
12106         at the end.
12107         * omp-low.c (expand_omp_parallel): Copy after_tree_profile
12108         from cfun to child_cfun.
12109         * function.h (struct function): Add after_tree_profile bit.
12110
12111 2008-01-19 Anatoly Sokolov <aesok@post.ru>
12112
12113         * config/avr/avr.S (_exit): Disable interrupt.
12114
12115 2008-01-18  Kenneth Zadeck  <zadeck@naturalbridge.com>
12116             Steven Bosscher  <stevenb.gcc@gmail.com>
12117
12118         PR rtl-optimization/26854
12119         PR rtl-optimization/34400
12120         * df-problems.c (df_live_scratch): New scratch bitmap.
12121         (df_live_alloc): Allocate df_live_scratch when doing df_live.
12122         (df_live_reset): Clear the proper bitmaps.
12123         (df_live_bb_local_compute): Only process the artificial defs once
12124         since the order is not important.
12125         (df_live_init): Init the df_live sets only with the variables
12126         found live by df_lr.
12127         (df_live_transfer_function): Use the df_lr sets to prune the
12128         df_live sets as they are being computed.  
12129         (df_live_free): Free df_live_scratch.
12130
12131 2008-01-18  Ian Lance Taylor  <iant@google.com>
12132
12133         * common.opt: Add fmerge-debug-strings.
12134         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
12135         flag_merge_debug_strings rather than flag_merge_constants.
12136         * doc/invoke.texi (Option Summary): Mention
12137         -fmerge-debug-strings.
12138         (Debugging Options): Document -fmerge-debug-strings.
12139
12140 2008-01-18  Ian Lance Taylor  <iant@google.com>
12141
12142         PR c++/33407
12143         * tree.h (DECL_IS_OPERATOR_NEW): Define.
12144         (struct tree_function_decl): Add new field operator_new_flag.
12145         * tree-inline.c (expand_call_inline): When inlining a call to
12146         operator new, force the return value to go into a variable, and
12147         set DECL_NO_TBAA_P on that variable.
12148         * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
12149
12150 2008-01-18  Uros Bizjak  <ubizjak@gmail.com>
12151
12152         PR debug/34484
12153         * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
12154         DWARF2_DEBUGGING_INFO.
12155         (dwarf2out_note_section_used): Ditto.  Add prototype.
12156         (have_multiple_function_sections, text_section_used,
12157         cold_text_section_used, *cold_text_sections): Move declarations
12158         before their uses.
12159
12160 2008-01-17  Bob Wilson  <bob.wilson@acm.org>
12161
12162         * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
12163         field and add signal_ra.
12164         * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
12165         assignments to frame state pc.  Move end of stack check after
12166         MD_FALLBACK_FRAME_STATE_FOR.
12167         (uw_update_context_1): Use frame state signal_regs if set, instead
12168         of checking signal_frame flag.
12169         (uw_update_context): Use frame state signal_ra if set.
12170         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
12171         * config/xtensa/linux-unwind.h: New file.
12172
12173 2008-01-18  Bernhard Fischer  <aldot@gcc.gnu.org>
12174
12175         * modulo-sched.c (get_sched_window): Fix comment typo.
12176
12177 2008-01-17  Andrew MacLeod  <amacleod@redhat.com>
12178
12179         PR tree-optimization/34648
12180         * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
12181
12182 2008-01-17  Anatoly Sokolov <aesok@post.ru>
12183
12184         * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
12185         * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
12186
12187 2008-01-17  Seongbae Park  <seongbae.park@gmail.com>
12188
12189         PR rtl-optimization/34400
12190         * df-core.c (df_worklist_dataflow_overeager,
12191         df_worklist_dataflow_doublequeue): New functions.
12192         (df_worklist_dataflow): Two different worklist solvers.
12193         * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
12194         New param.
12195
12196 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
12197
12198         PR testsuite/34821
12199         * doc/invoke.texi: Document the dependence on pthread for fopenmp
12200         and ftree-parallelize-loops.
12201
12202 2008-01-17  Mircea Namolaru  <namolaru@il.ibm.com>
12203
12204         PR rtl-optimization/34826
12205         * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
12206
12207 2008-01-17  Andreas Krebbel  <krebbel1@de.ibm.com>
12208
12209         * global.c (find_reg): Mark the eh regs as used if necessary.
12210         * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
12211         * ra.h (struct allocno): no_eh_reg field added.  Changed
12212         no_stack_reg type to bitfield.
12213
12214 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
12215
12216         * tree.c (substitute_in_expr): Add missing 'break'.
12217
12218 2008-01-17  Richard Guenther  <rguenther@suse.de>
12219
12220         PR tree-optimization/34825
12221         * tree-ssa-math-opts.c (is_division_by): Do not recognize
12222         x / x as division to handle.
12223
12224 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12225
12226         * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
12227         "-pthread" is specified.
12228         * pa-hpux11.h (LIB_SPEC): Likewise.
12229
12230 2008-01-16  Janis Johnson  <janis187@us.ibm.com>
12231             Peter Bergner  <bergner@vnet.ibm.com>
12232
12233         PR rtl-optimization/33796
12234         * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
12235
12236 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12237
12238         PR libgfortran/34699
12239         * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
12240         static links.
12241         * pa-hpux10.h (LINK_SPEC): Likewise.
12242         * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
12243
12244 2008-01-16  Richard Guenther  <rguenther@suse.de>
12245
12246         PR middle-end/32628
12247         * fold-const.c (fold_convert_const_int_from_int): Do not
12248         set overflow if that occured only because of a sign extension
12249         change when converting from/to a sizetype with the same
12250         precision and signedness.
12251
12252 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
12253
12254         PR debug/34249
12255         * dwarf2out.c (output_call_frame_info): Move output of FDE initial
12256         location address to the correct place.  Update copyright year.
12257
12258 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
12259
12260         * lambda-code.c (lambda_transform_legal_p): Handle the case of
12261         no dependences in the dependence_relations vector.
12262
12263 2008-01-16  Jan Hubicka  <jh@suse.cz>
12264
12265         PR rtl-optimization/31396
12266         * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
12267         * cfg.c (dump_reg_info): Print it.
12268         * regs.h (struct reg_info_t): add freq_calls_crossed.
12269         (REG_FREQ_CALLS_CROSSED): New macro.
12270         * global.c (global_alloc): Compute freq_calls_crossed for allocno.
12271         (find_reg): Update call of CALLER_SAVE_PROFITABLE.
12272         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
12273         regmove_optimize): Update call crossed frequencies.
12274         * local-alloc.c (struct qty): Add freq_calls_crossed.
12275         (alloc_qty): Copute freq_calls_crossed.
12276         (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
12277         (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
12278         * ra.h (struct allocno): Add freq_calls_crossed.
12279
12280 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
12281
12282         * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
12283         libgomp when compiling with ftree-parallelize-loops.
12284         (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
12285
12286 2008-01-16  Richard Guenther  <rguenther@suse.de>
12287
12288         PR tree-optimization/34769
12289         * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
12290         * tree.c (int_cst_value): Instead make this function more
12291         permissive in what it accepts as valid input.  Document this
12292         function always sign-extends the value.
12293
12294 2008-01-16  Jakub Jelinek  <jakub@redhat.com>
12295             Richard Guenther  <rguenther@suse.de>
12296
12297         PR c/34668
12298         * gimplify.c (fold_indirect_ref_rhs): Rename to ...
12299         (gimple_fold_indirect_ref_rhs): ... this.
12300         (gimple_fold_indirect_ref): New function with foldings
12301         that preserve lvalueness.
12302         (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
12303         * tree-flow.h (gimple_fold_indirect_ref): Declare.
12304         * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
12305         to fold an INDIRECT_REF, fall back to the old use of
12306         fold_indirect_ref_1.
12307
12308 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
12309
12310         * tree-data-ref.c (subscript_dependence_tester_1): Call 
12311         free_conflict_function.
12312         (compute_self_dependence): Same.
12313
12314 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
12315
12316         PR debug/34249
12317         * debug.h (dwarf2out_switch_text_section): Move declaration from ...
12318         * dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
12319         function global.
12320         * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
12321         Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
12322         for DWARF2_UNWIND_INFO targets.
12323
12324 2008-01-16  Richard Guenther  <rguenther@suse.de>
12325
12326         PR c/34768
12327         * c-typeck.c (common_pointer_type): Do not merge inconsistent
12328         type qualifiers for function types.
12329
12330 2008-01-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
12331
12332         * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
12333         loop_iterator li from previous commit.
12334
12335 2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
12336
12337         * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
12338
12339 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
12340
12341         * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
12342         (parallelize_loops): Don't parallelize irreducible components.
12343
12344 2008-01-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12345
12346         PR c++/24924
12347         * c-opts (c_common_post_options): Do not enable CPP
12348         flag_pedantic_errors by default.
12349         
12350 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
12351
12352         PR rtl-optimization/31944
12353         * cse.c (remove_pseudo_from_table): New function.
12354         (merge_equiv_classes): Use above function to remove pseudo-registers.
12355         (invalidate): Likewise.
12356
12357 2008-01-13  Richard Guenther  <rguenther@suse.de>
12358
12359         PR middle-end/34601
12360         * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
12361         instead of TYPE_MODE to deal with calls from expand_one_error_var.
12362
12363 2008-01-13  Uros Bizjak  <ubizjak@gmail.com>
12364
12365         * gcse.c (cprop_jump): Call validate_unshare_change instead of
12366         validate_change to unshare the source of the PC set.
12367
12368 2008-01-12  Jan Hubicka  <jh@suse.cz>
12369
12370         PR middle-end/32135
12371         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
12372         references above array bounds.  This might trigger bounds checks for
12373         pointers to arrays.
12374
12375 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
12376
12377         * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
12378         new_replaceable_dependencies.
12379
12380 2008-01-12  Doug Kwan  <dougkwan@google.com>
12381
12382         * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
12383         instead of OPT_Wreturn_type in warning due to ignored return type
12384         qualifiers.
12385         * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
12386         options included in -Wextra.
12387         * c.opt: New option -Wignored_qualifiers.
12388         * doc/invoke.texi (Warning Options, -Wextra): Add new option
12389         -Wignore_qualifiers.
12390         (-Wignored-qualifiers): Document.
12391         (-Wreturn-type): Remove description of functionality now handled
12392         by -Wignored-qualifiers.
12393
12394 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
12395
12396         PR ada/33788
12397         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
12398         NOP_EXPR if it is between integral types with the same precision.
12399
12400 2008-01-12  Jan Hubicka  <jh@suse.cz>
12401
12402         PR other/28023
12403         * invoke.texi (max-inline-recursive-depth): Fix default value.
12404
12405 2008-01-12  Zdenek Dvorak  <ook@ucw.cz>
12406
12407         * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
12408         correct type.
12409
12410 2008-01-11  Bob Wilson  <bob.wilson@acm.org>
12411         
12412         * config/xtensa/xtensa.c (override_options): Set flag_shlib.
12413         
12414 2008-01-11  James E. Wilson  <wilson@specifix.com>
12415
12416         PR target/26015
12417         * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
12418
12419 2008-01-11  Anatoly Sokolov <aesok@post.ru>
12420
12421         * config/avr/avr.c (expand_prologue, expand_epilogue): Don't 
12422         save/restore frame pointer register and don't use 'call-prologues' 
12423         optimization in function with "OS_task" attribute.
12424
12425 2008-01-11  Eric Botcazou  <ebotcazou@adacore.com>
12426
12427         PR middle-end/31309
12428         * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
12429         when copying to memory.
12430
12431 2008-01-11  Steven Bosscher  <stevenb.gcc@gmail.com>
12432
12433         PR rtl-optimization/30905
12434         * cfgcleanup.c: Include dce.h
12435         (crossjumps_occured): New global variable.
12436         (try_crossjump_bb): Exit loop after finding a fallthru edge.
12437         If something changed, set crossjumps_occured to true.
12438         (try_optimize_cfg): Clear crossjumps_occured at the beginning.
12439         Don't add/remove fake edges to exit here...
12440         (cleanup_cfg): ...but do it here, when crossjumping.
12441         Run a fast DCE when successful crossjumps occured in the latest
12442         iteration of try_optimize_cfg.
12443
12444 2008-01-11  Richard Guenther  <rguenther@suse.de>
12445
12446         * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
12447         (struct vn_unary_op_s): Likewise.
12448         (vn_reference_insert): Free old reference on hash collision.
12449
12450 2008-01-10  Raksit Ashok  <raksit@google.com>
12451
12452         PR rtl-optimization/27971
12453         * combine.c (find_split_point): Split PLUS expressions which are
12454         inside a MEM rtx, and whose first operand is complex.
12455
12456 2008-01-10  DJ Delorie  <dj@redhat.com>
12457
12458         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
12459         (m32c_hard_regno_nregs): ...this, which is now a wrapper.
12460         (m32c_hard_regno_ok): Call the underlying function.
12461
12462 2008-01-10  Richard Guenther  <rguenther@suse.de>
12463
12464         PR middle-end/34683
12465         * tree-cfg.c (tree_merge_blocks): Do not go through the
12466         full-blown folding and stmt updating path if we just deal
12467         with virtual operands.
12468         * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
12469         test for abnormal SSA_NAMEs.
12470
12471 2008-01-10  Andreas Krebbel  <krebbel1@de.ibm.com>
12472
12473         PR middle-end/34641
12474         * reload.c (push_reload): Add assertions.  All constants from
12475         reg_equiv_constant should have been used for replacing the respective
12476         pseudo earlier.
12477         (find_reloads_address): Invoke find_reloads_address_part for
12478         constant taken from the reg_equiv_constant array.
12479
12480 2008-01-10  Steven Bosscher  <stevenb.gcc@gmail.com>
12481
12482         * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
12483         field (valnum) the first in the struct.  Replace bools with
12484         unit bit fields.
12485
12486 2008-01-10  Richard Guenther  <rguenther@suse.de>
12487
12488         PR tree-optimization/34651
12489         * tree-sra.c (sra_build_assignment): Sanitize.  Use the correct
12490         types and ordering for masking and converting.
12491
12492 2008-01-09  Sebastian Pop  <sebastian.pop@amd.com>
12493
12494         PR tree-optimization/34017
12495         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
12496         also for PHI_NODE expressions.
12497
12498 2008-01-09  Jan Hubicka  <jh@suse.cz>
12499
12500         PR tree-optimization/34708
12501         * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
12502         based on number of case labels.
12503         (init_inline_once): Remove switch_cost.
12504         * tree-inline.h (eni_weights_d): Remove switch_cost.
12505
12506 2008-01-09  Richard Guenther  <rguenther@suse.de>
12507         Andrew Pinski  <andrew_pinski@playstation.sony.com>
12508
12509         PR middle-end/30132
12510         * gimplify.c (gimplify_cond_expr): Do not create an addressable
12511         temporary if an rvalue is ok or an lvalue is not required.
12512
12513 2008-01-09  Richard Guenther  <rguenther@suse.de>
12514
12515         PR middle-end/34458
12516         * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
12517         adjust return type.
12518
12519 2008-01-09  Richard Guenther  <rguenther@suse.de>
12520
12521         PR middle-end/34679
12522         * tree.c (host_integerp): Check for sizetype only if the
12523         type is an integer type.
12524
12525 2008-01-09  Steven Bosscher  <stevenb.gcc@gmail.com>
12526
12527         PR debug/26364
12528         * opts.c (decode_options): Disable inlining of functions called
12529         once if not in unit-at-a-time mode.
12530
12531 2008-01-09  Alexandre Oliva  <aoliva@redhat.com>
12532
12533         * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
12534
12535 2008-01-08  Richard Guenther  <rguenther@suse.de>
12536
12537         PR middle-end/31863
12538         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
12539         out early if the result will be unused.
12540
12541 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
12542
12543         PR target/34709
12544         Revert:
12545
12546         2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
12547         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
12548         for TARGET_RECIP.       
12549         
12550 2008-01-08  Jan Sjodin  <jan.sjodin@amd.com>
12551         
12552         * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
12553         for vectorization tuned.
12554         
12555 2008-01-08  Richard Guenther  <rguenther@suse.de>
12556
12557         PR tree-optimization/34683
12558         * tree-ssa-operands.c (operand_build_cmp): Export.
12559         * tree-ssa-operands.h (operand_build_cmp): Declare.
12560         * tree-vn.c (vuses_compare): Remove.
12561         (sort_vuses): Use operand_build_cmp.
12562         (sort_vuses_heap): Likewise.
12563         * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
12564         to re-use old VEC if available.  Do not sort already sorted VUSEs.
12565         (vdefs_to_vec): Do not sort already sorted VDEFs.
12566
12567 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
12568
12569         PR middle-end/34694
12570         * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
12571
12572 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
12573
12574         PR target/34702
12575         * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
12576         limitations of reciprocal sequences on x86 targets.
12577
12578 2008-01-08  Richard Guenther  <rguenther@suse.de>
12579
12580         PR tree-optimization/34683
12581         * tree-flow-inline.h (var_ann): Remove overzealous asserts.
12582
12583 2008-01-07  Jakub Jelinek  <jakub@redhat.com>
12584
12585         PR target/34622
12586         * config/darwin.c (darwin_mergeable_string_section): Don't use
12587         .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
12588
12589 2008-01-07  Uros Bizjak  <ubizjak@gmail.com>
12590
12591         PR target/34682
12592         * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
12593         negxf2.  Macroize expander using X87MODEF mode iterator.  Change
12594         predicates of op0 and op1 to register_operand.
12595         (abs<mode>2): Rename from abssf2, absdf2 and negxf2.  Macroize
12596         expander using X87MODEF mode iterator.  Change predicates of
12597         op0 and op1 to register_operand.
12598         ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
12599         corresponding patterns and macroize using MODEF macro.  Change
12600         predicates of op0 and op1 to register_operand and remove
12601         "m" constraint. Disparage "r" alternative with "!".
12602         ("*absneg<mode>2_i387"): Rename from corresponding patterns and
12603         macroize using X87MODEF macro.  Change predicates of op0 and op1
12604         to register_operand and remove "m" constraint.  Disparage "r"
12605         alternative with "!".
12606         (absneg splitter with memory operands): Remove.
12607         ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
12608         patterns and macroize using X87MODEF mode iterator.
12609         * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
12610         Change predicate of op1 to register_operand.
12611         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
12612         for memory operands.
12613
12614 2008-01-07  Nathan Froyd  <froydnj@codesourcery.com>
12615
12616         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
12617
12618 2008-01-07  Richard Guenther  <rguenther@suse.de>
12619
12620         * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
12621         fields.
12622
12623 2008-01-07  Richard Guenther  <rguenther@suse.de>
12624
12625         PR tree-optimization/34683
12626         * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
12627         VOPs of the needed size to save memory.  Use VEC_quick_push
12628         to save compile-time.
12629         (vdefs_to_vec): Likewise.
12630
12631 2008-01-07  Sa Liu  <saliu@de.ibm.com>
12632
12633         * config/spu/spu.md (divdf3): Genetate inline code for double
12634         division.  The implementation doesn't handle INF or NAN, therefore it
12635         only applies when -ffinite-math-only is given.
12636
12637 2008-01-06  Paolo Carlini  <pcarlini@suse.de>
12638
12639         PR libstdc++/34680
12640         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
12641         * doc/cpp.texi ([Common Predefined Macros]): Document.
12642
12643 2008-01-06  Uros Bizjak  <ubizjak@gmail.com>
12644
12645         * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
12646         order to use commutative addition instead of subtraction.
12647
12648 2008-01-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
12649             Mircea Namolaru  <namolaru@il.ibm.com>
12650             Vladimir Yanovsky  <yanov@il.ibm.com>
12651             Revital Eres  <eres@il.ibm.com>
12652
12653         PR tree-optimization/34263
12654         * tree-outof-ssa.c (process_single_block_loop_latch,
12655         contains_tree_r): New functions.
12656         (analyze_edges_for_bb): Call process_single_block_loop_latch
12657         function to empty single-basic-block latch block if possible.
12658
12659 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
12660
12661         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
12662         for TARGET_RECIP.
12663         (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
12664
12665 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
12666
12667         * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
12668
12669 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
12670
12671         * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
12672
12673 2008-01-05  Jakub Jelinek  <jakub@redhat.com>
12674
12675         PR tree-optimization/34618
12676         * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
12677         flag from T.
12678
12679 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
12680
12681         PR target/34673
12682         * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
12683         in the call to gen_rtx_NE.  Remove unneeded VECTOR_MODE_P check.
12684         Update copyright year.
12685
12686         * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
12687         Update copyright year.
12688         * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
12689         using NR fixup.
12690
12691 2008-01-05  Zhouyi Zhou  <zhouzhouyi@FreeBSD.org>
12692
12693         * tree-vrp.c (find_conditional_asserts): Remove redundant check that
12694         edge does not point to current bb before changing need_assert.
12695
12696 2008-01-04  Richard Guenther  <rguenther@suse.de>
12697
12698         PR middle-end/34029
12699         * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
12700         for verifying purposes if they are is_gimple_min_invariant.
12701
12702 2008-01-04  Aldy Hernandez  <aldyh@redhat.com>
12703
12704         PR tree-optimization/34448
12705         PR tree-optimization/34465
12706         * gimplify.c (gimplify_init_constructor): Add new parameter
12707         notify_temp_creation.  Use it.
12708         (gimplify_modify_expr_rhs): Take volatiles into account when
12709         optimizing constructors.
12710         Do not optimize constructors if gimplify_init_constructor will dump to
12711         memory.
12712         * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
12713         * gcc.c-torture/compile/pr34448.c: New.
12714
12715 2008-01-04  Jakub Jelinek  <jakub@redhat.com>
12716
12717         PR gcov-profile/34609
12718         * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
12719         return_slot if result is TREE_ADDRESSABLE.
12720
12721 2008-01-04  Richard Sandiford  <rsandifo@nildram.co.uk>
12722
12723         * config/mips/mips.md (sqrt_condition): Tweak comment.
12724         (recip_condition): Likewise.  Require TARGET_FLOAT64 for DFmode.
12725
12726 2008-01-03  Tom Tromey  <tromey@redhat.com>
12727
12728         PR c/34457
12729         * c-common.c (c_type_hash): Handle VLAs.
12730
12731 2008-01-03  Jan Hubicka  <jh@suse.cz>
12732
12733         PR tree-optimization/31081
12734         * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
12735         0 when inlining and not inlining to first basic block.
12736         (remap_decl): When var is initialized to 0, don't set default_def.
12737         (expand_call_inline): Set entry_bb.
12738         * tree-inline.h (copy_body_data): Add entry_bb.
12739
12740 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
12741
12742         PR c++/34619
12743         * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
12744         before returning.
12745
12746         PR tree-optimization/29484
12747         * tree-inline.c (inline_forbidden_p_2): New function.
12748         (inline_forbidden_p): Disallow inlining if some static var
12749         has an address of a local LABEL_DECL in its initializer.
12750         * doc/extend.texi (Labels as Values): Document &&foo behaviour
12751         vs. inlining.
12752
12753 2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>
12754
12755         PR tree-optimization/34635
12756         * tree-data-ref.c (add_other_self_distances): Make sure that the
12757         evolution step is constant.
12758
12759 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
12760
12761         PR middle-end/34608
12762         * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
12763
12764 2008-01-02  Richard Sandiford  <rsandifo@nildram.co.uk>
12765
12766         * tree-sra.c (scalarize_init): Insert the generate_element_init
12767         statements after the generate_element_zero statements.
12768
12769 2008-01-02  Richard Guenther  <rguenther@suse.de>
12770
12771         PR middle-end/34093
12772         PR middle-end/31976
12773         * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
12774         for very large number of operands instead of ICEing.
12775
12776 2008-01-02  Arthur Norman <acn1@cam.ac.uk>
12777
12778         PR target/34013
12779         * config/i386/i386.c (ix86_expand_prologue): Save red-zone
12780         while stack probing.
12781
12782 2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
12783
12784         * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
12785         in C++0x mode.
12786
12787 2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>
12788
12789         PR libmudflap/26442
12790         * tree-mudflap.c (mx_register_decls): Guard warning by
12791         !DECL_ARTIFICIAL check.
12792
12793 2008-01-01  Jakub Jelinek  <jakub@redhat.com>
12794
12795         * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
12796         sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
12797         sse5_perm<mode>): Fix constraints.