OSDN Git Service

908ccc1e71bd0a297ed5e77d0114d1866947e5e0
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-06-20  Bernhard Fischer  <aldot@gcc.gnu.org>
2
3         * tree-ssa-pre.c: Fix typo in comment.
4         (init_antic, fini_antic): Add explicit funtions for
5         initializing and deinitializing ANTIC and AVAIL sets.
6         (create_expression_by_pieces): Fix typo in comment.
7         Remove redundant set of new_stuff and use NULL_TREE instead of
8         NULL.
9         (execute_pre): Eventually dump details about ANTIC_IN.
10
11 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12
13         * collect2.c (main, add_to_list): Fix for -Wc++-compat.
14         * gcc.c (translate_options, init_spec, store_arg, read_specs,
15         add_to_obstack, file_at_path, find_a_file, execute,
16         add_preprocessor_option, add_assembler_option, add_linker_option,
17         process_command, insert_wrapper, do_option_spec, do_self_spec,
18         spec_path, do_spec_1, is_directory, main, used_arg,
19         getenv_spec_function): Likewise.
20         * tlink.c (symbol_hash_lookup, file_hash_lookup,
21         demangled_hash_lookup, symbol_push, file_push, frob_extension):
22         Likewise.
23
24 2008-06-19  Kenneth Zadeck <zadeck@naturalbridge.com>
25
26         * doc/rtl.texi: Updated subreg section.
27
28 2008-06-19  Jakub Jelinek  <jakub@redhat.com>
29
30         PR c++/36523
31         * cgraphunit.c (cgraph_process_new_functions): Don't clear
32         node->needed and node->reachable.
33         * cgraphbuild.c (record_reference): Handle OMP_PARALLEL and OMP_TASK.
34         * omp-low.c (delete_omp_context): Call finalize_task_copyfn.
35         (expand_task_call): Don't call expand_task_copyfn.
36         (expand_task_copyfn): Renamed to...
37         (finalize_task_copyfn): ... this.
38
39 2008-06-19  Jan Hubicka  <jh@suse.cz>
40
41         * builtins.c (expand_builtin_nonlocal_goto): Stabilize r_sp before
42         clobbering framepointer.
43
44 2008-06-19  Jan Hubicka  <jh@suse.cz>
45
46         * tree-optimize.c (execute_early_local_optimizations): Set
47         cgraph_state only at first invocation.
48
49 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
50
51         * system.h (-Wc++-compat): Activate as a warning, no an error.
52
53 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
54
55         * config/i386/i386.md (*jcc_fused_1): Use ASM_COMMENT_START
56         instead of "#" in insn asm template.
57         (*jcc_fused_2): Ditto.
58
59 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
60
61         * config/i386/i386.h (ix86_tune_indices)
62         [X86_TUNE_FUSE_CMP_AND_BRANCH]: New.
63         (TARGET_FUSE_CMP_AND_BRANCH): New define.
64         * config/i386/i386.md (*jcc_fused_1): New insn pattern
65         (*jcc_fused_2): Ditto.
66         * config/i386/i386.c (ix86_tune_features): Add m_CORE2 to
67         X86_TUNE_FUSE_CMP_AND_BRANCH targets.
68         (print operand): Handle 'E' and 'e' code.
69
70 2008-06-19  Anatoly Sokolov  <aesok@post.ru>
71
72         * config/avr/avr.c (avr_mcu_t): Add attiny13a.
73         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
74         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
75
76 2008-06-19  Bernhard Fischer  <aldot@gcc.gnu.org>
77
78         * cgraphunit.c (cgraph_finalize_function): Remove redundant setting of
79         node->decl.
80         (cgraph_expand_function): Use local copy of decl.
81         (cgraph_expand_all_functions): Remove redundant initialization of
82         order_pos.
83         (cgraph_optimize): Reword internal_error message.
84
85 2008-06-19  Chung-Lin Tang  <ctang@marvell.com>
86
87         * arm-protos.h (arm_return_in_memory): Remove public
88         arm_return_in_memory() prototype.
89         * arm.c (arm_return_in_memory): Add static prototype, add target
90         hook macro, change definition and comments.
91         * arm.h (TARGET_RETURN_IN_MEMORY): Remove.
92
93 2008-06-19  Ben Elliston  <bje@au.ibm.com>
94
95         * dfp.h, dfp.c, config/dfp-bit.h, config/dfp-bit.c, real.h,
96         real.c: Remove references to IEEE 754R.
97         * doc/install.texi (Configuration): IEEE 754R -> IEEE 754-2008.
98         * doc/libgcc.texi (Decimal float library routines): Likewise.
99
100 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
101
102         * targhooks.h (struct gcc_target): New member unwind_word_mode.
103         (default_unwind_word_mode): Add prototype.
104         * targhooks.c (default_unwind_word_mode): New function.
105         (default_eh_return_filter_mode): Return targetm.unwind_word_mode ()
106         instead of word_mode.
107         * target-def.h (TARGET_UNWIND_WORD_MODE): New macro.
108         (TARGET_INITIALIZER): Use it.
109
110         * c-common.c (handle_mode_attribute): Support "unwind_word"
111         mode attribute.
112         * unwind-generic.h (_Unwind_Word, _Unwind_Sword): Use it.
113
114         * except.c (init_eh): Use targetm.unwind_word_mode () instead of
115         word_mode to access SjLj_Function_Context member "data".
116         (sjlj_emit_dispatch_table): Likewise.  Also, perform type
117         conversion from targetm.eh_return_filter_mode () to
118         targetm.unwind_word_mode () if they differ.
119
120         * builtin-types.def (BT_UNWINDWORD): New primitive type.
121         (BT_FN_UNWINDWORD_PTR): New function type.
122         (BT_FN_WORD_PTR): Remove.
123         * builtins.def (BUILT_IN_EXTEND_POINTER): Use BT_FN_UNWINDWORD_PTR.
124         * except.c (expand_builtin_extend_pointer): Convert pointer to
125         targetm.unwind_word_mode () instead of word_mode.
126
127         * config/spu/spu-protos.h (spu_eh_return_filter_mode): Remove.
128         * config/spu/spu.c (spu_eh_return_filter_mode): Remove.
129         (spu_unwind_word_mode): New function.
130         (TARGET_EH_RETURN_FILTER_MODE): Do not define.
131         (TARGET_UNWIND_WORD_MODE): Define.
132         * config/spu/t-spu-elf (TARGET_LIBGCC2_CFLAGS): Remove -D__word__=SI.
133
134 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
135
136         * config/spu/spu.c (reg_align): Remove.
137         (regno_aligned_for_load): Also accept ARG_POINTER_REGNUM.
138         (spu_split_load): Use regno_aligned_for_load instead of reg_align.
139         (spu_split_store): Likewise.
140
141 2008-06-18  Bernhard Fischer  <aldot@gcc.gnu.org>
142
143         * gcc/tree-vn.c: Fix typo in comment.
144
145 2008-06-18  Jan Hubicka  <jh@suse.cz>
146
147         * cgraphunit.c (cgraph_optimize): Output debug info when doing
148         toplevel reorder too.
149
150 2008-06-18  Jan Hubicka  <jh@suse.cz>
151
152         * c-opts.c (c_common_post_options): PCH is not compatible with
153         no-unit-at-a-time.
154         * opts.c (handle_options): Enable unit-at-a-time at O0 along with
155         -fno-toplevel-reorder by default now.
156
157 2008-06-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
158
159         PR documentation/30739
160         * doc/install.texi (Prerequisites): Document dependency on awk.
161
162 2008-06-18  Uros Bizjak  <ubizjak@gmail.com>
163             Ian Lance Taylor  <iant@google.com>
164
165         PR rtl-optimization/35604
166         * jump.c (redirect_exp_1): Skip the condition of an IF_THEN_ELSE. We
167         only want to change jump destinations, not eventual label comparisons.
168
169 2008-06-16  Jan Hubicka  <jh@suse.cz>
170
171         * cgraphunit.c (cgraph_expand_pending_functions): Give up at
172         syntax errors.
173         (cgraph_analyze_function): Likewise.
174
175 2008-06-16  Jan Hubicka  <jh@suse.cz>
176
177         * cgraph.h (cgraph_mark_if_needed): New function.
178         * cgraphunit.c (cgraph_mark_if_needed): New function.
179         * c-decl.c (duplicate_decl): Use it.
180
181 2008-06-16  Jan Hubicka  <jh@suse.cz>
182
183         * cgraph.c (cgraph_add_new_function): When in expansion state, do
184         lowering.
185
186 2008-06-16  Jan Hubicka  <jh@suse.cz>
187
188         * tree-outof-ssa.c (pass_out_of_ssa): Do not depend on PROP_alias.
189
190 2008-06-16  Daniel Jacobowitz  <dan@codesourcery.com>
191             Kazu Hirata  <kazu@codesourcery.com>
192             Maxim Kuvyrkov  <maxim@codesourcery.com
193
194         * config.gcc (mips64el-st-linux-gnu): Use mips/st.h and mips/t-st.
195         * config.host: Use driver-native.o and mips/x-native for mips*-linux*.
196         * config/mips/linux.h (host_detect_local_cpu): Declare, add to
197         EXTRA_SPEC_FUNCTIONS.
198         (MARCH_MTUNE_NATIVE_SPECS, BASE_DRIVER_SELF_SPECS): New macros.
199         (DRIVER_SELF_SPECS): Adjust.
200         * config/mips/linux64.h (DRIVER_SELF_SPECS): Update.
201         * config/mips/st.h, config/mips/t-st: New.
202         * config/mips/driver-native.c, config/mips/x-native: New.
203         * doc/invoke.texi (MIPS): Document 'native' value for -march and
204         -mtune options.
205
206 2008-06-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
207
208         * config/mips/mips.h (ISA_HAS_CONDMOVE): Slice ISA_HAS_FP_CONDMOVE
209         from it.
210         (ISA_HAS_FP_CONDMOVE): New macro.
211         (ISA_HAS_FP_MADD4_MSUB4, ISA_HAS_FP_MADD3_MSUB3): New macros.
212         (ISA_HAS_NMADD_NMSUB): Rename to ISA_HAS_NMADD4_NMSUB4.
213         (ISA_HAS_NMADD3_NMSUB3): New macro.
214         * config/mips/mips.c (mips_rtx_costs): Update.
215         * config/mips/mips.md (MOVECC): Don't use FP conditional moves when
216         compiling for ST Loongson 2E/2F.
217         (madd<mode>): Rename to madd4<mode>.  Update.
218         (madd3<mode>): New pattern.
219         (msub<mode>): Rename to msub4<mode>.  Update.
220         (msub3<mode>): New pattern.
221         (nmadd<mode>): Rename to nmadd4<mode>.  Update.
222         (nmadd3<mode>): New pattern.
223         (nmadd<mode>_fastmath): Rename to nmadd4<mode>_fastmath.  Update.
224         (nmadd3<mode>_fastmath): New pattern.
225         (nmsub<mode>): Rename to nmsub4<mode>.  Update.
226         (nmsub3<mode>): New pattern.
227         (nmsub<mode>_fastmath): Rename to nmsub4<mode>_fastmath.  Update.
228         (nmsub3<mode>_fastmath): New pattern.
229         (mov<SCALARF:mode>_on_<MOVECC:mode>, mov<mode>cc): Update.
230
231 2008-06-18  Steven Bosscher  <steven@gcc.gnu.org>
232
233         * df.h (struct df_ref): Replace 'insn' field with 'insn_info' field.
234         (DF_REF_INSN_INFO): New.
235         (DF_REF_INSN, DF_REF_INSN_UID): Rewrite macros using DF_REF_INSN_INFO.
236         (DF_REF_IS_ARTIFICIAL): Artificial refs are now identified as refs
237         with a NULL DF_REF_INSN_INFO.
238         (DF_INSN_INFO_GET, DF_INSN_INFO_SET): Renamed from DF_INSN_GET and
239         DF_INSN_SET.
240         (DF_INSN_INFO_LUID, DF_INSN_INFO_DEFS, DF_INSN_INFO_USES,
241         DF_INSN_INFO_EQ_USES): New.
242         (DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES, DF_INSN_EQ_USES,
243         DF_INSN_UID_LUID, DF_INSN_UID_DEFS, DF_INSN_UID_USES,
244         DF_INSN_UID_EQ_USES): Rewrite using DF_INSN_INFO_* macros.
245         * df-core.c: Update comment for above changes.
246         (df_insn_debug_regno): Use DF_INSN_INFO_GET instead of INSN_UID and
247         DF_INSN_UID_* macros.
248         (df_ref_debug): Check for NULL DF_REF_INSN_INFO.
249         * df-scan.c (df_ref_record): Take a df_insn_info instead of an
250         insn rtx.  Update all callers.
251         (df_def_record_1, df_defs_record, df_uses_record, df_get_call_refs,
252         df_ref_create_structure, df_insn_refs_collect): Likewise.
253         (df_ref_equal_p): Compare DF_REF_INSN_INFO pointers for the refs.
254         * df-problems.c (df_chain_dump): Test for non-NULL DF_REF_INSN_INFO.
255         (df_live_bb_local_compute): Retrieve DF_INSN_INFO, use DF_INSN_INFO_*
256         macros to access the insn refs.
257         (df_chain_top_dump, df_chain_bottom_dump, df_byte_lr_alloc): Likewise.
258         * fwprop.c (use_killed_between): Use DF_REF_INSN accessor macro.
259         (all_uses_available): Retrieve DF_INSN_INFO for def_insn, and use it
260         for accessing the refs.
261         (try_fwprop_subst): Likewise.
262         * ddg.c (add_cross_iteration_register_deps): Use DF_REF_INSN macro.
263         * web.c (union_defs): Retrieve DF_INSN_INFO for def_insn, and use it
264         for accessing the refs.
265         * loop-invariant.c (invariant_for_use): Use DF_REF_BB macro.
266         (check_dependencies): Use DF_INSN_INFO_GET, use DF_INSN_INFO_* macros
267         to look at the insn refs.
268         (record_uses): Likewise.
269         * dce.c (deletable_insn_p): Don't tolerate artificial DEFs in this
270         function anymore.
271         (mark_artificial_uses): Don't mark_insn for artificial refs.
272         (mark_reg_rependencies): Likewise.
273
274         * doc/rtl.texi: Remove documentation of ADDRESSOF.
275
276 2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
277
278         * configure: Regenerate.
279
280 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
281
282         * config/avr/avr.c (avr_mcu_t): Remove atmega32hvb.
283         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 
284         * config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
285
286 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
287
288         * config/avr/avr.c (avr_mcu_t): Add attiny167.
289         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 
290         * gcc/config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
291
292 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
293
294         * config/avr/avr.c (avr_mcu_t): Add atmega32u4.
295         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 
296         * config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
297
298 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
299
300         * tree-ssa-sccvn.c: Fix format of comments.
301
302 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
303
304         * cgraph.c: Remove unneeded forward declarations of eq_node()
305         and hash_node().
306
307 2008-06-17  Steven Bosscher  <steven@gcc.gnu.org>
308
309         * see.c (see_analyse_one_def): Do not look for REG_LIBCALL and
310         REG_RETVAL notes.
311         (see_update_relevancy): Likewise.
312         * fwprop.c (try_fwprop_subst): Likewise.
313         * rtlanal.c (noop_move_p): Likewise.
314         * builtins.c (expand_buitlin_mathfn): Don't try to add REG_EQUAL
315         notes to non-existing libcall blocks.
316         * cse.c (cse_insn): Change prototype.  Don't update libcall notes.
317         Remove orig_set.
318         (cse_extended_basic_block): Don't track libcall and no-conflict notes.
319         (dead_libcall_p): Remove.
320         (delete_trivially_dead_insns): Don't use it.
321         * web.c (union_defs): Remove comment about keeping nops.
322         * gcse.c (hash_scan_insn): Don't take libcall pointers.
323         (compute_hash_table_work): Don't track libcall notes.
324         (do_local_cprop): Don't take libcall pointers.  Don't update
325         libcall notes.
326         (adjust_libcall_notes): Deleted.
327         (local_cprop_pass): Remove stack for nested libcalls (which shouldn't
328         ever have existed in the first place).
329         (replace_store_insn): Don't try to remove libcall notes.
330         * lower-subreg.c (move_libcall_note, move_retval_note): Deleted.
331         (resolve_reg_notes): Don't call them.
332         (resolve_simple_move): Likewise.
333         (decompose_multiword_subregs): Remove block handling REG_RETVAL notes.
334         Don't remove REG_RETVAL notes.
335         * emit-rtl.c (try_split): Don't update libcall notes.
336         (emit_copy_of_insn_after): Dito.
337         * cselib.c (cselib_current_insn_in_libcall): Remove.
338         (cselib_process_insn): Don't set/clear it.
339         (new_elt_loc_list): Don't record it.
340         (cselib_init): Don't initialize it.
341         * cselib.c (struct elt_loc_list): Remove in_libcall field.
342         * loop-invariant.c (find_invariant_insn): Don't look for libcall
343         notes.
344         * sched-deps.c (sched_analyze_insn): Don't group libcall blocks.
345         (sched_analyze): Don't set up deps->libcall_block_tail_insn.
346         (init_deps): Don't initialize it.
347         * sched-int.h (struct deps): Rremove libcall_block_tail_insn field.
348         * combine.c (delete_noop_moves): Don't update libcall notes.
349         (can_combine_p): Remove now pointless #if 0 block.
350         (try_combine): Remove another obsolete #if 0 block.
351         (distribute_notes): Don't distribute libcall notes.
352         * reg-notes.def (REG_LIBCALL, REG_RETVAL): Remove.
353         * dce.c (libcall_dead_p): Remove.
354         (delete_unmarked_insns): Don't handle libcall blocks.
355         (preserve_libcall_for_dce): Remove.
356         (prescan_insns_for_dce): Don't special-case libcall block insns.
357         * reload1 (reload): Don't handle libcall notes. 
358         * doc/rtl.texi (REG_LIBCALL, REG_RETVAL, REG_LIBCALL_ID): Remove
359         documentation.
360
361 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
362
363         * config/avr/avr.c (avr_mcu_t): Add atmega32c1.
364         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
365         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
366
367 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
368
369         * config/avr/avr.c (avr_mcu_t): Add atmega32m1.
370         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
371         * config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
372
373 2008-06-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
374
375         * Makefile.in (FLAGS_TO_PASS): Add $(datarootdir).
376
377 2008-06-16  Ira Rosen  <irar@il.ibm.com>
378
379         PR tree-optimization/36493
380         * tree-vect-transform.c (vect_create_data_ref_ptr): Remove TYPE from
381         the arguments list. Use VECTYPE to create vector pointer.
382         (vectorizable_store): Fail if accesses through a pointer to vectype
383         do not alias the original memory reference operands.
384         Call vect_create_data_ref_ptr without the removed argument.
385         (vectorizable_load): Likewise.
386         (vect_setup_realignment): Call vect_create_data_ref_ptr without the
387         removed argument.
388
389 2008-06-015  Andy Hutchinson  <hutchinsonandy@aim.com>
390
391         PR target/36336
392         * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Add check for 
393         reg_equiv_constant.
394
395 2008-06-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
396
397         * config/mips/loongson2ef.md: New file.
398         * config/mips/mips.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
399         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
400         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
401         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): New constants.
402         (define_attr "cpu"): Rename loongson2e and loongson2f to loongson_2e
403         and loongson_2f.
404         (loongson2ef.md): New include.
405         * config/mips/loongson.md (vec_pack_ssat_<mode>, vec_pack_usat_<mode>)
406         (add<mode>3, paddd, ssadd<mode>3, usadd<mode>3)
407         (loongson_and_not_<mode>, loongson_average_<mode>, loongson_eq_<mode>)
408         (loongson_gt_<mode>, loongson_extract_halfword)
409         (loongson_insert_halfword_0, loongson_insert_halfword_2)
410         (loongson_insert_halfword_3, loongson_mult_add, smax<mode>3)
411         (umax<mode>3, smin<mode>3, umin<mode>3, loongson_move_byte_mask)
412         (umul<mode>3_highpart, smul<mode>3_highpart, loongson_smul_lowpart)
413         (loongson_umul_word, loongson_pasubub, reduc_uplus_<mode>)
414         (loongson_psadbh, loongson_pshufh, loongson_psll<mode>)
415         (loongson_psra<mode>, loongson_psrl<mode>, sub<mode>3, psubd)
416         (sssub<mode>3, ussub<mode>3, vec_interleave_high<mode>)
417         (vec_interleave_low<mode>): Define type attribute.
418         * config/mips/mips.c (mips_ls2): New static variable.
419         (mips_issue_rate): Update to handle tuning for Loongson 2E/2F.
420         (mips_ls2_init_dfa_post_cycle_insn, mips_init_dfa_post_cycle_insn)
421         (sched_ls2_dfa_post_advance_cycle, mips_dfa_post_advance_cycle):
422         Implement target scheduling hooks.
423         (mips_multipass_dfa_lookahead): Update to handle tuning for
424         Loongson 2E/2F.
425         (mips_sched_init): Initialize data for Loongson scheduling.
426         (mips_ls2_variable_issue): New static function.
427         (mips_variable_issue): Update to handle tuning for Loongson 2E/2F.
428         Add sanity check.
429         (TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN)
430         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Override target hooks.
431         * config/mips/mips.h (TUNE_LOONGSON_2EF): New macros.
432         (ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY, ISA_HAS_HILO_INTERLOCKS):
433         Handle ST Loongson 2E/2F cores.
434         (CPU_UNITS_QUERY): Define macro to enable querying of DFA units.
435
436 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
437
438         * omp-low.c (extract_omp_for_data): Fix comment typo.
439         * c.opt: Fix typo.
440
441 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
442
443         * doc/sourcebuild.texi (Config Fragments): Remove obsolete
444         FIXME note about gcc/config.guess.
445         * doc/options.texi (Option file format): Remove non-ASCII bytes.
446         * doc/cpp.texi: Expand TABs, drop indentation outside examples.
447         * doc/cppopts.texi: Likewise.
448         * doc/extend.texi: Likewise.
449         * doc/gcc.texi: Likewise.
450         * doc/gccint.texi: Likewise.
451         * doc/gcov.texi: Likewise.
452         * doc/gty.texi: Likewise.
453         * doc/hostconfig.texi: Likewise.
454         * doc/install.texi: Likewise.
455         * doc/invoke.texi: Likewise.
456         * doc/loop.texi: Likewise.
457         * doc/makefile.texi: Likewise.
458         * doc/md.texi: Likewise.
459         * doc/passes.texi: Likewise.
460         * doc/tm.texi: Likewise.
461         * doc/tree-ssa.texi: Likewise.
462         * doc/trouble.texi: Likewise.
463
464 2008-06-15  Mark Shinwell  <shinwell@codesourcery.com>
465             Nathan Sidwell  <nathan@codesourcery.com>
466             Maxim Kuvyrkov  <maxim@codesourcery.com>
467             Richard Sandiford  <rdsandiford@googlemail.com>
468         
469         * config/mips/mips-modes.def: Add V8QI, V4HI and V2SI modes.
470         * config/mips/mips-protos.h (mips_expand_vector_init): New.
471         * config/mips/mips-ftypes.def: Add function types for Loongson-2E/2F
472         builtins.
473         * config/mips/mips.c (mips_split_doubleword_move): Handle new modes.
474         (mips_hard_regno_mode_ok_p): Allow 64-bit vector modes for Loongson.
475         (mips_vector_mode_supported_p): Add V2SImode, V4HImode and
476         V8QImode cases.
477         (LOONGSON_BUILTIN, LOONGSON_BUILTIN_ALIAS): New.
478         (CODE_FOR_loongson_packsswh, CODE_FOR_loongson_packsshb,
479         (CODE_FOR_loongson_packushb, CODE_FOR_loongson_paddw,
480         (CODE_FOR_loongson_paddh, CODE_FOR_loongson_paddb,
481         (CODE_FOR_loongson_paddsh, CODE_FOR_loongson_paddsb)
482         (CODE_FOR_loongson_paddush, CODE_FOR_loongson_paddusb)
483         (CODE_FOR_loongson_pmaxsh, CODE_FOR_loongson_pmaxub)
484         (CODE_FOR_loongson_pminsh, CODE_FOR_loongson_pminub)
485         (CODE_FOR_loongson_pmulhuh, CODE_FOR_loongson_pmulhh)
486         (CODE_FOR_loongson_biadd, CODE_FOR_loongson_psubw)
487         (CODE_FOR_loongson_psubh, CODE_FOR_loongson_psubb)
488         (CODE_FOR_loongson_psubsh, CODE_FOR_loongson_psubsb)
489         (CODE_FOR_loongson_psubush, CODE_FOR_loongson_psubusb)
490         (CODE_FOR_loongson_punpckhbh, CODE_FOR_loongson_punpckhhw)
491         (CODE_FOR_loongson_punpckhwd, CODE_FOR_loongson_punpcklbh)
492         (CODE_FOR_loongson_punpcklhw, CODE_FOR_loongson_punpcklwd): New.
493         (mips_builtins): Add Loongson builtins.
494         (mips_loongson_2ef_bdesc): New.
495         (mips_bdesc_arrays): Add mips_loongson_2ef_bdesc.
496         (mips_builtin_vector_type): Handle unsigned versions of vector modes.
497         (MIPS_ATYPE_UQI, MIPS_ATYPE_UDI, MIPS_ATYPE_V2SI, MIPS_ATYPE_UV2SI)
498         (MIPS_ATYPE_V4HI, MIPS_ATYPE_UV4HI, MIPS_ATYPE_V8QI, MIPS_ATYPE_UV8QI):
499         New.
500         (mips_expand_vector_init): New.
501         * config/mips/mips.h (HAVE_LOONGSON_VECTOR_MODES): New.
502         (TARGET_CPU_CPP_BUILTINS): Define __mips_loongson_vector_rev
503         if appropriate.
504         * config/mips/mips.md: Add unspec numbers for Loongson
505         builtins.  Include loongson.md.
506         (MOVE64): Include Loongson vector modes.
507         (SPLITF): Include Loongson vector modes.
508         (HALFMODE): Handle Loongson vector modes.
509         * config/mips/loongson.md: New.
510         * config/mips/loongson.h: New.
511         * config.gcc: Add loongson.h header for mips*-*-* targets.
512         * doc/extend.texi (MIPS Loongson Built-in Functions): New.
513
514 2008-06-14  Joseph Myers  <joseph@codesourcery.com>
515
516         * config.gcc (arc-*-elf*, avr-*-*, fr30-*-elf, frv-*-elf,
517         h8300-*-elf*, h8300-*-*, i[34567]86-*-elf*, x86_64-*-elf*,
518         i[34567]86-*-aout*, i[34567]86-*-coff*, ia64*-*-elf*,
519         iq2000*-*-elf*, m32r-*-elf*, m32rle-*-elf*, m32r-*-linux*,
520         m32rle-*-linux*, m68hc11-*-*|m6811-*-*, m68hc12-*-*|m6812-*-*,
521         m68k-*-coff*, mcore-*-elf, mcore-*-pe*, mipsisa64sr71k-*-elf*,
522         mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*, mips-*-elf* |
523         mipsel-*-elf*, mips64-*-elf* | mips64el-*-elf*, mips64vr-*-elf* |
524         mips64vrel-*-elf*, mips64orion-*-elf* | mips64orionel-*-elf*,
525         mipstx39-*-elf* | mipstx39el-*-elf*, mn10300-*-*, pdp11-*-,
526         powerpc-*-elf*, powerpcle-*-elf*, sh-*-elf* | sh[12346l]*-*-elf* |
527         sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | sh-*-linux* |
528         sh[2346lbe]*-*-linux* | sh-*-netbsdelf* | shl*-*-netbsdelf* |
529         sh5-*-netbsd* | sh5l*-*-netbsd* | sh64-*-netbsd* |
530         sh64l*-*-netbsd*, sh-*-*, sparc-*-elf*, sparc64-*-elf*,
531         v850e1-*-*, v850e-*-*, v850-*-*, xstormy16-*-elf, m32c-*-elf*):
532         Remove use_fixproto=yes.
533         (ia64*-*-hpux*): Remove comment about using fixproto.
534         (m68k-*-uclinuxoldabi*, m68k-*-uclinux*): Remove use_fixproto=no.
535
536 2008-06-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
537
538         * configure.ac: Update gthr-default.h lazily, to avoid unneeded
539         library rebuilds.
540         * configure: Regenerate.
541
542 2008-06-13  Eric Botcazou  <ebotcazou@adacore.com>
543
544         PR middle-end/36520
545         * builtins.c (get_memory_rtx): Test for the presence of DECL_SIZE_UNIT
546         before evaluating it.
547
548 2008-06-13  Jakub Jelinek  <jakub@redhat.com>
549
550         PR c/36507
551         * c-decl.c (merge_decls): Don't clear DECL_EXTERNAL for
552         nested inline functions.
553         (start_decl, start_function): Don't invert DECL_EXTERNAL
554         for nested inline functions.
555
556 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
557
558         * config/mips/mips.md: Remove TARGET_DEBUG_D_MODE conditions from
559         splits that must be made for correctness.
560
561 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
562
563         * config/mips/mips.c (BUILTIN_AVAIL_NON_MIPS16): New macro.
564         (AVAIL_NON_MIPS16): Likewise.
565         (mips_builtin_description): Replace target_flags with a predicate.
566         (paired_single, sb1_paired_single, mips3d, dsp, dspr2, dsp_32)
567         (dspr2_32): New availability predicates.
568         (MIPS_BUILTIN): New macro.
569         (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS)
570         (CMP_4S_BUILTINS, MOVTF_BUILTINS, CMP_BUILTINS)
571         (DIRECT_NO_TARGET_BUILTIN, BPOSGE_BUILTIN): Use it.
572         Replace the TARGET_FLAGS parameters with AVAIL parameters.
573         (mips_ps_bdesc, mips_sb1_bdesc, mips_dsp_bdesc)
574         (mips_dsp_32only_bdesc): Merge into...
575         (mips_builtins): ...this new array.
576         (mips_bdesc_map, mips_bdesc_arrays): Delete.
577         (mips_init_builtins): Update after above changes.
578         (mips_expand_builtin_1): Merge into...
579         (mips_expand_builtin): ...here and update after above changes.
580
581 2008-06-12  Paul Brook  <paul@codesourcery.com>
582
583         * longlong.h (__arm__): Define count_leading_zeros.
584         * config/arm/lib1funcs.asm (xxh, xxl, yyh, yyl): Define.
585         (clzsi2, clzdi2): New functions.
586         * config/arm/bpabi-v6m.S (xxh, xxl, yyh, yyl): Remove.
587         * config/arm/bpabi.S (xxh, xxl, yyh, yyl): Remove.
588         * config/arm/t-strongarm-elf (LIB1ASMFUNCS): Ditto.
589         * config/arm/t-vxworks (LIB1ASMFUNCS): Ditto.
590         * config/arm/t-pe (LIB1ASMFUNCS): Ditto.
591         * config/arm/t-arm-elf (LIB1ASMFUNCS): Ditto.
592         * config/arm/t-arm-coff (LIB1ASMFUNCS): Ditto.
593         * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
594         * config/arm/t-symbian (LIB1ASMFUNCS): Ditto.
595         * config/arm/t-wince-pe (LIB1ASMFUNCS): Ditto.
596
597 2008-06-12  Kazu Hirata  <kazu@codesourcery.com>
598
599         * config/m68k/m68k.c (m68k_tune_flags): New.
600         (override_options): Compute m68k_tune_flags.
601         (MULL_COST, MULW_COST): Update for various variants of CFV2.
602         * config/m68k/m68k.h (TUNE_MAC, TUNE_EMAC): New.
603
604 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
605
606         PR middle-end/36506
607         * omp-low.c (expand_omp_sections): Initialize l2 to avoid bogus warning.
608
609 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
610
611         * tree-inline.c (copy_body_r): Copy TREE_SIDE_EFFECTS along with
612         TREE_THIS_VOLATILE on INDIRECT_REF nodes.
613
614 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
615
616         * expr.c (store_field): Do a block copy from BLKmode to BLKmode-like.
617         (get_inner_reference): Use BLKmode for byte-aligned BLKmode bitfields.
618
619 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
620
621         PR middle-end/36506
622         * omp-low.c (expand_omp_sections): Handle #pragma omp sections with
623         reductions.
624
625 2008-06-12  Richard Guenther  <rguenther@suse.de>
626
627         PR tree-optimization/36345
628         * tree-flow.h (struct ptr_info_def): Align escape_mask,
629         add memory_tag_needed flag.
630         (may_alias_p): Declare.
631         * tree-ssa-alias.c (may_alias_p): Export.
632         (set_initial_properties): Use memory_tag_needed flag.
633         (update_reference_counts): Likewise.
634         (reset_alias_info): Reset memory_tag_needed flag.
635         (create_name_tags): Check memory_tag_needed flag.
636         (dump_points_to_info_for): Dump it.
637         * tree-ssa-structalias.c (struct variable_info): Remove
638         directly_dereferenced flag.
639         (new_var_info): Do not initialize it.
640         (process_constraint_1): Do not set it.
641         (update_alias_info): Set is_dereferenced flag.
642         (set_uids_in_ptset): Use may_alias_p.
643         (set_used_smts): Check memory_tag_needed flag.
644         (find_what_p_points_to): Likewise.  Pass is_dereferenced flag.
645         * tree-ssa-alias.c (verify_flow_sensitive_alias_info): Check
646         memory_tag_needed flag.
647         * tree-ssa-alias-warnings.c (dsa_named_for): Try to recover
648         from broken design.
649
650 2008-06-12  Kai Tietz  <kai.tietz@onevision.com>
651
652         * config/i386/i386.c (ix86_compute_frame_layout): Disable
653         red zone for w64 abi.
654         (ix86_expand_prologue): Likewise.
655         (ix86_force_to_memory): Likewise.
656         (ix86_free_from_memory): Likewise.
657
658 2008-06-11  Edmar Wienskoski  <edmar@freescale.com>
659
660         PR target/36425
661         * config/rs6000/rs6000.c (rs6000_override_options): Set
662         rs6000_isel conditionally to the absence of comand line override.
663         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
664         Remove duplicate rs6000_isel setting.
665         * config/rs6000/eabispe.h: Ditto.
666
667 2008-06-11  Richard Guenther  <rguenther@suse.de>
668
669         * alias.c (get_alias_set): Use the element alias-set for arrays.
670         (record_component_aliases): For arrays and vectors do nothing.
671         * c-common.c (strict_aliasing_warning): Handle the cases
672         of alias set zero explicitly.
673         * Makefile.in (dfp.o-warn): Add -Wno-error.
674
675 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
676
677         * config.gcc (all_defaults): Add arch_32 arch_64 cpu_32 cpu_64
678         tune_32 tune_64.
679         (i[34567]86-*-* | x86_64-*-*): Add arch_32 arch_64 cpu_32 cpu_64
680         tune_32 tune_64 to supported_defaults.  Allow values not
681         supporting 64-bit mode for arch_32, cpu_32 and tune_32 for
682         x86_64.  Do not override cpu_32 or cpu_64 values from target name.
683         (i[34567]86-*-linux*, i[34567]86-*-solaris2.1[0-9]*): Only default
684         with_cpu_64 to generic for 64-bit-supporting configurations, not
685         with_cpu.  Remove FIXMEs.
686         * doc/install.texi (--with-cpu-32, --with-cpu-64, --with-arch-32,
687         --with-arch-64, --with-tune-32, --with-tune-64): Document.
688         * config/i386/i386.h (OPT_ARCH32, OPT_ARCH64): Define.
689         (OPTION_DEFAULT_SPECS): Add tune_32, tune_64, cpu_32, cpu_64,
690         arch_32 and arch_64.
691
692 2008-06-11  Eric Botcazou  <ebotcazou@adacore.com>
693             Olivier Hainque  <hainque@adacore.com>
694
695         * builtins.c (get_memory_rtx): Accept byte-addressable bitfields.
696         Use DECL_SIZE_UNIT to retrieve the size of the field.
697
698 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
699
700         * config/arm/arm.c (arm_init_neon_builtins): Move initialization
701         with function calls after declarations.  Lay out
702         neon_float_type_node before further use.
703
704 2008-06-11  Richard Guenther  <rguenther@suse.de>
705
706         * tree-flow.h (may_point_to_global_var): Declare.
707         * tree-ssa-alias.c (may_point_to_global_var): New function.
708         * tree-ssa-sink.c (is_hidden_global_store): Use it.
709
710 2008-06-10  Kazu Hirata  <kazu@codesourcery.com>
711
712         * configure.ac: Teach that fido supports .debug_line.
713         * configure: Regenerate.
714
715 2008-06-10  Tom Tromey  <tromey@redhat.com>
716
717         * c-lex.c (fe_file_change): Pass SOURCE_LINE to start_source_file
718         debug hook.
719
720 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
721
722         * dfp.c (WORDS_BIGENDIAN): Define to 0 if not defined.
723         (encode_decimal64, decode_decimal64, encode_decimal128,
724         decode_decimal128): Reverse order of 32-bit parts of value if host
725         and target endianness differ.
726
727 2008-06-10  Vinodha Ramasamy  <vinodha@google.com>
728
729         * value_prob.c (tree_divmod_fixed_value_transform): Use gcov_type.
730         Avoid division by 0.
731         (tree_mod_pow2_value_transform): Likewise.
732         (tree_ic_transform): Likewise.
733         (tree_stringops_transform): Likewise.
734         (tree_mod_subtract_transform): Likewise.
735         * tree-inline-c (copy_bb): Corrected int type to gcov_type.
736         (copy_edges_for_bb): Likewise.
737         (initialize_cfun): Likewise.
738
739 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
740
741         * config/i386/i386.md (*btdi_rex64): Change operand 1 predicate to
742         nonmemory_operand. Add "N" operand constraint.
743         (*btsi): Ditto.
744         (*jcc_btdi_mask_rex64): New instruction and split pattern.
745         (*jcc_btsi_mask): Ditto.
746         (*jcc_btsi_mask_1): Ditto.
747
748 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
749
750         * config/rs6000/rs6000.c (build_opaque_vector_type): Set
751         TYPE_CANONICAL for copied element type.
752
753 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
754
755         PR target/36473
756         * config/i386/i386.c (ix86_tune_features) [TUNE_USE_BT]:
757         Add m_CORE2 and m_GENERIC.
758         * config/i386/predicates.md (bt_comparison_operator): New predicate.
759         * config/i386/i386.md (*btdi_rex64): New instruction pattern.
760         (*btsi): Ditto.
761         (*jcc_btdi_rex64): New instruction and split pattern.
762         (*jcc_btsi): Ditto.
763         (*jcc_btsi_1): Ditto.
764         (*btsq): Fix Intel asm dialect operand order.
765         (*btrq): Ditto.
766         (*btcq): Ditto.
767
768 2008-06-09  Andy Hutchinson  <hutchinsonandy@aim.com>
769
770         PR middle-end/36447
771         * simplify-rtx.c (simplify_subreg): Add check for shift count 
772         greater than size.
773
774 2008-06-09  Richard Sandiford  <rdsandiford@googlemail.com>
775
776         * doc/md.texi: Synchronize with later constraints.md change.
777         * longlong.h (umul_ppmm): Replace the MIPS asm implementation
778         with a C implementation.
779         * config/mips/mips.c (mips_legitimize_move): Remove MFHI and
780         MFLO handling.
781         (mips_subword): Assume TImode for CONST_INTs if TARGET_64BIT.
782         (mips_split_doubleword_move): Use special MTHI and MFHI instructions
783         when moving to and from MD_REGNUM.
784         (mips_output_move): Don't handle moves from GPRs to HI_REGNUM.
785         Handle moves from LO_REGNUM to GPRs using MFLO, MACC or DMACC.
786         Handle byte and halfword moves.
787         (mips_hard_regno_mode_ok_p): Handle MD_REGS and DSP_ACC_REGS
788         separately.
789         * config/mips/constraints.md (h): Turn into NO_REGS.
790         (l, x): Update documentation.
791         * config/mips/mips.md (UNSPEC_MFHILO): Delete.
792         (UNSPEC_MFHI, UNSPEC_MTHI, UNSPEC_SET_HILO): New.
793         (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): Renumber.
794         (HILO): New mode iterator.
795         (MOVE128): Add TI.
796         (any_div): New code iterator.
797         (u): Extend code attribute to div and udiv.
798         (*add<mode>3_mips16, *movdi_64bit_mips16, *movsi_mips16): Use
799         d_operand in the splitters.  Remove redundant CONST_INT checks.
800         (mulsi3_mult3, mul<mode>3_internal, mul<mode>3_r4000, *mul_acc_si)
801         (*macc, *msac, *msac_using_macc, *macc2, *msac2, *mul_sub_si)
802         (*muls): Remove "=h" clobbers.  Adjust peephole2s and define_splits
803         accordingly, using normal moves instead of unspecs to move LO into
804         a GPR.  Use d_operand and lo_operand instead of *_REG_P checks.
805         (<u>mulsidi3): Handle expansion in C code.
806         (<u>mulsidi3_32bit_internal): Rename to...
807         (<u>mulsidi3_32bit): ...this.
808         (<u>mulsidi3_32bit_r4000): Fix insn separator.
809         (*<u>mulsidi3_64bit): Rename to...
810         (<u>mulsidi3_64bit): ...this.  Combine DImode "=h" and "=l" clobbers
811         into a TImode "=x" clobber.  In the split, use an UNSPEC_SET_HILO
812         to set LO and HI to the multiplication result.  Use a normal move
813         for MFLO and an unspec for MFHI.
814         (*<u>mulsidi3_64bit_parts): Replace with...
815         (<u>mulsidi3_64bit_hilo): ...this new instruction.
816         (<su>mulsi3_highpart): Extend to TARGET_FIX_R4000.
817         (<su>mulsi3_highpart_internal): Turn into a define_insn_and_split
818         and extend it to TARGET_FIX_R4000.  Store the destination in a GPR
819         instead of HI.  Split the instruction into a separate multiplication
820         and MFHI if !TARGET_FIX_R4000.
821         (<su>muldi3_highpart): Likewise.
822         (<su>mulsi3_highpart_mulhi_internal): Remove the first alternative
823         and the "=h" clobber.
824         (*<su>mulsi3_highpart_neg_mulhi_internal): Likewise.
825         (<u>mulditi3): New expander.
826         (<u>mulditi3_internal, <u>mulditi3_r4000): New patterns.
827         (madsi): Remove "=h" clobber.
828         (divmod<mode>4, udivmod<mode>4): Turn into define_insn_and_splits.
829         Force the modulus result to be a GPR and split the instruction into
830         a division followed by an MFHI after reload.
831         (<u>divmod<GPR:mode>4_hilo_<HILO:mode>): New instruction.
832         (*lea_high64): Use d_operand in the define_peephole2.  Likewise
833         the MIPS16 HIGH define_split.
834         (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16): Change type
835         of acc<->gpr moves to "multi".
836         (*movdi_64bit): Replace the single "x" alternative with
837         alternatives for moving into and out of "a".
838         (*movhi_internal, *movqi_internal): Likewise.  Use mips_output_move.
839         (*movsi_internal): Extend the "d<-A" alternative to "d<-a".
840         (*movdi_64bit_mips16, *movsi_mips16): Add d<-a alternatives.
841         Use d_operand in the splitters.  Remove redundant CONST_INT checks.
842         (*movhi_mips16, *movqi_mips16): Likewise.  Use mips_output_move.
843         (movti): New expander.
844         (*movti, *movti_mips16): New insns.
845         (mfhilo_<mode>, *mfhilo_<mode>, *mfhilo_<mode>_macc): Delete.
846         (mfhi<GPR:mode>_<HILO:mode>): New pattern.
847         (mthi<GPR:mode>_<HILO:mode>): Likewise.
848         * config/mips/predicates.md (fpr_operand): Delete.
849         (d_operand): New predicate.
850
851 2008-06-09  Michael Meissner  <michael.meissner@amd.com>
852
853         * config.gcc (i[34567]86-*-*): Put test in quotes to prevent
854         failure on some Bourne shells.
855         (x86_64-*-*): Ditto.
856
857 2008-06-09  Kai Tietz  <kai.tietz@onevision.com>
858
859         * config/i386/cygming.h (TARGET_SUBTARGET64_DEFAULT): New.
860
861 2008-06-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
862
863         * doc/install.texi (*-*-solaris2*): Remove obsolete contents.
864         (sparc-sun-solaris2*): Likewise.
865
866 2008-06-09  Arnaud Charlet  <charlet@adacore.com
867
868         * doc/install.texi: Update requirements to build the Ada compiler.
869
870 2008-06-08  Steven Bosscher  <stevenb.gcc@gmail.com>
871
872         * df-scan.c (struct df_scan_problem_data): Remove the
873         mw_link_pool alloc pool.
874         (df_scan_free_internal): Don't free it.
875         (df_scan_alloc): Don't allocate it.
876         * df.h (struct df_link): Update comment.
877
878 2008-06-08  Nathan Sidwell  <nathan@codesourcery.com>
879
880         * except.h: Correct checks for when SJLJ exceptions must be used.
881
882 2008-06-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
883
884         * doc/invoke.texi (Wenum-compare): Mention that it is enabled by
885         default.
886         
887 2008-06-08  Joseph Myers  <joseph@codesourcery.com>
888
889         PR tree-optimization/36218
890         * configure.ac: Use LDFLAGS="${LDFLAGS_FOR_BUILD}" when running
891         configure for the build system.
892         (BUILD_LDFLAGS): Define.
893         * configure: Regenerate.
894         * Makefile.in (BUILD_LDFLAGS): Define to @BUILD_LDFLAGS@.
895
896 2008-07-08  Anatoly Sokolov  <aesok@post.ru>
897
898         PR target/36424
899         * config/avr/avr.h (HARD_REGNO_RENAME_OK): Define.
900         * config/avr/avr.c (avr_hard_regno_rename_ok): New function. 
901         * config/avr/avr-protos.h (avr_hard_regno_rename_ok): New prototype. 
902
903 2008-06-07  Danny Smith  <dannysmith@users.sourceforge.net>
904
905         * config/i386/cygming.h (MAYBE_UWIN_CPP_BUILTINS): Remove.
906
907 2008-06-07  Joseph Myers  <joseph@codesourcery.com>
908
909         * config.gcc (Obsolete configurations): Remove list of
910         configurations.
911         (Unsupported targets list): Add *-*-linux*aout*, *-*-linux*libc1*,
912         *-*-solaris2.[0-6], *-*-solaris2.[0-6].*, *-*-sysv*.  Remove other
913         targets matched by those patterns.
914         (strongarm*-*-*, ep9312*-*-*, xscale-*-*, parisc*-*-*,
915         m680[012]0-*-*, *-*-linux*libc1*, *-*-linux*aout*,
916         alpha*-*-unicosmk*, strongarm*-*-freebsd*, ep9312-*-elf,
917         arm*-*-kaos*, cris-*-aout, parisc*64*-*-linux*, parisc*-*-linux*,
918         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
919         i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
920         i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-sco3.2v5*,
921         i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, i[34567]86-*-uwin*,
922         i[34567]86-*-kaos*, m68020-*-elf*, m68010-*-netbsdelf*,
923         mips-wrs-windiss, mt-*-elf, powerpc-*-beos*, powerpc-*-chorusos*,
924         powerpc-wrs-windiss*, powerpcle-*-sysv*, powerpc-*-kaos*,
925         powerpcle-*-kaos*, sh*-*-kaos*, sparc-*-sysv4*, strongarm-*-elf*,
926         strongarm-*-pe, strongarm-*-kaos*, vax-*-bsd*, vax-*-sysv*,
927         vax-*-ultrix*, xscale-*-elf, xscale-*-coff,
928         i[34567]86-*-linux*aout*, i[34567]86-*-linux*libc1): Remove.
929         Make code for Solaris 7 and greater unconditional for Solaris.
930         (ep9312-*-*, parisc1*, m680[012]0-*-*, parisc*-*-*, mt-*-*):
931         Remove --with-* handling.
932         * config/rs6000/sysv4.h (-mwindiss): Remove from all specs.
933         (LIB_WINDISS_SPEC, CPP_OS_WINDISS_SPEC, STARTFILE_WINDISS_SPEC,
934         ENDFILE_WINDISS_SPEC, LINK_START_WINDISS_SPEC,
935         LINK_OS_WINDISS_SPEC): Remove.
936         * config/rs6000/sysv4.opt (mwindiss): Remove.
937         * configure.ac (strongarm*-*-*, xscale*-*-*): Remove.
938         * configure: Regenerate.
939         * doc/cpp.texi: Don't mention BeOS.
940         * doc/extend.texi (interrupt): Don't mention MS1.
941         * doc/install.texi: (i386-@var{any}-sysv, m68k-bull-sysv,
942         m68k-hp-hpux, m68000-hp-hpux, m68000-att-sysv,
943         alphaev5-cray-unicosmk*, xscale-*-*, i?86-*-linux*aout,
944         i?86-*-sco3.2v5*, i?86-*-udk, m68k-hp-hpux, powerpc-*-sysv4,
945         powerpc-*-sysv4, powerpcle-*-sysv4, *-*-sysv*, vax-dec-ultrix):
946         Remove.
947         * doc/invoke.texi (MT Options): Remove.
948         (-mwindiss): Remove.
949         (CRIS Options): Remove cris-axis-aout references.
950         (HPPA Options): Don't mention hppa1.1-*-pro.
951         * doc/md.texi: (MorphoTech family): Remove.
952         * libgcc2.c: Don't handle UWIN.
953         * config/alpha/t-unicosmk: Remove.
954         * config/alpha/unicosmk.h: Remove.
955         * config/arm/kaos-arm.h: Remove.
956         * config/arm/kaos-strongarm.h: Remove.
957         * config/arm/strongarm-coff.h: Remove.
958         * config/arm/strongarm-elf.h: Remove.
959         * config/arm/strongarm-pe.h: Remove.
960         * config/arm/t-strongarm-pe: Remove.
961         * config/arm/t-xscale-coff: Remove.
962         * config/arm/t-xscale-elf: Remove.
963         * config/arm/xscale-coff.h: Remove.
964         * config/arm/xscale-elf.h: Remove.
965         * config/chorus.h: Remove.
966         * config/cris/aout.h: Remove.
967         * config/cris/aout.opt: Remove.
968         * config/cris/t-aout: Remove.
969         * config/i386/beos-elf.h: Remove.
970         * config/i386/kaos-i386.h: Remove.
971         * config/i386/ptx4-i.h: Remove.
972         * config/i386/sco5.h: Remove.
973         * config/i386/sco5.opt: Remove.
974         * config/i386/sysv4-cpp.h: Remove.
975         * config/i386/sysv5.h: Remove.
976         * config/i386/t-beos: Remove.
977         * config/i386/t-sco5: Remove.
978         * config/i386/t-uwin: Remove.
979         * config/i386/uwin.asm: Remove.
980         * config/i386/uwin.h: Remove.
981         * config/kaos.h: Remove.
982         * config/mips/windiss.h: Remove.
983         * config/mt: Remove directory.
984         * config/pa/pa-osf.h: Remove.
985         * config/pa/pa-pro-end.h: Remove.
986         * config/pa/t-pro: Remove.
987         * config/ptx4.h: Remove.
988         * config/rs6000/beos.h: Remove.
989         * config/rs6000/kaos-ppc.h: Remove.
990         * config/rs6000/t-beos: Remove.
991         * config/rs6000/windiss.h: Remove.
992         * config/sh/kaos-sh.h: Remove.
993         * config/sol2-6.h: Remove.
994         * config/sparc/sol26-sld.h: Remove.
995         * config/sparc/sysv4-only.h: Remove.
996         * config/vax/bsd.h: Remove.
997         * config/vax/t-memfuncs: Remove.
998         * config/vax/ultrix.h: Remove.
999         * config/vax/vaxv.h: Remove.
1000         * config/windiss.h: Remove.
1001
1002 2008-06-06 Uros Bizjak <ubizjak@gmail.com>
1003
1004         PR rtl-optimization/36438
1005         * cse.c (fold_rtx) [ASHIFT, LSHIFTRT, ASHIFTRT]: Break out early
1006         for vector shifts with constant scalar shift operands.
1007
1008 2008-06-06  Sandip Matte  <sandip@rmicorp.com>
1009
1010         * doc/invoke.texi: Document -march=xlr.
1011         * config/mips/xlr.md: New file.
1012         * config/mips/mips.md: Include it.
1013         (cpu): Add "xlr".
1014         * config/mips/mips.h (PROCESSOR_XLR): New processor_type.
1015         * config/mips/mips.c (mips_cpu_info_table): Add an XLR entry.
1016         (mips_rtx_cost_data): Likewise.
1017
1018 2008-06-06  Nathan Froyd  <froydnj@codesourcery.com>
1019
1020         * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Remove
1021         PRE_INC and PRE_DEC cases.
1022
1023 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
1024
1025         PR rtl-optimization/36419
1026         * except.c (expand_resx_expr): Call do_pending_stack_adjust () before
1027         the emitting jump insn.
1028
1029         PR target/36362
1030         * gimplify.c (gimplify_expr) <case TRUTH_NOT_EXPR>: If *expr_p type
1031         is not bool, boolify the whole *expr_p and convert to the desired type.
1032
1033 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
1034
1035         * c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to 200805.
1036         * langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause.
1037         Add omp_private_outer_ref hook, add another argument to
1038         omp_clause_default_ctor hook.
1039         * langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
1040         (LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
1041         (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to
1042         hook_tree_tree_tree_tree_null.
1043         (LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and
1044         LANG_HOOKS_OMP_PRIVATE_OUTER_REF.
1045         * hooks.c (hook_tree_tree_tree_tree_null): New function.
1046         * hooks.h (hook_tree_tree_tree_tree_null): New prototype.
1047         * tree.def (OMP_TASK): New tree code.
1048         * tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN,
1049         OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT,
1050         OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT,
1051         OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES,
1052         OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY,
1053         OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG,
1054         OMP_CLAUSE_COLLAPSE_EXPR): Define.
1055         (enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
1056         (OMP_DIRECTIVE_P): Add OMP_TASK.
1057         (OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes.
1058         (OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind.
1059         * tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE
1060         and OMP_CLAUSE_UNTIED entries.
1061         (omp_clause_num_ops): Likewise.  Increase OMP_CLAUSE_LASTPRIVATE
1062         num_ops to 2.
1063         (walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
1064         Walk OMP_CLAUSE_LASTPRIVATE_STMT.
1065         * tree-pretty-print.c (dump_omp_clause): Handle
1066         OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE,
1067         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
1068         (dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops.
1069         * c-omp.c (c_finish_omp_for): Allow pointer iterators.  Remove
1070         warning about unsigned iterators.  Change decl/init/cond/incr
1071         arguments to TREE_VECs, check arguments for all collapsed loops.
1072         (c_finish_omp_taskwait): New function.
1073         (c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to
1074         ws_clauses.
1075         * c-parser.c (c_parser_omp_for_loop): Parse collapsed loops.  Call
1076         default_function_array_conversion on init.  Add par_clauses argument.
1077         If decl is present in parallel's lastprivate clause, change it to
1078         shared and add lastprivate clause for decl to OMP_FOR_CLAUSES.
1079         Add clauses argument, on success set OMP_FOR_CLAUSES to it.  Look up
1080         collapse count in clauses.
1081         (c_parser_omp_for, c_parser_omp_parallel): Adjust
1082         c_parser_omp_for_loop callers.
1083         (OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE.
1084         (c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT.
1085         (c_parser_omp_clause_name): Handle collapse and untied clauses.
1086         (c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New
1087         functions.
1088         (c_parser_omp_clause_schedule): Handle schedule(auto).
1089         Include correct location in the error message.
1090         (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
1091         and PRAGMA_OMP_CLAUSE_UNTIED.
1092         (OMP_TASK_CLAUSE_MASK): Define.
1093         (c_parser_omp_task, c_parser_omp_taskwait): New functions.
1094         (c_parser_omp_construct): Handle PRAGMA_OMP_TASK.
1095         * tree-nested.c (convert_nonlocal_omp_clauses,
1096         convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT,
1097         OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE,
1098         OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
1099         Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in
1100         OMP_CLAUSE_DECL.
1101         (conver_nonlocal_reference, convert_local_reference,
1102         convert_call_expr): Handle OMP_TASK the same as OMP_PARALLEL.  Use
1103         OMP_TASKREG_* macros rather than OMP_PARALLEL_*.
1104         (walk_omp_for): Adjust for OMP_FOR_{INIT,COND,INCR} changes.
1105         * tree-gimple.c (is_gimple_stmt): Handle OMP_TASK.
1106         * c-tree.h (c_begin_omp_task, c_finish_omp_task): New prototypes.
1107         * c-pragma.h (PRAGMA_OMP_TASK, PRAGMA_OMP_TASKWAIT): New.
1108         (PRAGMA_OMP_CLAUSE_COLLAPSE, PRAGMA_OMP_CLAUSE_UNTIED): New.
1109         * c-typeck.c (c_begin_omp_task, c_finish_omp_task): New functions.
1110         (c_finish_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
1111         OMP_CLAUSE_UNTIED.
1112         * c-pragma.c (init_pragma): Init omp task and omp taskwait pragmas.
1113         * c-common.h (c_finish_omp_taskwait): New prototype.
1114         * gimple-low.c (lower_stmt): Handle OMP_TASK.
1115         * tree-parloops.c (create_parallel_loop): Create 1 entry
1116         vectors for OMP_FOR_{INIT,COND,INCR}.
1117         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
1118         (make_edges): Handle OMP_TASK.
1119         * tree-ssa-operands.c (get_expr_operands): Handle collapsed OMP_FOR
1120         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
1121         * tree-inline.c (estimate_num_insns_1): Handle OMP_TASK.
1122         * builtin-types.def (BT_PTR_ULONGLONG, BT_PTR_FN_VOID_PTR_PTR,
1123         BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
1124         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
1125         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
1126         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
1127         * omp-builtins.def (BUILT_IN_GOMP_TASK, BUILT_IN_GOMP_TASKWAIT,
1128         BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
1129         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
1130         BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
1131         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
1132         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
1133         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
1134         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
1135         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
1136         BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
1137         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
1138         BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
1139         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
1140         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
1141         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
1142         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
1143         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): New builtins.
1144         * gimplify.c (gimplify_omp_for): Allow pointer type for decl,
1145         handle POINTER_PLUS_EXPR.  If loop counter has been replaced and
1146         original iterator is present in lastprivate clause or if
1147         collapse > 1, set OMP_CLAUSE_LASTPRIVATE_STMT.  Handle collapsed
1148         OMP_FOR loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
1149         (gimplify_expr): Handle OMP_SECTIONS_SWITCH and OMP_TASK.
1150         (enum gimplify_omp_var_data): Add GOVD_PRIVATE_OUTER_REF.
1151         (omp_notice_variable): Set GOVD_PRIVATE_OUTER_REF if needed,
1152         if it is set, lookup var in outer contexts too.  Handle
1153         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.  Handle vars that are supposed
1154         to be implicitly determined firstprivate for task regions.
1155         (gimplify_scan_omp_clauses): Set GOVD_PRIVATE_OUTER_REF if needed,
1156         if it is set, lookup var in outer contexts too.  Set
1157         OMP_CLAUSE_PRIVATE_OUTER_REF if GOVD_PRIVATE_OUTER_REF is set.
1158         Handle OMP_CLAUSE_LASTPRIVATE_STMT, OMP_CLAUSE_COLLAPSE and
1159         OMP_CLAUSE_UNTIED.  Take region_type as last argument
1160         instead of in_parallel and in_combined_parallel.
1161         (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
1162         Adjust callers.
1163         (gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_PRIVATE_OUTER_REF if
1164         GOVD_PRIVATE_OUTER_REF is set.  Call omp_finish_clause langhook.
1165         (new_omp_context): Set default_kind to
1166         OMP_CLAUSE_DEFAULT_UNSPECIFIED for OMP_TASK regions.
1167         (omp_region_type): New enum.
1168         (struct gimplify_omp_ctx): Remove is_parallel and is_combined_parallel
1169         fields, add region_type.
1170         (new_omp_context): Take region_type as argument instead of is_parallel
1171         and is_combined_parallel.
1172         (gimple_add_tmp_var, omp_firstprivatize_variable, omp_notice_variable,
1173         omp_is_private, omp_check_private): Adjust ctx->is_parallel and
1174         ctx->is_combined_parallel checks.
1175         (gimplify_omp_task): New function.
1176         (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
1177         OMP_CLAUSE_UNTIED.
1178         * omp-low.c (extract_omp_for_data): Use schedule(static)
1179         for schedule(auto).  Handle pointer and unsigned iterators.
1180         Compute fd->iter_type.  Handle POINTER_PLUS_EXPR increments.
1181         Add loops argument.  Extract data for collapsed OMP_FOR loops.
1182         (expand_parallel_call): Assert sched_kind isn't auto,
1183         map runtime schedule to index 3.
1184         (struct omp_for_data_loop): New type.
1185         (struct omp_for_data): Remove v, n1, n2, step, cond_code fields.
1186         Add loop, loops, collapse and iter_type fields.
1187         (workshare_safe_to_combine_p): Disallow combined for if
1188         iter_type is unsigned long long.  Don't combine collapse > 1 loops
1189         unless all bounds and steps are constant.  Adjust extract_omp_for_data
1190         caller.
1191         (expand_omp_for_generic): Handle pointer, unsigned and long long
1192         iterators.  Handle collapsed OMP_FOR loops.  Adjust
1193         for struct omp_for_data changes.  If libgomp function doesn't return
1194         boolean_type_node, add comparison of the return value with 0.
1195         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
1196         pointer, unsigned and long long iterators.  Adjust for struct
1197         omp_for_data changes.
1198         (expand_omp_for): Assert sched_kind isn't auto, map runtime schedule
1199         to index 3.  Use GOMP_loop_ull*{start,next} if iter_type is
1200         unsigned long long.  Allocate loops array, pass it to
1201         extract_omp_for_data.  For collapse > 1 loops use always
1202         expand_omp_for_generic.
1203         (omp_context): Add sfield_map and srecord_type fields.
1204         (is_task_ctx, lookup_sfield): New functions.
1205         (use_pointer_for_field): Use is_task_ctx helper.  Change first
1206         argument's type from const_tree to tree.  Clarify comment.
1207         In OMP_TASK disallow copy-in/out sharing.
1208         (build_sender_ref): Call lookup_sfield instead of lookup_field.
1209         (install_var_field): Add mask argument.  Populate both record_type
1210         and srecord_type if needed.
1211         (delete_omp_context): Destroy sfield_map, clear DECL_ABSTRACT_ORIGIN
1212         in srecord_type.
1213         (fixup_child_record_type): Also remap FIELD_DECL's DECL_SIZE{,_UNIT}
1214         and DECL_FIELD_OFFSET.
1215         (scan_sharing_clauses): Adjust install_var_field callers.  For
1216         firstprivate clauses on explicit tasks allocate the var by value in
1217         record_type unconditionally, rather than by reference.
1218         Handle OMP_CLAUSE_PRIVATE_OUTER_REF.  Scan OMP_CLAUSE_LASTPRIVATE_STMT.
1219         Use is_taskreg_ctx instead of is_parallel_ctx.
1220         Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
1221         (create_omp_child_function_name): Add task_copy argument, use
1222         *_omp_cpyfn* names if it is true.
1223         (create_omp_child_function): Add task_copy argument, if true create
1224         *_omp_cpyfn* helper function.
1225         (scan_omp_parallel): Adjust create_omp_child_function callers.
1226         Rename parallel_nesting_level to taskreg_nesting_level.
1227         (scan_omp_task): New function.
1228         (lower_rec_input_clauses): Don't run constructors for firstprivate
1229         explicit task vars which are initialized by *_omp_cpyfn*.  
1230         Pass outer var ref to omp_clause_default_ctor hook if
1231         OMP_CLAUSE_PRIVATE_OUTER_REF or OMP_CLAUSE_LASTPRIVATE.
1232         Replace OMP_CLAUSE_REDUCTION_PLACEHOLDER decls in
1233         OMP_CLAUSE_REDUCTION_INIT.
1234         (lower_send_clauses): Clear DECL_ABSTRACT_ORIGIN if in task to
1235         avoid duplicate setting of fields.  Handle
1236         OMP_CLAUSE_PRIVATE_OUTER_REF.
1237         (lower_send_shared_vars): Use srecord_type if non-NULL.  Don't
1238         copy-out if TREE_READONLY, only copy-in.
1239         (expand_task_copyfn): New function.
1240         (expand_task_call): New function.
1241         (struct omp_taskcopy_context): New type.
1242         (task_copyfn_copy_decl, task_copyfn_remap_type, create_task_copyfn):
1243         New functions.
1244         (lower_omp_parallel): Rename to...
1245         (lower_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
1246         Call create_task_copyfn if srecord_type is needed.  Adjust
1247         sender_decl type.
1248         (task_shared_vars): New variable.
1249         (check_omp_nesting_restrictions): Warn if work-sharing,
1250         barrier, master or ordered region is closely nested inside OMP_TASK.
1251         Add warnings for barrier if closely nested inside of work-sharing,
1252         ordered, or master region.
1253         (scan_omp_1): Call check_omp_nesting_restrictions even for
1254         GOMP_barrier calls.  Rename parallel_nesting_level to
1255         taskreg_nesting_level.  Handle OMP_TASK.
1256         (lower_lastprivate_clauses): Even if some lastprivate is found on a
1257         work-sharing construct, continue looking for them on parent parallel
1258         construct.
1259         (lower_omp_for_lastprivate): Add lastprivate clauses
1260         to the beginning of dlist rather than end.  Adjust for struct
1261         omp_for_data changes.
1262         (lower_omp_for): Add rec input clauses before OMP_FOR_PRE_BODY,
1263         not after it.  Handle collapsed OMP_FOR loops, adjust for
1264         OMP_FOR_{INIT,COND,INCR} changes, adjust extract_omp_for_data caller.
1265         (get_ws_args_for): Adjust extract_omp_for_data caller.
1266         (scan_omp_for): Handle collapsed OMP_FOR
1267         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
1268         (lower_omp_single_simple): If libgomp function doesn't return
1269         boolean_type_node, add comparison of the return value with 0.
1270         (diagnose_sb_1, diagnose_sb_2): Handle collapsed OMP_FOR
1271         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.  Handle OMP_TASK.
1272         (parallel_nesting_level): Rename to...
1273         (taskreg_nesting_level): ... this.
1274         (is_taskreg_ctx): New function.
1275         (build_outer_var_ref, omp_copy_decl): Use is_taskreg_ctx instead
1276         of is_parallel_ctx.
1277         (execute_lower_omp): Rename parallel_nesting_level to
1278         taskreg_nesting_level.
1279         (expand_omp_parallel): Rename to...
1280         (expand_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
1281         Call omp_task_call for OMP_TASK regions.
1282         (expand_omp): Adjust caller, handle OMP_TASK.
1283         (lower_omp_1): Adjust lower_omp_taskreg caller, handle OMP_TASK.
1284
1285         * bitmap.c (bitmap_default_obstack_depth): New variable.
1286         (bitmap_obstack_initialize, bitmap_obstack_release): Do nothing
1287         if argument is NULL and bitmap_default_obstack is already initialized.
1288         * ipa-struct-reorg.c (do_reorg_1): Call bitmap_obstack_release
1289         at the end.
1290         * matrix-reorg.c (matrix_reorg): Likewise.
1291
1292 2008-06-06  Uros Bizjak  <ubizjak@gmail.com>
1293
1294         * config/i386/i386.md (*indirect_jump): Macroize using P
1295         mode iterator.  Remove !TARGET_64BIT from insn constraints.
1296         (*tablejump_1): Ditto.
1297         (*indirect_jump_rex64): Remove insn pattern.
1298         (*tablejump_1_rex64): Ditto.
1299         (eh_return_<mode>): Macroize using P mode iterator from eh_return_di
1300         and eh_return_si insn patterns.
1301
1302 2008-06-06  Richard Guenther  <rguenther@suse.de>
1303
1304         * tree-ssa-structalias.c (merge_smts_into): Remove.
1305         (find_what_p_points_to): Do not bother to compute the
1306         points-to set for pt_anything pointers.
1307         * tree-ssa-operands.c (get_addr_dereference_operands): No NMT
1308         for pt_anything pointers is ok.
1309
1310 2008-06-06  Jan Hubicka  <jh@suse.cz>
1311
1312         * passes.c (execute_ipa_pass_list): Do not regenerate summaries.
1313
1314 2008-06-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1315
1316         * cgraph.c: Fix typos in comments.
1317         (cgraph_availability_names): Fix string typo.
1318         * fold-const.c: Fix typos in comments.
1319         (fold_binary): Fix typo in warning.
1320         * genautomata.c: Fix typos in comments.
1321         (check_presence_pattern_sets): Fix typo in local variable.
1322         (output_description): Fix typo in output.
1323         * ggc-zone.c (ggc_pch_finish): Fix typo in error message.
1324         * hwint.h: Likewise.
1325         * matrix-reorg.c (check_allocation_function): Likewise.
1326         * omega.c (smooth_weird_equations): Likewise.
1327         * auto-inc-dec.c: Fix typos in comments.
1328         * bb-reorder.c: Likewise.
1329         * builtins.c: Likewise.
1330         * c-common.c: Likewise.
1331         * c-cppbuiltin.c: Likewise.
1332         * c-parser.c: Likewise.
1333         * c-pretty-print.c: Likewise.
1334         * cfgcleanup.c: Likewise.
1335         * cfgexpand.c: Likewise.
1336         * cfghooks.c: Likewise.
1337         * cfglayout.c: Likewise.
1338         * cfgloopmanip.c: Likewise.
1339         * cgraphunit.c: Likewise.
1340         * coverage.c: Likewise.
1341         * dbxout.c: Likewise.
1342         * df-byte-scan.c: Likewise.
1343         * df-core.c: Likewise.
1344         * df-problems.c: Likewise.
1345         * df-scan.c: Likewise.
1346         * dfp.c: Likewise.
1347         * dominance.c: Likewise.
1348         * domwalk.c: Likewise.
1349         * dse.c: Likewise.
1350         * dwarf2out.c: Likewise.
1351         * emit-rtl.c: Likewise.
1352         * et-forest.c: Likewise.
1353         * function.c: Likewise.
1354         * function.h: Likewise.
1355         * gcc.c: Likewise.
1356         * gcov-io.c: Likewise.
1357         * gcov.c: Likewise.
1358         * gcse.c: Likewise.
1359         * genattrtab.c: Likewise.
1360         * ggc-page.c: Likewise.
1361         * gimplify.c: Likewise.
1362         * gthr-lynx.h: Likewise.
1363         * haifa-sched.c: Likewise.
1364         * ipa-cp.c: Likewise.
1365         * ipa-inline.c: Likewise.
1366         * ipa-prop.h: Likewise.
1367         * ipa-pure-const.c: Likewise.
1368         * ipa-struct-reorg.c: Likewise.
1369         * ipa-struct-reorg.h: Likewise.
1370         * ipa-type-escape.c: Likewise.
1371         * ipa.c: Likewise.
1372         * loop-doloop.c: Likewise.
1373         * mips-tfile.c: Likewise.
1374         * mkmap-flat.awk: Likewise.
1375         * mkmap-symver.awk: Likewise.
1376         * modulo-sched.c: Likewise.
1377         * omp-low.c: Likewise.
1378         * optabs.c: Likewise.
1379         * optabs.h: Likewise.
1380         * opts.c: Likewise.
1381         * passes.c: Likewise.
1382         * postreload-gcse.c: Likewise.
1383         * postreload.c: Likewise.
1384         * predict.c: Likewise.
1385         * pretty-print.h: Likewise.
1386         * profile.c: Likewise.
1387         * protoize.c: Likewise.
1388         * ra-conflict.c: Likewise.
1389         * real.c: Likewise.
1390         * recog.c: Likewise.
1391         * regclass.c: Likewise.
1392         * regs.h: Likewise.
1393         * reload.c: Likewise.
1394         * rtl-error.c: Likewise.
1395         * rtlanal.c: Likewise.
1396         * scan.h: Likewise.
1397         * sched-rgn.c: Likewise.
1398         * see.c: Likewise.
1399         * stmt.c: Likewise.
1400         * target.h: Likewise.
1401         * tree-dfa.c: Likewise.
1402         * tree-eh.c: Likewise.
1403         * tree-flow-inline.h: Likewise.
1404         * tree-inline.c: Likewise.
1405         * tree-into-ssa.c: Likewise.
1406         * tree-loop-distribution.c: Likewise.
1407         * tree-nested.c: Likewise.
1408         * tree-parloops.c: Likewise.
1409         * tree-pass.h: Likewise.
1410         * tree-pretty-print.c: Likewise.
1411         * tree-profile.c: Likewise.
1412         * tree-scalar-evolution.c: Likewise.
1413         * tree-sra.c: Likewise.
1414         * tree-ssa-alias-warnings.c: Likewise.
1415         * tree-ssa-ccp.c: Likewise.
1416         * tree-ssa-coalesce.c: Likewise.
1417         * tree-ssa-dom.c: Likewise.
1418         * tree-ssa-dse.c: Likewise.
1419         * tree-ssa-forwprop.c: Likewise.
1420         * tree-ssa-live.c: Likewise.
1421         * tree-ssa-live.h: Likewise.
1422         * tree-ssa-loop-im.c: Likewise.
1423         * tree-ssa-loop-ivopts.c: Likewise.
1424         * tree-ssa-loop-niter.c: Likewise.
1425         * tree-ssa-loop-prefetch.c: Likewise.
1426         * tree-ssa-phiopt.c: Likewise.
1427         * tree-ssa-phiprop.c: Likewise.
1428         * tree-ssa-sccvn.c: Likewise.
1429         * tree-ssa-ter.c: Likewise.
1430         * tree-ssa-threadupdate.c: Likewise.
1431         * tree-ssa.c: Likewise.
1432         * tree-vect-analyze.c: Likewise.
1433         * tree-vect-transform.c: Likewise.
1434         * tree-vectorizer.c: Likewise.
1435         * tree-vn.c: Likewise.
1436         * tree-vrp.c: Likewise.
1437         * tree.c: Likewise.
1438         * tree.def: Likewise.
1439         * tree.h: Likewise.
1440         * unwind-dw2-fde.c: Likewise.
1441         * unwind.inc: Likewise.
1442         * value-prof.c: Likewise.
1443         * vmsdbgout.c: Likewise.
1444
1445 2008-06-05  David Edelsohn  <edelsohn@gnu.org>
1446
1447         * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Do not
1448         always place FP constants in the TOC for TARGET_POWERPC64.
1449         * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Same.
1450
1451 2008-06-05  Joseph Myers  <joseph@codesourcery.com>
1452
1453         * config.gcc (powerpc-*-linux*spe*): Use t-dfprules.
1454         * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): Do not
1455         enable for TARGET_E500_DOUBLE.
1456         (*movdd_softfloat32): Also enable for !TARGET_FPRS.
1457         * config/rs6000/rs6000.c (invalid_e500_subreg): Treat decimal
1458         floating-point modes like integer modes for E500 double.
1459         (rs6000_legitimate_offset_address_p): Likewise.
1460         (rs6000_legitimize_address): Likewise.  Do not allow REG+REG
1461         addressing for DDmode for E500 double.
1462         (rs6000_hard_regno_nregs): Do not treat decimal floating-point
1463         modes as using 64-bits of registers for E500 double.
1464         (spe_build_register_parallel): Do not handle DDmode or TDmode.
1465         (rs6000_spe_function_arg): Do not handle DDmode or TDmode
1466         specially for E500 double.
1467         (function_arg): Do not call rs6000_spe_function_arg for DDmode or
1468         TDmode for E500 double.
1469         (rs6000_gimplify_va_arg): Only handle SDmode in registers
1470         specially if TARGET_HARD_FLOAT && TARGET_FPRS.
1471         (rs6000_split_multireg_move): Do not handle TDmode specially for
1472         E500 double.
1473         (spe_func_has_64bit_regs_p): Do not treat DDmode or TDmode as
1474         using 64-bit registers for E500 double.
1475         (emit_frame_save): Do not handle DDmode specially for E500 double.
1476         (gen_frame_mem_offset): Likewise.
1477         (rs6000_function_value): Do not call spe_build_register_parallel
1478         for DDmode or TDmode.
1479         (rs6000_libcall_value): Likewise.
1480         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
1481         DATA_ALIGNMENT, CLASS_MAX_NREGS): Do not handle DDmode specially
1482         for E500 double.
1483
1484 2008-06-04  H.J. Lu  <hongjiu.lu@intel.com>
1485
1486         * config/i386/i386.c (setup_incoming_varargs_64): Fix a typo
1487         in comments.
1488
1489 2008-06-04  Junjie Gu <jgu@tensilica.com>
1490
1491         * config/xtensa/lib2funcs.S (__xtensa_nonlocal_goto): Use unsigned
1492         comparison for frame pointers.
1493
1494 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
1495
1496         PR target/27386
1497         * config/avr/avr.h (PUSH_ROUNDING): Remove.
1498
1499 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
1500
1501         PR target/30243
1502         * builtins.c (expand_builtin_signbit): Don't take lowpart when
1503         register is already smaller or equal to required mode. 
1504
1505 2008-06-04  Xinliang David Li  <davidxl@google.com>
1506
1507         * tree-call-cdce.c: New file. 
1508         (cond_dead_built_in_calls): New static variable.
1509         (input_domain): New struct.
1510         (check_pow): New function.
1511         (check_builtin_call): Ditto.
1512         (check_target_format): Ditto.
1513         (is_call_dce_candidate): Ditto.
1514         (gen_one_condition): Ditto.
1515         (gen_conditions_for_domain): Ditto.
1516         (get_domain): Ditto.
1517         (gen_conditions_for_pow_cst_base): Ditto.
1518         (gen_conditions_for_pow_int_base): Ditto.
1519         (gen_conditions_for_pow): Ditto.
1520         (get_no_error_domain): Ditto.
1521         (gen_shrink_wrap_conditions): Ditto.
1522         (shrink_wrap_one_built_in_call): Ditto.
1523         (shink_wrap_conditional_dead_built_in_calls): Ditto.
1524         (tree_call_cdce): Ditto.
1525         (gate_call_cdce): Ditto.
1526         (pass_call_cdce): New gimple pass.
1527         * passes.c: (init_optimization_passes): New pass.
1528         * tree-pass.h: New pass declaration.
1529         * opts.c (decode_options): New flag setting.
1530         * common.opt: Add -ftree-builtin-call-dce flag.
1531         * Makefile.in: Add new source file.
1532         * tempvar.def: New tv_id.
1533         * doc/invoke.texi (-ftree-builtin-call-dce): New flag.
1534
1535 2008-06-04  Richard Guenther  <rguenther@suse.de>
1536
1537         * tree-flow-inline.h (is_global_var): Do not check TREE_STATIC on MTAGs.
1538         (is_call_clobbered): Always check var_ann->call_clobbered.
1539         (mark_call_clobbered): Always set var_ann->call_clobbered.
1540         (clear_call_clobbered): Always clear var_ann->call_clobbered.
1541         * tree-ssa-alias.c (mark_non_addressable): Use clear_call_clobbered.
1542         (reset_alias_info): Clear call clobbering info on MTAGs and
1543         globals as well.
1544         (set_pt_anything): Set pt_global_mem.
1545         (create_tag_raw): Adjust comment.
1546         (may_be_aliased): Do not check TREE_PUBLIC on MTAGs.
1547
1548 2008-06-04  Joseph Myers  <joseph@codesourcery.com>
1549             Maxim Kuvyrkov  <maxim@codesourcery.com>
1550
1551         * config/m68k/m68k.opt (mxgot): New option.
1552         * config/m68k/m68k.c (legitimize_pic_address): Handle -mxgot.
1553         (m68k_output_addr_const_extra): New.
1554         * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): New.
1555         * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Declare.
1556         * config/m68k/m68k.md (UNSPEC_GOTOFF): Define.
1557         * doc/invoke.texi (M680x0 Options): Document -mxgot.
1558
1559 2008-06-04  Richard Guenther  <rguenther@suse.de>
1560
1561         * tree-ssa-structalias.c (handle_ptr_arith): Correctly handle
1562         negative or non-representable offsets.
1563
1564 2008-06-03  H.J. Lu  <hongjiu.lu@intel.com>
1565
1566         * config/i386/i386.c (ix86_gen_leave): New.
1567         (ix86_gen_pop1): Likewise.
1568         (ix86_gen_add3): Likewise.
1569         (ix86_gen_sub3): Likewise.
1570         (ix86_gen_sub3_carry): Likewise.
1571         (ix86_gen_one_cmpl2): Likewise.
1572         (ix86_gen_monitor): Likewise.
1573         (override_options): Initialize ix86_gen_leave, ix86_gen_pop1,
1574         ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
1575         ix86_gen_one_cmpl2 and ix86_gen_monitor.
1576         (ix86_file_end): Use mov%z0 instead of mov{q}/mov{l}.
1577         (output_set_got): Use mov%z0, pop%z0 and add%z0 instead of
1578         mov{q}/mov{l}, pop{q}/pop{l} and add{q}/add{l}.
1579         (ix86_expand_epilogue): Updated.
1580         (print_operand): Handle integer register operand for 'z'.
1581         (ix86_expand_strlensi_unroll_1): Likewise.
1582         (ix86_expand_strlen): Likewise.
1583         (ix86_expand_builtin): Likewise.
1584         (x86_output_mi_thunk): Use mov%z1 and add%z1 instead of
1585         mov{q}/mov{l} and add{q}/add{l}.
1586
1587 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
1588
1589         * config/i386/i386.md (P): New mode iterator.
1590         (SFmode push_operand splitter): Macroize DImode and SImode pushes
1591         using P mode iterator.
1592         (DFmode push_operand splitter): Ditto.
1593         (XFmode push_operand splitter): Ditto.
1594         (DFmode float_extend SFmode push_operand splitter): Ditto.
1595         (XFmode float_extend SFmode push_operand splitter): Do not generate
1596         SImode pushes for 64bit target.  Macroize Dimode and SImode
1597         pushes using P mode iterator.
1598         (XFmode float_extend DFmode push_operand splitter): Ditto.
1599
1600 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
1601
1602         * config/i386/i386-protos.h (ix86_reg_parm_stack_space): New.
1603         * config/i386/i386.h (ix86_reg_parm_stack_space): Removed prototype.
1604         * config/i386/i386.c (ix86_reg_parm_stack_space): Changed
1605         return type to int.
1606         (ix86_call_abi_override): Remove check for call_used_regs.
1607
1608 2008-06-03  Richard Guenther  <rguenther@suse.de>
1609
1610         * tree-ssa-structalias.c (find_func_aliases): Add constraints
1611         for the lhs of calls if the return type contains pointers.
1612
1613 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
1614
1615         * doc/tm.texi (OVERRIDE_ABI_FORMAT): New.
1616         * doc/extend.texi (ms_abi,sysv_abi): New attribute description.
1617         * function.c (allocate_struct_function): Use of OVERRIDE_ABI_FORMAT.
1618         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Make use
1619         of cfun and DEFAULT_ABI to deceide abi mode.
1620         (DEFAULT_ABI): New.
1621         (REG_PARM_STACK_SPACE): Removed.
1622         (OUTGOING_REG_PARM_STACK_SPACE): Removed.
1623         (STACK_BOUNDARY): Use default target to deceide stack boundary.
1624         * config/i386/i386-protos.h (ix86_cfun_abi): New.
1625         (ix86_function_abi): Likewise.
1626         (ix86_function_type_abi): Likewise.
1627         (ix86_call_abi_override): Likewise.
1628         * confid/i386/i386.md (SSE_REGPARM_MAX): Replaced by abi
1629         specific define X86_64_SSE_REGPARM_MAX/X64_SSE_REGPARM_MAX.
1630         * config/i386/i386.c (override_options): Replace TARGET_64BIT_MS_ABI.
1631         (X86_64_VARARGS_SIZE): Replace REGPARM_MAX and SSE_REGPARM_MAX by abi
1632         specific defines.
1633         (X86_64_REGPARM_MAX): New.
1634         (X86_64_SSE_REGPARM_MAX): New.
1635         (X64_REGPARM_MAX): New.
1636         (X64_SSE_REGPARM_MAX): New.
1637         (X86_32_REGPARM_MAX): New.
1638         (X86_32_SSE_REGPARM_MAX): New.
1639         (ix86_handle_cconv_attribute): Replace TARGET_64BIT_MS_ABI.
1640         (ix86_function_regparm): Handle user calling abi.
1641         (ix86_function_arg_regno_p): Replace TARGET_64BIT_MS_ABI
1642         by DEFAULT_ABI versus SYSV_ABI check.
1643         (ix86_reg_parm_stack_space): New.
1644         (ix86_function_type_abi): New.
1645         (ix86_call_abi_override): New.
1646         (ix86_function_abi): New.
1647         (ix86_cfun_abi): New.
1648         (init_cumulative_args): Call abi specific initialization.
1649         (function_arg_advance): Remove TARGET_64BIT_MS_ABI.
1650         (function_arg_64): Extend SSE_REGPARM_MAX check.
1651         (function_arg (): Remove TARGET_64BIT_MS_ABI.
1652         (ix86_pass_by_reference): Likewise.
1653         (ix86_function_value_regno_p): Likewise.
1654         (function_value_64): Replace REGPARM_MAX, and SSE_REGPARM_MAX.
1655         (ix86_function_value_1): Replace TARGET_64BIT_MS_ABI.
1656         (return_in_memory_ms_64): Replace TARGET_64BIT_MS_ABI.
1657         (ix86_build_builtin_va_list): Replace TARGET_64BIT_MS_ABI.
1658         (setup_incoming_varargs_64): Adjust regparm for call abi.
1659         (ix86_setup_incoming_varargs): Replace TARGET_64BIT_MS_ABI.
1660         (ix86_va_start): Likewise.
1661         (ix86_gimplify_va_arg): Likewise.
1662         (ix86_expand_prologue): Likewise.
1663         (output_pic_addr_const): Likewise.
1664         (ix86_init_machine_status): Initialize call_abi by DEFAULT_ABI.
1665         (x86_this_parameter): Replace TARGET_64BIT_MS_ABI.
1666         (x86_output_mi_thunk): Likewise.
1667         (x86_function_profiler): Likewise.
1668         * config/i386/i386.h (TARGET_64BIT_MS_ABI): Use ix64_cfun_abi.
1669         (SYSV_ABI, MS_ABI): New constants.
1670         (DEFAULT_ABI): New.
1671         (init_regs): Add prototype of function in regclass.c file.
1672         (OVERRIDE_ABI_FORMAT): New.
1673         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_64BIT_MS_ABI part.
1674         (REG_PARM_STACK_SPACE): Use ix86_reg_parm_stack_space.
1675         (OUTGOING_REG_PARM_STACK_SPACE): New.
1676         (ix86_reg_parm_stack_space): New prototype.
1677         (CUMULATIVE_ARGS): Add call_abi member.
1678         (machine_function): Add call_abi member.
1679         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Replace
1680         TARGET_64BIT_MS_ABI by DEFAULT_ABI compare to MS_ABI.
1681
1682 2008-06-02  Andy Hutchinson  <hutchinsonandy@aim.com> 
1683
1684         PR target/34879
1685         * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Redefine.
1686         (avr_builtin_setjmp_frame_value): New function.
1687         * config/avr/avr.md (nonlocal_goto_receiver): Define.
1688         (nonlocal_goto): Define.
1689
1690 2008-06-02  Richard Sandiford  <rdsandiford@googlemail.com>
1691
1692         * config/mips/mips.c (mips_emit_loadgp): Return early if
1693         there is nothing do to, otherwise emit a blockage if
1694         !TARGET_EXPLICIT_RELOCS || crtl->profile.
1695         * config/mips/mips.md (loadgp_blockage): Use SI rather than DI.
1696
1697 2008-06-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1698
1699         * configure.ac: Drop unneeded backslash ending up in config.in.
1700         * acinclude.m4: Likewise.
1701         * config.in: Regenerate.
1702
1703 2008-05-26  Jan Hubicka  <jh@suse.cz>
1704
1705         * predict.c (maybe_hot_frequency_p): Break out of...
1706         (maybe_hot_bb_p): ... here.
1707         (maybe_hot_edge_p): New.
1708         * tree-ssa-coalesce.c (coalesce_cost_edge): Compute cost based on edge.
1709         * basic-block.h (maybe_hot_edge_p): Declare.
1710
1711 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
1712
1713         * config/i386/i386.md (*cmpfp_<mode>): Enable for optimize_size.
1714         (*cmpfp_<mode>_cc): Ditto.
1715         (*fp_jcc_8<mode>_387): Ditto.
1716         (*fop_<MODEF:mode>_2_i387): Ditto.
1717         (*fop_<MODEF:mode>_3_i387): Ditto.
1718         (*fop_xf_2_i387): Ditto.
1719         (*fop_xf_3_i387): Ditto.
1720
1721 2008-06-02  Tomas Bily  <tbily@suse.cz>
1722
1723         * tree-ssa-ifcombine.c (get_name_for_bit_test): Use CONVERT_EXPR_P.
1724
1725 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
1726
1727         * config/mips/mips.c (mips_valid_offset_p): New function.
1728         (mips_valid_lo_sum_p): Likewise.
1729         (mips_classify_address): Use them.
1730         (mips_force_address): New function.
1731         (mips_legitimize_address): Use it.
1732         * config/mips/mips.md (MOVE128): New mode iterator.
1733         (movtf): Require TARGET_64BIT.  Remove empty strings.
1734         (*movtf_internal): Rename to...
1735         (*movtf): ...this and require !TARGET_MIPS16.  Use "m" instead
1736         of "R" and use {,fp}{load,store} attributes instead of "multi".
1737         Use a separate define_split.
1738         (*movtf_mips16): New pattern.
1739
1740 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
1741
1742         * config/mips/mips-protos.h (mips_expand_before_return): Declare.
1743         * config/mips/mips.c (mips_expand_before_return): New function.
1744         (mips_expand_epilogue): Call it.
1745         * config/mips/mips.md (return): Turn into a define_expand.
1746         (*return): New insn.
1747
1748 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
1749
1750         * rtl.h (emit_clobber, gen_clobber, emit_use, gen_use): Declare.
1751         * emit-rtl.c (emit_clobber, gen_clobber, emit_use, gen_use): New
1752         functions.  Do not emit uses and clobbers of CONCATs; individually
1753         use and clobber their operands.
1754         * builtins.c (expand_builtin_setjmp_receiver): Use emit_clobber,
1755         gen_clobber, emit_use and gen_use.
1756         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
1757         (expand_builtin_return): Likewise.
1758         * cfgbuild.c (count_basic_blocks): Likewise.
1759         * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
1760         * explow.c (emit_stack_restore): Likewise.
1761         * expmed.c (extract_bit_field_1): Likewise.
1762         * expr.c (convert_move, emit_move_complex_parts): Likewise.
1763         (emit_move_multi_word, store_constructor): Likewise.
1764         * function.c (do_clobber_return_reg, do_use_return_reg): Likewise.
1765         (thread_prologue_and_epilogue_insns): Likewise.
1766         * lower-subreg.c (resolve_simple_move): Likewise.
1767         * optabs.c (widen_operand, expand_binop): Likewise.
1768         (expand_doubleword_bswap, emit_no_conflict_block): Likewise.
1769         * reload.c (find_reloads): Likewise.
1770         * reload1.c (eliminate_regs_in_insn): Likewise.
1771         * stmt.c (expand_nl_goto_receiver): Likewise.
1772         * config/alpha/alpha.md (builtin_longjmp): Likewise.
1773         * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
1774         * config/arm/arm.c (arm_load_pic_register): Likewise.
1775         (thumb1_expand_epilogue, thumb_set_return_address): Likewise.
1776         * config/arm/arm.md (untyped_return): Likewise.
1777         * config/arm/linux-elf.h (PROFILE_HOOK): Likewise.
1778         * config/avr/avr.c (expand_prologue): Likewise.
1779         * config/bfin/bfin.c (do_unlink): Likewise.
1780         * config/bfin/bfin.md (<optab>di3, adddi3, subdi3): Likewise.
1781         * config/cris/cris.c (cris_expand_prologue): Likewise.
1782         * config/darwin.c (machopic_indirect_data_reference): Likewise.
1783         (machopic_legitimize_pic_address): Likewise.
1784         * config/frv/frv.c (frv_frame_access, frv_expand_epilogue): Likewise.
1785         (frv_ifcvt_modify_insn, frv_expand_mdpackh_builtin): Likewise.
1786         * config/i386/i386.c (ix86_expand_vector_move_misalign): Likewise.
1787         (ix86_expand_convert_uns_didf_sse): Likewise.
1788         (ix86_expand_vector_init_general): Likewise.
1789         * config/ia64/ia64.md (eh_epilogue): Likewise.
1790         * config/iq2000/iq2000.c (iq2000_expand_epilogue): Likewise.
1791         * config/m32c/m32c.c (m32c_emit_eh_epilogue): Likewise.
1792         * config/m32r/m32r.c (m32r_reload_lr): Likewise.
1793         (config/iq2000/iq2000.c): Likewise.
1794         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
1795         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
1796         (builtin_longjmp): Likewise.
1797         * config/mn10300/mn10300.md (call, call_value): Likewise.
1798         * config/pa/pa.md (nonlocal_goto, nonlocal_longjmp): Likewise.
1799         * config/pdp11/pdp11.md (abshi2): Likewise.
1800         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
1801         * config/s390/s390.c (s390_emit_prologue): Likewise.
1802         * config/s390/s390.md (movmem_long, setmem_long): Likewise.
1803         (cmpmem_long, extendsidi2, zero_extendsidi2, udivmoddi4): Likewise.
1804         (builtin_setjmp_receiver, restore_stack_nonlocal): Likewise.
1805         * config/sh/sh.c (prepare_move_operands): Likewise.
1806         (output_stack_adjust, sh_expand_epilogue): Likewise.
1807         (sh_set_return_address, sh_expand_t_scc): Likewise.
1808         * config/sparc/sparc.c (load_pic_register): Likewise.
1809         * config/sparc/sparc.md (untyped_return, nonlocal_goto): Likewise.
1810         * config/spu/spu.c (spu_expand_epilogue): Likewise.
1811         * config/v850/v850.c (expand_epilogue): Likewise.
1812
1813 2008-05-31  Anatoly Sokolov  <aesok@post.ru>
1814
1815         * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): New constants.
1816         (UNSPECV_WRITE_SP_IRQ_OFF): (Ditto.).
1817         (movhi_sp_r_irq_off, movhi_sp_r_irq_on): New insn.
1818         * config/avr/avr.c (expand_prologue, expand_epilogue): Use 
1819         movhi_sp_r_irq_off and movhi_sp_r_irq_on insns for writing to the 
1820         stack pointer register.
1821         (output_movhi): Remove code for interrupt specific writing to the 
1822         stack pointer register.
1823
1824 2008-05-31  Richard Guenther  <rguenther@suse.de>
1825
1826         PR tree-optimization/34244
1827         * fold-const.c (tree_expr_nonnegative_warnv_p): Do not ask VRP.
1828         (tree_expr_nonzero_warnv_p): Likewise.
1829         * tree-vrp.c (vrp_expr_computes_nonnegative): Call
1830         ssa_name_nonnegative_p.
1831         (vrp_expr_computes_nonzero): Call ssa_name_nonzero_p.
1832         (extract_range_from_unary_expr): Use vrp_expr_computes_nonzero,
1833         not tree_expr_nonzero_warnv_p.
1834
1835         PR tree-optimization/36262
1836         Revert
1837         2007-11-29  Zdenek Dvorak  <ook@ucw.cz>
1838
1839         PR tree-optimization/34244
1840         * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
1841         (record_numbers_of_iterations): New function.
1842         (execute_vrp): Cache the numbers of iterations of loops.
1843         * tree-scalar-evolution.c (scev_reset_except_niters):
1844         New function.
1845         (scev_reset): Use scev_reset_except_niters.
1846         * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
1847
1848 2008-05-31  Bernd Schmidt  <bernd.schmidt@analog.com>
1849
1850         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
1851         __WORKAROUND_RETS when appropriate.
1852
1853 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
1854
1855         * config/i386/i386.md (*fop_<mode>_comm_mixed): Macroize from
1856         *fop_sf_comm_mixed and *fop_df_comm_mixed insn patterns using MODEF
1857         mode iterator.
1858         (*fop_<mode>_comm_sse): Macroize from *fop_sf_comm_sse and
1859         *fop_df_comm_sse insn patterns using MODEF mode iterator.
1860         (*fop_<mode>_comm_i387): Macroize from *fop_sf_comm_i387 and
1861         *fop_df_comm_i387 insn patterns using MODEF mode iterator.
1862         (*fop_<mode>_1_mixed): Macroize from *fop_sf_1_mixed and
1863         *fop_df_1_mixed insn patterns using MODEF mode iterator.
1864         (*fop_<mode>_1_sse): Macroize from *fop_sf_1_sse and
1865         *fop_df_1_sse insn patterns using MODEF mode iterator.
1866         (*fop_<mode>_1_i387): Macroize from *fop_sf_1_i387 and
1867         *fop_df_1_i387 insn patterns using MODEF mode iterator.
1868         (*fop_<MODEF:mode>_2_i387): Macroize from *fop_sf_2<mode>_i387 and
1869         *fop_df_2<mode>_i387 insn patterns using MODEF mode iterator.
1870         (*fop_<MODEF:mode>_3_i387): Macroize from *fop_sf_3<mode>_i387 and
1871         *fop_df_3<mode>_i387 insn patterns using MODEF mode iterator.
1872         (*fop_xf_2_i387): Rename from *fop_xf_2<mode>_i387.
1873         (*fop_xf_3_i387): Rename from *fop_xf_3<mode>_i387.
1874         (*fop_xf_4_i387): Use <MODE> for mode attribute.
1875         (*fop_xf_5_i387): Ditto.
1876         (*fop_xf_6_i387): Ditto.
1877
1878 2008-05-30  Richard Guenther  <rguenther@suse.de>
1879
1880         * builtins.c (build_string_literal): Avoid generating
1881         a non-gimple_val result.
1882
1883 2008-05-30  DJ Delorie  <dj@redhat.com>
1884
1885         * exec-tool.in: Use an environment variable (private) instead of a
1886         file (shared) as a semaphore, so as to not break parallel builds.
1887
1888 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
1889
1890         * optabs.c (maybe_encapsulate_block): Remove.
1891         (emit_libcall_block): Adjust accordingly.
1892         * optabs.h (maybe_encapsulate_block): Remove prototype.
1893
1894         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address):
1895         Don't use maybe_encapsulate_block.
1896
1897 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
1898
1899         * config/rs6000/rs6000.c (rs6000_legitimize_address,
1900         rs6000_legitimize_reload_address, rs6000_emit_move): Make sure an
1901         rtx is a SYMBOL_REF before calling get_pool_constant.
1902
1903 2008-05-30  Eric Botcazou  <ebotcazou@adacore.com>
1904
1905         * fold-const.c (fold_unary) <CASE_CONVERT>: Add ??? comment.
1906
1907 2008-05-30  Danny Smith  <dannysmith@users.sourceforge.net>
1908
1909         * incpath.c: Use HOST_LACKS_INODE_NUMBERS conditional
1910         rather than OS names to choose INO_T_EQ definition.
1911         (DIRS_EQ) [!INO_T_EQ]: Don't worry about case in comparison.
1912         (add_path) [!INO_T_EQ]: Use lrealpath to fill canonical_name field.
1913
1914 2008-05-29  Daniel Franke  <franke.daniel@gmail.com>
1915
1916         PR target/36348
1917         * config/darwin-f.c: New.
1918         * config/t-darwin: Added rule to build darwin-f.o.
1919         * config.gcc: Defined new variable, fortran_target_objs.
1920         (*-*-darwin*): Set fortran_target_objs.
1921         * Makefile.in: Defined new variable FORTRAN_TARGET_OBJS.
1922         * configure.ac: Substitute fortran_target_objs, set FORTRAN_TARGET_OBJS.
1923         * configure: Regenerated.
1924
1925 2008-05-29  H.J. Lu  <hongjiu.lu@intel.com>
1926
1927         PR target/35771
1928         * config/i386/i386.c (ix86_function_arg_boundary): Convert to
1929         canonical type if needed.
1930
1931 2008-05-29  Eric Botcazou  <ebotcazou@adacore.com>
1932
1933         * tree-nested.c (check_for_nested_with_variably_modified): Fix typo.
1934
1935 2008-05-29  Richard Guenther  <rguenther@suse.de>
1936
1937         PR tree-optimization/36343
1938         PR tree-optimization/36346
1939         PR tree-optimization/36347
1940         * tree-flow.h (clobber_what_p_points_to): Declare.
1941         * tree-ssa-structalias.c (set_uids_in_ptset): Whether the
1942         pointed-to variable is dereferenced is irrelevant to whether
1943         the pointer can access the pointed-to variable.
1944         (clobber_what_p_points_to): New function.
1945         * tree-ssa-alias.c (set_initial_properties): Use it.
1946         * tree-ssa.c (verify_flow_sensitive_alias_info): Adjust
1947         call clobber check for NMTs.
1948
1949 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
1950         
1951         * value-prof.c (tree_ic_transform): Use HOST_WIDEST_INT_PRINT_DEC
1952         for printing gcov_type.
1953
1954 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
1955
1956         * tree-ssa-propagate.c (set_rhs): Preserve the histogram
1957         and the eh region information.
1958         * value-prof.c (gimple_move_stmt_histograms): New function.
1959         * value-prof.h (gimple_move_stmt_histograms): New function declaration.
1960
1961 2008-05-28  Andreas Tobler  <a.tobler@schweiz.org>
1962
1963         * config/pa/pa.md: Remove extern frame_pointer_needed declaration.
1964
1965 2008-05-28  Seongbae Park <seongbae.park@gmail.com>
1966
1967         * value-prof.c (tree_ic_transform): Print counts.
1968         * tree-profile.c (tree_gen_ic_func_profiler):
1969         Clear __gcov_indreict_call_callee variable to avoid misattribution
1970         of the profile.
1971
1972 2008-05-28  Rafael Espindola  <espindola@google.com>
1973
1974         * see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
1975         invalid sharing.
1976
1977 2008-05-28  Richard Guenther  <rguenther@suse.de>
1978
1979         PR tree-optimization/36339
1980         * tree-ssa-alias.c (set_initial_properties): Move pt_anything
1981         and clobbering code out of the loop.
1982
1983 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
1984
1985         * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint
1986         letters defined.
1987
1988         * config/s390/s390.c (s390_compare_and_branch_condition_mask,
1989         s390_contiguous_bitmask_p, s390_symref_operand_p,
1990         s390_check_symref_alignment, s390_reload_larl_operand,
1991         s390_reload_symref_address): New functions.
1992         (s390_branch_condition_mnemonic): Support compare and branch
1993         instructions.
1994         (s390_mem_constraint): Avoid symrefs to accepted by the 'T'
1995         and 'W' constraints.
1996         (s390_secondary_reload): Add secondary reloads for unaligned
1997         symbol refs or symbol refs to floating point or QI/TI mode
1998         integer values.
1999         (legitimate_address_p): Accept symbol references as addresses.
2000         (s390_expand_insv): Use rotate and insert selected bits
2001         instruction for insv when building for z10.
2002         (print_operand_address): Handle symbol ref addresses.
2003         (print_operand): Output modifier 'c' added for signed byte values.
2004         (s390_encode_section_info): Mark symbol refs with
2005         SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.
2006
2007         * config/s390/s390.md (SIL,RRS,RIS): New instruction formats added.
2008         (length attribute): RRF, RRR have 4 byte length.
2009         (FPALL, INTALL): New mode iterators added.
2010         (*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign,
2011         *cmp<mode>_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu,
2012         *movdi_64, *movsi_zarch, *movhi, movmem<mode>, *movmem_short,
2013         *extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm,
2014         *zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3,
2015         *add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry2_cc,
2016         *add<mode>3_cc, *add<mode>3_imm_cc, *muldi3_sign, muldi3,
2017         *mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10
2018         instructions.
2019         (*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi,
2020         *cmp<GPR:mode>_ccu_zerohi_rldi, *cmp_and_br_signed_<mode>,
2021         *cmp_and_br_unsigned_<mode>, reload<INTALL:mode><P:mode>_tomem_z10,
2022         reload<INTALL:mode><P:mode>_toreg_z10,
2023         reload<FPALL:mode><P:mode>_tomem_z10,
2024         reload<FPALL:mode><P:mode>_toreg_z10,
2025         reload<P:mode>_larl_odd_addend_z10, *execute_rl, *insv<mode>_z10,
2026         *insv<mode>_z10_noshift, *insv<mode>_or_z10_noshift,
2027         *zero_extendhi<mode>2_z10, *cmp_and_trap_signed_int<mode>,
2028         *cmp_and_trap_unsigned_int<mode>, prefetch): New pattern or expander
2029         definition.
2030         (movmem, clrmem, cmpmem): New splitters added.
2031
2032         * config/s390/predicates.md (larl_operand): Use
2033         SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with
2034         SYMBOL_REF_ALIGN1_P.
2035         (s390_signed_integer_comparison,
2036         s390_unsigned_integer_comparison): New predicates.
2037
2038         * config/s390/s390-protos.h (s390_check_symref_alignment,
2039         s390_contiguous_bitmask_p, s390_reload_larl_operand,
2040         s390_reload_symref_address,
2041         s390_compare_and_branch_condition_mask): Prototypes added.
2042
2043         * config/s390/s390.h (TARGET_MEM_CONSTRAINT,
2044         SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED,
2045         SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added.
2046
2047 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
2048
2049         * config/s390/s390.c (z10_cost): New cost function for z10.
2050         (s390_handle_arch_option, override_options): Support -march=z10 switch.
2051         (s390_issue_rate): Adjust issue rate for z10.
2052         * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
2053         (processor_flags): Add PF_Z10.
2054         (TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
2055         * config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
2056         * gcc/config.gcc: Add z10.
2057
2058 2008-05-28  Richard Guenther  <rguenther@suse.de>
2059
2060         PR tree-optimization/36291
2061         * tree-flow. h (struct gimple_df): Remove var_anns member.
2062         * tree-flow-inline.h (gimple_var_anns): Remove.
2063         (var_ann): Simplify.
2064         * tree-dfa.c (create_var_ann): Simplify.
2065         (remove_referenced_var): Clear alias info from var_anns of globals.
2066         * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
2067         (delete_tree_ssa): Clear alias info from var_anns of globals.
2068         Do not free var_anns.
2069         (var_ann_eq): Remove.
2070         (var_ann_hash): Likewise.
2071
2072 2008-05-28  Mark Shinwell  <shinwell@codesourcery.com>
2073
2074         * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
2075         and loongson2f entries.
2076         (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
2077         * config/mips/mips.h (processor_type): Add Loongson-2E
2078         and Loongson-2F entries.
2079         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
2080         (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
2081         * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
2082         * doc/invoke.texi (MIPS Options): Document loongson2e
2083         and loongson2f processor names.
2084
2085 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
2086
2087         PR target/35767
2088         PR target/35771
2089         * config/i386/i386.c (ix86_function_arg_boundary): Use
2090         alignment of canonical type.
2091         (ix86_expand_vector_move): Check unaligned memory access for
2092         all SSE modes.
2093
2094 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
2095
2096         * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
2097         Moved to the front of file.
2098
2099 2008-05-27  Xuepeng Guo  <xuepeng.guo@intel.com>
2100             H.J. Lu  <hongjiu.lu@intel.com>
2101
2102         * dwarf2out.c (current_fde): New.
2103         (add_cfi): Use it.
2104         (lookup_cfa:): Likewise.
2105         (dwarf2out_end_epilogue): Likewise.
2106         (dwarf2out_note_section_used): Likewise.
2107
2108 2008-05-27  Michael Matz  <matz@suse.de>
2109
2110         PR c++/27975
2111         * c.opt (Wenum-compare): New warning option.
2112         * doc/invoke.texi  (Warning Options): Document -Wenum-compare.
2113
2114 2008-05-27  Michael Matz  <matz@suse.de>
2115
2116         PR middle-end/36326
2117         * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
2118         non-BLKmode types.
2119         * tree-tailcall.c (find_tail_calls): Don't mark calls storing
2120         into memory as tail calls.
2121
2122 2008-05-27  Richard Guenther  <rguenther@suse.de>
2123
2124         PR tree-optimization/36339
2125         * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
2126         pointers cause all addressable variables to be call clobbered.
2127
2128 2008-05-27  Richard Guenther  <rguenther@suse.de>
2129
2130         PR tree-optimization/36245
2131         * tree-ssa-address.c (add_to_parts): Deal with non-pointer bases.
2132
2133 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
2134
2135         * config/s390/s390.md: Replace all occurences of the 'm'
2136         constraint with 'RT'.
2137
2138 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
2139
2140         * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
2141         definitions added.
2142         ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
2143         "*movdi_64".
2144         ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
2145         ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
2146         ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
2147
2148 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
2149
2150         * reload.c: (find_reloads): Skip alternatives according to the
2151         "enabled" attribute. Constify the constraint variable.
2152         * recog.c (get_attr_enabled): Add default implementation.
2153         (extract_insn): Set the alternative_enabled_p array
2154         in the recog_data struct.
2155         (preprocess_constraints, constrain_operands): Skip
2156         alternatives according to the "enabled" attribute
2157         * recog.h (struct recog_data): New field alternative_enabled_p.
2158         (skip_alternative): New inline function.
2159         * regclass.c: (record_operand_costs): Check the "enabled" attribute.
2160         (record_reg_classes): Skip alternative according to the
2161         "enabled" attribute.
2162
2163         * doc/md.texi: Add documention for the "enabled" attribute.
2164
2165 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
2166
2167         * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
2168         * postreload.c (reload_cse_simplify_operands): Replace 'm'
2169         constraint with TARGET_MEM_CONSTRAINT.
2170         * recog.c (asm_operand_ok, preprocess_constraints,
2171         constrain_operands): Likewise.
2172         * regclass.c (record_reg_classes): Likewise.
2173         * reload.c (find_reloads, alternative_allows_const_pool_ref): Likewise.
2174         * reload1.c (maybe_fix_stack_asms): Likewise.
2175         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
2176         * recog.h: Adjust comment.
2177         * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
2178         * genoutput.c (note_constraint): Don't emit error for 'm' constraint.
2179         * doc/md.texi: Add a note to description of 'm' constraint.
2180         * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
2181
2182 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
2183
2184         * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
2185         that the bitfield is of integral type before testing its precision.
2186
2187 2008-05-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
2188             Sa Liu  <saliu@de.ibm.com> 
2189
2190         * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3, 
2191         __modti3, __udivti3, __umodti3 and __udivmodti4.
2192         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
2193         that implement TImode mul and div functions.
2194         * config/spu/multi3.c: New. Implement __multi3.
2195         * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
2196         * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
2197         functions on SPU.
2198
2199 2008-05-26  Steven Bosscher  <stevenb.gcc@gmail.com>
2200
2201         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
2202         new tls_gd_* and tls_ld_* insns instead of an insn sequence.
2203         * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
2204         tls_sysv_suffix): New mode and mode attribute iterators.
2205         (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
2206         (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
2207         (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
2208         tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
2209         tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
2210         iterators.
2211
2212 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
2213
2214         PR tree-optimization/36329
2215         * tree.h (CALL_CANNOT_INLINE_P): Add access check.
2216         * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
2217         * cgraphbuild.c (initialize_inline_failed): Use the latter
2218         macro in lieu of the former.
2219         * ipa-inline.c (cgraph_mark_inline): Likewise.
2220         (cgraph_decide_inlining_of_small_function): Likewise.
2221         (cgraph_decide_inlining): Likewise.
2222         (cgraph_decide_inlining_incrementally): Likewise.
2223
2224 2008-05-26  Tristan Gingold  <gingold@adacore.com>
2225             Anatoly Sokolov  <aesok@post.ru>
2226
2227         * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
2228         instead of pm_lo8/pm_hi8 to makes this call working on avr6.
2229         * config/avr/avr.c (expand_prologue): Tune "call_prologue" 
2230         optimization for 'avr6' architecture.
2231
2232 2008-05-26  Andy Hutchinson  <hutchinsonandy@aim.com>
2233
2234         PR target/34932
2235         * config/avr/avr.md (*addhi3_zero_extend2): Remove.
2236
2237 2008-05-26  Richard Guenther  <rguenther@suse.de>
2238
2239         * tree-ssa-sccvn.c (expr_has_constants): Declare.
2240         (visit_reference_op_load): Initialize VN_INFO->has_constants properly.
2241
2242 2008-05-26  H.J. Lu  <hongjiu.lu@intel.com>
2243
2244         PR middle-end/36253
2245         * caller-save.c (insert_restore): Verify alignment of spill space.
2246         (insert_save): Likewise.
2247         * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
2248         * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
2249         (STACK_SLOT_ALIGNMENT): Likewise.
2250         * function.c (LOCAL_ALIGNMENT): Removed.
2251         (get_stack_local_alignment): New.
2252         (assign_stack_local): Use it.  Set alignment on stack slot.
2253         (assign_stack_temp_for_type): Use get_stack_local_alignment.
2254         * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
2255         (STACK_SLOT_ALIGNMENT): New.
2256         * config/i386/i386.c (ix86_local_alignment): Handle caller-save
2257         stack slot in XFmode.
2258
2259         * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
2260
2261 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
2262
2263         PR/36321
2264         * config/i386/i386.md (allocate_stack_worker_64): Make sure
2265         argument operand in rax isn't removed.
2266
2267 2008-05-26  Richard Guenther  <rguenther@suse.de>
2268
2269         PR middle-end/36300
2270         * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
2271         not TYPE_UNSIGNED.  Use TYPE_PRECISION instead of GET_MODE_SIZE.
2272
2273 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
2274
2275         PR bootstrap/36331
2276         * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
2277
2278 2008-05-26  Dominique Dhumieres  <dominiq@lps.ens.fr>
2279
2280         * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
2281         * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
2282
2283 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
2284
2285         * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
2286         build a trampoline if we don't want one.
2287         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
2288         return zero for nested functions if we don't want a trampoline.
2289
2290 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
2291
2292         * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
2293
2294 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
2295
2296         PR fortran/18428
2297         * c.opt: Removed undocumented option '-lang-fortran'.
2298         * c-common.h: Removed global variable 'lang_fortran'.
2299         * c-opts.c (c_common_handle_option): Removed code to handle
2300         option '-lang-fortran'. Updated includes.
2301         * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
2302         definition of '__GFORTRAN__'.
2303         (define__GNUC__): Reimplemented to use BASEVER and
2304         cpp_define_formatted.
2305         (builtin_define_with_value_n): Removed.
2306         * c-incpath.h: Renamed to ...
2307         * incpath.h: ... this.
2308         * c-incpath.c: Renamed to ...
2309         * incpath.c: ... this. Updated includes.
2310         * fix-header.c: Updated includes.
2311         * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
2312         (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
2313         (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
2314
2315 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
2316
2317         * tree.h: Update the table of flags used on tree nodes.
2318         (TREE_NO_TRAMPOLINE): New accessor for static_flag.
2319         (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
2320         (FORCED_LABEL): Add access check.
2321         (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
2322         (ASM_INPUT_P): Likewise.
2323         (ASM_VOLATILE_P): Likewise.
2324         (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
2325         (OMP_SECTION_LAST): Access private_flag directly.
2326         (OMP_RETURN_NOWAIT): Likewise.
2327         (OMP_PARALLEL_COMBINED): Likewise.
2328         (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
2329         (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
2330         * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
2331         deprecated_flag directly.
2332
2333 2008-05-25  H.J. Lu  <hongjiu.lu@intel.com>
2334
2335         * final.c (frame_pointer_needed): Removed.
2336         * flags.h (frame_pointer_needed): Likewise.
2337
2338         * function.h (rtl_data): Add frame_pointer_needed.
2339         (frame_pointer_needed): New.
2340
2341 2008-05-25  Arthur Loiret  <arthur.loiret@u-psud.fr>
2342
2343         * config.gcc (sh2[lbe]*-*-linux*): Allow target.
2344
2345 2008-05-25  Steven Bosscher  <stevenb.gcc@gmail.com>
2346
2347         * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
2348         SRC is a REG.
2349
2350 2008-05-25  Alan Modra  <amodra@bigpond.net.au>
2351
2352         * c-common.c (strip_array_types): Move function to..
2353         * tree.c: ..here.
2354         (get_inner_array_type): Delete.
2355         * c-common.h (strip_array_types): Move declaration to..
2356         * tree.h: ..here.
2357         (get_inner_array_type): Delete.
2358         * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
2359         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
2360         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
2361         * config/pa/pa.c (emit_move_sequence): Likewise.
2362
2363 2008-05-24  H.J. Lu  <hongjiu.lu@intel.com>
2364
2365         * config/i386/i386.md (*sse_prologue_save_insn): Set length
2366         attribute to 34.
2367
2368 2008-05-24  Andy Hutchinson  <hutchinsonandy@aim.com>
2369
2370         * function.c: Include target hook for nonlocal_goto frame value.
2371
2372 2008-05-24  Richard Guenther  <rguenther@suse.de>
2373
2374         * tree-dfa.c (refs_may_alias_p): Re-instantiate case that a scalar
2375         variable can be only accessed through a pointer or a union.
2376
2377 2008-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2378
2379         * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
2380         * doc/extend.texi: Likewise.
2381
2382 2008-05-23  DJ Delorie  <dj@redhat.com>
2383
2384         * config/m32c/jump.md (untyped_call): Add.
2385
2386         * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
2387         for A24 to PSImode.
2388         (m32c_address_cost): Detail costs for indirect offsets.
2389
2390 2008-05-23  Rafael Espindola  <espindola@google.com>
2391
2392         * see.c (see_get_extension_data): Don't use SUBREG_REG to test
2393         if a node is a SUBREG.
2394         (see_analyze_one_def): Don't use SUBREG_REG to test if a node
2395         is a SUBREG.
2396
2397 2008-05-23  Paul Brook  <paul@codesourcery.com>
2398             Carlos O'Donell  <carlos@codesourcery.com>
2399
2400         * doc/extend.texi: Clarify use of __attribute__((naked)).
2401         * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
2402         * target.h (gcc_target): Add allocate_stack_slots_for_args.
2403         * function.c (use_register_for_decl): Use
2404         targetm.calls.allocate_stack_slots_for_args.
2405         * target-def.h (TARGET_CALLS): Add TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
2406         * config/arm/arm.c (arm_allocate_stack_slots_for_args): New function.
2407         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
2408
2409 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
2410
2411         * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
2412
2413 2008-05-23  Steven Munroe  <sjmunroe@us.ibm.com>
2414
2415         * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
2416         PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
2417         is only rounded once.
2418
2419 2008-05-23  Richard Guenther  <rguenther@suse.de>
2420
2421         * tree-ssa-operands.c (mark_difference_for_renaming): Use bitmap_xor.
2422
2423 2008-05-23  Uros Bizjak  <ubizjak@gmail.com>
2424             Jakub Jelinek  <jakub@redhat.com>
2425
2426         PR target/36079
2427         * configure.ac: Handle --enable-cld.
2428         * configure: Regenerated.
2429         * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
2430         * config/i386/i386.h (struct machine_function): Add needs_cld field.
2431         (ix86_current_function_needs_cld): New define.
2432         * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
2433         (cld): New isns pattern.
2434         (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
2435         cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
2436         * config/i386/i386.opt (mcld): New option.
2437         * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
2438         TARGET_CLD and ix86_current_function_needs_cld.
2439         (override_options): Use -mcld by default for 32-bit code if
2440         USE_IX86_CLD.
2441
2442         * doc/install.texi (Options specification): Document --enable-cld.
2443         * doc/invoke.texi (Machine Dependent Options)
2444         [i386 and x86-64 Options]: Add -mcld option.
2445         (Intel 386 and AMD x86-64 Options): Document -mcld option.
2446
2447 2008-05-23  Kai Tietz  <kai.tietz@onevison.com>
2448         * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
2449         (return_in_memory_64): Likewise.
2450         (return_in_memory_ms_64): Likewise.
2451
2452 2008-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2453
2454         * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
2455         * builtins.c (fold_builtin_fpclassify): New.
2456         (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
2457         * builtins.def (BUILT_IN_FPCLASSIFY): New.
2458         * c-common.c (handle_type_generic_attribute): Adjust to accept
2459         fixed arguments before an elipsis.
2460         (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
2461         * doc/extend.texi: Document __builtin_fpclassify.
2462
2463 2008-05-22  Aldy Hernandez  <aldyh@redhat.com>
2464
2465         * omp-low.c (gate_expand_omp_ssa): Remove.
2466         (pass_expand_omp_ssa): Remove.
2467         (gate_expand_omp): Do not check for flag_openmp_ssa.
2468         * common.opt (-fopenmp-ssa): Remove.
2469         * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
2470
2471 2008-05-22  Kaz Kojima  <kkojima@gcc.gnu.org>
2472
2473         * config/sh/sh.opt (mfixed-range): New option.
2474         * config/sh/sh-protos.h (sh_fix_range): Declare.
2475         * config/sh/sh.c (sh_fix_range): New function.
2476         * config/sh/sh.h (sh_fixed_range_str): Declare.
2477         (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
2478         is not empty.
2479         * doc/invoke.texi (SH Options): Document -mfixed-range.
2480
2481 2008-05-22  Kai Tietz  <kai.tietz@onevision.com>
2482
2483         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
2484         it before the redeclaration.
2485
2486 2008-05-22  Anatoly Sokolov <aesok@post.ru>
2487
2488         * config/avr/avr.c (get_sequence_length): Add new function.
2489         (expand_prologue, expand_epilogue): Remove duplicate code.
2490
2491 2008-05-22  Rafael Espindola  <espindola@google.com>
2492
2493         * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
2494         sharing.
2495
2496 2008-05-22  H.J. Lu  <hongjiu.lu@intel.com>
2497
2498         * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
2499         * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
2500
2501         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
2502         UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
2503         (vect_update_misalignment_for_peel): Likewise.
2504         (vector_alignment_reachable_p): Likewise.
2505         * tree-vect-transform.c (vectorizable_load): Likewise.
2506         * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
2507         (get_vectype_for_scalar_type): Pass mode of scalar_type
2508         to UNITS_PER_SIMD_WORD.
2509
2510         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
2511         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
2512         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
2513         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
2514         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
2515
2516 2008-05-22  Ira Rosen  <irar@il.ibm.com>
2517
2518         PR tree-optimization/36293
2519         * tree-vect-transform.c (vect_transform_strided_load): Don't check
2520         if the first load must be skipped because of a gap.
2521
2522 2008-05-22  Richard Guenther  <rguenther@suse.de>
2523
2524         * tree-dfa.c (refs_may_alias_p): Exit early if possible.  Handle
2525         more cases of offset disambiguation that is possible if
2526         strict-aliasing rules apply.
2527         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
2528         for basic offset and type-based disambiguation.
2529
2530 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
2531
2532         * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
2533         ix86_expand_vector_set on V16QImode for SSE4.1.
2534
2535 2008-05-21  Tom Tromey  <tromey@redhat.com>
2536
2537         * c.opt (Wimport): Mark as undocumented.
2538         * doc/invoke.texi (Option Summary): Don't mention -Wimport or
2539         -Wno-import.
2540         (Warning Options): Likewise.
2541         * doc/cppopts.texi: Don't mention -Wimport.
2542
2543 2008-05-21  Sebastian Pop  <sebastian.pop@amd.com>
2544
2545         PR tree-optimization/36287
2546         PR tree-optimization/36286
2547         * lambda-code.c (build_access_matrix): Do not use the loop->num
2548         for computing the number of induction variables: use the loop depth
2549         instead.
2550
2551 2008-05-21  Kai Tietz  <kai.tietz@onevision.com>
2552
2553         PR/36280
2554         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
2555         option -f(no-)leading-underscore.
2556
2557 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
2558
2559         * config/i386/i386.c (ix86_expand_vector_init_general): Use
2560         GET_MODE_NUNITS (mode).
2561
2562 2008-05-21  Peter Bergner  <bergner@vnet.ibm.com>
2563
2564         * doc/invoke.texi: Add cpu_type's 464 and 464fp.
2565         (-mmulhw): Add 464 to description.
2566         (-mdlmzb): Likewise.
2567         * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
2568         * config/rs6000/rs6000.c (processor_target_table): Add 464 and
2569         464fp entries.
2570         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
2571         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
2572         * config/rs6000/rs6000.md: Update comments for 464.
2573
2574 2008-05-21  Janis Johnson  <janis187@us.ibm.com>
2575
2576         * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
2577
2578 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
2579
2580         * config/i386/sse.md (vec_extractv4sf): Removed.
2581         (vec_extractv2df): Likewise.
2582         (vec_extractv2di): Likewise.
2583         (vec_extractv4si): Likewise.
2584         (vec_extractv8hi): Likewise.
2585         (vec_extractv16qi): Likewise.
2586         (vec_extract<mode>): New.
2587
2588 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
2589
2590         * config/i386/sse.md (vec_setv4sf): Removed.
2591         (vec_setv2df): Likewise.
2592         (vec_setv2di): Likewise.
2593         (vec_setv4si): Likewise.
2594         (vec_setv8hi): Likewise.
2595         (vec_setv16qi): Likewise.
2596         (vec_set<mode>): New.
2597
2598 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
2599
2600         * config/i386/i386.c (ix86_expand_vector_init_general): Remove
2601         goto for vec_concat and vec_interleave.
2602
2603 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
2604
2605         * config/i386/sse.md (vec_initv4sf): Removed.
2606         (vec_initv2df): Likewise.
2607         (vec_initv2di): Likewise.
2608         (vec_initv4si): Likewise.
2609         (vec_initv8hi): Likewise.
2610         (vec_initv16qi): Likewise.
2611         (vec_init<mode>): New.
2612
2613 2008-05-21  Joseph Myers  <joseph@codesourcery.com>
2614
2615         * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
2616
2617 2008-05-21  Tom Tromey  <tromey@redhat.com>
2618
2619         * ggc-zone.c (lookup_page_table_if_allocated): New function.
2620         (zone_find_object_offset): Likewise.
2621         (gt_ggc_m_S): Likewise.
2622         (highest_bit): Likewise.
2623         * ggc-page.c (gt_ggc_m_S): New function.
2624         * stringpool.c (string_stack): Remove.
2625         (init_stringpool): Update.
2626         (ggc_alloc_string): Use ggc_alloc.
2627         (maybe_delete_ident): New function.
2628         (ggc_purge_stringpool): Likewise.
2629         (gt_ggc_m_S): Remove.
2630         * ggc-common.c (ggc_protect_identifiers): New global.
2631         (ggc_mark_roots): Call ggc_purge_stringpool.  Use
2632         ggc_protect_identifiers.
2633         * ggc.h (ggc_protect_identifiers): Declare.
2634         (gt_ggc_m_S): Update.
2635         (ggc_purge_stringpool): Declare.
2636         * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
2637         * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
2638         special case.
2639         (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
2640
2641 2008-05-21  David S. Miller  <davem@davemloft.net>
2642
2643         * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
2644         tmake_file.
2645
2646 2008-05-21  Eric Botcazou  <ebotcazou@adacore.com>
2647
2648         * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
2649         once finished.
2650
2651 2008-05-20  David Daney  <ddaney@avtrex.com>
2652
2653         * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
2654         UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
2655         (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
2656         UNSPEC_UPDATE_GOT_VERSION): Renumber.
2657         (optab, insn): Add 'plus' and 'minus' to define_code_attr.
2658         (atomic_hiqi_op): New define_code_iterator.
2659         (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
2660         mips_expand_compare_and_swap_12.
2661         (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
2662         MIPS_COMPARE_AND_SWAP_12_0.  Pass argument to MIPS_COMPARE_AND_SWAP_12.
2663         (sync_<optab><mode>, sync_old_<optab><mode>,
2664         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
2665         sync_new_nand<mode>): New define_expands for HI and QI mode operands.
2666         (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
2667         sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
2668         (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
2669         (test_and_set_12): New insn.
2670         (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
2671         sync_new_<optab><mode>, sync_old_nand<mode>,
2672         sync_new_nand<mode>, sync_lock_test_and_set<mode>):  Add early
2673         clobber to operand 0 for SI and DI mode insns.
2674         * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
2675         mips_gen_fn_4): New typedefs.
2676         (mips_gen_fn_ptrs): Define new union type.
2677         (mips_expand_compare_and_swap_12): Remove declaration.
2678         (mips_expand_atomic_qihi): Declare function.
2679         * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
2680         (mips_expand_atomic_qihi): ... this.  Use new generator function
2681         parameter.
2682         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
2683         (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
2684         (MIPS_COMPARE_AND_SWAP_12_ZERO_OP, MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
2685         MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
2686         MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
2687         MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
2688         MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
2689         MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
2690         MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
2691         MIPS_SYNC_EXCHANGE_12_ZERO_OP, MIPS_SYNC_EXCHANGE_12_NONZERO_OP):
2692         New macros.
2693
2694 2008-05-20  H.J. Lu  <hongjiu.lu@intel.com>
2695
2696         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
2697         the missing break.
2698
2699 2008-05-20  Anatoly Sokolov <aesok@post.ru>
2700
2701         * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
2702         * config/avr/avr.c (avr_OS_main_function_p): Add new function.
2703         (avr_attribute_table): Add 'OS_main' function attribute.
2704         (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
2705         functions with 'OS_main' attribute.
2706
2707 2008-05-20  Richard Guenther  <rguenther@suse.de>
2708
2709         PR tree-optimization/35204
2710         * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
2711         helper, split out from ...
2712         (DFS): ... here.  Make the DFS walk non-recursive.
2713
2714 2008-05-20  Sebastian Pop  <sebastian.pop@amd.com>
2715             Jan Sjodin  <jan.sjodin@amd.com>
2716
2717         PR tree-optimization/36181
2718         * tree-parloops.c (loop_has_vector_phi_nodes): New.
2719         (parallelize_loops): Don't parallelize when the loop has vector
2720         phi nodes.
2721
2722 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
2723             Sebastian Pop  <sebastian.pop@amd.com>
2724
2725         * tree-loop-linear.c (gather_interchange_stats): Look in the access
2726         matrix, and never look at the tree representation of the memory
2727         accesses.
2728         (linear_transform_loops): Computes parameters and access matrices.
2729         * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
2730         when fails.
2731         (access_matrix_get_index_for_parameter): New.
2732         * tree-data-ref.h (struct access_matrix): New.
2733         (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
2734         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
2735         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
2736         am_vector_index_for_loop): New.
2737         (struct data_reference): Add field access_matrix.
2738         (DR_ACCESS_MATRIX): New.
2739         (compute_data_dependences_for_loop): Update declaration.
2740         (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
2741         * lambda.h (lambda_vector_vec_p): Declared.
2742         * lambda-code.c: Depend on pointer-set.h.
2743         (lambda_collect_parameters_from_af, lambda_collect_parameters,
2744         av_for_af_base, av_for_af, build_access_matrix,
2745         lambda_compute_access_matrices): New.
2746         * Makefile.in (lambda-code.o): Depend on pointer-set.h.
2747
2748 2008-05-20  Joseph Myers  <joseph@codesourcery.com>
2749
2750         * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
2751         $SOURCEDIR/include.
2752
2753 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
2754             Sebastian Pop  <sebastian.pop@amd.com>
2755
2756         PR tree-optimization/36206
2757         * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
2758         FOLD_CONVERSIONS.
2759         (instantiate_scev_1): Rename flags to fold_conversions.
2760         Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
2761         outeside instantiation_loop.
2762         * tree-chrec.h (evolution_function_is_affine_in_loop): New.
2763         (evolution_function_is_affine_or_constant_p): Removed.
2764         * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
2765         instantiate_scev.
2766         (analyze_siv_subscript): Pass in the loop nest number.
2767         Call evolution_function_is_affine_in_loop instead of 
2768         evolution_function_is_affine_p.
2769         (analyze_overlapping_iterations): Pass in the loop nest number.
2770
2771 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
2772             Sebastian Pop  <sebastian.pop@amd.com>
2773
2774         PR tree-optimization/36206
2775         * tree-chrec.h (chrec_fold_op): New.
2776         * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
2777         and other trees.
2778
2779 2008-05-20  Nathan Sidwell  <nathan@codesourcery.com>
2780
2781         * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
2782         (DIRS_EQ): New.
2783         (remove_duplicates): Do not set inode on non-inode systems.
2784         Use DIRS_EQ.
2785
2786 2008-05-20  Sandra Loosemore  <sandra@codesourcery.com>
2787
2788         * config.gcc (tm_file): Update comments about relative pathnames.
2789
2790 2008-05-20  Richard Guenther  <rguenther@suse.de>
2791
2792         * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
2793         * tree-ssa-sccvn.c (process_scc): Likewise.
2794         * tree-ssa-sink.c (execute_sink_code): Likewise.
2795         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
2796         * tree-vrp.c (process_assert_insertions): Likewise.
2797         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
2798         (perform_tree_ssa_dce): Likewise.
2799         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
2800         (dump_dominator_optimization_stats): Likewise.
2801         * tree-vectorizer.c (vectorize_loops): Likewise.
2802
2803 2008-05-20  Richard Guenther  <rguenther@suse.de>
2804
2805         * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
2806
2807 2008-05-20  Kai Tietz  <kai.tietz@onevision.com>
2808
2809         * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
2810         (ix86_i386elf_return_in_memory): Likewise.
2811         (ix86_i386interix_return_in_memory): Likewise.
2812         * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
2813         (SUBTARGET_RETURN_IN_MEMORY): New.
2814         * config/i386/i386elf.h: Likewise.
2815         * config/i386/ptx4-i.h: Likewise.
2816         * config/i386/sol2-10.h: Likewise.
2817         * config/i386/sysv4.h: Likewise.
2818         * config/i386/vx-common.h: Likewise.
2819         * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
2820         * config/i386/i386.c (ix86_return_in_memory): Made static and
2821         make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
2822         (ix86_i386elf_return_in_memory): Removed.
2823         (ix86_i386interix_return_in_memory): Removed.
2824         (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
2825         * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
2826
2827 2008-05-20  Alexandre Oliva  <aoliva@redhat.com>
2828
2829         * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
2830
2831 2008-05-19  Xinliang David Li  <davidxl@google.com>
2832
2833         * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18. 
2834         * opts.c: Ditto.
2835         * common.opt: Ditto.
2836         * doc/invoke.texi: Ditto.
2837
2838 2008-05-19  Eric Botcazou  <ebotcazou@adacore.com>
2839
2840         * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
2841         (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
2842
2843 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
2844
2845         * config/i386/i386.c (ix86_expand_vector_init_concat): Change
2846         sizes of operand array from 8/4 to 4/2.
2847         (ix86_expand_vector_init_general): Change size of operand array
2848         from 32 to 16.  Remove op0, op1 and half_mode.
2849
2850 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
2851
2852         * config/i386/i386.c (ix86_expand_vector_init_concat): New.
2853         (ix86_expand_vector_init_interleave): Likewise.
2854         (ix86_expand_vector_init_general): Use them.  Assert
2855         word_mode == SImode when n_words == 4.
2856
2857 2008-05-19  Uros Bizjak  <ubizjak@gmail.com>
2858
2859         * config/i386/i386.c (ix86_secondary_reload): New static function.
2860         (TARGET_SECONDARY_RELOAD): New define.
2861         * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
2862         * config/i386/i386.md (reload_outqi): Remove.
2863
2864 2008-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2865
2866         PR middle-end/35509
2867         * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
2868         Add `implicit' parameter.  Handle BUILT_IN_SIGNBIT.
2869         (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
2870         (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
2871         (fold_builtin_1): Likewise.
2872         * builtins.def (BUILT_IN_ISINF_SIGN): New.
2873         c-common.c (check_builtin_function_arguments): Handle
2874         BUILT_IN_ISINF_SIGN.
2875         * doc/extend.texi: Document __builtin_isinf_sign.
2876         * fold-const.c (operand_equal_p): Handle COND_EXPR.
2877
2878 2008-05-18  Eric Botcazou  <ebotcazou@adacore.com>
2879
2880         * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
2881         EH cleanup at the end of the pass, search for those that have been
2882         turned into forwarder blocks and do the cleanup on their successor.
2883
2884 2008-05-18  Richard Guenther  <rguenther@suse.de>
2885
2886         * tree-cfg.c (verify_gimple_expr): Allow conversions from
2887         pointers to sizetype and vice versa.
2888
2889 2008-05-18 Xinliang David Li   <davidxl@google.com>
2890
2891         * gcc/tree-ssa-dce.c: Coding style fix.
2892         (check_pow): Documentation comment. 
2893         (check_log): Documenation comment. Coding style fix.
2894         (is_unnecessary_except_errno_call): Ditto.
2895         (gen_conditions_for_pow): Ditto.
2896         (gen_conditions_for_log): Ditto.
2897         (gen_shrink_wrap_conditions): Ditto.
2898         (shrink_wrap_one_built_in_calls): Ditto.
2899         * gcc/doc/invoke.texi: Better documentation string.
2900         * ChangeLog: Fix wrong change log entries from 
2901         May 17 checkin on function call DCE.
2902
2903 2008-05-17  Kaz Kojima  <kkojima@gcc.gnu.org>
2904
2905         * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
2906
2907 2008-05-17  Kenneth Zadeck <zadeck@naturalbridge.com>
2908
2909         * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
2910         * df-problems.c (simulation routines): Fixed block comment to
2911         properly say how to add forwards scanning functions.
2912         
2913 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
2914
2915         * tree-inline.c (setup_one_parameter): Remove dead code.
2916
2917 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
2918
2919         * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
2920         a BIT_AND_EXPR only for an INTEGER_TYPE.
2921
2922 2008-05-17 Xinliang David Li   <davidxl@google.com>
2923
2924         * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
2925         (check_pow, check_log, is_unnecessary_except_errno_call): New 
2926         functions to check for eliminating math functions that are pure 
2927         except for setting errno.
2928         (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
2929         general condition expressions for shrink-wrapping pow/log calls.
2930         (gen_shrink_wrap_conditions): Ditto.
2931         (shrink_wrap_one_built_in_call): Ditto.
2932         (shrink_wrap_conditional_dead_built_in_calls): Ditto.
2933         (mark_operand_necessary): If debugging, output if OP is necessary.
2934         (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
2935         unnecessary.
2936         * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
2937         opt level >= 2.
2938         * gcc/common.opt: New user flag -ftree-builtin-dce.
2939         * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
2940
2941 2008-05-16  David S. Miller  <davem@davemloft.net>
2942
2943         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
2944         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
2945
2946 2008-05-16  Uros Bizjak  <ubizjak@gmail.com>
2947
2948         PR target/36246
2949         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
2950
2951 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
2952
2953         * ifcvt.c (dead_or_predicable): Rename
2954         df_simulate_one_insn_backwards to df_simulate_one_insn.
2955         * recog.c (peephole2_optimize): Ditto.
2956         * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
2957         Ditto.
2958         * df.h: Rename df_simulate_one_insn_backwards to
2959         df_simulate_one_insn.  and delete df_simulate_one_insn_forwards.
2960         * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
2961         scanning of defs and uses.
2962         (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
2963         (df_simulate_one_insn_forwards): Removed.
2964
2965 2008-05-16  Doug Kwan  <dougkwan@google.com>
2966
2967         * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
2968         QNaN & SNaN.
2969         (real_from_string): Handle NaNs and Inf as approriate.
2970
2971 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
2972
2973         * doc/gty.texi (Source Files Containing Type Information): Note
2974         that headers should appear first in the gtfiles list.
2975
2976 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
2977
2978         * tree.def (COND_EXEC): Properly documented this code.
2979
2980 2008-05-16  Diego Novillo  <dnovillo@google.com>
2981
2982         * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
2983         * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
2984         the new field.
2985
2986 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
2987
2988         * tree-ssa-dse (max_stmt_uid): Removed.
2989         (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt, 
2990         tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
2991         * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
2992         * function.h (cfun.last_stmt_uid): New field.
2993         * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
2994         gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
2995         New functions.
2996         * tree-dfa.c (renumber_gimple_stmt_uids): New function.
2997         (create_stmt_ann): Initialize the ann->uid field.
2998         * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
2999         with new calls.
3000         * tree-flow.h (renumber_gimple_stmt_uids): New function.
3001
3002 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
3003
3004         * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
3005         * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
3006         (init_empty_tree_cfg): Call it.
3007
3008 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
3009
3010         * cfg.c (init_flow): Add argument THE_FUN.  Use it instead of cfun.
3011         Update all users.
3012
3013 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
3014
3015         * doc/invoke.text (-fdump-tree-*-verbose): New option.
3016         * tree-dump.c (dump_options): New verbose option.
3017         * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
3018         Add verbose dump.
3019         * tree-pass.h (TDF_VERBOSE): New dump flag.
3020         * print-tree.c (print_node): Added code to be able to print PHI_NODES.
3021         (tree-flow.h): Added include.
3022         * Makefile.in (print-tree.o):  Added TREE_FLOW_H.
3023
3024 2008-05-16  Bernd Schmidt  <bernd.schmidt@analog.com>
3025
3026         * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
3027
3028         From Jie Zhang  <jie.zhang@analog.com>
3029         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
3030         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
3031         mcpu=bf561-none and mcpu=bf561-0.2.
3032         * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
3033         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
3034         * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
3035         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
3036         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
3037         * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
3038         (LIB_SPEC): Use proper linker script for bf561.  Error if no mcpu
3039         option.
3040         * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
3041         (cputype_selected): Remove.
3042         (bfin_handle_option): Don't use cputype_selected.
3043         (override_options): When no mcpu option, enable all workarounds.
3044         Don't use bfin_workarounds.
3045         * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
3046         processor type.
3047         (DEFAULT_CPU_TYPE): Don't define.
3048
3049 2008-05-16  Richard Guenther  <rguenther@suse.de>
3050
3051         * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
3052         on deletion of the last stmt.
3053
3054 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
3055
3056         * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
3057         V8HImode for SSE2 and V16QImode for SSE4.1.
3058
3059 2008-05-15  Kenneth Zadeck <zadeck@naturalbridge.com>
3060
3061         * cgraph.h (compute_inline_parameters): Made public.
3062         * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
3063         variable_generate_summary, function_write_summary,
3064         variable_write_summary, variable_read_summary.  Added generate_summary,
3065         write_summary, read_summary.
3066         * cgraphunit.c (cgraph_process_new_functions): Changed call from
3067         pass_ipa_inline.function_generate_summary, to
3068         compute_inline_parameters. 
3069         * ipa-inline.c (compute_inline_parameters): Made public and added
3070         node parameter.
3071         (compute_inline_parameters_for_current): New function.
3072         (pass_inline_param): Now calls compute_inline_parameters_for_current.
3073         (inline_generate_summary): Removed parameter and made to loop over
3074         all cgraph nodes.
3075         (pass_ipa_inline): Updated for new IPA_PASS structure.
3076         * passes.c (execute_ipa_summary_passes): Now is called once per
3077         pass rather than once per node*pass.
3078         
3079 2008-05-15  Anatoly Sokolov <aesok@post.ru>
3080
3081         * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p, 
3082         avr_have_mul_p, avr_asm_only_p): Remove variables.
3083         (avr_override_options): Remove initialization of removed variables.
3084         (avr_file_start):  Convert removed variables to fields of 
3085         'struct base_arch_s *avr_current_arch'. 
3086         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
3087         (AVR_HAVE_MUL): (Ditto.).
3088         (AVR_HAVE_MOVW): (Ditto.).
3089         (AVR_HAVE_LPMX): (Ditto.). 
3090         (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p, 
3091         avr_asm_only_p): Remove declaration.
3092
3093 2008-05-15  Diego Novillo  <dnovillo@google.com>
3094
3095         * config/arm/arm.c (arm_return_in_memory): Fix return type.
3096         * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
3097
3098 2008-05-15  Adam Nemet  <anemet@caviumnetworks.com>
3099
3100         PR middle-end/36194
3101         * combine.c (check_conversion): Rename back to check_promoted_subreg.
3102         Don't call record_truncated_value from here.
3103         (record_truncated_value): Turn it into a for_each_rtx callback.
3104         (record_truncated_values): New function.
3105         (combine_instructions): Call note_uses with record_truncated_values.
3106         Change name of check_conversion to check_promoted_subreg. 
3107
3108 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
3109
3110         * doc/sourcebuild.texi: Document support for torture tests.
3111
3112 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
3113
3114         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
3115         to alternative 4 of operand 2.
3116
3117 2008-05-15  Richard Guenther  <rguenther@suse.de>
3118
3119         * tree-pass.h (current_pass): Declare.
3120         (get_pass_for_id): Likewise.
3121         * passes.c (passes_by_id, passes_by_id_size): New globals.
3122         (set_pass_for_id): New function.
3123         (get_pass_for_id): Likewise.
3124         (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
3125         (execute_function_todo): Flush per function statistics.
3126         * toplev.c (compile_file): Init statistics.
3127         (general_init): Do early statistics initialization.
3128         (finalize): Finish statistics.
3129         * statistics.h (statistics_early_init): Declare.
3130         (statistics_init): Likewise.
3131         (statistics_fini): Likewise.
3132         (statistics_fini_pass): Likewise.
3133         (statistics_counter_event): Likewise.
3134         (statistics_histogram_event): Likewise.
3135         * statistics.c: New file.
3136         * Makefile.in (OBJS-common): Add statistics.o.
3137         (statistics.o): Add dependencies.
3138         * doc/invoke.texi (-fdump-statistics): Document.
3139
3140         * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
3141         (insert): Likewise.
3142         (execute_pre): Use statistics_counter_event.
3143         * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
3144         (substitute_and_fold): Increment it.  Use statistics_counter_event.
3145
3146 2008-05-15  Diego Novillo  <dnovillo@google.com>
3147
3148         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
3149
3150         * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
3151         * tree-ssa-alias.c (new_type_alias): Remove references to
3152         sub-variables from comment.
3153         * tree-ssa-operands.c (swap_tree_operands): Likewise.
3154
3155 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
3156
3157         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
3158         attribute to 1 only for insertps alternative.
3159
3160 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
3161
3162         * config/bfin/bfin.md (loadbytes): New pattern.
3163         * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
3164         (bfin_init_builtins): Initialize it.
3165         (bdesc_1arg): Add it.
3166
3167 2008-05-15  Sa Liu  <saliu@de.ibm.com>
3168
3169         * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
3170         * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
3171         * testsuite/lib/target-supports.exp: Add
3172         check_effective_target_fortran_integer_16.
3173
3174 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
3175
3176         * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
3177         * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
3178         * config/bfin/bfin.c (bfin_return_in_memory): Now static.  Return bool.
3179         (TARGET_RETURN_IN_MEMORY): Define.
3180
3181 2008-05-15  Richard Guenther  <rguenther@suse.de>
3182
3183         PR middle-end/36244
3184         * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
3185         * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
3186         represent unmodifiable vars.
3187
3188 2008-05-15  Richard Guenther  <rguenther@suse.de>
3189
3190         * tree-dfa.c (refs_may_alias_p): Allow all kinds of
3191         INDIRECT_REF and TARGET_MEM_REF.
3192         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
3193         TARGET_MEM_REF.
3194
3195 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
3196             H.J. Lu  <hongjiu.lu@intel.com>
3197
3198         * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
3199         (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
3200         for operand 2.  Remove pinsr{q,d} with 0x0 immediate operand from
3201         insn alternatives.  Add missing alternatives.
3202         (*vec_concatv2di_rex64_sse4_1): Likewise.
3203         (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
3204         (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
3205         Require TARGET_SSE.
3206
3207 2008-05-15  Richard Guenther  <rguenther@suse.de>
3208
3209         PR tree-optimization/36009
3210         PR tree-optimization/36204
3211         * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
3212         (determine_invariantness_stmt): Record the loop a store is
3213         always executed in.
3214         * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
3215         dependency.
3216
3217 2008-05-15  Richard Guenther  <rguenther@suse.de>
3218
3219         PR tree-optimization/34330
3220         * tree-ssa-alias.c (get_smt_for): Only assert that accesses
3221         through the pointer will alias the SMT.
3222
3223 2008-05-14  Andreas Tobler  <a.tobler@schweiz.org>
3224
3225         * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
3226
3227 2008-05-14  H.J. Lu  <hongjiu.lu@intel.com>
3228
3229         * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
3230
3231 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
3232             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
3233
3234         * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
3235         OTI_vrotl, OTI_vrotr to support vector/vector shifts.
3236         (vashl_optab): New optab for vector/vector shifts.
3237         (vashr_optab): Ditto.
3238         (vlshr_optab): Ditto.
3239         (vrotl_optab): Ditto.
3240         (vrotr_optab): Ditto.
3241         (optab_subtype): New enum for optab_for_tree_code call.
3242         (optab_for_tree_code): Add enum optab_subtype argument.
3243
3244         * optabs.c (optab_for_tree_code): Take an additional argument to
3245         distinguish between a vector shift by a scalar and vector shift by
3246         a vector.  Make lshr/ashr/ashl/rotl/rotr optabs just vector
3247         shifted by a scalar.  Use vlshr/vashr/vashl/vrotl/vrotr for the
3248         vector shift by a vector.
3249         (expand_widen_pattern_expr): Pass additional argument to
3250         optab_for_tree_code.
3251
3252         * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
3253         vrotl_optab, vrotr_optab.
3254
3255         * expr.c (expand_expr_real_1): Update calls to
3256         optab_for_tree_code to distinguish between vector shifted by a
3257         scalar and vector shifted by a vector.
3258         * tree-vectorizer.c (supportable_widening_operation): Ditto.
3259         (supportable_narrowing_operation): Ditto.
3260         * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
3261         * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
3262         * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
3263         (vect_create_epilog_for_reduction): Ditto.
3264         (vectorizable_reduction): Ditto.
3265         (vectorizable_operation): Ditto.
3266         (vect_strided_store_supported): Ditto.
3267         (vect_strided_load_supported): Ditto.
3268         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
3269         * expmed.c (expand_shift): Ditto.
3270
3271         * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
3272         scalar type.
3273         (ashr@var{m}3): Ditto.
3274         (vashl@var{m}3): Document new vector/vector shift standard name.
3275         (vashr@var{m}3): Ditto.
3276         (vlshr@var{m}3): Ditto.
3277         (vrotl@var{m}3): Ditto.
3278         (vrotr@var{m}3): Ditto.
3279
3280         * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
3281         (PPERM_INVERT): Ditto.
3282         (PPERM_REVERSE): Ditto.
3283         (PPERM_REV_INV): Ditto.
3284         (PPERM_ZERO): Ditto.
3285         (PPERM_ONES): Ditto.
3286         (PPERM_SIGN): Ditto.
3287         (PPERM_INV_SIGN): Ditto.
3288         (PPERM_SRC1): Ditto.
3289         (PPERM_SRC2): Ditto.
3290
3291         * config/i386/sse.md (mulv2di3): Add SSE5 support.
3292         (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
3293         allows a memory operand to be the value being added, and split it
3294         to improve vectorization.
3295         (sse5_pmacsdqh_mem): Ditto.
3296         (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
3297         (sse5_mulv2div2di3_high): Ditto.
3298         (vec_pack_trunc_v8hi): Add SSE5 pperm support.
3299         (vec_pack_trunc_v4si): Ditto.
3300         (vec_pack_trunc_v2di): Ditto.
3301         (sse5_pcmov_<mode>): Remove code that tried to use use
3302         andps/andnps instead of pcmov.
3303         (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
3304         pmacsdqh instructions.
3305         (vec_widen_smult_lo_v4si): Ditto.
3306
3307         * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
3308         (PPERM_INVERT): Ditto.
3309         (PPERM_REVERSE): Ditto.
3310         (PPERM_REV_INV): Ditto.
3311         (PPERM_ZERO): Ditto.
3312         (PPERM_ONES): Ditto.
3313         (PPERM_SIGN): Ditto.
3314         (PPERM_INV_SIGN): Ditto.
3315         (PPERM_SRC1): Ditto.
3316         (PPERM_SRC2): Ditto.
3317         (ix86_expand_sse_movcc): Move the SSE5 test after the if
3318         true/false tests.
3319         (ix86_expand_int_vcond): If SSE5 generate all possible integer
3320         comparisons.
3321         (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
3322         says ignore whether the last reference is a memory operand.
3323
3324 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
3325             Paolo Bonzini <bonzini at gnu dot org>
3326
3327         * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
3328         shift patterns.
3329
3330         * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
3331         (vlshr<mode>3): Rename from vlshr<mode>3.
3332         (vashr<mode>3): Rename from vashr<mode>3.
3333         (mulv4sf3): Change the names of vector shift patterns.
3334         (mulv4si3): Ditto.
3335         (negv4sf2): Ditt.
3336
3337         * config/spu/spu.c (spu_initialize_trampoline): Rename vector
3338         shift insns.
3339
3340         * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
3341         (SI_SHLHI): Ditto.
3342         (SI_SHL): Ditto.
3343         (SI_SHLI): Ditto.
3344         (SI_ROTH): Ditto.
3345         (SI_ROTHI): Ditto.
3346         (SI_ROT): Ditto.
3347         (SI_ROTI): Ditto.
3348         (SPU_RL_0): Ditto.
3349         (SPU_RL_1): Ditto.
3350         (SPU_RL_2): Ditto.
3351         (SPU_RL_3): Ditto.
3352         (SPU_RL_4): Ditto.
3353         (SPU_RL_5): Ditto.
3354         (SPU_RL_6): Ditto.
3355         (SPU_RL_7): Ditto.
3356         (SPU_SL_0): Ditto.
3357         (SPU_SL_1): Ditto.
3358         (SPU_SL_2): Ditto.
3359         (SPU_SL_3): Ditto.
3360         (SPU_SL_4): Ditto.
3361         (SPU_SL_5): Ditto.
3362         (SPU_SL_6): Ditto.
3363         (SPU_SL_7): Ditto.
3364
3365         * config/spu/spu.md (v): New iterator macro to add v for vector types.
3366         (floatunssidf2_internal): Change vector/vector shift names.
3367         (floatunsdidf2_internal): Ditto.
3368         (mulv8hi3): Ditto.
3369         (ashrdi3): Ditto.
3370         (ashrti3): Ditto.
3371         (cgt_df): Ditto.
3372         (cgt_v2df): Ditto.
3373         (dftsv): Ditto.
3374         (vashl<mode>3): Rename from ashl<mode>3.
3375         (vashr<mode>3): Rename from ashr<mode>3.
3376         (vlshr<mode>3): Rename from lshr<mode>3.
3377         (vrotl<mode>3): Rename from rotl<mode>3.
3378
3379 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
3380
3381         PR target/36224
3382         * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
3383         multiply gives the wrong value when doing widening multiplies.
3384         (vec_widen_smult_lo_v4si): Ditto.
3385
3386 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
3387
3388         * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
3389         LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
3390         emit_library_call_value. 
3391         * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
3392         * tree.h (ECF_LIBCALL_BLOCK): Removed.
3393         * calls.c (initialize_argument_information, precompute_arguments, 
3394         expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
3395         (precompute_arguments): Removed flags parameter.
3396         * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
3397         
3398 2008-05-14  Richard Guenther  <rguenther@suse.de>
3399
3400         * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
3401         Make sure to register the store if the use is a PHI_NODE.
3402
3403 2008-05-14  Olivier Hainque  <hainque@adacore.com>
3404
3405         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
3406         memory if the component is to be referenced in BLKmode according
3407         to get_inner_reference.
3408
3409 2008-05-14  Adam Nemet  <anemet@caviumnetworks.com>
3410
3411         * calls.c (emit_library_call_value_1): Restore code clearing
3412         ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
3413
3414 2008-05-14  Olivier Hainque  <hainque@adacore.com>
3415             Nicolas Roche  <roche@adacore.com>
3416
3417         * configure.ac: Add support for a "gcc_subdir" variable in
3418         config-lang.in, to denote a subdirectory where the language/GCC
3419         integration files are to be found.
3420         * configure: Regenerate.
3421
3422 2008-05-14  Ira Rosen  <irar@il.ibm.com>
3423
3424         PR tree-optimization/36098
3425         * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
3426         value for the first load in the group in case of a gap.
3427         (vect_build_slp_tree): Check that there are no gaps in loads.
3428
3429 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
3430
3431         * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
3432         * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
3433         expand_copysign_bit, ): Change call to emit_no_conflict_block to
3434         emit_insn and remove unneeded code to construct extra args.
3435         (emit_no_conflict_block): Removed.
3436         * optabls.h: (emit_no_conflict_block): Removed.
3437         * cse.c (cse_extended_basic_block): Remove search for
3438         REG_NO_CONFLICT note.
3439         * global.c: Removed incorrect comment added in revision 117.
3440         * expr.c (convert_move): Change call to emit_no_conflict_block to
3441         emit_insn.
3442         * recog.c: Change comments so that they do not mention
3443         REG_NO_CONFLICT.
3444         * local_alloc.c (combine_regs): Removed last parameter.
3445         (no_conflict_p): Removed.
3446         (block_alloc): Removed note, no_conflict_combined_regno and set
3447         local vars. Removed all code to process REG_NO_CONFLICT blocks.
3448         (combine_regs): Removed already_dead and code to look for
3449         REG_NO_CONFLICT notes.
3450         * lower_subreg (remove_retval_note): Removed code to look for
3451         REG_NO_CONFLICT block.
3452         (resolve_reg_notes): Removed REG_NO_CONFLICT case.
3453         (resolve_clobber): Remove code to process libcalls that have
3454         REG_NO_CONFLICT notes.
3455         * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
3456         case.
3457         * combine.c (can_combine_p, distribute_notes):  Removed
3458         REG_NO_CONFLICT case.
3459         * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
3460         to emit_insns.
3461         * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
3462         * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
3463         Ditto.
3464         * reg-notes.def (NO_CONFLICT): Removed.
3465
3466 2008-05-14  David S. Miller  <davem@davemloft.net>
3467
3468         * config/sparc/sparc.c (sparc_profile_hook): If
3469         NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
3470         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
3471         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
3472
3473 2008-05-14  Andreas Krebbel  <krebbel1@de.ibm.com>
3474
3475         * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
3476
3477 2008-05-13  Uros Bizjak  <ubizjak@gmail.com>
3478
3479         PR target/36222
3480         * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
3481         and op1 expansion before vector concat to have less live pseudos.
3482
3483 2008-05-13  H.J. Lu  <hongjiu.lu@intel.com>
3484
3485         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
3486         ix86_expand_vector_set if supported.
3487
3488 2008-05-13  Diego Novillo  <dnovillo@google.com>
3489             Kenneth Zadeck  <zadeck@naturalbridge.com>
3490
3491         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
3492
3493         * tree.h (init_phinodes, fini_phinodes, release_phi_node,
3494         phinodes_print_statistics, init_ssanames, fini_ssanames,
3495         make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
3496         release_ssa_name, release_defs, replace_ssa_name_symbol,
3497         ssanames_print_statistics): Move ...
3498         * tree-flow.h: ... here.
3499         * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
3500         Use FN instead of cfun.
3501         (make_ssa_name_fn): Rename from make_ssa_name.
3502         (pass_release_ssa_names): Add TODO_dump_func to finish flags.
3503         * tree-flow-inline.h (make_ssa_name): Move from
3504         tree-ssanames.c.  Convert to static inline.  Call make_ssa_name_fn.
3505         * omp-low.c (expand_omp_parallel):
3506         * tree-flow-inline.h (redirect_edge_var_map_result):
3507         * tree-ssa.c (init_tree_ssa): Add argument FN.
3508         Use it instead of cfun.  Update all users.
3509
3510 2008-05-13  Tom Tromey  <tromey@redhat.com>
3511
3512         PR preprocessor/22168:
3513         * doc/cpp.texi (Top): Update menu.
3514         (Alternatives to Wrapper #ifndef): New node.
3515         (Other Directives): Document deprecation.
3516         (Obsolete Features): Remove menu.
3517         (Assertions): Merge node into Obsolete Features.
3518         (Obsolete once-only headers): Move earlier; rename to Alternatives
3519         to Wrapper #ifndef.
3520         * doc/cppopts.texi: Update.
3521         * c.opt (Wdeprecated): Enable for C and ObjC.
3522         * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
3523         (C++ Dialect Options): Move -Wno-deprecated from here to...
3524         (Warning Options): ... here.
3525
3526 2008-05-13  Richard Guenther  <rguenther@suse.de>
3527
3528         PR middle-end/36227
3529         * fold-const.c (fold_sign_changed_comparison): Do not allow
3530         changes in pointer-ness.
3531
3532 2008-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
3533
3534         PR target/24713
3535         * config/sh/sh.c (sh_expand_prologue): Don't clear
3536         RTX_FRAME_RELATED_P for push insns.
3537
3538 2008-05-12  Andy Hutchinson  <hutchinsonandy@aim.com>
3539
3540         * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
3541
3542 2008-05-12  Anatoly Sokolov <aesok@post.ru>
3543
3544         * config/avr/avr.h (machine_function): Add 'is_leaf' field.
3545         * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
3546         Use 'machine->is_leaf' instead of 'leaf_func_p'.
3547
3548 2008-05-12  H.J. Lu  <hongjiu.lu@intel.com>
3549
3550         * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
3551         (*vec_concatv4sf_sse): This.
3552         (*sse2_concatv2si): Renamed to ...
3553         (*vec_concatv2si_sse2): This.
3554         (*sse1_concatv2si): Renamed to ...
3555         (*vec_concatv2si_sse): This.
3556         (*vec_concatv2di_rex): Renamed to ...
3557         (*vec_concatv2di_rex64): This.
3558         (*vec_concatv2si_sse4_1): New.
3559         (*vec_concatv2di_rex64_sse4_1): Likewise.
3560
3561 2008-05-12  Uros Bizjak  <ubizjak@gmail.com>
3562
3563         PR rtl-optimization/36111
3564         * recog.c (validate_replace_rtx_1): Unshare new RTL expression
3565         that was created for swappable operands.
3566
3567 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
3568
3569         PR ada/36001
3570         * Makefile.in: Substitute GNATMAKE and GNATBIND.
3571         * configure.ac: Add call to ACX_PROG_GNAT.
3572
3573 2008-05-11  Volker Reichelt  <v.reichelt@netcologne.de>
3574
3575         * optc-gen.awk: Fix comment typo.
3576
3577 2008-05-11  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
3578
3579         * pretty-print.c (pp_integer_with_precision): Use
3580         HOST_LONG_LONG_FORMAT.
3581
3582 2008-05-10  Kenneth Zadeck  <zadeck@naturalbridge.com>
3583
3584         * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
3585                 
3586 2008-05-10  H.J. Lu  <hongjiu.lu@intel.com>
3587
3588         * config/i386/i386.c (bdesc_ptest): Removed.
3589         (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
3590         (bdesc_args): Add __builtin_ia32_ptestz128,
3591         __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
3592         (ix86_init_mmx_sse_builtins): Updated.
3593         (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
3594         (ix86_expand_builtin): Updated.
3595
3596 2008-05-10  Richard Sandiford  <rdsandiford@googlemail.com>
3597
3598         * tree-cfg.c (valid_fixed_convert_types_p): New function.
3599         (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
3600
3601 2008-05-10  Uros Bizjak  <ubizjak@gmail.com>
3602
3603         * value-prof.c (interesting_stringop_to_profile): Do not
3604         return early for BUILT_IN_MEMPCPY.
3605
3606 2008-05-09  H.J. Lu  <hongjiu.lu@intel.com>
3607
3608         * calls.c (expand_call): Don't use callgraph to increase
3609         preferred_stack_boundary.
3610
3611         * cgraph.h (cgraph_rtl_info): Use unsigned on
3612         preferred_incoming_stack_boundary.
3613
3614         * final.c (rest_of_clean_state): Use unsigned on
3615         preferred_stack_boundary.
3616
3617 2008-05-09  Tom Tromey  <tromey@redhat.com>
3618
3619         PR preprocessor/22231:
3620         * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
3621         proceeding.
3622
3623 2008-05-09  Uros Bizjak  <ubizjak@gmail.com>
3624
3625         PR tree-optimization/36129
3626         * tree-ssa-ccp.c: Include value-prof.h.
3627         (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
3628         built-in function was folded to a constant.
3629         * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
3630
3631 2008-05-09  Jan Sjodin  <jan.sjodin@amd.com>
3632             Sebastian Pop  <sebastian.pop@amd.com>
3633
3634         * tree-scalar-evolution.c: Document instantiate_scev.
3635         (instantiate_parameters_1): Renamed instantiate_scev_1.
3636         Don't use the same loop for instantiation_loop and evolution_loop.
3637         (instantiate_scev): New.
3638         (instantiate_parameters): Moved...
3639         (resolve_mixers): Update call to instantiate_scev_1 to pass the
3640         same loop twice.  Maintains the semantics for this function.
3641         * tree-scalar-evolution.h (instantiate_scev): Declare.
3642         (instantiate_parameters): ...here.  Now static inline.
3643         * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
3644         instead of resolve_mixers.
3645
3646 2008-05-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
3647
3648         * rtl-factoring.c (collect_pattern_seqs): Fix typo.
3649
3650 2008-05-09  Tomas Bily  <tbily@suse.cz>
3651
3652         * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
3653         * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
3654         * tree-ssa-structalias.c (get_constraint_for): Likewise.
3655         * c-common.c (c_common_truthvalue_conversion): Likewise.
3656         * tree-object-size.c (compute_object_offset): Likewise.
3657         * tree-inline.c (estimate_num_insns_1): Likewise.
3658         * varasm.c (const_hash_1, compare_constant, copy_constant)
3659         (compute_reloc_for_constant, output_addressed_constants)
3660         (initializer_constant_valid_p): Likewise.
3661         * c-omp.c (check_omp_for_incr_expr): Likewise.
3662         * gimplify.c (gimplify_expr): Likewise.
3663         * c-typeck.c (c_finish_return): Likewise.
3664         * tree-vectorizer.c (supportable_widening_operation)
3665         (supportable_narrowing_operation): Likewise.
3666         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
3667         * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
3668         * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
3669         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
3670         (descr_info_loc): Likewise.
3671         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
3672         * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
3673         (fold_unary): Likewise.
3674         * builtins.c (get_pointer_alignment): Likewise.
3675         * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
3676         (instantiate_parameters_1): Likewise.
3677         * tree.c (expr_align, stabilize_reference): Likewise.
3678         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
3679         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
3680         * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
3681         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
3682         * config/alpha/alpha.c (va_list_skip_additions): Likewise.
3683         * c-common.c (c_alignof_expr, check_function_arguments_recurse):
3684         Likewise.
3685         * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
3686         * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
3687         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
3688         (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
3689         (forward_propagate_comparison)
3690         (tree_ssa_forward_propagate_single_use_vars): Likewise.
3691         * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
3692         * emit-rtl.c (component_ref_for_mem_expr)
3693         (set_mem_attributes_minus_bitpos): Likewise.
3694         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
3695         * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
3696         Likewise.
3697         * c-typeck.c (default_function_array_conversion, build_indirect_ref)
3698         (build_function_call, pointer_diff, build_compound_expr)
3699         (c_finish_return): Likewise.
3700         * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
3701         * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
3702         Likewise.
3703         * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
3704         * expr.c (is_aligning_offset): Likewise.
3705         * tree-ssa-alias.c (is_escape_site): Likewise.
3706         * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
3707         (check_all_va_list_escapes): Likewise.
3708         * tree-ssa-loop-ivopts.c (determine_base_object)
3709         (determine_common_wider_type): Likewise.
3710         * dojump.c (do_jump): Likewise.
3711         * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
3712         * tree-gimple.c (is_gimple_cast): Likewise.
3713         * fold-const.c (decode_field_reference, )
3714         (fold_sign_changed_comparison, fold_unary, fold_comparison)
3715         (fold_binary): Likewise.
3716         * tree-ssa-alias-warnings.c (find_alias_site_helper)
3717         (already_warned_in_frontend_p): Likewise.
3718         * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
3719         * tree.c (really_constant_p, get_unwidened): Likewise.
3720         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
3721         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
3722         * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
3723         Likewise.
3724         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
3725         CONVERT_EXPR_P.
3726         (CONVERT_EXPR_P): Define.
3727         (CASE_CONVERT): Define.
3728         
3729 2008-05-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
3730
3731         PR middle-end/36117
3732         * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
3733         (delete_unmarked_insns): When deleting a call, call
3734         delete_unreachable_blocks.
3735         * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
3736         RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
3737
3738 2008-05-08  Richard Guenther  <rguenther@suse.de>
3739
3740         * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
3741         (-ftree-salias): Likewise.
3742         (salias-max-implicit-fields): Remove param documentation.
3743         (salias-max-array-elements): Likewise.
3744         * tree-pass.h (pass_create_structure_vars): Remove.
3745         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
3746         (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
3747         * tree-ssa-alias.c (create_structure_vars): Remove.
3748         (gate_structure_vars): Likewise.
3749         (pass_create_structure_vars): Likewise.
3750         (gate_build_alias): Likewise.
3751         (pass_build_alias): Adjust to run always and dump the function.
3752         * common.opt (ftree-salias): Hide.
3753         * passes.c (init_optimization_passes): Remove
3754         pass_create_structure_vars, adjust comment.
3755         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
3756         (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
3757         * opts.c (decode_options): Do not set flag_tree_salias.
3758         (common_handle_option): Add OPT_ftree_salias to the backward
3759         compatibility section.
3760
3761 2008-05-08  Richard Guenther  <rguenther@suse.de>
3762
3763         * tree-flow-inline.h (var_can_have_subvars): Move ...
3764         * tree-ssa-structalias.c (var_can_have_subvars): ... here.
3765         * tree-flow.h (var_can_have_subvars): Remove.
3766         (push_fields_onto_fieldstack): Remove.
3767         (sort_fieldstack): Likewise.
3768         (struct fieldoff): Move ...
3769         * tree-ssa-structalias.c (struct fieldoff): ... here.  Remove
3770         alias_set and base_for_components fields.
3771         (sort_fieldstack): Make static.
3772         (push_fields_onto_fieldstack): Likewise.  Remove code that
3773         handles anything but RECORD_TYPEs.  Remove alias_set and
3774         base_for_components handling.
3775         (create_variable_info_for): Adjust.
3776
3777 2008-05-08  Seongbae Park  <seongbae.park@gmail.com>
3778
3779         * common.opt (Wframe-larger-than=): Shorten the help message
3780         to one line.
3781         * doc/invoke.texi (Wframe-larger-than=): Add more description.
3782
3783 2008-05-08  Rafael Espindola  <espindola@google.com>
3784
3785         * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
3786         trap.
3787         * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
3788         trap and that both operands are gimple values.
3789         (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
3790         * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
3791         is a fp operation.
3792
3793 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
3794
3795         * read-rtl.c (join_c_conditions): Return the first string if the
3796         two strings are equal.
3797
3798 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
3799
3800         * gensupport.h (pred_data): Add a "num_codes" field.
3801         (add_predicate_code): Declare.
3802         * gensupport.c (add_predicate_code): New function.
3803         (std_pred_table): Add an "allows_const_p" field.
3804         (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
3805         Remove the (incomplete) list of such codes from the codes field.
3806         (init_predicate_table): Use add_predicate_code.  Add all
3807         RTX_CONST_OBJs if allows_const_p is true.
3808         * genrecog.c (process_define_predicate): Use add_predicate_code.
3809
3810 2008-05-08  David Daney  <ddaney@avtrex.com>
3811             Richard Sandiford  <rsandifo@nildram.co.uk>
3812         
3813         * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
3814         special case of constant zero operands.
3815         * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
3816         old and new values.  Special case constant zero values.
3817         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
3818         fails.
3819         (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
3820         (MIPS_COMPARE_AND_SWAP_12_0): New macro.
3821
3822 2008-05-08  Paolo Bonzini  <bonzini@gnu.org>
3823
3824         PR target/36090
3825         * simplify-rtx.c (simplify_plus_minus): Create CONST of
3826         similar RTX_CONST_OBJ before CONST_INT.
3827
3828 2008-05-08  Steve Ellcey  <sje@cup.hp.com>
3829
3830         * stmt.c (expand_stack_restore): Change sa mode if needed.
3831
3832 2008-05-08  Richard Guenther  <rguenther@suse.de>
3833
3834         * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
3835         return type to bool.
3836         (ix86_sol10_return_in_memory): Likewise.
3837         (ix86_i386elf_return_in_memory): Likewise.
3838         (ix86_i386interix_return_in_memory): Likewise.
3839         * config/i386/i386.c (ix86_return_in_memory): Likewise.
3840         (ix86_sol10_return_in_memory): Likewise.
3841         (ix86_i386elf_return_in_memory): Likewise.
3842         (ix86_i386interix_return_in_memory): Likewise.
3843
3844 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
3845
3846         PR bootstrap/36180
3847         * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
3848         fndecl argument.
3849         (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
3850         * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
3851         declared in front.
3852
3853 2008-05-08  Richard Guenther  <rguenther@suse.de>
3854
3855         * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
3856         * tree-data-ref.h (struct dr_alias): Remove subvars field.
3857         (DR_SUBVARS): Remove.
3858         * tree-dfa.c (dump_subvars_for): Remove.
3859         (debug_subvars_for): Likewise.
3860         (dump_variable): Do not dump subvars.
3861         (remove_referenced_var): Do not remove subvars.
3862         * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
3863         (lookup_subvars_for_var): Remove.
3864         (get_subvars_for_var): Likewise.
3865         (get_subvars_at): Likewise.
3866         (get_first_overlapping_subvar): Likewise.
3867         (overlap_subvar): Likewise.
3868         * tree-flow.h (subvar_t): Remove.
3869         (struct var_ann_d): Remove subvars field.
3870         * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
3871         argument.  Remove special handling of SFTs.
3872         (compute_tag_properties): Likewise.
3873         (set_initial_properties): Likewise.
3874         (compute_call_clobbered): Likewise.
3875         (count_mem_refs): Likewise.
3876         (compute_memory_partitions): Likewise.
3877         (compute_flow_insensitive_aliasing): Likewise.
3878         (setup_pointers_and_addressables): Likewise.
3879         (new_type_alias): Likewise.
3880         (struct used_part): Remove.
3881         (used_portions): Likewise.
3882         (struct used_part_map): Likewise.
3883         (used_part_map_eq): Likewise.
3884         (used_part_map_hash): Likewise.
3885         (free_used_part_map): Likewise.
3886         (up_lookup): Likewise.
3887         (up_insert): Likewise.
3888         (get_or_create_used_part_for): Likewise.
3889         (create_sft): Likewise.
3890         (create_overlap_variables_for): Likewise.
3891         (find_used_portions): Likewise.
3892         (create_structure_vars): Likewise.
3893         * tree.def (STRUCT_FIELD_TAG): Remove.
3894         * tree.h (MTAG_P): Adjust.
3895         (struct tree_memory_tag): Remove base_for_components and
3896         unpartitionable flags.
3897         (struct tree_struct_field_tag): Remove.
3898         (SFT_PARENT_VAR): Likewise.
3899         (SFT_OFFSET): Likewise.
3900         (SFT_SIZE): Likewise.
3901         (SFT_NONADDRESSABLE_P): Likewise.
3902         (SFT_ALIAS_SET): Likewise.
3903         (SFT_UNPARTITIONABLE_P): Likewise.
3904         (SFT_BASE_FOR_COMPONENTS_P): Likewise.
3905         (union tree_node): Remove sft field.
3906         * alias.c (get_alias_set): Remove special handling of SFTs.
3907         * print-tree.c (print_node): Remove handling of SFTs.
3908         * tree-dump.c (dequeue_and_dump): Likewise.
3909         * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
3910         * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
3911         * tree-predcom.c (set_alias_info): Do not set subvars.
3912         * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
3913         * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
3914         * tree-ssa-operands.c (access_can_touch_variable): Likewise.
3915         (add_vars_for_offset): Remove.
3916         (add_virtual_operand): Remove special handling of SFTs.
3917         (add_call_clobber_ops): Likewise.
3918         (add_call_read_ops): Likewise.
3919         (get_asm_expr_operands): Likewise.
3920         (get_modify_stmt_operands): Likewise.
3921         (get_expr_operands): Likewise.
3922         (add_to_addressable_set): Likewise.
3923         * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
3924         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
3925         * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
3926         * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
3927         (tree_code_size): Remove STRUCT_FIELD_TAG handling.
3928         (tree_node_structure): Likewise.
3929         * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
3930         handling of SFTs.
3931         (find_what_p_points_to): Likewise.
3932
3933 2008-05-08  Sa Liu  <saliu@de.ibm.com>
3934
3935         * config/spu/spu.md: Fixed subti3 pattern.
3936
3937 2008-05-08  Richard Guenther  <rguenther@suse.de>
3938
3939         PR middle-end/36154
3940         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
3941         sure to create a representative for trailing arrays for PTA.
3942
3943 2008-05-08  Richard Guenther  <rguenther@suse.de>
3944
3945         PR middle-end/36172
3946         * fold-const.c (operand_equal_p): Two objects which types
3947         differ in pointerness are not equal.
3948
3949 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
3950
3951         * calls.c (compute_argument_block_size): Add argument tree fndecl.
3952         (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
3953         (emit_library_call_value_1): Add new variable fndecl initialized by
3954         NULL_TREE. It should be the decl type of orgfun, but this information
3955         seems not to be available here, so it uses the default calling abi.
3956         * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
3957         * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
3958         by TARGET_RETURN_IN_MEMORY.
3959         * config/i386/i386-interix.h: Likewise.
3960         * config/i386/i386.h: Likewise.