OSDN Git Service

b006b495cc32cd7ab450fd52cad1bef1ec35d17a
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2007-12-14  Uros Bizjak  <ubizjak@gmail.com>
2
3         * config/i386/sse.md (sse4_2_pcmpestr): Use reg_not_xmm0_operand
4         constraint for operand2.  Use nonimm_not_xmm0_operand constraint
5         for operand 4.  Update arguments in the call to
6         gen_sse4_2_pcmpestr_cconly.
7         (sse_4_2_pcmpestr_cconly): Renumber insn operands and update insn
8         template accordingly.
9         (sse4_2_pcmpistr): Use reg_not_xmm0_operand constraint for operand2.
10         Use nonimm_not_xmm0_operand constraint for operand 3.  Update
11         arguments in the call to gen_sse4_2_pcmpistr_cconly.
12         (sse_4_2_pcmpistr_cconly): Renumber insn operands and update insn
13
14 2007-12-14  Richard Guenther  <rguenther@suse.de>
15
16         PR middle-end/34462
17         * tree-ssa-operands.h (create_ssa_artificial_load_stmt): Add
18         parameter to say whether to unlink immediate uses.
19         * tree-ssa-operands.c (create_ssa_artificial_load_stmt): Do not
20         mark the artificial stmt as modified.  Unlink immediate uses
21         only if requested.
22         * tree-ssa-dom.c (record_equivalences_from_stmt): Update caller.
23         * tree-ssa-pre.c (insert_fake_stores): Likewise.
24
25 2007-12-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
26
27         PR middle-end/33088
28         * gimplify.c (gimplify_modify_expr_complex_part): Add note to comment.
29         * tree-complex.c (init_dont_simulate_again): Return true if there are
30         uninitialized loads generated by gimplify_modify_expr_complex_part.
31         * tree-gimple.c (is_gimple_reg_type): Return false for complex types
32         if not optimizing.
33         * tree-ssa.c (ssa_undefined_value_p): New predicate extracted from...
34         (warn_uninit): ...here.  Use ssa_undefined_value_p.
35         * tree-ssa-pre.c (is_undefined_value): Delete.
36         (phi_translate_1): Use ssa_undefined_value_p.
37         (add_to_exp_gen): Likewise.
38         (make_values_for_stmt): Likewise.
39         * tree-flow.h (ssa_undefined_value_p): Declare.
40
41 2007-12-13  Andrew Pinski  <pinskia@gmail.com>
42             David Daney  <ddaney@avtrex.com>
43
44         PR bootstrap/34144
45         * system.h: Make -Wuninitialized non-fatal if ASSERT_CHECKING
46         is disabled.
47
48 2007-12-13  Jakub Jelinek  <jakub@redhat.com>
49
50         PR rtl-optimization/32636
51         * df-scan.c (df_get_entry_block_def_set): Set struct_value_rtx
52         regno in entry_block_defs even if HAVE_prologue && epilogue_completed.
53
54 2007-12-13  Uros Bizjak  <ubizjak@gmail.com>
55             Richard Guenther  <rguenther@suse.de>
56
57         PR target/34435
58         * config/i386/emmintrin.h (_mm_shuffle_pd, _mm_extract_epi16,
59         _mm_insert_epi16, _mm_shufflehi_epi16, _mm_shufflelo_epi16,
60         _mm_shuffle_epi32): Cast non-constant input values to either __m64,
61         __m128, __m128i or __m128d in a macro version of the intrinsic.
62         Cast constant input values to int.
63         * config/i386/ammintrin.h (_mm_extracti_si64, _mm_inserti_si64): Ditto.
64         * config/i386/bmmintrin.h (_mm_roti_epi8, _mm_roti_epi16,
65         _mm_roti_epi32, _mm_roti_epi64): Ditto.
66         * config/i386/smmintrin.h (_mm_blend_epi16, _mm_blend_ps, _mm_blend_pd,
67         _mm_dp_ps, _mm_dp_pd, _mm_insert_ps, _mm_extract_ps, _mm_insert_epi8,
68         _mm_insert_epi32, _mm_insert_epi64, _mm_extract_epi8, mm_extract_epi32,
69         _mm_extract_epi64, _mm_mpsadbw_epu8, _mm_cmpistrm, _mm_cmpistri,
70         _mm_cmpestrm, _mm_cmpestri, _mm_cmpistra, _mm_cmpistrc, _mm_cmpistro,
71         _mm_cmpistrs, _mm_cmpistrz, _mm_cmpestra, _mm_cmpestrc, _mm_cmpestro,
72         _mm_cmpestrs, _mm_cmpestrz): Ditto.
73         * config/i386/tmmintrin.h (_mm_alignr_epi8, _mm_alignr_pi8): Ditto.
74         * config/i386/xmmintrin.h (_mm_shuffle_ps, _mm_extract_pi16, _m_pextrw,
75         _mm_insert_pi16, _m_pinsrw, _mm_shuffle_pi16, _m_pshufw): Ditto.
76         * config/i386/mmintrin-common.h (_mm_round_pd, _mm_round_sd,
77         _mm_round_ps, _mm_round_ss): Ditto.
78
79 2007-12-13  Richard Guenther  <rguenther@suse.de>
80
81         PR tree-optimization/34450
82         * params.def (PARAM_SCCVN_MAX_SCC_SIZE): New param.
83         * invoke.texi (sccvn-max-scc-size): Document.
84         * Makefile.in (tree-ssa-sccvn.o): Add $(PARAMS_H) dependency.
85         * tree-ssa-sccvn.h (run_scc_vn): Return true on success, false
86         on error.
87         * tree-ssa-sccvn.c (params.h): Include.
88         (DFS): Return true if all went well, return false as soon as
89         a SCC exceeds the size of PARAM_SCCVN_MAX_SCC_SIZE.
90         (run_scc_vn): Return true if all went well, return false if
91         we aborted during DFS.
92         * tree-ssa-pre.c (execute_pre): Check if SCCVN finished
93         successfully, otherwise bail out.
94
95 2007-12-13  Olga Golovanevsky  <olga@il.ibm.com>
96
97         * ipa-struct-reorg.c (is_candidate): Print information to dump 
98         file when the type is initialized.
99         (get_stmt_accesses):  Likewise when a structure has bitfields
100         or field access is too complicate.
101         (safe_cond_expr_check): Likewise for unsafe condition expressions.
102         (exclude_cold_structs): Likewise for cold structures.
103         (collect_structures): Suppress redundant print when there are 
104         no structures to transform.
105         (do_reorg): Print to dump file a number of structures that 
106         will be transformed.
107         (dump_new_types): Print a number of new types to replace 
108         an original structure type.
109         
110 2007-12-13  Olga Golovanevsky  <olga@il.ibm.com>
111
112         * doc/invoke.texi (Optimiza Options): Document new -fipa-struct-reorg
113         option and struct-reorg-cold-struct-ratio parameter.
114         
115 2007-12-13  Torbjorn Granlund  <tege@swox.com>
116
117         * config/i386/i386.c (ix86_rtx_costs) [MULT]: Check op0 for
118         ZERO_EXTEND when computing costs for widening multiplication.
119
120 2007-12-13  Richard Earnshaw  <rearnsha@arm.com>
121
122         PR target/30192
123         * config/arm/ieee754-df.S (floatundidf): Fix for wrong sp value on
124         exit when using hard FPA.
125         * config/arm/ieee754-df.S (floatdidf): Likewise.
126
127 2007-12-12  Jakub Jelinek  <jakub@redhat.com>
128
129         PR bootstrap/30589
130         * doc/install.texi: Document that for MinGW only runtime 3.12 and
131         later is supported.
132
133 2007-12-12  David Edelsohn  <edelsohn@gnu.org>
134
135         * config/rs6000/rs6000.c (is_mem_ref): Ignore STACK_TIE.
136
137 2007-12-12  Aldy Hernandez  <aldyh@redhat.com>
138
139         PR tree-optimization/32901
140         * gimplify.c (gimplify_modify_expr_rhs): Handle the case when we
141         are assigning from a constant constructor.
142         Fix wrapping in function comment.
143
144 2007-12-12  Andreas Krebbel  <krebbel1@de.ibm.com>
145
146         * config/s390/s390.c (s390_O_constraint_str): Limit the range
147         for 'On' to -4G+1..-1.
148         * config/s390/constraints.md: Adjust comment accordingly.
149
150 2007-12-11  Nathan Sidwell  <nathan@codesourcery.com>
151
152         * config/rs6000/rs6000.c (rs6000_emit_prologue): Use frame_reg_rtx
153         for SPE saves.
154
155 2007-12-11  Kai Tietz  <kai.tietz@onevision.com>
156
157         * config/i386/cygming.h (DWARF2_UNWIND_INFO): Handle 64-bit
158         target same as 32-bit.
159
160 2007-12-10  Jakub Jelinek  <jakub@redhat.com>
161
162         PR tree-optimization/34371
163         * tree-vectorizer.h (struct _loop_vec_info): Add num_iters_unchanged
164         field.
165         (LOOP_VINFO_NITERS_UNCHANGED): Define to num_iters_unchanged field.
166         * tree-vectorizer.c (set_prologue_iterations,
167         slpeel_tree_peel_loop_to_edge): Call unshare_expr on
168         LOOP_VINFO_NITERS_UNCHANGED before using it.
169
170 2007-12-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
171
172         PR target/34403
173         * config/i386/i386.c (ix86_expand_movmem): Punt if the count is large.
174         (ix86_expand_setmem): Likewise.
175
176 2007-12-10  Kenneth Zadeck <zadeck@naturalbridge.com>
177
178         PR rtl-optimization/34302
179         * auto-inc-dec.c (attempt_change): Change place where move is
180         inserted.
181
182 2007-12-10  Jakub Jelinek  <jakub@redhat.com>
183
184         * dwarf2out.c (gen_array_type_die, gen_descr_array_type_die): For
185         Fortran multi-dimensional arrays use DW_AT_ordering
186         DW_ORD_col_major.
187
188 2007-12-10  Paolo Bonzini  <bonzini@gnu.org>
189
190         PR target/32086
191         * config/i386/i386.c (override_options): Enable -fvect-cost-model.
192
193 2007-12-10 Uros Bizjak <ubizjak@gmail.com>
194
195         * config/i386/i386.c (ix86_function_regparm): Do not check global_regs
196         array, registers that are members of global_regs are also members of
197         fixed_regs array.  Use REGPARM_MAX to check that no regparm hard
198         register is taken by a fixed register variable.  Check up to and
199         including DI_REG when adjusting regparm value due to fixed regs usage.
200         (rep_prefix_usable): Check fixed_regs array, not global_regs array for
201         available hard registers.
202         (ix86_expand_strlen): Ditto.
203         * config/i386/i386.md (strmov): Ditto.
204         (cmpstrnsi): Ditto.
205
206 2007-12-10  Kaz Kojima  <kkojima@gcc.gnu.org>
207
208         * genopinit.c: Include tm_p.h in generated file.
209
210         * config/arm/neon.md (vec_set<mode>_internal): Use INTVAL
211         to extract the integer from operands[2].
212         (vec_setv2di_internal): Likewise.
213
214         * config/arm/arm.c (arm_size_return_regs): Make return type unsigned.
215         (arm_init_neon_builtins): Move code after declarations.
216
217 2007-12-10  Hans-Peter Nilsson  <hp@axis.com>
218
219         * reload.c (find_reloads_address_1): To properly mark as an
220         autoincdec, pass X for non-NULL OUT in call to push_reload for
221         autoincdec which can't be trivially used as an address.
222
223 2007-12-10  Pranav Bhandarkar  <pranav.bhandarkar@celunite.com>
224             Hans-Peter Nilsson  <hp@axis.com>
225
226         * caller-save.c (insert_one_insn): If inserting before a call_insn
227         then the registers containing the arguments of the call are
228         live_throughout in the new insn.
229
230 2007-12-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
231
232         PR middle-end/32889
233         PR target/34091
234         * pa.md: Consolidate HImode and QImode move patterns into one pattern
235         each, eliminating floating-point alternatives.
236         * pa-protos.h (pa_cannot_change_mode_class, pa_modes_tieable_p):
237         Declare functions.
238         * pa-64.h (SECONDARY_MEMORY_NEEDED): Define here.
239         * pa.c (pa_secondary_reload): Use an intermediate general register
240         for copies to/from floating-point register classes.  Simplify code
241         SHIFT_REGS class.  Provide additional comments.
242         (pa_cannot_change_mode_class, pa_modes_tieable_p): New functions.
243         * pa.h (MODES_TIEABLE_P): Use pa_modes_tieable_p.
244         (SECONDARY_MEMORY_NEEDED): Delete define.
245         (INT14_OK_STRICT): Define.
246         (MODE_OK_FOR_SCALED_INDEXING_P): Allow SFmode and DFmode when using
247         soft float.
248         (MODE_OK_FOR_UNSCALED_INDEXING_P): Likewise.
249         (GO_IF_LEGITIMATE_ADDRESS): Use INT14_OK_STRICT in REG+D case for
250         SFmode and DFmode.
251         (LEGITIMIZE_RELOAD_ADDRESS): Use INT14_OK_STRICT in mask selection.
252         Align DImode offsets when generating 64-bit code.
253         * pa32-regs.h (VALID_FP_MODE_P): Remove QImode and HImode.
254         (CANNOT_CHANGE_MODE_CLASS): Define.
255         * pa64-regs.h (VALID_FP_MODE_P): Remove QImode and HImode.
256         (CANNOT_CHANGE_MODE_CLASS): Define using pa_cannot_change_mode_class.
257
258 2007-12-09  Jakub Jelinek  <jakub@redhat.com>
259
260         PR fortran/22244
261         * langhooks-def.h (LANG_HOOKS_GET_ARRAY_DESCR_INFO): Define.
262         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
263         * langhooks.h (struct array_descr_info): Forward declaration.
264         (struct lang_hooks_for_types): Add get_array_descr_info field.
265         * dwarf2.h (DW_AT_bit_stride, DW_AT_byte_stride): New.
266         (DW_AT_stride_size, DW_AT_stride): Keep around for Dwarf2
267         compatibility.
268         * dwarf2out.h (struct array_descr_info): New type.
269         * dwarf2out.c (dwarf_attr_name): Rename DW_AT_stride to
270         DW_AT_byte_stride and DW_AT_stride_size to DW_AT_bit_size.
271         (descr_info_loc, add_descr_info_field, gen_descr_array_type_die):
272         New functions.
273         (gen_type_die_with_usage): Call lang_hooks.types.get_array_descr_info
274         and gen_descr_array_type_die.
275
276 2007-12-08  Richard Guenther  <rguenther@suse.de>
277
278         PR tree-optimization/34391
279         * tree-vect-transform.c (vect_setup_realignment): Mark new
280         symbols for renaming.
281
282 2007-12-07  Bob Wilson  <bob.wilson@acm.org>
283         
284         * config/xtensa/xtensa.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
285         (ASM_OUTPUT_DWARF_PCREL): Define.
286         
287 2007-12-07  Richard Guenther  <rguenther@suse.de>
288
289         PR middle-end/34382
290         * opts.c (common_handle_option): Handle OPT_fforce_addr.
291
292 2007-12-07  Aldy Hernandez  <aldyh@redhat.com>
293
294         * m32c.h (LEGITIMIZE_ADDRESS): Use WIN instead of win.
295         (LEGITIMIZE_RELOAD_ADDRESS): Same.
296
297 2007-12-07  Samuel Tardieu  <sam@rfc1149.net>
298
299         PR ada/29157
300         * doc/install.texi: Explain how to check for a clean environment when
301         building GNAT.
302
303 2007-12-07  Richard Guenther  <rguenther@suse.de>
304
305         * tree-profile.c (gcov_type_tmp_var): New global variable.
306         (tree_gen_edge_profiler): Use a single shared variable decl per
307         function for edge counter incrementing.
308         (tree_profiling): Re-set the shared variable.
309
310 2007-12-06  Bob Wilson  <bob.wilson@acm.org>
311
312         * config/xtensa/xtensa.c (xtensa_va_start): Add prototype.
313
314 2007-12-06  Tom Tromey  <tromey@redhat.com>
315
316         PR c/29172:
317         * c-opts.c (c_common_parse_file): Call cpp_clear_file_cache.
318
319 2007-12-06  Richard Sandiford  <rsandifo@nildram.co.uk>
320
321         * config/mips/mips.c (mips_function_ok_for_sibcall): Check
322         targetm.binds_local_p as well as DECL_EXTERNAL.
323
324 2007-12-06  Harsha Jagasia <harsha.jagasia@amd.com>
325
326         * tree-vectorizer.c (slpeel_add_loop_guard): Gimplify the condition.
327         (set_prologue_iterations): New. Set the prologue iterations to total
328         number of scalar iterations if the cost model check indicates that
329         scalar code should be generated.
330         (slpeel_tree_peel_loop_to_edge): Add a new parameter and code for 
331         generating the cost condition for epilog. Call
332         set_prologue_iterations to generate cost condition for prolog.
333         (new_loop_vec_info): Initialize LOOP_VINFO_NITERS_UNCHANGED.
334         * tree-vectorizer.h (LOOP_VINFO_NITERS_UNCHANGED): New.
335         (slpeel_tree_peel_loop_to_edge): Update declaration.
336         (set_prologue_iterations): New declaration.
337         * tree-vect-analyze.c (vect_analyze_loop_form): Update 
338         LOOP_VINFO_NITERS_UNCHANGED.
339         * tree-vect-transform.c
340         (vect_estimate_min_profitable_iters): Add new parameter and
341         code to  check if run time cost model test is needed.
342         Remove code that adds builtin vectorization cost to scalar
343         outside cost for the run time cost model test. If run time
344         cost model test is needed add the appropriate guard cost to
345         the scalar outside cost. The guard cost depends on whether
346         the guard is generated at versioning or at prolog generation
347         or at epilog generation. Change cost model equation to include
348         scalar outside cost.
349         (conservative_cost_threshold): New. Return the less conservative
350         profitability threshold between the cost model threshold and the
351         user defined vectorization threshold.
352         (vect_do_peeling_for_loop_bound): Call conservative_cost_threshold.
353         (vect_do_peeling_for_alignment): Same.
354         (vect_loop_versioning): Same.
355         (vect_create_cond_for_align_checks): ANDs the cost model condition
356         with the alignment condition.
357         (vect_transform_loop): Call loop versioning only when there is a
358         misalignment or an aliasing problem.
359
360 2007-12-06  Jakub Jelinek  <jakub@redhat.com>
361
362         PR middle-end/20983
363         * tree-ssa-ccp.c (optimize_stdarg_builtin): New function.
364         (execute_fold_all_builtins): Call it for BUILT_IN_VA_START,
365         BUILT_IN_VA_COPY and BUILT_IN_VA_END.
366
367         * target.h (struct ggc_target): Add expand_builtin_va_start hook.
368         * target-def.h (TARGET_EXPAND_BUILTIN_VA_START): Define.
369         (TARGET_INITIALIZER): Add it.
370         * builtins.c (expand_builtin_va_start): Use
371         targetm.expand_builtin_va_start hook instead of
372         EXPAND_BUILTIN_VA_START macro.
373         * alpha/alpha.c (alpha_va_start): Made static.
374         (override_options): Clear targetm.expand_builtin_va_start if
375         TARGET_UNICOSMK.
376         (TARGET_EXPAND_BUILTIN_VA_START): Define.
377         * alpha/unicosmk.h (EXPAND_BUILTIN_VA_START): Remove.
378         * alpha/alpha.h (EXPAND_BUILTIN_VA_START): Remove.
379         * alpha/alpha-protos.h (alpha_va_start): Remove prototype.
380         * xtensa/xtensa.h (EXPAND_BUILTIN_VA_START): Remove.
381         * xtensa/xtensa.c (TARGET_EXPAND_BUILTIN_VA_START): Define.
382         (xtensa_va_start): Made static.
383         * xtensa/xtensa-protos.h (xtensa_va_start): Remove prototype.
384         * pa/pa-protos.h (hppa_va_start): Remove prototype.
385         * pa/pa.h (EXPAND_BUILTIN_VA_START): Remove.
386         * pa/pa.c (hppa_va_start): Made static, add prototype.
387         (TARGET_EXPAND_BUILTIN_VA_START): Define.
388         * frv/frv.c (frv_expand_builtin_va_start): Made static, add prototype.
389         (TARGET_EXPAND_BUILTIN_VA_START): Define.
390         * frv/frv-protos.h (frv_expand_builtin_va_start): Remove prototype.
391         * frv/frv.h (EXPAND_BUILTIN_VA_START): Remove.
392         * i386/i386.c (override_options): Clear
393         targetm.expand_builtin_va_start if -m32 or 64-bit MS ABI.
394         (ix86_va_start): Made static.
395         (TARGET_EXPAND_BUILTIN_VA_START): Define.
396         * i386/i386.h (EXPAND_BUILTIN_VA_START): Remove.
397         * i386/i386-protos.h (ix86_va_start, ix86_va_arg): Remove prototypes.
398         * iq2000/iq2000-protos.h (iq2000_va_start): Remove prototype.
399         * iq2000/iq2000.h (EXPAND_BUILTIN_VA_START): Remove.
400         * iq2000/iq2000.c (iq2000_va_start): Made static, add prototype.
401         (TARGET_EXPAND_BUILTIN_VA_START): Define.
402         * rs6000/rs6000-protos.h (rs6000_va_start): Remove prototype.
403         * rs6000/rs6000.c (rs6000_va_start): Made static, add prototype.
404         (TARGET_EXPAND_BUILTIN_VA_START): Define.
405         (rs6000_override_options): Clear targetm.expand_builtin_va_start if
406         DEFAULT_ABI != ABI_V4.
407         * rs6000/rs6000.h (EXPAND_BUILTIN_VA_START): Remove.
408         * spu/spu.c (spu_va_start): Made static, add prototype.
409         (TARGET_EXPAND_BUILTIN_VA_START): Define.
410         * spu/spu.h (EXPAND_BUILTIN_VA_START): Remove.
411         * spu/spu-protos.h spu_va_start): Remove prototype.
412         * stormy16/stormy16.h (EXPAND_BUILTIN_VA_START): Remove.
413         * stormy16/stormy16-protos.h (xstormy16_expand_builtin_va_start):
414         Remove prototype.
415         * stormy16/stormy16.c (xstormy16_expand_builtin_va_start): Made static.
416         (TARGET_EXPAND_BUILTIN_VA_START): Define.
417         * s390/s390-protos.h (s390_va_start): Remove prototype.
418         * s390/s390.c (s390_va_start): Made static.
419         (TARGET_EXPAND_BUILTIN_VA_START): Define.
420         * s390/s390.h (EXPAND_BUILTIN_VA_START): Remove.
421         * mn10300/mn10300.h (EXPAND_BUILTIN_VA_START): Remove.
422         * mn10300/mn10300-protos.h (mn10300_va_start): Remove prototype.
423         * mn10300/mn10300.c (mn10300_va_start): Made static, add prototype.
424         (TARGET_EXPAND_BUILTIN_VA_START): Define.
425         * arc/arc.c (arc_va_start): Made static, add prototype.
426         (TARGET_EXPAND_BUILTIN_VA_START): Define.
427         * arc/arc.h (EXPAND_BUILTIN_VA_START): Remove.
428         * arc/arc-protos.h (arc_va_start): Remove prototype.
429         * mt/mt-protos.h (mt_va_start): Remove prototype.
430         * sparc/sparc.c (sparc_va_start): Made static, add prototype.
431         (TARGET_EXPAND_BUILTIN_VA_START): Define.
432         * sparc/sparc-protos.h (sparc_va_start): Remove prototype.
433         * sparc/sparc.h (EXPAND_BUILTIN_VA_START): Remove.
434         * sh/sh.c (sh_va_start): Made static, add prototype.
435         (TARGET_EXPAND_BUILTIN_VA_START): Define.
436         * sh/sh-protos.h (sh_va_start): Remove prototype.
437         * sh/sh.h (EXPAND_BUILTIN_VA_START): Remove.
438         * mips/mips-protos.h (mips_va_start): Remove prototype.
439         * mips/mips.h (EXPAND_BUILTIN_VA_START): Remove.
440         * mips/mips.c (mips_va_start): Made static.
441         (TARGET_EXPAND_BUILTIN_VA_START): Define.
442
443 2007-12-06  Uros Bizjak  <ubizjak@gmail.com>
444
445         * tree-ssa-loop.c (gate_tree_parallelize_loops): Return true when
446         "flag_tree_parallelize_loops > 1".
447         
448 2007-12-06  Zdenek Dvorak  <ook@ucw.cz>
449             Dorit Nuzman  <dorit@il.ibm.com>
450             Jakub Jelinek  <jakub@redhat.com>
451
452         PR tree-optimization/34005
453         * tree-gimple.c (is_gimple_formal_tmp_rhs): Add a case for COND_EXPR.
454         * gimplify.c (gimplify_ctx): Add a new member allow_rhs_cond_expr.
455         (gimplify_pure_cond_expr): New function.
456         (generic_expr_could_trap_p): New function.
457         (gimplify_cond_expr): Call gimplify_pure_cond_expr.
458         (force_gimple_operand): Initialize new field allow_rhs_cond_expr.
459
460 2007-12-06  Andreas Krebbel  <krebbel1@de.ibm.com>
461
462         * config/s390/s390.c (s390_emit_stack_tie): New function.
463         (s390_emit_prologue): Emit a stack tie when writing to the
464         f8-f15 stack slots.
465         * config/s390/s390.md ("stack_tie"): New insn definition.
466
467 2007-12-06  Ben Elliston  <bje@au.ibm.com>
468
469         * SERVICE: Remove.
470         * doc/sourcebuild.texi (Miscellaneous Docs): Remove SERVICE item.
471
472 2007-12-05  Jakub Jelinek  <jakub@redhat.com>
473
474         PR middle-end/34337
475         * fold-const.c (fold_binary) <case BIT_IOR_EXPR>: Don't minimize
476         number of bits set in C1 if a mode mask for some mode can be used
477         instead.
478
479 2007-12-05  Bernhard Fischer  <aldot@gcc.gnu.org>
480
481         * varasm.c (merge_weak, weak_finish, assemble_alias): Commentary typo
482         fixes.
483
484 2007-12-05  Richard Guenther  <rguenther@suse.de>
485
486         PR tree-optimization/34138
487         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
488         Do not forward propagate addresses if that changes volatileness of
489         the pointed-to type.
490
491 2007-12-05  Uros Bizjak  <ubizjak@gmail.com>
492
493         PR target/34312
494         * config/i386/i386.c (ix86_function_regparm): Also check for fixed
495         registers when checking that regparm registers are available.
496         Lower regparm value due to fixed registers usage in addition to
497         global regs usage.
498
499 2007-12-05  Bernhard Fischer  <aldot@gcc.gnu.org>
500
501         * sparseset.c: Include config.h and system.h before sparseset.h.
502         * sparseset.h: Remove inclusion of system.h.
503
504 2007-12-05  Jakub Jelinek  <jakub@redhat.com>
505             Richard Sandiford  <rsandifo@nildram.co.uk>
506
507         * optabs.c (init_insn_codes): New function.
508         (new_optab): Delete.
509         (init_optab, init_optabv): Don't call new_optab.
510         (init_convert_optab): Don't clear the insn codes.
511         (init_optabs): Call init_insn_codes.
512
513 2007-12-04  Jakub Jelinek  <jakub@redhat.com>
514
515         * omp-low.c (optimize_omp_library_calls): New function.
516         (expand_omp_parallel): Call it if optimizing.
517
518         PR middle-end/34134
519         * stmt.c (expand_stack_restore): Call expand_normal on var to get
520         rtx for it instead of assuming it will be a VAR_DECL.
521
522 2007-12-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
523
524         * c-parser (c_parser_statement_after_labels): Move error from here...
525         (c_parser_label): ... to here. Check that the declaration is not
526         actually just another label.
527
528 2007-12-04  Richard Guenther  <rguenther@suse.de>
529
530         PR middle-end/34334
531         PR middle-end/34222
532         * tree-ssa-operands.c (get_addr_dereference_operands): If we
533         fall back to using the SMTs aliases, make sure to add virtual
534         operands for the SMT itself.
535         (create_ssa_artificial_load_stmt): Fix typo.  Make sure to also
536         clear the loaded and stored symbols bitmaps.
537
538 2007-12-04  Ben Elliston  <bje@au.ibm.com>
539
540         * config/spu/spu.h (ASM_FORMAT_PRIVATE_NAME): Remove; use default.
541
542 2007-12-04  Ben Elliston  <bje@au.ibm.com>
543
544         * doc/tm.texi (Exception Handling): Mention unwind-dw2-xtensa.c.
545
546 2007-12-03  Steven Bosscher  <stevenb.gcc@gmail.com>
547
548         PR middle-end/33713
549         * doc/invoke.texi: Remove -fforce-addr documentation.
550         * expr.c (emit_move_insn): Remove use of flag_force_addr.
551         (expand_expr_real_1): Same.
552         (do_tablejump): Same.
553         Call memory_address instead of memory_address_noforce.
554         * expr.h (memory_address_noforce): Remove prototype.
555         * explow.c (memory_address): Remove support for flag_force_addr.
556         (validize_mem): Same.
557         (memory_address_noforce): Remove.
558         * common.opt: Add dummy documentation for -fforce-addr.
559         * combine.c (can_combine_p): Remove -fforce-addr comment.
560         * config/cris/cris.h (OPTIMIZATION_OPTIONS): Remove set of
561         flag_force_addr.
562         * config/m68k/m68k.h (PIC_CASE_VECTOR_ADDRESS): Remove comment
563         relating to memory_address_noforce.
564         * testsuite/gcc.c-torture/compile/20050802-1.c: Remove.
565         * testsuite/gcc.c-torture/compile/20011113-1.c: Remove.
566         
567 2007-12-03  Jakub Jelinek  <jakub@redhat.com>
568
569         * omp-low.c (lookup_decl_in_outer_ctx): Allow calling this
570         with !ctx->is_nested.
571         (maybe_lookup_decl_in_outer_ctx): Look up in outer contexts
572         even if !ctx->is_nested.
573         (lower_copyprivate_clauses, lower_send_clauses,
574         lower_send_shared_vars): Call lookup_decl_in_outer_ctx
575         unconditionally.
576
577         PR middle-end/29749
578         * fold-const.c (fold_binary) <case BIT_AND_EXPR>: Optimize
579         (X << C1) & C2 into (X << C1) & (C2 | ((1 << C1) - 1))
580         and (X >> C1) & C2 into (X >> C1) & (C2 | ~((type) -1 >> C1)).
581         (fold_binary) <case LSHIFT_EXPR, case RSHIFT_EXPR>: Optimize
582         (X & C2) << C1 into (X << C1) & (C2 << C1) and
583         (X & C2) >> C1 into (X >> C1) & (C2 >> C1) if that allows further
584         optimizations.
585
586         PR tree-optimization/33453
587         * tree-data-ref.c (split_constant_offset): Use POINTER_PLUS_EXPR
588         for pointer addition.
589         * tree-parloops.c (canonicalize_loop_ivs): Likewise.
590         (separate_decls_in_loop_name): Copy DECL_GIMPLE_REG_P from var to
591         var_copy.
592
593 2007-12-03  Bernd Schmidt  <bernd.schmidt@analog.com>
594
595         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __FDPIC__ as
596         necessary.
597
598 2007-12-03  Razya Ladelsky <razya@il.ibm.com>
599
600         * doc/invoke.texi (fipa-cp, fipa-matrix-reorg): Add documentation.
601
602 2007-12-03  Jakub Jelinek  <jakub@redhat.com>
603
604         PR middle-end/34317
605         * opts.c (common_handle_option): Handle OPT_ftree_store_copy_prop.
606         * common.opt (ftree-store-copy-prop): Use the same help text as for
607         other nop switches.
608
609 2007-12-02  Ayal Zaks  <zaks@il.ibm.com>
610             Revital Eres  <eres@il.ibm.com>
611
612         * modulo-sched.c (calculate_must_precede_follow,
613         try_scheduling_node_in_cycle): New functions.
614         (sms_schedule_by_order): Call the new functions.
615         (ps_insn_find_column): Use must_follow and must_precede only if
616         they are not NULL.
617         (ps_insn_advance_column): Likewise.
618
619 2007-12-02  Ayal Zaks  <zaks@il.ibm.com>
620             Revital Eres  <eres@il.ibm.com>
621
622         * modulo-sched.c (get_sched_window): Fix the direction of the
623         scheduling window and add dump info.
624
625 2007-12-02  Samuel Tardieu  <sam@rfc1149.net>
626
627         * config/sh/sh.md (cmpgeusi_t): Fix condition.
628
629 2007-11-30  Jan Hubicka  <jh@suse.cz>
630
631         * ggc-common.c (dump_ggc_loc_statistics): Reset ggc_force_collect flag.
632
633 2007-11-30  Seongbae Park <seongbae.park@gmail.com>
634
635         PR rtl-optimization/34171
636         * cfgrtl.c (update_bb_for_insn_chain): New function,
637         refactored from update_bb_for_insn.
638         (update_bb_for_insn): Call update_bb_for_insn.
639         (rtl_merge_blocks, try_redirect_by_replacing_jump):
640         Replace a loop with update_bb_for_insn_chain call.
641         (cfg_layout_merge_blocks): Add a call to
642         update_bb_for_insn_chain. Replace the for loop
643         with a call to update_bb_for_insn_chain.
644
645 2007-11-30  Ben Elliston  <bje@au.ibm.com>
646
647         * config/vax/vax.h (ASM_FORMAT_PRIVATE_NAME): Remove. Use default.
648
649 2007-11-29  Zdenek Dvorak  <ook@ucw.cz>
650
651         PR tree-optimization/34244
652         * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
653         (record_numbers_of_iterations): New function.
654         (execute_vrp): Cache the numbers of iterations of loops.
655         * tree-scalar-evolution.c (scev_reset_except_niters): New function.
656         (scev_reset): Use scev_reset_except_niters.
657         * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
658
659 2007-11-29  Jan Hubicka  <jh@suse.cz>
660             Jakub Jelinek  <jakub@redhat.com>
661
662         PR tree-optimization/33434
663         * tree-inline.c (setup_one_parameter): If the value passed to
664         a parameter is never used, don't set it up.
665
666 2007-11-29  Jakub Jelinek  <jakub@redhat.com>
667
668         PR target/32130
669         * config/rs6000/eabi-cn.asm (__DTOR_END__): Make it weak.
670         * config/rs6000/sol-cn.asm (__DTOR_END__): Likewise.
671
672 2007-11-29  Andris Pavenis <andris.pavenis@iki.fi>
673
674         * Makefile.in: Use separate vpath lines for each path.
675
676 2007-11-29  Ben Elliston  <bje@au.ibm.com>
677
678         * SERVICE: Update URL.
679
680 2007-11-28  Jakub Jelinek  <jakub@redhat.com>
681
682         PR tree-optimization/34140
683         * tree-if-conv.c (if_convertible_phi_p): Fail if BB other than
684         loop->header has virtual phi nodes.
685
686 2007-11-28  Richard Sandiford  <rsandifo@nildram.co.uk>
687
688         PR target/32406
689         * builtins.c (expand_builtin_nonlocal_goto): Also emit a use
690         of GP register, if valid and fixed.
691
692         Revert:
693         2007-06-21  David Daney  <ddaney@avtrex.com>
694
695         PR target/32406
696         * config/mips/mips.md (define_constants): Rename UNSPEC_EH_RECEIVER
697         to UNSPEC_NONLOCAL_GOTO_RECEIVER globally.
698         (exception_receiver): Renamed to ...
699         (nonlocal_goto_receiver): ... this.
700
701 2007-11-27  H.J. Lu  <hongjiu.lu@intel.com>
702             Joey Ye <joey.ye@intel.com>
703
704         PR target/34001
705         * config/i386/i386.c (function_arg_32): Don't pass aggregate
706         arguments in ECX/EDX for fastcall.
707
708 2007-11-28  Rask Ingemann Lambertsen  <rask@sygehus.dk>
709
710         * config/i386/linux.h (CRT_GET_RFIB_DATA): Add Intel syntax inline
711         asm to macro.
712         * config/i386/sco5.h (CRT_GET_RFIB_DATA): Likewise.
713         * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Likewise.
714
715 2007-11-28  Ben Elliston  <bje@au.ibm.com>
716
717         * config/rs6000/aix64.opt (maix64): Add Negative(maix32).
718         (maix32): Add Negative(maix64).
719
720 2007-11-27  Jakub Jelinek  <jakub@redhat.com>
721
722         PR tree-optimization/34016
723         * tree-ssa-loop.c (pass_linear_transform): Add
724         TODO_update_ssa_only_virtuals to todo_flags_finish.
725
726 2007-11-27  Eric B. Weddington  <eric.weddington@atmel.com>
727
728         * config/avr/avr.c (avr_mcu_types): Add atmega32hvb.
729         * config/avr/avr.h (LINK_SPEC): Likewise.
730         (CRT_BINUTILS_SPECS): Likewsie.
731         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
732         
733 2007-11-27  Jakub Jelinek  <jakub@redhat.com>
734
735         PR target/34225
736         * config/rs6000/rs6000.c (adjacent_mem_locations): Don't assume
737         MEM_SIZE is set on all MEMs.
738
739 2007-11-27  Andreas Krebbel  <krebbel1@de.ibm.com>
740
741         * config/s390/s390.opt (mhard-float): Add the option to be
742         overridden.  That was missing in my last patch.
743
744 2007-11-27  Richard Guenther  <rguenther@suse.de>
745
746         PR tree-optimization/34241
747         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Make sure
748         to only delete real conversion chains.
749
750 2007-11-27  Andreas Krebbel  <krebbel1@de.ibm.com>
751
752         * config/s390/s390.opt (m31, m64, mesa, mzarch, msoft-float,
753         mhard-float, mlong-double-64, mlong-double-128): Add the
754         option to be overridden.
755
756 2007-11-27  Richard Guenther  <rguenther@suse.de>
757
758         * builtins.c (fold_builtin_1): Verify the argument types
759         of BUILT_IN_ISNORMAL.
760         (fold_builtin_n): Verify the number of arguments to variadic
761         built-in functions.
762
763 2007-11-27  Bernd Schmidt  <bernd.schmidt@analog.com>
764
765         * config/bfin/elf.h (SUBTARGET_DRIVER_SELF_SPECS): New macro.
766         * doc/invoke.texi (Blackfin Options): Document the effects.
767
768 2007-11-27  Ben Elliston  <bje@au.ibm.com>
769
770         * config/rs6000/sysv4.opt (m32): Add Negative(m64).
771         (m64): Add Negative(m32).
772         * config/rs6000/darwin.opt (m32): Add Negative(m64).
773         (m64): Add Negative(m32).
774
775 2007-11-26  Eric Botcazou  <ebotcazou@adacore.com>
776
777         * tree-ssa-propagate.c (set_rhs) <GIMPLE_MODIFY_STMT>: Fix typo.
778
779 2007-11-26  Michael Meissner  <michael.meissner@amd.com>
780
781         PR target/34077
782         * config/i386/i386.c (ix86_expand_movmem): If the copy size is a
783         constant, avoid calling emit_cmp_and_jump_insns.  Use counter_mode
784         to get the mode for loading a pseudo register with a count rather
785         than duplicating code.
786
787 2007-11-25  Eric B. Weddington  <eric.weddington@atmel.com>
788
789         * config/avr/avr.c (avr_mcu_types): Add atmega1284p.
790         * config/avr/avr.h (LINK_SPEC): Likewise.
791         (CRT_BINUTILS_SPECS): Likewsie.
792         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
793
794 2007-11-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
795         
796         * c-common.c (conversion_warning): Use get_unwidened instead of
797         get_narrower.
798         
799 2007-11-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
800
801         PR c/23722
802         * c-parser.c (struct c_parser): New bit in_if_block.
803         (c_parser_compound_statement_nostart): Handle unexpected 'else'
804         keyword.
805         (c_parser_statement_after_labels): Set in_if_block to false while
806         parsing.
807         (c_parser_if_body): Don't call c_parser_statement_after_labels if
808         a semicolon is found, just consume it. Don't call
809         c_parser_statement_after_labels if an open brace is found, call
810         c_parser_compound_statement instead.
811         (c_parser_else_body): New.
812         (c_parser_if_statement): Set in_if_block to true when parsing the
813         body of the 'if' statement. Use c_parser_else_body.
814
815 2007-11-26  Andreas Krebbel  <krebbel1@de.ibm.com>
816
817         PR c++/34081
818         * c-decl.c (store_parm_decls): Pass 'false' for the new
819         allocate_struct_function parameter.
820         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
821         * tree-parloops.c (create_loop_fn): Likewise.
822         * function.c (push_function_context_to, push_struct_function,
823         init_function_start): Likewise.
824         (allocate_struct_function): Add boolean parameter.
825         * tree.h (allocate_struct_function): Add boolean parameter.
826         * function.h (struct function): Move returns_struct and
827         returns_pcc_struct to the end of the structure definiton.
828
829 2007-11-26  Uros Bizjak  <ubizjak@gmail.com>
830
831         PR target/34215
832         * config/i386/i386.md (truncdfsf2): Select SLOT_TEMP stack slot if
833         virtual registers are already instantiated.
834         (truncxf<mode>2): Ditto.
835         (floatsi<mode>2): Ditto.
836         (floatdisf2): Ditto.
837         (floatdidf2): Ditto.
838
839 2007-11-26  Rask Ingemann Lambertsen  <rask@sygehus.dk>
840
841         PR target/34174
842         * config/fr30/fr30.c (fr30_move_double): Sanitize mem->reg case. Copy
843         the address before it is clobbered.
844
845 2007-11-26  Nick Clifton  <nickc@redhat.com>
846
847         * config/mn10300/mn10300.md: (call_internal): Remove mode on
848         operand 0 in order to match UNPSEC'ed calls generated in PIC mode.
849         (call_value_internal): Remove mode on operands 0 and 1 in order to
850         match UNPSEC'ed calls generated in PIC mode.
851         (GOTaddr2picreg): Use copy_rtx to prevent sharing an rtx between
852         two insns.
853
854 2007-11-26  Richard Guenther  <rguenther@suse.de>
855
856         PR middle-end/34233
857         * builtins.c (expand_builtin_pow): Use expand_expr to expand
858         the result of build_call_expr.
859
860 2007-11-26  Steven Bosscher  <stevenb.gcc@gmail.com> 
861             Revital Eres  <eres@il.ibm.com> 
862
863         PR middle-end/34085
864         * bb-reorder.c (insert_section_boundary_note): Clear
865         BLOCK_FOR_INSN in NOTE_INSN_SWITCH_TEXT_SECTIONS.
866
867 2007-11-26  Richard Sandiford  <rsandifo@nildram.co.uk>
868
869         * config/mips/elfoabi.h (DRIVER_SELF_SPECS): Add missing comma.
870
871 2007-11-26  Alexandre Oliva  <aoliva@redhat.com>
872
873         * dwarf2asm.c (splay_tree_compare_strings): New function.
874         (dw2_force_const_mem): Use it.
875
876 2007-11-26  Alexandre Oliva  <aoliva@redhat.com>
877
878         * tree.c (type_hash_add): Don't violate strict aliasing rules.
879
880 2007-11-26  Alexandre Oliva  <aoliva@redhat.com>
881
882         PR c/27898
883         * c-typeck.c (tagged_types_tu_compatible_p): Enable exact
884         matches between anonymous union fields.
885
886 2007-11-26  Alexandre Oliva  <aoliva@redhat.com>, Jan Hubicka  <jh@suse.cz>
887
888         * tree-ssa-live.c (remove_unused_scope_block_p): Drop
889         declarations and blocks only after inlining.  Check that
890         non-empty blocks are not dropped.
891         * tree-inline.c (expand_call_inline): Check that functions are
892         not inlined too late.
893
894 2007-11-26  Ben Elliston  <bje@au.ibm.com>
895
896         * unwind-dw2-fde.c: Fix comment typo.
897         * unwind-generic.h: Likewise, fix comment typos.
898         
899 2007-11-25  Richard Sandiford  <rsandifo@nildram.co.uk>
900
901         * tree-sra.c (scalarize_use): Adjust the vpos argument to
902         sra_explode_bitfield_assignment in cases where the type is
903         wider than the bitfield.
904
905 2007-11-25  Richard Guenther  <rguenther@suse.de>
906
907         * tree.h (struct tree_block): Move locus member next to flags.
908         * c-decl.c (SCOPE_LIST_APPEND): Use BLOCK_CHAIN.
909         (SCOPE_LIST_CONCAT): Likewise.
910         (pop_scope): Likewise.
911         * function.c (instantiate_decls_1): Likewise.
912         (setjmp_vars_warning): Likewise.
913         * emit-rtl.c (set_used_decls): Likewise.
914         * tree-inline.c (add_lexical_block): Likewise.
915
916 2007-11-24  Hans-Peter Nilsson  <hp@axis.com>
917
918         * rtlanal.c (label_is_jump_target_p): Return true for a matching
919         REG_LABEL_TARGET.
920         * reorg.c (fill_slots_from_thread): Correct last change to use
921         NULL_RTX, not NULL.  Outside of REG_NOTES loop, increase and
922         decrease LABEL_NUSES for JUMP_LABEL (trial), not XEXP (note, 0).
923         * jump.c (mark_jump_label_1): Add comment for last change
924         regarding JUMP_LABEL setting.
925         * gcse.c (add_label_notes): Remove conditional that the label is
926         mentioned in insn before adding regnote.
927         * sched-rgn.c (is_cfg_nonregular): Don't return 1 for a
928         single_set insn only feeding a label to a jump through a
929         register that dies there.
930
931 2007-11-23  Dirk Mueller  <dmueller@suse.de>
932             Richard Guenther <rguenther@suse.de>
933
934         PR middle-end/34197
935         * tree-vrp.c (check_array_ref): Move check for valid location..
936         (check_array_bounds) here. Use EXPR_HAS_LOCATION().
937
938 2007-11-23  Hans-Peter Nilsson  <hp@axis.com>
939
940         * reload.c (find_reloads_address_1) <autoincdec cases>:
941         Call REG_OK_FOR_CONTEXT with the autoincdec code, not outer_code.
942
943 2007-11-23  Richard Guenther  <rguenther@suse.de>
944             Michael Matz  <matz@suse.de>
945
946         PR tree-optimization/34176
947         * alloc-pool.h (empty_alloc_pool): Declare.
948         * alloc-pool.c (empty_alloc_pool): New function.
949         * tree-ssa-sccvn.c (vn_reference_lookup): Also lookup from the
950         valid table if a lookup from the optimistic table failed.
951         (vn_unary_op_lookup): Likewise.
952         (vn_binary_op_lookup): Likewise.
953         (vn_phi_lookup): Likewise.
954         (process_scc): Clear optimistic tables before every iteration.
955
956 2007-11-23  Richard Guenther  <rguenther@suse.de>
957
958         * tree-ssa-copy.c (may_propagate_copy): Remove redundant checks.
959         (merge_alias_info): Do verification only if checking is
960         enabled.  Merge flow-sensitive alias information in simple cases.
961         * tree-ssa-operands.c (get_addr_dereference_operands): Also
962         complain about missing NMTs.
963
964 2007-11-23  Jakub Jelinek  <jakub@redhat.com>
965
966         PR c++/34198
967         * c-common.c (conversion_warning): For INTEGER_TYPE to
968         INTEGER_TYPE conversions call get_narrower on expr to avoid
969         spurious warnings from binop shortening or when the implicit
970         conversion can't change the value.
971
972 2007-11-22  Joseph Myers  <joseph@codesourcery.com>
973
974         PR c/14050
975         * c-decl.c (set_array_declarator_inner): Don't give error for
976         static or type qualifiers in abstract declarator.  Remove
977         abstract_p parameter.
978         * c-tree.h (set_array_declarator_inner): Update prototype.
979         * c-parser.c (c_parser_direct_declarator_inner): Update call to
980         set_array_declarator_inner.
981         * doc/standards.texi: Update for C99 TC3.
982
983 2007-11-22  Hans-Peter Nilsson  <hp@bitrange.com>
984
985         * config/mmix/mmix.c (mmix_encode_section_info): Remove duplicate
986         line in my edit of the last change.
987
988 2007-11-22  Jakub Jelinek  <jakub@redhat.com>
989
990         PR target/33947
991         * config/arm/arm.c (arm_init_tls_builtins): Set TREE_NOTHROW
992         and TREE_READONLY on the fn decl rather than passing a chain
993         of attributes.
994
995 2007-11-22  Kaz Kojima  <kkojima@gcc.gnu.org>
996
997         * config/sh/sh.md (divsi_inv_m3): Handle zero dividend specially.
998
999 2007-11-22  Uros Bizjak  <ubizjak@gmail.com>
1000
1001         * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Change checking
1002         of ix86_arch and ix86_tune into a switch statement.
1003         (enum processor_type): Default PROCESSOR_I386 to 0.
1004         * config/i386/i386.c (ix86_decompose_address): Use TARGET_K6 instead
1005         of "ix86_tune == PROCESSOR_K6".
1006         (ia32_multipass_dfa_lookahead): Change checking of ix86_tune into
1007         a switch statement.
1008
1009 2007-11-22  Tom Tromey  <tromey@redhat.com>
1010
1011         * config/mmix/mmix.c (mmix_encode_section_info): Use alloca to
1012         avoid writing into string allocated by ggc_alloc_string.
1013
1014 2007-11-21  Kaz Kojima  <kkojima@gcc.gnu.org>
1015
1016         PR target/34155
1017         * config/sh/sh.md (binary_sf_op): Remove.
1018         (binary_sf_op0, binary_sf_op1): New define_insn_and_split.
1019         * config/sh/sh.c (sh_expand_binop_v2sf): Use gen_binary_sf_op0
1020         and gen_binary_sf_op1.
1021
1022 2007-11-21  Hans-Peter Nilsson  <hp@axis.com>
1023
1024         * regclass.c (init_reg_autoinc): Fix typo preventing test of
1025         secondary output reload when setting forbidden_inc_dec_class.
1026
1027 2007-11-21  Richard Guenther  <rguenther@suse.de>
1028
1029         PR tree-optimization/34148
1030         * tree-ssa-structalias.c (create_variable_info_for): Do not use
1031         field-sensitive PTA for single-element structures.
1032         * tree-ssa-alias.c (create_overlap_variables_for): Do not create
1033         SFTs for single-element structures.
1034
1035 2007-11-20  Richard Guenther  <rguenther@suse.de>
1036
1037         PR middle-end/34154
1038         * gimplify.c (gimplify_switch_expr): Use tree_int_cst_lt instead
1039         of the signed INT_CST_LT.
1040         * stmt.c (expand_case): Likewise.
1041         (estimate_case_costs): Likewise.
1042
1043 2007-11-20  Rask Ingemann Lambertsen  <rask@sygehus.dk>
1044
1045         * read-rtl.c (fatal_expected_char): Print EOF as text rather that
1046         its binary representation.
1047
1048 2007-11-20  Richard Guenther  <rguenther@suse.de>
1049
1050         * tree-ssa-operands.c (add_virtual_operand): Consistently prune
1051         accesses.
1052
1053 2007-11-20  Thiemo Seufer  <ths@mips.com>
1054
1055         * config/mips/mips.c (mips_file_start): Add support for
1056         flagging 32-bit code with -mfp64 floating-point.
1057
1058 2007-11-20  Jakub Jelinek  <jakub@redhat.com>
1059
1060         PR c/34146
1061         * c-gimplify.c (optimize_compound_literals_in_ctor): New function.
1062         (c_gimplify_expr): Use it.
1063
1064 2007-11-20  Ben Elliston  <bje@au.ibm.com>
1065
1066         * config/spu/spu_mfcio.h: Fix typo.
1067
1068 2007-11-20  Ben Elliston  <bje@au.ibm.com>
1069
1070         * unwind.inc: Comment that unwind-sjlj.c includes this file.
1071
1072 2007-11-20  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1073             Ben Elliston  <bje@au.ibm.com>
1074
1075         * config/spu/mfc_tag_release.c: New file.
1076         * config/spu/mfc_multi_tag_release.c: Likewise.
1077         * config/spu/mfc_multi_tag_reserve.c: Likewise.
1078         * config/spu/mfc_tag_release.c: Likewise.
1079         * config/spu/mfc_tag_reserve.c: Likewise.
1080         * config/spu/mfc_tag_table.c: Likewise.
1081         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Compile them.
1082         (TARGET_LIBGCC2_CFLAGS): Define __IN_LIBGCC2.
1083         * config/spu/spu_mfcio.h: Avoid <stdint.h>.
1084         (uint64_t): Typedef if __IN_LIBGCC2 is defined.
1085         (MFC_TAG_INVALID, MFC_TAG_VALID): New macros.
1086         (mfc_tag_reserve, mfc_tag_release, mfc_multi_tag_reserve,
1087         mfc_multi_tag_release): Likewise.
1088         (__mfc_tag_reserve, __mfc_tag_release, __mfc_multi_tag_reserve,
1089         __mfc_multi_tag_release): Declare.
1090
1091 2007-11-19  Jason Merrill  <jason@redhat.com>
1092
1093         PR debug/28834, debug/29436, c/32326
1094         * tree.c (build_type_attribute_qual_variant): Refuse to make
1095         a distinct copy of a struct/enum type.  Use build_distinct_type_copy.
1096         * doc/extend.texi (Type Attributes): Don't encourage people to add
1097         attributes to struct/enum types in a typedef.  Fix
1098         transparent_union example.
1099
1100         * tree-inline.c (remap_type_1): Remove code that's redundant with
1101         remap_type.
1102         (build_duplicate_type): Set id.copy_decl.
1103         * c-common.c (handle_transparent_union_attribute): Simplify logic.
1104
1105 2007-11-19  Peter Bergner  <bergner@vnet.ibm.com>
1106
1107         * config/rs6000/rs6000.c (invalid_e500_subreg,
1108         rs6000_legitimate_offset_address_p, legitimate_lo_sum_address_p,
1109         rs6000_legitimize_address, rs6000_legitimize_reload_address,
1110         rs6000_legitimate_address, function_arg_advance,
1111         spe_build_register_parallel, rs6000_spe_function_arg,
1112         rs6000_split_multireg_move, spe_func_has_64bit_regs_p,
1113         emit_frame_save, gen_frame_mem_offset, rs6000_function_value,
1114         rs6000_libcall_value, rs6000_dwarf_register_span): Handle DDmode and
1115         TDmode similarly to DFmode and TFmode.
1116         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
1117         DATA_ALIGNMENT, CLASS_MAX_NREGS, CANNOT_CHANGE_MODE_CLASS): Likewise.
1118
1119 2007-11-19  Eric Botcazou  <ebotcazou@adacore.com>
1120
1121         * stor-layout.c (lang_adjust_rli): Delete.
1122         (set_lang_adjust_rli): Likewise.
1123         (layout_type): Do not call lang_adjust_rli hook.
1124         * tree.h (set_lang_adjust_rli): Delete.
1125
1126 2007-11-19  Bernd Schmidt  <bernd.schmidt@analog.com>
1127         
1128         * config/bfin/bfin.c (must_save_p): New function, mostly broken out of
1129         n_dregs_to_save and n_pregs_to_save.
1130         (n_pregs_to_save, n_dregs_to_save): Use it.  New argument CONSECUTIVE;
1131         all callers changed.
1132         (expand_prologue_reg_save, expand_epilogue_reg_restore): Enhance to be
1133         able to save single D/P registers that aren't saved by the push/pop
1134         multiple insns.
1135
1136 2007-11-19  Richard Guenther  <rguenther@suse.de>
1137
1138         PR tree-optimization/34099
1139         * tree-ssa-ccp.c (likely_value): Exclude all but PLUS_EXPR,
1140         MINUS_EXPR and POINTER_PLUS_EXPR from handling as UNDEFINED
1141         if only one operand is undefined.
1142
1143 2007-11-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
1144
1145         PR tree-optimization/34036
1146         * opts.c (set_fast_math_flags): Do not set flags in common
1147         with set_unsafe_math_optimizations_flags, invoke it directly.
1148         (set_unsafe_math_optimizations_flags): Unset flag_trapping_math
1149         and flag_signed_zeros.
1150         * toplev.c (process_options): Force flag_associative_math to 0 and
1151         warn, if it is set and either flag_trapping_math or flag_signed_zeros
1152         is set too.
1153         * doc/invoke.texi (Optimize Options): Document the new behavior
1154         of -funsafe-math-optimizations, that -fassociative-math requires
1155         both -fno-signed-zeros and -fno-trapping-math and make it clear
1156         that -fno-trapping-math requires -fno-signaling-nans.  Refactor
1157         documentation of -ffast-math.
1158
1159 2007-11-18  Jakub Jelinek  <jakub@redhat.com>
1160
1161         PR rtl-optimization/34132
1162         * gcse.c (try_replace_reg): Avoid rtx sharing between REG_EQUAL note
1163         and insn.
1164
1165         PR middle-end/33335
1166         * optabs.h (optab_table): Change type to struct optab from optab.
1167         (convert_optab_table): Similarly.
1168         Adjust all _optab macros to expand to addresses of optab_table
1169         resp. convert_optab_table elements rather than the values of the
1170         elements.
1171         * optabs.c (optab_table): Change typype to struct optab from optab.
1172         If compiled by recent GCC, initialize all the insn_code fields in
1173         the array using designated range initializers.
1174         (convert_optab_table): Similarly.
1175         (convert_optab_libfunc, optab_libfunc, set_optab_libfunc,
1176         set_conv_libfunc): Into libfunc_entry's optab field store index within
1177         optab_table resp. convert_optab_table array instead of difference
1178         between two separately malloced addresses.
1179         (new_optab): Add op argument, don't return anything.  Initialize
1180         just the insn_code field in handlers array and only when needed.
1181         (init_optab, init_optabv): Add op argument, don't return anything.
1182         Adjust new_optab caller.
1183         (new_convert_optab): Removed.
1184         (init_convert_optab): Add op argument, don't return anything, don't
1185         call new_convert_optab.  If needed, initialize insn_code field in
1186         handlers array.
1187         (init_optabs): Adjust init_optab, init_optabv and init_convert_optab
1188         callers.
1189         (debug_optab_libfuncs): Adjust uses of optab_table and
1190         convert_optab_table arrays.
1191
1192 2007-11-18  Richard Guenther  <rguenther@suse.de>
1193
1194         PR tree-optimization/34127
1195         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
1196         Make code match up the comments, require compatibility of the
1197         pointed-to types.
1198
1199 2007-11-17  Richard Guenther  <rguenther@suse.de>
1200
1201         PR middle-end/34130
1202         * fold-const.c (extract_muldiv_1): Do not move negative
1203         constants inside ABS_EXPR.
1204
1205 2007-11-16  Ian Lance Taylor  <iant@google.com>
1206
1207         * collect2.c (dump_file): If a demangled symbol is followed by a
1208         space, make sure we output at least one space.
1209
1210 2007-11-16  Richard Guenther  <rguenther@suse.de>
1211
1212         PR middle-end/34030
1213         * fold-const.c (fold_binary): Use correct types for folding
1214         1 << X & Y to Y >> X & 1.
1215
1216 2007-11-16  Richard Guenther  <rguenther@suse.de>
1217
1218         PR tree-optimization/33870
1219         * tree.h (struct tree_memory_tag): Add base_for_components flag.
1220         (struct tree_struct_field_tag): Remove nesting_level field.
1221         (SFT_NESTING_LEVEL): Remove.
1222         (SFT_BASE_FOR_COMPONENTS_P): Add.
1223         * tree-flow.h (struct fieldoff): Remove nesting_level field.  Add
1224         base_for_components flag.
1225         (push_fields_onto_fieldstack): Remove nesting_level parameter.
1226         * tree-ssa-alias.c (create_sft): Likewise.  Add base_for_components
1227         parameter.
1228         (create_overlap_variables_for): Deal with it.
1229         * tree-dfa.c (dump_subvars_for): Likewise.
1230         (dump_variable): Likewise.
1231         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Likewise.
1232         Set base_for_components for first elements of sub-structures.
1233         (create_variable_info_for): Handle base_for_components.
1234         (set_uids_in_ptset): Always set SFT_UNPARTITIONABLE_P for
1235         pointed-to SFTs if SFT_BASE_FOR_COMPONENTS_P is set.
1236         * tree-ssa-operands.c (ref_nesting_level): Remove.
1237         (add_vars_for_offset): Remove full_ref parameter, always add
1238         the offset of the pointed-to SFT.
1239         (add_virtual_operand): Adjust for changed signature of
1240         add_vars_for_offset.
1241
1242 2007-11-16  Sa Liu  <saliu@de.ibm.com>
1243
1244         * config/spu/spu.md (floatunssidf2, floatunsdidf2): Inlined 
1245         floatunssidf2 and floatunsdidf2.
1246
1247 2007-11-16  Richard Guenther  <rguenther@suse.de>
1248
1249         PR tree-optimization/34113
1250         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
1251         Use correct conversion direction for checking type compatibility.
1252
1253 2007-11-16  Richard Guenther  <rguenther@suse.de>
1254
1255         PR tree-optimization/34099
1256         * tree-ssa-ccp.c (likely_value): Use a whitelist for operators
1257         that produce UNDEFINED result if at least one of its operands
1258         is UNDEFINED.  By default the result is only UNDEFINED if all
1259         operands are UNDEFINED.
1260
1261 2007-11-16  Jakub Jelinek  <jakub@redhat.com>
1262
1263         PR driver/30460
1264         * gcc.c (init_spec): Don't initialize asm_debug here...
1265         (main): ... but here.
1266
1267 2007-11-07  Tom Tromey  <tromey@redhat.com>
1268
1269         * tree-ssa-structalias.c (ipa_pta_execute): Rename 'cfun' to 'func'. 
1270         * tree-parloops.c (create_loop_fn): Use set_cfun.
1271         * gengtype.c (open_base_files): Emit #undef cfun.
1272         * ipa-struct-reorg.c (do_reorg_1): Use set_cfun.
1273         * function.h (cfun): New define.
1274         * function.c: Undefine cfun.
1275
1276 2007-11-07  Eric B. Weddington  <eweddington@cso.atmel.com>
1277
1278         * config/avr/avr.c (avr_mcu_types): Add attiny88.
1279         * config/avr/avr.h (LINK_SPEC): Likewise.
1280         (CRT_BINUTILS_SPECS): Likewsie.
1281         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
1282
1283 2007-11-15  Jakub Jelinek  <jakub@redhat.com>
1284
1285         PR middle-end/23848
1286         * tree-ssa-ccp.c (optimize_stack_restore): New function.
1287         (execute_fold_all_builtins): Call optimize_stack_restore for
1288         BUILT_IN_STACK_RESTORE.
1289
1290 2007-11-15  Paolo Bonzini  <bonzini@gnu.org>
1291
1292         * fwprop.c (try_fwprop_subst): Skip profitability check for forward
1293         propagation into an address; that's done in should_replace_address.
1294                 
1295 2007-11-15  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1296
1297         * config/spu/spu-protos.h (legitimate_const): Remove prototype.
1298         * config/spu/spu.c (legitimate_const): Remove.
1299         (classify_immediate): Inline call to legitimate_const.
1300         (spu_legitimate_address): Likewise.  Allow SYMBOL_REF + CONST_INT
1301         for any constant, not just -512 .. 511.
1302
1303 2007-11-15  Sa Liu  <saliu@de.ibm.com>
1304
1305         * config/spu/spu.c (spu_emit_branch_or_set): Remove PROCESSOR_CELL
1306         condition from HONOR_NANS test.
1307         * config/spu/spu.md (ceq_df): Always generate comparison code
1308         inline, including checks for NaNs and infinities.
1309         (cgt_df): Likewise.
1310         (cgt_v2df): Likewise.
1311         (cmpdf): Make this expander unconditional.
1312
1313 2007-11-15  Richard Guenther  <rguenther@suse.de>
1314
1315         * tree-ssa-alias.c (create_overlap_variables_for): Make sure
1316         to only create SFTs if we also create variable infos for PTA.
1317         * tree-ssa-structalias.c (set_uids_in_ptset): Add all overlapping SFTs.
1318
1319 2007-11-15  Richard Guenther  <rguenther@suse.de>
1320
1321         * tree-ssa-structalias.c (set_uids_in_ptset): Use the pointed-to
1322         type for TBAA pruning.
1323         (find_what_p_points_to): Call set_uids_in_ptset with the original
1324         pointer, not the decl of the solution we collapsed to.
1325
1326 2007-11-14  David Daney  <ddaney@avtrex.com>
1327
1328         * config/mips/linux-unwind.h (mips_fallback_frame_state): Use CFA
1329         to find sigcontext.
1330
1331 2007-11-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
1332
1333         PR target/33923
1334         * config/ia64/ia64.h (CANNOT_CHANGE_MODE_CLASS): Forbid mode changes
1335         for registers in BR_REGS class.
1336
1337 2007-11-14  Jakub Jelinek  <jakub@redhat.com>
1338
1339         PR middle-end/34088
1340         * tree-ssa.c (delete_tree_ssa): Don't call fini_ssa_operands if
1341         init_ssa_operands has not been called for cfun.
1342
1343 2007-11-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
1344
1345         PR tree-optimization/34046
1346         * cfg.c (update_bb_profile_for_threading): Avoid the division for the
1347         scaling if the old probability is greater than the new base.
1348
1349 2007-11-14  Sebastian Pop  <sebastian.pop@amd.com>
1350
1351         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Remove
1352         unused edges after loop duplication.
1353
1354 2007-11-14  Uros Bizjak  <ubizjak@gmail.com>
1355
1356         * config/i386/i386.h (TARGET_CPU_DEFAULT_*): Substitute with ...
1357         (enum target_cpu_default): ... this enum.
1358         (TARGET_CPU_DEFAULT_NAMES): Remove macro.  Move initializer to ...
1359         * config/i386/i386.c (override_options): ... here.
1360         * config/i386/i386-interix.h (TARGET_CPU_DEFAULT): Use
1361         TARGET_CPU_DEFAULT_i486.
1362
1363 2007-11-14  Rask Ingemann Lambertsen  <rask@sygehus.dk>
1364
1365         * global.c (rest_of_handle_global_alloc): Fix comment typos.
1366         * config/sh/sh.c (sh_rtx_costs): Likewise.
1367         * ChangeLog: Likewise.
1368
1369 2007-11-13  Sebastian Pop  <sebastian.pop@amd.com>
1370
1371         * tree-chrec.h (build_polynomial_chrec): RHS of a chrec
1372         should not be of pointer type.
1373
1374 2007-11-13  Michael Meissner  <michael.meissner@amd.com>
1375
1376         * config/i386/i386.c (ix86_sse5_valid_op_p): Put type on separate line.
1377
1378 2007-11-13  Sterling Augustine  <sterling@tensilica.com>
1379             Bob Wilson  <bob.wilson@acm.org>
1380         
1381         * config/xtensa/unwind-dw2-xtensa.c: New.
1382         * config/xtensa/unwind-dw2-xtensa.h: New.
1383         * config/xtensa/xtensa.h (MUST_USE_SJLJ_EXCEPTIONS): Remove.
1384         (DWARF2_UNWIND_INFO): Remove.
1385         (DWARF_FRAME_REGISTERS): Define.
1386         (EH_RETURN_DATA_REGNO): Define.
1387         * config/xtensa/xtensa.md (UNSPECV_EH_RETURN): Define.
1388         (eh_return): New.
1389         * config/xtensa/t-xtensa (LIB2ADDEH): Define.
1390         
1391 2007-11-13  Jakub Jelinek  <jakub@redhat.com>
1392
1393         * doc/invoke.texi: Fix description of -fsched-stalled-insns=0,
1394         -fsched-stalled-insns.
1395
1396         PR tree-optimization/34063
1397         * tree-chrec.c (chrec_evaluate): Put CHREC_LEFT based argument
1398         as first chrec_fold_plus operand rather than second.
1399
1400 2007-11-13  Diego Novillo  <dnovillo@google.com>
1401
1402         PR tree-optimization/33870
1403         * tree.h (strcut tree_memory_tag): Add field unpartitionable.
1404         Remove field in_nested_struct.
1405         (struct tree_struct_field_tag): Add field nesting_level.
1406         (sft_in_nested_struct): Remove.
1407         (sft_nesting_level): Define.
1408         (sft_unpartitionable_p): Define.
1409         * tree-ssa-alias.c (mem_sym_score): If mp->var is not
1410         partitionable, return long_max.
1411         (compute_memory_partitions): Do not partition sfts marked
1412         unpartitionable.
1413         (create_sft): Add argument nesting_level.  Set
1414         sft_nesting_level with it.  Update all users.
1415         (create_overlap_variables_for): Show nesting level.
1416         * tree-dfa.c (dump_subvars_for): Likewise.
1417         (dump_variable): Likewise. Show whether the sft is
1418         partitionable or not.
1419         * tree-flow.h (struct fieldoff): Remove field in_nested_struct.
1420         Add field nesting_level.
1421         * tree-ssa-structalias.c (struct variable_info): Remove
1422         field in_nested_struct.
1423         (push_fields_onto_fieldstack): Add argument nesting_level.
1424         Update all users.  Update documentation. Update pair->nesting_level
1425         with nesting_level.  Make recursive calls with nesting_level + 1.
1426         (set_uids_in_ptset): If an sft is added to the points-to set,
1427         mark it as unpartitionable.
1428         * tree-ssa-operands.c (ref_nesting_level): New.
1429         (add_vars_for_offset): Call it.  Add argument full_ref. Update
1430         callers.  If var is inside a nested structure and the nesting level
1431         of full_ref is lower than the nesting level of var,
1432         adjust offset by the offset of var.
1433
1434 2007-11-13  Victor Kaplansky  <victork@il.ibm.com>
1435
1436         PR tree-optimization/32582
1437         * Makefile.in (CRTSTUFF_CFLAGS): Add -fno-tree-vectorize
1438
1439 2007-11-12  Danny Smith  <dannysmith@users.sourceforge.net>
1440
1441         * doc/extend.texi (dllimport): Document that pointers to dllimport'd
1442         functions can be used as constant.
1443
1444 2007-11-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
1445
1446         PR rtl-optimization/34035
1447         * cse.c (cse_cfg_altered): New global variable.
1448         (cse_jumps_altered): Make boolean.
1449         (recorded_label_ref): Likewise.
1450         (cse_insn): Adjust for above changes.
1451         (cse_extended_basic_block): Likewise.  Set cse_cfg_altered
1452         if dead edges have been purged.
1453         (cse_main): Change return value specification and adjust code.
1454         (rest_of_handle_cse): Adjust for above change.
1455         (rest_of_handle_cse2): Likewise.
1456         * gcse.c (rest_of_handle_gcse): Likewise.
1457
1458 2007-11-12  Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
1459             Michael Meissner  <michael.meissner@amd.com>
1460
1461         * config/i386/i386.md (sse5_setcc<mode>): Use <ssemodefsuffix> to
1462         get the appropriate suffix for the coms* instruction.
1463         (sse5_pcmov_<mode>): Restrict operands of pcmov
1464         for scalar case to be only xmm registers and not memory.
1465
1466         * config/i386/sse.md (sse5_pcmov_<mode>): Correct the operand
1467         constraints to follow the mnemonics for the pcmov instruction   
1468
1469 2007-11-12  Richard Sandiford  <rsandifo@nildram.co.uk>
1470
1471         PR target/34042
1472         * config/mips/mips.c (mips_return_fpr_single): New function.
1473         (mips_function_value): Use it when returning single-field
1474         aggregates in FPRs.
1475         (mips_expand_call): Handle the PARALLELs created by
1476         mips_return_fpr_single.
1477
1478 2007-11-12  Richard Guenther  <rguenther@suse.de>
1479
1480         PR middle-end/34070
1481         * fold-const.c (fold_binary): If testing for non-negative
1482         operands with tree_expr_nonnegative_warnv_p make sure to
1483         use op0 which has all (sign) conversions retained.
1484
1485 2007-11-12  Richard Guenther  <rguenther@suse.de>
1486
1487         PR middle-end/34027
1488         * fold-const.c (fold_binary): Fold n - (n / m) * m to n % m.
1489         (fold_binary): Fold unsinged FLOOR_DIV_EXPR to TRUNC_DIV_EXPR.
1490
1491 2007-11-12  Ira Rosen  <irar@il.ibm.com>
1492
1493         PR tree-optimization/33953
1494         * tree-vect-transform.c (vectorizable_operation): In case of SLP,
1495         allocate vec_oprnds1 according to the number of created vector
1496         statements. In case of shift with scalar argument, store scalar
1497         operand for every vector statement to be created for the SLP node.
1498         Fix a comment.
1499
1500 2007-11-10  Steven Bosscher  <stevenb.gcc@gmail.com>
1501
1502         * gcse.c (CUID_INSN): Remove.
1503         (cuid_insn): Ditto.
1504         (alloc_gcse_mem): Don't allocate cuid_insn.
1505         (free_gcse_mem): Don't free cuid_insn.
1506
1507 2007-11-10  Jakub Jelinek  <jakub@redhat.com>
1508
1509         PR fortran/34020
1510         * gimplify.c (goa_lhs_expr_p): Inside INDIRECT_REF handle unshared
1511         nops.
1512
1513         PR middle-end/34018
1514         * tree-inline.h (copy_body_data): Add regimplify field.
1515         * tree-inline.c (copy_body_r): Set id->regimplify to true
1516         if an TREE_INVARIANT ADDR_EXPR is no longer invariant after
1517         substitutions.
1518         (copy_bb): Clear id->regimplify before walk_tree, if it is
1519         set afterwards, regimplify the whole statement.
1520
1521         PR tree-optimization/33680
1522         * tree-data-ref.c (split_constant_offset) <case ADDR_EXPR>: Punt
1523         if the added cast involves variable length types.
1524
1525 2007-11-09  Alexander Monakov  <amonakov@ispras.ru>
1526             Maxim Kuvyrkov  <maxim@codesourcery.com>
1527
1528         * sched-deps.c (sched_analyze_insn): Use MOVE_BARRIER
1529         instead of TRUE_BARRIER for jumps.  Add register dependencies
1530         even when reg_pending_barrier is set.
1531
1532 2007-11-09  Alexander Monakov  <amonakov@ispras.ru>
1533
1534         * haifa-sched.c (haifa_classify_insn): Rename to ...
1535         (haifa_classify_rtx): ...  this.  Improve handling of COND_EXECs,
1536         handle PARALLELs by recursing.  Use it ...  
1537         (haifa_classify_insn): ...  here.  Reimplement.
1538
1539 2007-11-09  Richard Guenther  <rguenther@suse.de>
1540
1541         * bitmap.h (bitmap_single_bit_set_p): Declare.
1542         * bitmap.c (bitmap_single_bit_set_p): New function.
1543         * tree-ssa-alias.c (add_may_alias_for_new_tag): Use it.
1544         (maybe_create_global_var): Use bitmap_empty_p.
1545
1546 2007-11-09  Paolo Bonzini  <bonzini@gnu.org>
1547             Jakub Jelinek  <jakub@redhat.com>
1548
1549         PR rtl-optimization/34012
1550         * fwprop.c (try_fwprop_subst): Do not replace if the new
1551         SET_SRC has a higher cost than the old one.
1552
1553 2007-11-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
1554
1555         PR rtl-optimization/33732
1556         * reload.c (push_reload): Check that the REG_DEAD note was referring
1557         to a hardreg or to a pseudo that has been assigned exactly one hardreg
1558         before considering it in order to select the reload register.
1559         (combine_reloads): Likewise.
1560         (find_dummy_reload): Likewise.
1561
1562 2007-11-09  Richard Guenther  <rguenther@suse.de>
1563
1564         * tree-flow.h (struct ptr_info_def): Make escape_mask a ENUM_BITFIELD.
1565         (struct ptr_info_def): Likewise.
1566         (enum escape_type): Also use bit zero.
1567
1568 2007-11-09  Richard Guenther  <rguenther@suse.de>
1569
1570         PR tree-optimization/33604
1571         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
1572         Disregard changes in CV qualifiers of pointed to types for
1573         forward propagating ADDR_EXPRs.
1574         * tree-ssa-ccp.c (fold_stmt_r): Preserve volatileness of the original
1575         expression.
1576
1577 2007-11-09  Richard Sandiford  <rsandifo@nildram.co.uk>
1578
1579         * dse.c (find_shift_sequence): Always choose an integer mode for
1580         new_mode.
1581         (replace_read): Require both the read and store mode to be
1582         integer ones.  Remove a then-redundant FLOAT_P check.
1583
1584 2007-11-08  Richard Guenther  <rguenther@suse.de>
1585
1586         * tree-dfa.c (remove_referenced_var): If removing a
1587         variable which has subvars, also remove those from
1588         the referenced vars.  Do not create a variable annotation.
1589
1590 2007-11-08  Bob Wilson  <bob.wilson@acm.org>
1591
1592         * config/xtensa/xtensa.c (xtensa_expand_prologue): Remove first
1593         argument for gen_entry calls.
1594         * config/xtensa/xtensa.md: Add new "entry" value to "type" attribute.
1595         (entry): Use the new attribute value.  Remove unused first operand.
1596
1597 2007-11-08  Tom Tromey  <tromey@redhat.com>
1598
1599         * c-parser.c (c_parser_translation_unit): Use location in error.
1600         (c_parser_external_declaration): Likewise.
1601         (c_parser_declaration_or_fndef): Likewise.
1602         (c_parser_enum_specifier): Likewise.
1603         (c_parser_struct_or_union_specifier): Likewise.
1604         (c_parser_struct_declaration): Likewise.
1605         (c_parser_typeof_specifier): Likewise.
1606         (c_parser_parms_list_declarator): Likewise.
1607         (c_parser_asm_string_literal): Likewise.
1608         (c_parser_braced_init): Likewise.
1609         (c_parser_initelt): Likewise.
1610         (c_parser_compound_statement_nostart): Likewise.
1611         (c_parser_statement_after_labels): Likewise.
1612         (c_parser_do_statement): Likewise.
1613         (c_parser_asm_statement): Likewise.
1614         (c_parser_conditional_expression): Likewise.
1615         (c_parser_unary_expression): Likewise.
1616         (c_parser_sizeof_expression): Likewise.
1617         (c_parser_postfix_expression): Likewise.
1618         (c_parser_postfix_expression_after_paren_type): Likewise.
1619         (c_parser_objc_class_instance_variables): Likewise.
1620         (c_parser_objc_method_definition): Likewise.
1621         (c_parser_objc_methodprotolist): Likewise.
1622         (c_parser_pragma): Likewise.
1623         (c_parser_omp_clause_num_threads): Likewise.
1624         (c_parser_omp_clause_schedule): Likewise.
1625         (c_parser_omp_all_clauses): Likewise.
1626         (c_parser_omp_sections_scope): Likewise.
1627         (c_parser_label): Use location of label, not colon.
1628
1629 2007-11-08  Danny Smith  <dannysmith@users.sourceforge.net>
1630
1631         PR target/33774
1632         * config/i386/cygming.h (BIGGEST_FIELD_ALIGNMENT): Define only if
1633         IN_TARGET_LIBS.
1634
1635 2007-11-07  Kenneth Zadeck <zadeck@naturalbridge.com>
1636
1637         PR middle-end/33826
1638         * ipa-pure-const.c (static_execute): Added code to keep recursive
1639         functions from being marked as pure or const.
1640         * ipa-utils.c (searchc): Fixed comment.
1641                 
1642 2007-11-08  Tom Tromey  <tromey@redhat.com>
1643
1644         * common.opt (fshow-column): Default to 0.
1645         * configure: Rebuilt.
1646         * configure.ac (--enable-mapped-location): Default to 'yes'.
1647
1648 2007-11-07  Kenneth Zadeck <zadeck@naturalbridge.com>
1649
1650         * common.opt: Add pointer to doc/options.texi.
1651         * doc/invoke.texi (-fdse, -fdce, -fauto-inc-dec, -fipa-pure-const,
1652         -fipa-reference): Add or correct doc.  Sorted options list for -Os
1653         -O, -O2.
1654
1655 2007-11-07  Bernhard Fischer  <aldot@gcc.gnu.org>
1656
1657         PR target/16350
1658         * config.gcc: For arm*b-* define TARGET_BIG_ENDIAN_DEFAULT.
1659         * config/arm/linux-elf.h (TARGET_ENDIAN_DEFAULT): Define based on
1660         TARGET_BIG_ENDIAN_DEFAULT.  Use for MULTILIB_DEFAULTS.
1661         (TARGET_DEFAULT): Set according to TARGET_ENDIAN_DEFAULT.
1662         (LINUX_TARGET_LINK_SPEC): Pass -mlittle-endian on to the assembler.
1663         * config/arm/linux-eabi.h (TARGET_LINKER_EMULATION): Set according
1664         to TARGET_BIG_ENDIAN_DEFAULT.
1665         (SUBTARGET_EXTRA_LINK_SPEC): Likewise.
1666         * config/arm/bpabi.h (TARGET_DEFAULT_MASK): Set according
1667         to TARGET_BIG_ENDIAN_DEFAULT.
1668
1669 2007-11-07  Diego Novillo  <dnovillo@google.com>
1670
1671         * tree.h (struct tree_struct_field_tag): Move field
1672         in_nested_struct ...
1673         (struct tree_memory_tag): ... here.
1674
1675 2007-11-07  Diego Novillo  <dnovillo@google.com>
1676
1677         PR 33870
1678         * tree.h (struct tree_struct_field_tag): Add field in_nested_struct.
1679         (SFT_IN_NESTED_STRUCT): Define.
1680         * tree-dfa.c (dump_subvars_for): Show offset of each sub-var.
1681         * tree-flow.h (struct fieldoff): Add field in_nested_struct.
1682         * tree-ssa-structalias.c (struct variable_info): Likewise.
1683         (push_fields_onto_fieldstack): If OFFSET is positive,
1684         set in_nested_struct.
1685         (create_variable_info_for): Copy setting of
1686         in_nested_struct from the field offset object.
1687         (set_uids_in_ptset): Set SFT_IN_NESTED_STRUCT from the
1688         variable info object.
1689         * tree-ssa-operands.c (add_vars_for_offset): If VAR
1690         belongs to a nested structure, adjust OFFSET by SFT_OFFSET(VAR).
1691
1692 2007-11-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
1693
1694         PR rtl-optimization/33737
1695         * cfgcleanup.c (try_crossjump_to_edge): Add count and frequency of
1696         target block after computing the probabilities of outgoing edges.
1697         Cap the frequency to BB_FREQ_MAX.
1698         * tree-ssa-threadupdate.c (redirect_edges): Also adjust count and
1699         frequency of the basic block if it has been reused.
1700
1701 2007-11-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
1702
1703         PR rtl-optimization/33822
1704         * rtl.h (REG_OFFSET): Fix comment.
1705         * var-tracking.c (INT_MEM_OFFSET): New macro.
1706         (var_mem_set): Use it.
1707         (var_mem_delete_and_set): Likewise.
1708         (var_mem_delete): Likewise.
1709         (same_variable_part_p): Likewise.
1710         (vt_get_decl_and_offset): Likewise.
1711         (offset_valid_for_tracked_p): New predicate.
1712         (count_uses): Do not track locations with invalid offsets.
1713         (add_uses): Likewise.
1714         (add_stores): Likewise.
1715
1716 2007-11-07  Tom Tromey  <tromey@redhat.com>
1717
1718         * Makefile.in (tree-ssa-structalias.o): Depend on $(FUNCTION_H)
1719         (BASIC_BLOCK_H): Add vec.h, $(FUNCTION_H).
1720
1721 2007-11-07  Dmitry Zhurikhin  <zhur@ispras.ru>
1722             Andrey Belevantsev  <abel@ispras.ru>
1723
1724         * modulo-sched.c (sms_order_nodes, permute_partial_schedule,
1725         generate_prolog_epilog, duplicate_insns_of_cycles): Fix prototypes.
1726         (calculate_order_params, sms_order_nodes): New parameter pmax_asap.
1727         Save calculated max_asap in it.         
1728         (sms_schedule): Calculate maxii using max_asap.
1729
1730 2007-11-07  Andreas Krebbel  <krebbel1@de.ibm.com>
1731
1732         * doc/invoke.texi: Replace rs6000 dfp switches -mdfp/-mno-dfp
1733         with -mhard-dfp/-mno-hard-dfp.
1734
1735 2007-11-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
1736             Jakub Jelinek  <jakub@redhat.com>
1737
1738         PR middle-end/33670
1739         * haifa-sched.c (check_sched_flags): Remove.
1740         (sched_init): Don't call it.
1741
1742 2007-11-06  Diego Novillo  <dnovillo@google.com>
1743
1744         * tree-flow.h (struct fieldoff): Reformat comment. Document fields.
1745         * tree-ssa-operands.c: Tidy top-level comments.
1746         (add_vop): Likewise.
1747         (add_vars_for_offset): Tidy parameter formatting..
1748         (get_addr_dereference_operands): Likewise.
1749         (get_indirect_ref_operands): Likewise.
1750         (get_expr_operands) <OMP_ATOMIC_LOAD>: Reformat.
1751         <OMP_ATOMIC_STORE>: Likewise.
1752
1753 2007-11-06  Rask Ingemann Lambertsen  <rask@sygehus.dk>
1754
1755         PR target/32787
1756         * config/i386/driver-i386.c: Test for __GNUC__ instead of
1757         GCC_VERSION which is always defined.
1758
1759 2007-11-06  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1760
1761         PR target/30961
1762         * reload1.c (find_reloads): Also check in_reg when handling a
1763         simple move with an input reload and a destination of a hard register.
1764
1765 2007-11-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
1766
1767         * config/m68k/m68k.c (sched-int.h, insn-codes.h): New includes.
1768         (TARGET_SCHED_ADJUST_COST, TARGET_SCHED_VARIABLE_ISSUE,
1769         TARGET_SCHED_INIT_GLOBAL, TARGET_SCHED_FINISH_GLOBAL,
1770         TARGET_SCHED_INIT, TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE,
1771         TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Redefine.
1772         (m68k_sched_attr_type2): New function.
1773         (sched_adjust_cost_state): New static variable.
1774         (m68k_sched_adjust_cost): New static function implementing
1775         scheduler hook.
1776         (sched_ib_size, sched_ib_filled, sched_ib_insn, sched_mem_unit_code):
1777         New static variables.
1778         (m68k_sched_variable_issue): New static function implementing
1779         scheduler hook.
1780         (sched_dump_class_def, sched_dump_class_func_t): New typedefs.
1781         (sched_dump_split_class): New static function.
1782         (sched_dump_dfa_guess_unit_code, sched_dump_dfa_state): New static
1783         variables.
1784         (sched_dump_dfa_class, m68k_sched_dump): New static function.
1785         (m68k_sched_md_init_global, m68k_sched_md_finish_global,
1786         m68k_sched_md_init, m68k_sched_dfa_pre_advance_cycle,
1787         m68k_sched_dfa_post_advance_cycle): New static functions implementing
1788         scheduler hooks.
1789
1790         * config/m68k/m68k.h (m68k_sched_attr_type2): Declare.
1791         (CPU_UNITS_QUERY): Define.
1792
1793         * config/m68k/cf.md: New file.
1794         * config/m68k/m68.md (cf.md): New include.
1795
1796 2007-11-06  Tom Tromey  <tromey@redhat.com>
1797
1798         PR c++/32256, PR c++/32368:
1799         * function.c (saved_in_system_header): New global.
1800         (push_cfun): Save in_system_header.
1801         (pop_cfun): Restore in_system_header.
1802         (push_struct_function): Save in_system_header.
1803
1804 2007-11-06  Douglas Gregor  <doug.gregor@gmail.com>
1805
1806         PR c++/33977
1807         PR c++/33886
1808         * c-common.c (c_build_qualified_type): Moved to c-typeck.c.
1809         (complete_array_type): Set canonical type appropriately.
1810         * c-typeck.c (c_build_qualified_type): Moved from c-common.c. The
1811         C and C++ front ends now have different versions of this function,
1812         because the C++ version needs to maintain canonical types here.
1813
1814 2007-11-04  Razya Ladelsky  <razya@il.ibm.com>
1815         
1816         * tree-parloops.c (reduction_info): Remove reduction_init field.
1817         (initialize_reductions): Remove creation of the reduction_init variable.
1818         (struct data_arg): Remove.
1819         (add_field_for_reduction, create_stores_for_reduction): New functions.
1820         (add_field_for_name): Remove reduction handling.
1821         (separate_decls_in_loop): Call add_field_for_reduction,
1822         create_stores_for_reduction.
1823
1824 2007-11-06  Jakub Jelinek  <jakub@redhat.com>
1825
1826         PR tree-optimization/33458
1827         * tree-inline.c (copy_phis_for_bb): If PHI arg substitution creates
1828         !is_gimple_val PHI argument, gimplify it and insert it on edge.
1829
1830         PR tree-optimization/33993
1831         * tree-vect-transform.c (vect_get_constant_vectors): Use build_vector
1832         rather than build_constructor_from_list if all list values are
1833         constants.
1834         (get_initial_def_for_induction): Use build_vector instead of
1835         build_constructor_from_list.
1836
1837 2007-11-05  Mark Mitchell  <mark@codesourcery.com>
1838
1839         PR target/33579
1840         * tree.h (DECL_INIT_PRIORITY): Do not require DECL_HAS_INIT_PRIORITY_P.
1841         (DECL_FINI_PRIORITY): Likewise.
1842         * tree.c (decl_init_priority_lookup): Remove assert.
1843         (decl_fini_priority_insert): Likewise.
1844         * cgraphunit.c (static_ctors): Make it a VEC.
1845         (static_dtors): Likewise.
1846         (record_cdtor_fn): Adjust accordingly.
1847         (build_cdtor): Generate multiple functions for each initialization
1848         priority.
1849         (compare_ctor): New function.
1850         (compare_dtor): Likewise.
1851         (cgraph_build_cdtor_fns): Sort the functions by priority before
1852         calling build_cdtor.
1853         (cgraph_build_static_cdtor): Put the priority in the function's name.
1854
1855 2007-11-05  H.J. Lu  <hongjiu.lu@intel.com>
1856
1857         PR driver/32632
1858         * common.opt: Add shared and pie.
1859
1860 2007-11-05  Bob Wilson  <bob.wilson@acm.org>
1861
1862         * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Do not
1863         replace references to virtual_stack_vars_rtx in goto_handler.
1864
1865 2007-11-05  Paul Brook  <paul@codesourcery.com>
1866
1867         * config.gcc (arm*-*-*): Set c_target_objs and cxx_target_objs.
1868         * config/arm/arm.c (arm_lang_output_object_attributes_hook): New.
1869         (arm_file_start): Don't set Tag_ABI_PCS_wchar_t.  Call
1870         arm_lang_output_object_attributes_hook.
1871         * config/arm/arm.h (arm_lang_output_object_attributes_hook): Declare.
1872         (REGISTER_TARGET_PRAGMAS): Call arm_lang_object_attributes_init.
1873         * config/arm/arm-protos.h (arm_lang_object_attributes_init): Add
1874         prototype.
1875         * config/arm/t-arm.c (arm.o): New rule.
1876         * config/arm/arm-c.c: New file.
1877
1878 2007-11-05  Nick Clifton  <nickc@redhat.com>
1879             Sebastian Pop  <sebastian.pop@amd.com>
1880
1881         PR tree-optimization/32540
1882         PR tree-optimization/33922
1883         * doc/invoke.texi: Document PARAM_MAX_PARTIAL_ANTIC_LENGTH.
1884         * tree-ssa-pre.c: Include params.h.
1885         (compute_partial_antic_aux): Use PARAM_MAX_PARTIAL_ANTIC_LENGTH
1886         to limit the maximum length of the PA set for a given block.
1887         * Makefile.in: Add a dependency upon params.h for tree-ssa-pre.c
1888         * params.def (PARAM_MAX_PARTIAL_ANTIC_LENGTH): New parameter.
1889
1890 2007-11-05  Nathan Sidwell  <nathan@codesourcery.com>
1891
1892         * libgcc2.c (__fixunstfDI, __fixunsxfDI, __fixunsdfDI,
1893         __fixunssfDI): Make return type unsigned.
1894         * libgcc2.h (__fixunstfDI, __fixunsxfDI, __fixunsdfDI,
1895         __fixunssfDI): Make return type unsigned.
1896
1897 2007-11-05  Jakub Jelinek  <jakub@redhat.com>
1898
1899         PR tree-optimization/33856
1900         * tree-data-ref.c (get_references_in_stmt): Don't add
1901         REFERENCE_CLASS_P trees to references vector if get_base_address
1902         returns NULL on them.
1903
1904 2007-11-05  Alexandre Oliva  <aoliva@redhat.com>
1905
1906         * cfg.c (dump_cfg_bb_info): Update bb_bitnames to match enum.
1907
1908 2007-11-04  Andrew Pinski  <pinskia@gmail.com>
1909
1910         PR middle-end/32931
1911         * fold-const.c (fold_binary <case EQ_EXPR>): Convert the inner type
1912         for TRUTH_NOT_EXPR to type.
1913
1914 2007-11-04  Gerald Pfeifer  <gerald@pfeifer.com>
1915
1916         * doc/contrib.texi (Contributors): Add Manuel Lopez-Ibanez.
1917
1918 2007-11-04  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1919
1920         PR fortran/10220
1921         * dwarf2out.c (add_calling_convention_attribute): Change
1922         second argument. Set calling convention to DW_CC_program for
1923         Fortran main program.
1924         (gen_subprogram_die): Adjust to new prototype for
1925         add_calling_convention_attribute.
1926
1927 2007-11-03  Dorit Nuzman  <dorit@il.ibm.com>
1928
1929         PR tree-optimization/33987
1930         * tree-vect-transform.c (get_initial_def_for_reduction): Fix assert.
1931         Fix indentation.
1932         (vectorizable_reduction): Add type check.
1933
1934 2007-11-03  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1935
1936         PR c/29062
1937         * c-parser.c (c_parser_statement_after_labels): Error if a
1938         declaration is parsed after a label.
1939         
1940 2007-11-03  Daniel Jacobowitz  <dan@codesourcery.com>
1941
1942         PR debug/33921
1943         * reorg.c (emit_delay_sequence): Do not clear the locator on
1944         the jump instruction.
1945
1946 2007-11-03  Jakub Jelinek  <jakub@redhat.com>
1947
1948         PR middle-end/33670
1949         * haifa-sched.c (ok_for_early_queue_removal): Don't walk out of the
1950         current sched region.
1951
1952 2007-11-02  Jakub Jelinek  <jakub@redhat.com>
1953
1954         * config/ia64/ia64.c (struct reg_write_state): Change into
1955         unsigned short bitfields rather than unsigned int, decrease
1956         first_pred to just 10 bits.
1957         (rws_insn): Change into a bitmap or if not ENABLE_CHECKING
1958         into two char array.
1959         (rws_insn_set, rws_insn_test): New functions.
1960         (in_safe_group_barrier): New variable.
1961         (rws_update): Remove first argument, always set rws_sum array.
1962         (rws_access_regno): Use rws_insn_set macro.  Only call rws_update
1963         or update rws_sum if !in_safe_group_barrier, adjust rws_update args.
1964         (rtx_needs_barrier): Use rws_insn_test macro.
1965         (safe_group_barrier_needed): Don't save/restore rws_sum array,
1966         instead set/clear in_safe_group_barrier flag.
1967
1968 2007-11-02  Bob Wilson  <bob.wilson@acm.org>
1969
1970         * config/xtensa/xtensa.c (xtensa_expand_prologue): Put a
1971         REG_FRAME_RELATED_EXPR note on the last insn that sets up the stack
1972         pointer or frame pointer.
1973         * config/xtensa/xtensa.h (DWARF_UNWIND_INFO): Delete.
1974         (MUST_USE_SJLJ_EXCEPTIONS): Define.
1975         (DWARF2_UNWIND_INFO): Define.
1976         (INCOMING_RETURN_ADDR_RTX): Define.
1977         (DWARF_FRAME_RETURN_COLUMN): Define.
1978
1979 2007-11-02  Tom Tromey  <tromey@redhat.com>
1980
1981         * varpool.c (dump_varpool): Use 'next', not 'next_needed' when
1982         traversing pool.
1983
1984 2007-11-02  Diego Novillo  <dnovillo@google.com>
1985
1986         * langhooks.h (struct lang_hooks_for_callgraph): Remove third
1987         argument from function pointer ANALYZE_EXPR.  Update all users.
1988         * cgraph.c (debug_cgraph_node): New.
1989         (debug_cgraph): New.
1990
1991 2007-11-02  Jakub Jelinek  <jakub@redhat.com>
1992
1993         PR rtl-optimization/33648
1994         * cfgrtl.c (cfg_layout_split_edge): Initialize BB_PARTITION of
1995         the newly created basic block.
1996
1997 2007-11-01  Richard Guenther  <rguenther@suse.de>
1998
1999         * ggc-page.c (extra_order_size_tab): Add bitmap_head size.
2000
2001 2007-11-01  Steven Bosscher  <stevenb.gcc@gmail.com>
2002
2003         PR rtl-optimization/33828
2004         * gcse.c (compute_code_hoist_vbeinout): Fix order of computation
2005         of VBEIN and VBEOUT.
2006
2007 2007-11-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
2008
2009         * optabs.c (prepare_cmp_insn): Merge a couple of conditional blocks.
2010         * sched-rgn.c (compute_trg_info): Zero 'el' local variable.
2011         * tree-if-conv.c (process_phi_nodes): Zero 'cond' local variable.
2012
2013 2007-11-01  Nathan Sidwell  <nathan@codesourcery.com>
2014
2015         * gcc.c (getenv_spec_function): Escape the environment variable's
2016         value.
2017
2018 2007-11-01  Janis Johnson  <janis187@us.ibm.com>
2019
2020         * doc/invoke.texi (Optimize Options): Under -fcse-follow-jumps,
2021         show that CSE means common subexpression elimination.  Change wording
2022         for -fsee and define LCM.  Remove capitalization of optimizations
2023         for -ftree-reassoc, -ftree-pre, and -ftree-fre.
2024
2025 2007-11-01  Janis Johnson  <janis187@us.ibm.com>
2026
2027         PR testsuite/25352
2028         * doc/sourcebuild.texi (Test Directives): Document that xfail
2029         has no effect for dg-do except when dg-do-what is "run".
2030
2031 2007-11-01  Tom Tromey  <tromey@redhat.com>
2032
2033         * c-decl.c (grokdeclarator): Set decl source locations.
2034         * c-parser.c (c_parser_enum_specifier): Set location.
2035         (c_parser_struct_or_union_specifier): Likewise.
2036
2037 2007-11-01  Tom Tromey  <tromey@redhat.com>
2038
2039         * print-tree.c (print_node): Print column number.
2040
2041 2007-11-01  Jakub Jelinek  <jakub@redhat.com>
2042
2043         PR debug/33537
2044         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
2045         gen_decl_die): Use TREE_TYPE (TREE_TYPE (decl)) as type
2046         rather than TREE_TYPE (decl) if DECL_BY_REFERENCE (decl).
2047
2048         PR rtl-optimization/33673
2049         * gcse.c (cprop_jump): If a conditional jump has been optimized
2050         into unconditional jump, make the remaining normal edge fallthru
2051         and delete the jump insn.
2052
2053 2007-11-01  Ben Elliston  <bje@au.ibm.com>
2054
2055         * emit-rtl.c (set_reg_attrs_from_mem): Clarify function comment.
2056         (set_mem_attrs_from_reg): Likewise.
2057
2058 2007-11-01  Michael Matz  <matz@suse.de>
2059
2060         PR tree-optimization/33961
2061         * tree-ssa-phiopt.c (struct name_to_bb.store): New member.
2062         (name_to_bb_hash, name_to_bb_eq): Consider and check it.
2063         (add_or_mark_expr): New argument 'store', using it to search
2064         the hash table.
2065         (nt_init_block): Adjust calls to add_or_mark_expr.
2066
2067 2007-10-31  Jakub Jelinek  <jakub@redhat.com>
2068
2069         PR target/31507
2070         * config/i386/i386.md (pushsf_rex64): Use X instead of < constraints
2071         for the first push_operand.
2072
2073 2007-10-31  Revital Eres  <eres@il.ibm.com>
2074
2075         * config/rs6000/paired.md (sminv2sf3, smaxv2sf3, reduc_smax_v2sf,
2076         reduc_smin_v2sf vec_interleave_highv2sf, vec_interleave_lowv2sf,
2077         vec_extract_evenv2sf, vec_extract_oddv2sf, reduc_splus_v2sf,
2078         movmisalignv2sf, vcondv2sf): New.
2079         (UNSPEC_INTERHI_V2SF, UNSPEC_INTERLO_V2SF, UNSPEC_EXTEVEN_V2SF,
2080         UNSPEC_EXTODD_V2SF): Define new constants.
2081         * config/rs6000/rs6000-protos.h (paired_expand_vector_move,
2082         paired_emit_vector_cond_expr): New.
2083         * config/rs6000/rs6000-c.c (__PAIRED__): Add new builtin_define.
2084         * config/rs6000/rs6000.c (paired_expand_vector_move,
2085         paired_emit_vector_cond_expr, paired_emit_vector_compare):
2086         New functions.
2087         * config/rs6000/750cl.h (ASM_CPU_SPEC): Pass down -m750cl option.
2088
2089 2007-10-31  Sebastian Pop  <sebastian.pop@amd.com>
2090
2091         PR tree-optimization/32377
2092         * tree-data-ref.c (compute_overlap_steps_for_affine_univar): Make it
2093         work also for unknown number of iterations.
2094         (analyze_subscript_affine_affine): Clean up.  Don't fail when the 
2095         number of iterations is not known.
2096
2097 2007-10-31  Richard Guenther  <rguenther@suse.de>
2098
2099         PR middle-end/33779
2100         * fold-const.c (extract_muldiv_1): Make sure to not introduce
2101         new undefined integer overflow.
2102         (fold_binary): Avoid useless conversion.
2103
2104 2007-10-31  Richard Sandiford  <rsandifo@nildram.co.uk>
2105
2106         PR target/33948
2107         * config/mips/mips.c (mips_fpr_return_fields): Fix SCALAR_TYPE_P check.
2108
2109 2007-10-31  Andreas Krebbel  <krebbel1@de.ibm.com>
2110
2111         * config/rs6000/rs6000.opt: Rename -mdfp option to -mhard-dfp.
2112
2113         * config/s390/s390.c: (override_options): Replace
2114         -mhard-dfp/-msoft-dfp with -mhard-dfp/-mno-hard-dfp.
2115         * config/s390/s390.opt: Likewise.
2116         * config/s390/s390.h: Add MASK_HARD_DFP to the TARGET_DEFAULT
2117         definition.
2118
2119 2007-10-30  Janis Johnson  <janis187@us.ibm.com>
2120
2121         * tree-ssa.c (execute_update_addresses_taken): Initialize update_vops.
2122
2123 2007-10-30  Janis Johnson  <janis187@us.ibm.com>
2124
2125         * doc/invoke.texi (Option Summary): Add -fdce and -fdse to list of
2126         optimization options.
2127         (Optimize Options): Add -fdce and -fdse to the list of optimizations
2128         enabled by -O.  Document -fdce and -fdse.
2129
2130 2007-10-30  Jakub Jelinek  <jakub@redhat.com>
2131
2132         PR c++/33709
2133         * fold-const.c (fold_binary): If one argument is COMPOUND_EXPR,
2134         convert second operand of COMPOUND_EXPR to the original type of
2135         that argument.
2136
2137 2007-10-30  Richard Guenther  <rguenther@suse.de>
2138
2139         * tree-ssa-operands.c (add_vars_for_offset): Fix exit test
2140         of loop adding SFTs as virtual operands.
2141
2142 2007-10-30  Richard Guenther  <rguenther@suse.de>
2143
2144         * Makefile.in (dse.o): Add $(OPTABS_H) and $(RECOG_H) dependencies.
2145
2146 2007-10-29  Dorit Nuzman  <dorit@il.ibm.com>
2147
2148         PR tree-optimization/32893
2149         * tree-vectorize.c (vect_can_force_dr_alignment_p): Check
2150         STACK_BOUNDARY instead of PREFERRED_STACK_BOUNDARY.
2151
2152 2007-10-29  Rask Ingemann Lambertsen  <rask@sygehus.dk>
2153
2154         * longlong.h (add_ssaaaa): Support Intel asm syntax in i386 and
2155         x86_64 versions.
2156         (sub_ddmmss): Likewise.
2157         (umul_ppmm): Likewise.
2158         (udiv_qrnnd): Likewise.
2159
2160 2007-10-29  Janis Johnson  <janis187@us.ibm.com>
2161
2162         PR testsuite/24841
2163         * doc/sourcebuild.texi (Test Directives): Document that dg-require
2164         directives must come before dg-additional-sources.
2165
2166 2007-10-29  Jakub Jelinek  <jakub@redhat.com>
2167
2168         PR tree-optimization/33723
2169         * c-gimplify.c (c_gimplify_expr): Optimize INIT_EXPR or
2170         MODIFY_EXPR with non-addressable COMPOUND_LITERAL_EXPR as source.
2171
2172 2007-10-29  Richard Sandiford  <rsandifo@nildram.co.uk>
2173
2174         PR tree-optimization/33614
2175         * gimplify.c (gimplify_init_constructor): Gimplify vector constructors
2176         if they can't be reduced to VECTOR_CSTs and aren't legitimate
2177         initializer constants.
2178
2179 2007-10-29  Richard Guenther  <rguenther@suse.de>
2180
2181         PR tree-optimization/33870
2182         * tree-ssa-operands.c (add_vars_for_offset): Remove mpt_vars parameter.
2183         (add_virtual_operand): Do not recurse into MPTs looking for pointed-to
2184         SFTs.
2185
2186 2007-10-29  Richard Guenther  <rguenther@suse.de>
2187
2188         * passes.c (init_optimization_passes): Exchange store_copy_prop
2189         with copy_prop.
2190         * tree-pass.h (pass_store_copy_prop): Remove.
2191         * tree-ssa-copy.c (do_store_copy_prop): Remove.
2192         (stmt_may_generate-copy): Do not handle store_copy_prop.
2193         (get_copy_of_val): Likewise.
2194         (set_copy_of_val): Likewise.
2195         (copy_prop_visit_assignment): Likewise.
2196         (copy_prop_visit_stmt): Likewise.
2197         (copy_prop_visit_phi_node): Likewise.
2198         (init_copy_prop): Likewise.
2199         (execute_copy_prop): Likewise.
2200         (do_copy_prop): Remove.
2201         (gate_store_copy_prop): Likewise.
2202         (store_copy_prop): Likewise.
2203         (pass_store_copy_prop): Likewise.
2204         (pass_copy_prop): Call execute_copy_prop.
2205         * opts.c (decode_options): Do not set flag_tree_store_copy_prop.
2206         * common.opt (ftree-store-copy-prop): Mark obsolete.
2207         * doc/invoke.texi (ftree-store-copy-prop): Remove documentation.
2208
2209 2007-10-29  Ian Lance Taylor  <iant@google.com>
2210
2211         * ifcvt.c (noce_can_store_speculate_p): New static function.
2212         (noce_process_if_block): Call it.
2213         (if_convert): Remove recompute_dominance parameter.  Change all
2214         callers.
2215
2216 2007-10-29  Richard Guenther  <rguenther@suse.de>
2217
2218         * tree-flow-inline.h (get_subvar_at): Use binary search.
2219         (get_first_overlapping_subvar): New function to binary search
2220         for the first overlapping subvar.
2221         * tree-ssa-operands.c (add_vars_for_offset): Strip down to
2222         just handle adding subvars for a pointed-to subvar.  Optimize
2223         and use get_first_overlapping_subvar.
2224         (add_vars_for_bitmap): Fold into single caller.
2225         (add_virtual_operand): Streamline, inherit add_vars_for_bitmap
2226         and non pointed-to bits of add_vars_for_offset.
2227
2228 2007-10-29  Revital Eres  <eres@il.ibm.com> 
2229
2230         * modulo-sched.c (sms_schedule): Add DF_UD_CHAIN problem.
2231
2232 2007-10-29  Razya Ladelsky  <razya@il.ibm.com>
2233             Zdenek Dvorak  <ook@ucw.cz>
2234
2235         OMP_ATOMIC Changes,
2236         reduction support for automatic parallelization.
2237
2238         * expr.c (expand_expr_real_1): Add cases for OMP_ATOMIC_LOAD,
2239         OMP_ATOMIC_STORE.
2240         * Makefile.in: Add dependencies to expr.o, tree-parloops.o, omp-low.o
2241         * tree-pretty-print.c (dump_generic_node): Add OMP_ATOMIC_LOAD
2242         and OMP_ATOMIC_STORE.
2243         * tree.h (OMP_DIRECTIVE_P): Add OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
2244         * gimple-low.c (lower_stmt): Same.
2245         * gimplify.c (gimplify_expr): Same.
2246         (gimplify_omp_atomic_fetch_op, gimplify_omp_atomic_pipeline,
2247         gimplify_omp_atomic_mutex): Remove.
2248         (gimplify_omp_atomic): Change it to simply gimplify the
2249         statement instead of expanding it.
2250         * omp-low.c: Add includes to optabs.h, cfgloop.h.
2251         (expand_omp_atomic, expand_omp_atomic_pipeline,
2252         goa_stabilize_expr, expand_omp_atomic_mutex,
2253         expand_omp_atomic_fetch_op): New functions to implement
2254         expansion of OMP_ATOMIC.
2255         (expand_omp, build_omp_regions_1): Add support for
2256         OMP_ATOMIC_LOAD/OMP_ATOMIC_STORE.
2257         * tree-cfg.c (make_edges): add case for OMP_ATOMIC_LOAD,
2258         OMP_ATOMIC_STORE.
2259         * tree-gimple.c (is_gimple_stmt): Add OMP_ATOMIC_LOAD,
2260         OMP_ATOMIC_STORE.
2261         * tree-parloops.c: add include to tree-vectorizer.h.
2262         (reduction_info): New structure for reduction.
2263         (reduction_list): New list to represent list of reductions per loop.
2264         (struct data_arg): New helper structure for reduction.
2265         (reduction_info_hash, reduction_info_eq, reduction_phi,
2266         initialize_reductions, create_call_for_reduction,
2267         create_phi_for_local_result, create_call_for_reduction_1,
2268         create_loads_for_reductions, create_final_loads_for_reduction):
2269         New functions.
2270         (loop_parallel_p): Identify reductions, add reduction_list parameter.
2271         (separate_decls_in_loop_name): Support reduction variables.
2272         (separate_decls_in_loop): Add reduction_list and ld_st_data arguments,
2273         call create_loads_for_reduction for each reduction.
2274         (canonicalize_loop_ivs): Identify reductions, add reduction_list
2275         parameter.
2276         (transform_to_exit_first_loop): Add reduction support, add
2277         reduction_list parameter.
2278         (gen_parallel_loop): Add reduction_list parameter.  Add call
2279         separate_decls_in_loop with
2280         the new argument.  Traverse reductions and call
2281         initialize_reductions, create_call_for_reduction.
2282         (parallelize_loops): Create and delete the reduction list.
2283         (add_field_for_name): Change use of data parameter.  Add fields for
2284         reductions.
2285         * tree-vectorizer.h (vect_analyze_loop_form): Add declaration.
2286         * tree-vect-analyze.c (vect_analyze_loop_form): export it.
2287         * tree.def: Add definitions for OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
2288         * tree-inline.c (estimate_num_insns_1): add cases for
2289         OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
2290         * tree-cfg.c (make_edges): Add OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
2291         * tree-ssa-operands.c (get_addr_dereference_operands):
2292         New function.  Subroutine of get_indirect_ref_operands.
2293         (get_indirect_ref_operands): Call get_addr_dereference_operands.
2294         (get_expr_operands): Support OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
2295
2296
2297 2007-10-29  Hans-Peter Nilsson  <hp@axis.com>
2298
2299         * config/cris/cris.c: Include df.h.
2300         (cris_address_cost): Add gcc_assert for canonicalization
2301         assumptions.  For PLUS with MULT or register, correct
2302         test for register in other arm.  Tweak comments.
2303
2304 2007-10-28  Richard Guenther  <rguenther@suse.de>
2305
2306         * tree-ssa-operands.c (add_vars_for_offset): Add parameter
2307         telling if the var is to be treated as points-to location.
2308         (add_vars_for_bitmap): Pass true to add_vars_for_offset.
2309         (add_virtual_operand): Only recurse into MPTs if aliases
2310         is from a NMT.
2311
2312 2007-10-28  Richard Guenther  <rguenther@suse.de>
2313
2314         * tree-ssa-operands.c (add_vars_for_offset): Clean and speed up.
2315         (add_vars_for_bitmap): Do not recurse further.  Only add vars
2316         for pointed-to SFTs.
2317         (add_virtual_operand): Re-instantiate loop to add operands for
2318         aliases.  Recurse into MPTs.
2319         (get_indirect_ref_operands): If we fall back to use a pointers
2320         SMT, make sure to not prune based on the access offset and size.
2321
2322 2007-10-28  Andrew Pinski  <pinskia@gmail.com>
2323
2324         PR tree-opt/33589
2325         * tree-outof-ssa.c (rewrite_trees): If the statement changed, cleanup
2326         the eh information on the statement.
2327
2328 2007-10-28  Richard Guenther  <rguenther@suse.de>
2329
2330         * tree-flow.h (subvar_t): Make it a VEC.
2331         (struct subvar): Remove.
2332         (struct var_ann_d): Use VEC(tree,gc) to store subvars.
2333         * tree-flow-inline.h (get_subvar_at): Adjust iterators over
2334         variable subvars.
2335         * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
2336         * tree-nrv.c (dest_safe_for_nrv_p): Likewise.
2337         * tree-ssa-alias.c (mark_aliases_call_clobbered): Likewise.
2338         (set_initial_properties): Likewise.
2339         (setup_pointers_and_addressables): Likewise.
2340         (new_type_alias): Likewise.
2341         (create_overlap_variables_for): Likewise.
2342         * tree-dfa.c (dump_subvars_for): Likewise.
2343         * tree-ssa-operands.c (add_vars_for_offset): Likewise.
2344         (get_expr_operands): Likewise.
2345         (add_to_addressable_set): Likewise.
2346         * tree-ssa-structalias.c (set_uids_in_ptset): Likewise.
2347
2348 2007-10-28  Uros Bizjak  <ubizjak@gmail.com>
2349
2350         PR tree-optimization/33920
2351         * tree-if-conv.c (tree_if_conversion): Force predicate of single
2352         successor bb to true when predecessor bb has NULL predicate.
2353         (find_phi_replacement_condition): Assert that tmp_cond is non-null.
2354
2355 2007-10-28  Richard Sandiford  <rsandifo@nildram.co.uk>
2356
2357         * config/mips/mips.md: Add combiner patterns for DImode extensions
2358         of HImode and QImode truncations.  Reformat HImode <- QImode pattern
2359         for consistency.
2360
2361 2007-10-28  Richard Sandiford  <rsandifo@nildram.co.uk>
2362
2363         PR target/33895
2364         * config/mips/mips.c (mips_output_dwarf_dtprel): Add ATTRIBUTE_UNUSED.
2365
2366 2007-10-28  Andreas Krebbel  <krebbel1@de.ibm.com>
2367
2368         * dce.c (delete_unmarked_insns): Just delete the RETVAL and
2369         LIBCALL notes if they are about to be moved to the same insn.
2370
2371 2007-10-27  Richard Guenther  <rguenther@suse.de>
2372
2373         PR tree-optimization/33870
2374         * tree-ssa-operands.c (add_vars_for_offset): Reduce code
2375         duplication.  Remove redundant call to access_can_touch_variable.
2376         (add_vars_for_bitmap): New helper for recursing over MPT contents.
2377         (add_virtual_operand): Use it.
2378
2379 2007-10-26  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2380
2381         PR fortran/31608
2382         * pa.h (ASM_PN_FORMAT): Delete define.
2383
2384 2007-10-26  Janis Johnson  <janis187@us.ibm.com>
2385
2386         * doc/invoke.texi (Option Summary, optimizations): Remove
2387         -fbounds-check.  Add -fassociative-math, -freciprocal-math,
2388         -ftree-vrp and -funit-at-a-time.  Change -fno-split-wide-types to
2389         -fsplit-wide-types to match later entry.  Break up a long line.
2390         (Option Summary, code gen options)  Add -fno-stack-limit.  Add
2391         missing @gol to the end of a line.
2392         (Optimization Options): Remove -fbounds-check, which is also
2393         documented under Code Generation Options.  Remove =n from
2394         index entry for -ftree-parallelize-loops.  Change -fno-cprop-registers
2395         to -fcprop-registers to match other options, and say when it is
2396         enabled rather than disabled.  Remove extra index entry for
2397         -fno-cx-limited-range.  Add index entries for -fstack-protector
2398         and -fstack-protector-all.
2399         (Code Gen Options): Add index entry for -ftls-model.
2400
2401 2007-10-26  Anatoly Sokolov <aesok@post.ru>
2402
2403         * config/avr/avr.c (avr_OS_task_function_p): Add new function.
2404         (avr_regs_to_save): Handle functions with 'OS_task' attribute.
2405         (avr_simple_epilogue, expand_prologue, avr_asm_function_end_prologue,
2406         expand_epilogue, output_movhi): Don't handle 'main' function.
2407         (avr_attribute_table): Add 'OS_task' function attribute.
2408         * config/avr/avr.h (machine_function): Remove 'is_main' field, add
2409         'is_OS_task' field.
2410         * config/avr/avr.md (return_from_main_epilogue): Remove insn.
2411         (return_from_epilogue, return_from_interrupt_epilogue): Don't handle
2412         'main' function.
2413         * config/avr/avr.opt (minit-stack): Remove.
2414
2415 2007-10-26  Eric Botcazou  <ebotcazou@adacore.com>
2416
2417         * tree-nested.c (get_trampoline_type): Fix thinko.
2418
2419 2007-10-26  Douglas Gregor  <doug.gregor@gmail.com>
2420
2421         PR c++/33601
2422         * tree.c (build_offset_type): Build canonical type based on the
2423         TYPE_MAIN_VARIANT of the base type.
2424
2425 2007-10-26  Daniel Jacobowitz  <dan@codesourcery.com>
2426
2427         * reorg.c (emit_delay_sequence): Move insn locator from the
2428         first insn to the sequence.
2429
2430 2007-10-26  Samuel Tardieu  <sam@rfc1149.net>
2431
2432         * ipa-pure-const.c (check_decl): Return immediately when
2433         pure_const_state has been set to IPA_NEITHER.
2434
2435 2007-10-25  Ira Rosen  <irar@il.ibm.com>
2436
2437         PR tree-optimization/33833
2438         * tree-vect-analyze.c (vect_analyze_data_refs): Use POINTER_PLUS_EXPR
2439         and convert init to sizetype in inner_base construction.
2440
2441 2007-10-25  Richard Guenther  <rguenther@suse.de>
2442
2443         * tree-flow.h (mem_sym_stats): Remove.
2444         (dump_mem_sym_stats_for_var): Declare.
2445         * tree-dfa.c (dump_variable): Call dump_mem_sym_stats_for_var.
2446         (mem_sym_stats): Move ...
2447         * tree-ssa-alias.c (mem_sym_stats): ... here and make it static.
2448         (mem_sym_score): Rename from ...
2449         (pscore): ... this.  Remove.
2450         (dump_mem_sym_stats_for_var): New function.  Dump the score, but
2451         not the frequencies.
2452         (compare_mp_info_entries): Make sort stable by disambiguating
2453         on DECL_UID.
2454
2455 2007-10-25  Ira Rosen  <irar@il.ibm.com>
2456
2457         PR tree-optimization/33866
2458         * tree-vect-transform.c (vectorizable_store): Check operands of all
2459         the stmts in the group of strided accesses. Get def stmt type for each
2460         store in the group and pass it to vect_get_vec_def_for_stmt_copy ().
2461
2462 2007-10-25  Uros Bizjak  <ubizjak@gmail.com>
2463
2464         * config/i386/constraints.md (Y0): Rename register constraint to Yz.
2465         (Yt): Rename register constraint to Y2.
2466         * config/i386/sse.md: Use renamed register constraints.
2467         * config/i386/mmx.md: Ditto.
2468         * config/i386/i386.md: Ditto.
2469
2470 2007-10-25  Rask Ingemann Lambertsen  <rask@sygehus.dk>
2471
2472         * config/i386/i386.md (*dummy_extendsfdf2): Fix operand 1 constraint.
2473
2474 2007-10-24  Chao-ying Fu  <fu@mips.com>
2475
2476         * dwarf2out.c (base_type_die): Use DW_ATE_unsigned_fixed or
2477         DW_ATE_signed_fixed to describe FIXED_POINT_TYPE.
2478
2479 2007-10-24  Samuel Tardieu  <sam@rfc1149.net>
2480             Olga Golovanevsky <olga@il.ibm.com>
2481         
2482         * ipa-struct-reorg.c (replace_field_acc): Make it clear to
2483         the compiler that wr.wrap and wr.domain are initialized in
2484         any case.
2485
2486 2007-10-24  Samuel Tardieu  <sam@rfc1149.net>
2487
2488         * ipa-struct-reorg.c (sum_counts): Use HOST_WIDEST_PRINT_DEC
2489         to print gcov_type values.
2490
2491 2007-10-24  Eric B. Weddington  <eweddington@cso.atmel.com>
2492
2493         * config/avr/avr.h: Do not include progmem_section definition when
2494         building with IN_TARGET_LIBS.
2495
2496 2007-10-24  Richard Sandiford  <rsandifo@nildram.co.uk>
2497
2498         PR target/33755
2499         * config/mips/mips.c (mips_lo_sum_offset): New structure.
2500         (mips_hash_base, mips_lo_sum_offset_hash, mips_lo_sum_offset_eq)
2501         (mips_lo_sum_offset_lookup, mips_record_lo_sum)
2502         (mips_orphaned_high_part_p: New functions.
2503         (mips_avoid_hazard): Don't check INSN_P here.
2504         (mips_avoid_hazards): Rename to...
2505         (mips_reorg_process_insns): ...this.  Cope with
2506         !TARGET_EXPLICIT_RELOCS.  Delete orphaned high-part relocations,
2507         or turn them into nops.
2508         (mips_reorg): Remove TARGET_EXPLICIT_RELOCS check from calls to
2509         dbr_schedule and mips_avoid_hazards/mips_reorg_process_insns.
2510         (mips_set_mips16_mode): Don't set flag_delayed_branch here.
2511         (mips_override_options): Set flag_delayed_branch to 0.
2512
2513 2007-10-24  Richard Sandiford  <rsandifo@nildram.co.uk>
2514
2515         * config/mips/mips.h (MOVE_MAX): Use UNITS_PER_WORD and describe
2516         MIPS-specific implementation details.
2517         (MIPS_MAX_MOVE_BYTES_PER_LOOP_ITER): New macro.
2518         (MIPS_MAX_MOVE_BYTES_STRAIGHT): Likewise.
2519         (MOVE_RATIO): Define to MIPS_MAX_MOVE_BYTES_STRAIGHT / UNITS_PER_WORD
2520         for targets with movmemsi.
2521         (MOVE_BY_PIECES_P): Define.
2522         * config/mips/mips.c (MAX_MOVE_REGS, MAX_MOVE_BYTES): Delete.
2523         (mips_block_move_loop): Add a bytes_per_iter argument.
2524         (mips_expand_block_move): Use MIPS_MAX_MOVE_BYTES_STRAIGHT.
2525         Update call to mips_block_move_loop.
2526
2527 2007-10-24  Michael Matz  <matz@suse.de>
2528
2529         PR debug/33868
2530         * var-tracking.c (variable_union): Don't break after one loop
2531         iteration but only when a difference is found.
2532         (dump_variable): Also print DECL_UID.
2533
2534 2007-10-24  Olga Golovanevsky  <olga@il.ibm.com>
2535
2536         * ipa-type-escape.h: Expose function
2537         is_array_access_through_pointer_and_index.
2538         * ipa-type-escape.c
2539         (is_array_access_through_pointer_and_index):
2540         Add three new parameters. Add support of
2541         POINTER_PLUS_EXPR tree code.
2542
2543 2007-10-24  Olga Golovanevsky  <olga@il.ibm.com>
2544
2545         * ipa-struct-reorg.c, ipa-struct-reorg.h: New files.
2546         * tree-pass.h: Add pass_ipa_struct_reorg.
2547         * common.opt: Add ipa-struct-reorg flag.
2548         * Makefile.in: Add ipa-strcut-reorg.o compilation.
2549         * passes.c: Add pass pass_ipa_struct_reorg.
2550         * params.h:  Add STRUCT_REORG_COLD_STRUCT_RATIO.
2551         * params.def: Add PARAM_STRUCT_REORG_COLD_STRUCT_RATIO.
2552
2553 2007-10-24  Ira Rosen  <irar@il.ibm.com>
2554
2555         PR tree-optimization/33804
2556         * tree-vect-transform.c (vectorizable_operation): Remove the
2557         checks that the vectorization is worthwhile from the transformation
2558         phase.
2559
2560 2007-10-24  Ira Rosen  <irar@il.ibm.com>
2561
2562         * tree-vect-analyze.c (vect_build_slp_tree): Return false if
2563         vectype cannot be determined for the scalar type.
2564         (vect_analyze_slp_instance): Likewise.
2565         * tree-vect-transform.c (vect_model_reduction_cost): Change the
2566         return type to bool. Return false if vectype cannot be determined 
2567         for the scalar type.
2568         (vect_get_constant_vectors): Return false if vectype cannot be
2569         determined for the scalar type.
2570         (get_initial_def_for_induction, vect_get_vec_def_for_operand,
2571         get_initial_def_for_reduction, vect_create_epilog_for_reduction,
2572         vectorizable_reduction): Likewise.      
2573
2574 2007-10-23  Craig Rodrigues  <rodrigc@gcc.gnu.org>
2575
2576         * config.gcc: For a FreeBSD target, parse the value of ${target}
2577         to determine the value of FBSD_MAJOR, instead of adding an
2578         explicit check for every possible FreeBSD major version.
2579
2580 2007-10-23  Uros Bizjak  <ubizjak@gmail.com>
2581
2582         PR rtl-optimization/33846
2583         * combine.c (simplify_shift_const_1) [NOT]: Skip vector modes.
2584
2585 2007-10-23  Dorit Nuzman  <dorit@il.ibm.com>
2586
2587         PR tree-optimization/33860
2588         * tree-vect-transform.c (vect_analyze_data_ref_access): Don't allow
2589         interleaved accesses in case the dr is inside the inner-loop during
2590         outer-loop vectorization.
2591
2592 2007-10-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
2593
2594         * doc/rtl.texi (Flags): Fix MEM_SCALAR_P entry.
2595         Document MEM_POINTER.  Replace mentions of "integrated"
2596         field with "return_val".  Delete outdated stuff.
2597
2598 2007-10-23  David Edelsohn  <edelsohn@gnu.org>
2599
2600         * config/rs6000/rs6000.c (rs6000_override_options): Set
2601         rs6000_altivec_abi on AIX.
2602         (conditional_register_usage): Set VR20:31 fixed on AIX.
2603
2604 2007-10-23  Richard Guenther  <rguenther@suse.de>
2605
2606         * alias.c (get_alias_set): For INDIRECT_REFs, deal with
2607         SSA_NAME pointers.
2608
2609 2007-10-22  Seongbae Park <seongbae.park@gmail.com>
2610             David S. Miller  <davem@davemloft.net>
2611
2612         * df-scan.c (df_get_call_refs): Mark global registers as both a
2613         DF_REF_REG_USE and a non-clobber DF_REF_REG_DEF.
2614
2615 2007-10-22  Dorit Nuzman  <dorit@il.ibm.com>
2616
2617         PR tree-optimization/33834
2618         PR tree-optimization/33835
2619         * tree-vect-analyze.c (vect_analyze_operations): RELEVANT and LIVE
2620         stmts need to be checked for success seperately.
2621         * tree-vect-transform.c (vectorizable_call, vectorizable_conversion):
2622         Remove the check that stmt is not LIVE.
2623         (vectorizable_assignment, vectorizable_induction): Likewise.
2624         (vectorizable_operation, vectorizable_type_demotion): Likewise.
2625         (vectorizable_type_promotion, vectorizable_load, vectorizable_store):
2626         Likewise.
2627         (vectorizable_live_operation): Check that op is not NULL. 
2628
2629 2007-10-22  Janis Johnson  <janis187@us.ibm.com>
2630
2631         * doc/invoke.texi (Optimization Options): In the summary, show
2632         that the value for options -falign-jumps, -falign-labels,
2633         -falign-loops, -falign-functions, -fsched-stalled-insns, and
2634         -fsched-stalled-insns-dep is optional.  In the summary, show that
2635         -fsched-stalled-insns takes an optional argument and that
2636         -fparallelize-loops takes an argument.  Add opindex for several
2637         optimization options, and fix typos in the opindex commands for
2638         several others.  In the descriptions for -fsched-stalled-insns
2639         and -fsched-stalled-insns-dep, show the options with and without
2640         values.
2641
2642 2007-10-22  Eric B. Weddington  <eweddington@cso.atmel.com>
2643
2644         * config/avr/avr.c (avr_mcu_types): Remove ATmega603 which was never
2645         produced.
2646         * config/avr/avr.h (LINK_SPEC): Likewise.
2647         (CRT_BINUTILS_SPECS): Likewsie.
2648         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
2649
2650 2007-10-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
2651
2652         PR rtl-optimization/33644
2653         * cfgcleanup.c: Do not include dce.h.
2654         * cfgrtl.c (delete_insn_chain_and_edges): Resurrect.
2655         * combine.c (distribute_notes): Delete REG_LIBCALL_ID case.
2656         * dce.c (something_changed): Delete.
2657         (libcall_dead_p): New predicate.
2658         (delete_unmarked_insns): Use it to delete dead libcalls.
2659         Deal with REG_LIBCALL and REG_RETVAL notes.
2660         (prescan_libcall_for_dce): New function.
2661         (prescan_insns_for_dce): Use it to deal with libcalls.
2662         (mark_reg_dependencies): Do nothing special for libcalls.
2663         (dce_process_block): Likewise.
2664         (fast_dce): Delete unused local variable.
2665         (run_fast_dce): Do not return a value.
2666         * dce.h (struct df): Delete.
2667         (run_fast_dce): Adjust prototype.
2668         * optabs.c (libcall_id): Delete.
2669         (maybe_encapsulate_block): Do not emit REG_LIBCALL_ID notes.
2670         (emit_no_conflict_block): Do not look for REG_LIBCALL_ID notes.
2671         * reload1.c (reload): Delete REG_LIBCALL_ID case.
2672         * rtl.h (delete_insn_chain_and_edges): Resurrect prototype.
2673         * see.c (see_update_relevancy): Look for REG_LIBCALL and REG_RETVAL
2674         notes instead of REG_LIBCALL_ID notes.
2675         * reg-notes.def (LIBCALL_ID): Delete.
2676         * Makefile.in (see.o): Add dce.h dependency.
2677         (cfgcleanup.o): Remove dce.h dependency.
2678
2679 2007-10-22  Michael Matz  <matz@suse.de>
2680
2681         PR tree-optimization/33855
2682         * tree-ssa-phiopt.c (cond_store_replacement): Handle COMPLEX_TYPE
2683         and VECTOR_TYPE.
2684
2685 2007-10-22  Ira Rosen  <irar@il.ibm.com>
2686
2687         PR tree-optimization/33854
2688         * tree-vect-analyze.c (vect_determine_vectorization_factor): Add
2689         FLOAT_EXPR to the list of promotion operations. 
2690
2691 2007-10-22  Rask Ingemann Lambertsen  <rask@sygehus.dk>
2692
2693         PR target/29473
2694         PR target/29493
2695         * config/i386/i386.c (output_pic_addr_const): Support Intel asm syntax.
2696         (print_reg): Print register prefix only with AT&T asm syntax. 
2697         Support pc_rtx for RIP register.
2698         (print_operand_address): Use print_reg()'s pc_rtx support for RIP
2699         relative addressing.  Always print segment register prefix with AT&T
2700         asm syntax and never with Intel asm syntax.
2701         (print_operand): Suppress 'XXX PTR' prefix for BLKmode operands. 
2702         Fix prefix for 16-byte XFmode operands.
2703         (output_addr_const_extra): Support Intel asm syntax.
2704         (x86_file_start): Don't use register prefix with Intel asm syntax.
2705         * config/i386/i386.md ("*zero_extendqihi2_movzbl"): Fix typo.
2706         ("return_internal_long"): Fix Intel asm syntax output.
2707         ("set_got_rex64"): Support Intel asm syntax.
2708         ("set_rip_rex64"): Likewise.
2709         ("set_got_offset_rex64"): Likewise.
2710         ("*sibcall_1_rex64_v"): Print register prefix only with AT&T asm
2711         syntax.
2712         ("*tls_global_dynamic_64"): Likewise.
2713         ("*tls_local_dynamic_base_64"): Likewise.
2714         ("*load_tp_si")("*load_tp_di"): Likewise.
2715         ("*add_tp_si")("*add_tp_di"): Likewise.
2716         ("*tls_dynamic_lea_64"): Likewise.
2717         ("*sibcall_value_1_rex64_v"): Likewise.
2718         ("stack_tls_protect_set_si"): Likewise.
2719         ("stack_tls_protect_set_di"): Likewise.
2720         ("stack_tls_protect_test_si"): Likewise.
2721         ("stack_tls_protect_test_di"): Likewise.
2722         * config/i386/mmx.md ("*mov<mode>_internal_rex64"): Fix Intel asm
2723         syntax output.
2724         ("*movv2sf_internal_rex64"): Likewise.
2725         * config/i386/cpuid.h (__cpuid): Support Intel asm syntax.
2726         (__get_cpuid_max): Likewise.
2727
2728 2007-10-21  Richard Sandiford  <rsandifo@nildram.co.uk>
2729
2730         * config/mips/mips-protos.h (mips_regno_mode_ok_for_base_p): Give
2731         the STRICT_P argument type "bool" rather than "int".
2732         (mips_legitimate_address_p): Likewise.
2733         (fp_register_operand, lo_operand): Delete.
2734         (mips_subword): Give the HIGH_P argument type "bool" rather than "int".
2735         (mips_emit_scc): Rename to...
2736         (mips_expand_scc): ...this.
2737         (gen_conditional_branch): Rename to...
2738         (mips_expand_conditional_branch): ...this.
2739         (gen_conditional_move): Rename to...
2740         (mips_expand_conditional_move): ...this.
2741         (mips_gen_conditional_trap): Rename to...
2742         (mips_expand_conditional_trap): ...this and take an rtx code instead
2743         of an operands array.
2744         (mips_expand_call): Give the SIBCALL_P argument type "bool"
2745         rather than "int".
2746         (mips_emit_fcc_reload): Rename to...
2747         (mips_expand_fcc_reload): ...this.
2748         (init_cumulative_args): Rename to...
2749         (mips_init_cumulative_args): ...this and remove the libname argument.
2750         (function_arg_advance): Rename to...
2751         (mips_function_arg_advance): ...this.
2752         (function_arg): Rename to...
2753         (mips_function_arg): ...this and use "rtx" instead of
2754         "struct rtx_def *".
2755         (function_arg_boundary): Rename to...
2756         (mips_function_arg_boundary): ...this.
2757         (mips_expand_unaligned_load): Rename to...
2758         (mips_expand_ext_as_unaligned_load): ...this and give the WIDTH
2759         and BITPOS arguments type "HOST_WIDE_INT".
2760         (mips_expand_unaligned_store): Rename to...
2761         (mips_expand_ins_as_unaligned_store): ...this and give the WIDTH
2762         and BITPOS arguments type "HOST_WIDE_INT".
2763         (override_options): Rename to...
2764         (mips_override_options): ...this.
2765         (print_operand): Rename to...
2766         (mips_print_operand): ...this.
2767         (print_operand_address): Rename to...
2768         (mips_print_operand_address): ...this.
2769         (mips_output_ascii): Remove the PREFIX argument.
2770         (mips_expand_epilogue): Give the SIBCALL_P argument type "bool"
2771         rather than "int".
2772         (mips_can_use_return_insn): Return a "bool" rather than an "int".
2773         (mips_function_value): Remove the FUNC argument.  Use "rtx" instead
2774         of "struct rtx_def *".
2775         (mips_secondary_reload_class): Give the IN_P argument type "bool"
2776         rather than "int".
2777         (build_mips16_call_stub): Delete.
2778         (mips_store_data_bypass_p): Return a "bool" rather than an "int".
2779         (mips_use_ins_ext_p): Give the second and third arguments type
2780         "HOST_WIDE_INT" rather than "rtx".
2781         * config/mips/mips.h: Update after the above changes.  Tweak comments
2782         and formatting.
2783         (SECONDARY_INPUT_RELOAD_CLASS): Pass a boolean IN_P argument.
2784         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
2785         (mips_print_operand_punct, mips_hard_regno_mode_ok): Change the
2786         element type from "char" to "bool".
2787         (mips_section_threshold, sym_lineno, set_noat, mips_branch_likely)
2788         (mips_cpu_info_table): Delete.
2789         * config/mips/mips.md: Update after the above changes.  Tweak some
2790         formatting.
2791         * config/mips/mips-ps-3d.md: Likewise.
2792         * config/mips/mips.c: Tweak comments and formatting.
2793         Use NULL-like macros rather than 0 in various places.
2794         (mips_section_threshold): Rename to...
2795         (mips_small_data_threshold): ...this and give it an unsigned type.
2796         (num_source_filenames): Remove explicit initialization.
2797         (sdb_label_count): Likewise.
2798         (sym_lineno): Delete.
2799         (set_noat): Make static.
2800         (mips_branch_likely): Likewise, and give it type "bool".
2801         (mips_isa_info): Rename to...
2802         (mips_isa_option_info): ...this.
2803         (mips_flag_delayed_branch): Rename to...
2804         (mips_base_delayed_branch): ...this.
2805         (mips_split_addresses): Delete.
2806         (mips_print_operand_punct, mips_hard_regno_mode_ok): Change the
2807         element type from "char" to "bool".
2808         (mips_regno_to_class): Add an explicit array size.
2809         (mips16_flipper): Change from type "int" to type "bool".
2810         (mips_comp_type_attributes): Remove redundant FUNCTION_TYPE check.
2811         (mips_tls_operand_p): Rename to...
2812         (mips_tls_symbol_p): ...this.
2813         (mips_global_symbol_p): Remove redundant "const".
2814         (mips_offset_within_alignment_p): Simplify.
2815         (mips_regno_mode_ok_for_base_p): Change the name of the last argument
2816         to STRICT_P and give it type bool.
2817         (mips_valid_base_register_p): Likewise.
2818         (mips_classify_address): Likewise.
2819         (mips_legitimate_address_p): Likewise.
2820         (mips16_unextended_reference_p): Take the offset as an
2821         "unsigned HOST_WIDE_INT" rather than an "rtx".  Simplify.
2822         (mips_const_insns): Use IN_RANGE.
2823         (mips_force_temporary): Remove an unnecessary copy_rtx.
2824         (mips16_gp_pseudo_reg): Simplify.
2825         (mips_split_symbol): Remove an unnecessary copy_rtx.
2826         (mips_legitimize_tls_address): Only create registers if we need them.
2827         (mips_legitimize_address): Use mips_split_plus.
2828         (mips_move_integer): Swap DEST and TEMP arguments.  Rename local
2829         variable COST to NUM_OPS.
2830         (mips_legitimize_move): Use gen_lowpart.
2831         (mips_rewrite_small_data): Rename the OP parameter to PATTERN.
2832         (m16_check_op): Use IN_RANGE.
2833         (mips_subword): Give the HIGH_P argument type "bool" rather than "int".
2834         (mips_split_doubleword_move): Pass booleans to mips_subword.
2835         (mips_output_move): Store the mode in a local variable.
2836         Explicitly assert that this function does not deal with
2837         MFLO and MFHI.  Use SMALL_OPERAND_UNSIGNED.  Make order of
2838         cases more consistent.
2839         (mips_relational_operand_ok_p): Rename to...
2840         (mips_int_order_operand_ok_p): ...this.
2841         (mips_canonicalize_comparison): Rename to...
2842         (mips_canonicalize_int_order_test): ...this.
2843         (mips_emit_int_relational): Rename to...
2844         (mips_emit_int_order_test): ...this.  Store the mode in a local
2845         variable.
2846         (mips_reverse_fp_cond_p): Rename to...
2847         (mips_reversed_fp_cond): ...this.
2848         (mips_emit_compare): Make the order of the statements more consistent.
2849         (mips_emit_scc): Rename to...
2850         (mips_expand_scc): ...this.
2851         (gen_conditional_branch): Rename to...
2852         (mips_expand_conditional_branch): ...this.
2853         (gen_conditional_move): Rename to...
2854         (mips_expand_conditional_move): ...this.  Build the condition
2855         separately from the main pattern.
2856         (mips_gen_conditional_trap): Rename to...
2857         (mips_expand_conditional_trap): ...this and take an rtx code instead
2858         of an operands array.  Simplify.
2859         (init_cumulative_args): Rename to...
2860         (mips_init_cumulative_args): ...this.  Use memset rather than a
2861         copy from a zeroed static.  Use prototype_p and stdarg_p.
2862         (mips_arg_info): Rename to...
2863         (mips_get_arg_info): ...this and put the INFO argument first.
2864         (function_arg): Rename to...
2865         (mips_function_arg): ...this and use "rtx" instead of
2866         "struct rtx_def *".  Only split structures into chunks if 
2867         TARGET_HARD_FLOAT, rather than checking !TARGET_SOFT_FLOAT on
2868         a chunk-by-chunk basis.  Use SCALAR_FLOAT_TYPE_P instead of a
2869         comparison with REAL_TYPE.  Rename local variable REG to REGNO
2870         and make it unsigned.
2871         (function_arg_advance): Rename to...
2872         (mips_function_arg_advance): ...this.
2873         (function_arg_boundary): Rename to...
2874         (mips_function_arg_boundary): ...this.
2875         (mips_pad_arg_upward): Use SCALAR_INT_MODE_P instead of a comparison
2876         with MODE_INT.
2877         (mips_fpr_return_fields): Use SCALAR_FLOAT_TYPE_P instead of a
2878         comparison with REAL_TYPE.
2879         (mips_function_value): Remove the FUNC argument.  Rename local
2880         variable UNSIGNEDP to UNSIGNED_P.
2881         (mips_return_in_memory): Use IN_RANGE.
2882         (mips_setup_incoming_varargs): Pass a boolean rather than an int
2883         to FUNCTION_ARG_ADVANCE.
2884         (mips_gimplify_va_arg_expr): Rename local variable INDIRECT
2885         to INDIRECT_P.  Remove a redundant mips_abi check.  Only calculate
2886         SIZE and RSIZE if needed.
2887         (mips16_stub): Rename FPRET to FP_RET_P and give it type "bool"
2888         rather than "int".
2889         (build_mips16_function_stub): Rename to...
2890         (mips16_build_function_stub): ...this.
2891         (build_mips16_call_stub): Rename to...
2892         (mips16_build_call_stub): ...this.  Make static, and return a
2893         "bool" rather than an "int".  Rename the ARG_SIZE argument to
2894         ARGS_SIZE.  Rename the local variable FPRET to FP_RET_P and give
2895         it type "bool".  Use "jr" rather than "j".  Use XNEW.  Simplify.
2896         (mips_load_call_address): Give the SIBCALL_P argument type "bool"
2897         rather than "int".
2898         (mips_expand_call): Likewise.  Assert that MIPS16 calls via stubs
2899         are not sibling ones.
2900         (mips_emit_fcc_reload): Rename to...
2901         (mips_expand_fcc_reload): ...this.
2902         (mips_get_unaligned_mem): Give the WIDTH and BITPOS arguments type
2903         "HOST_WIDE_INT".
2904         (mips_expand_unaligned_load): Rename to...
2905         (mips_expand_ext_as_unaligned_load): ...this and give the WIDTH
2906         and BITPOS arguments type "HOST_WIDE_INT".  Remove redundant
2907         SUBREG_BYTE check.
2908         (mips_expand_unaligned_store): Rename to...
2909         (mips_expand_ins_as_unaligned_store): ...this and give the WIDTH
2910         and BITPOS arguments type "HOST_WIDE_INT".
2911         (mips_use_ins_ext_p): Rename second and third arguments to WIDTH
2912         and BITPOS and give them type "HOST_WIDE_INT" rather than "rtx".
2913         Use IN_RANGE.
2914         (mips_init_split_addresses): Replace with...
2915         (mips_split_addresses_p): ...this new function.
2916         (mips_init_relocs): Check mips_split_addresses_p () rather than
2917         mips_split_addresses.  Always initialize mips_split_p with booleans.
2918         (print_operand_reloc): Rename to...
2919         (mips_print_operand_reloc): ...this.  Use a gcc_assert rather than
2920         a fatal_error.
2921         (print_operand): Rename to...
2922         (mips_print_operand): ...this.
2923         (print_operand_address): Rename to...
2924         (mips_print_operand_address): ...this.  Use GP_REG_FIRST.
2925         (mips_in_small_data_p): Simplify.
2926         (mips_output_ascii): Remove the PREFIX argument and "register"
2927         keywords.  Use the STRING parameter directly and cast to
2928         "unsigned char".
2929         (mips16e_collect_argument_save_p): Use IN_RANGE.
2930         (mips_function_has_gp_insn): Simplify.
2931         (mips_set_return_address): Use BITSET_P.
2932         (mips_restore_gp): Use a separate statement to pick the base
2933         register.
2934         (mips_output_function_prologue): Use a local FRAME variable.
2935         (mips_save_reg): Pass booleans to mips_subword.
2936         (mips_expand_prologue): Use a local FRAME variable.  Use
2937         cprestore_size to detect when .cprestore is needed.
2938         (mips_restore_reg): Use GP_REG_FIRST.
2939         (mips_expand_epilogue): Give the SIBCALL_P argument type "bool"
2940         rather than "int".  Use local FRAME and REGNO variables.
2941         (mips_can_use_return_insn): Return a "bool" rather than an "int".
2942         (mips_secondary_reload_class): Give the IN_P argument type "bool"
2943         rather than "int".
2944         (mips_linked_madd_p): Rename arguments to OUT_INSN and IN_INSN.
2945         (mips_store_data_bypass_p): Return a "bool" rather than an "int".
2946         (vr4130_swap_insns_p): Rename local variables to DEP1_P and DEP2_P.
2947         (mips_74k_agen_init): Assume INSN satisfies USEFUL_INSN_P.
2948         (mips_variable_issue): Do nothing unless INSN satisfies USEFUL_INSN_P.
2949         (builtin_description): Rename to...
2950         (mips_builtin_description): ...this.
2951         (mips_bdesc): Rename to...
2952         (mips_ps_bdesc): ...this.
2953         (sb1_bdesc): Rename to...
2954         (mips_sb1_bdesc): ...this.
2955         (dsp_bdesc): Rename to...
2956         (mips_dsp_bdesc): ...this.
2957         (dsp_32only_bdesc): Rename to...
2958         (mips_dsp_32only_bdesc): ...this.
2959         (bdesc_map): Rename to...
2960         (mips_bdesc_map): ...this.
2961         (bdesc_arrays): Rename to...
2962         (mips_bdesc_arrays): ...this.
2963         (mips_prepare_builtin_arg): Rename OP to OPNO and ARGNUM to ARGNO.
2964         Tweak error message.
2965         (mips_expand_builtin_direct): Rename HAS_TARGET to HAS_TARGET_P.
2966         Rename local variables I and J to OPNO and ARGNO respectively.
2967         Assert that the number of arguments is no more than the number of
2968         input operands.
2969         (mips_expand_builtin_compare): Use an array of arguments rather
2970         than an array of operands.  Assert that the number of operands is
2971         as expected.
2972         (add_constant): Rename to...
2973         (mips16_add_constant): ...this.  Use XNEW.
2974         (dump_constants_1): Rename to...
2975         (mips16_emit_constants_1): ...this.  Use ALL_SCALAR_FIXED_POINT_MODE_P.
2976         (dump_constants): Rename to...
2977         (mips16_emit_constants): ...this.
2978         (mips_sim_wait_reg, mips_sim_record_set): Use END_REGNO.
2979         (mips_set_mips16_mode): Don't call mips_init_split_addresses.
2980         Assign mips16_p to was_mips16_p.
2981         (mips_parse_cpu): Tweak warning message.
2982         (override_options): Rename to...
2983         (mips_override_options): ...this.  Move the mips_cost initialization
2984         out of the "shared with GAS" block.  Quote option names in error
2985         messages.
2986         (mips_conditional_register_usage): Make local variable REGNO unsigned.
2987         (mips_order_regs_for_local_alloc): Remove register keyword.
2988
2989 2007-10-21  Richard Sandiford  <rsandifo@nildram.co.uk>
2990
2991         * system.h (IN_RANGE): Cast each argument individually.
2992
2993 2007-10-21  Richard Sandiford  <rsandifo@nildram.co.uk>
2994
2995         * config/mips/mips.c (mips_set_mips16_mode) Say sorry for hard-float
2996         MIPS16 code unless using o32 or o64.  
2997
2998 2007-10-21  Richard Sandiford  <rsandifo@nildram.co.uk>
2999
3000         * config/mips/mips.c (mips_cannot_change_mode_class): Don't check
3001         for modes smaller than 4 bytes.
3002         * config/mips/mips.md (*movhi_internal, *movqi_internal): Remove
3003         FPR alternatives.
3004
3005 2007-10-21  Richard Sandiford  <rsandifo@nildram.co.uk>
3006
3007         * config/mips/mips-protos.h (mips_output_aligned_bss): Delete.
3008         * config/mips/linux.h (BSS_SECTION_ASM_OP): Delete.
3009         (ASM_OUTPUT_ALIGNED_BSS): Delete.
3010         * config/mips/mips.c (mips_output_aligned_bss): Delete.
3011
3012 2007-10-21  Richard Sandiford  <rsandifo@nildram.co.uk>
3013
3014         * config/mips/mips.c (mips_function_ok_for_sibcall): Only forbid
3015         sibling calls to "mips16" functions if the function satisfies
3016         const_call_insn_operand.
3017
3018 2007-10-21  Richard Sandiford  <rsandifo@nildram.co.uk>
3019
3020         * config/mips/mips.c (mips_va_start): Fix types in calls
3021         to build_int_cst.
3022
3023 2007-10-21  Richard Sandiford  <rsandifo@nildram.co.uk>
3024
3025         * config/mips/mips.c (mips_rtx_costs): Only recognize reciprocals
3026         if ISA_HAS_FP4.
3027
3028 2007-10-21  Richard Sandiford  <rsandifo@nildram.co.uk>
3029
3030         * config/mips/mips.h (ISA_HAS_LDC1_SDC1): New macro.
3031         * config/mips/mips.c (mips_split_64bit_move_p): Use ISA_HAS_LDC1_SDC1
3032         instead of checking mips_isa.
3033
3034 2007-10-21  Richard Sandiford  <rsandifo@nildram.co.uk>
3035
3036         * doc/invoke.texi (-mpaired-single): Don't say that the option
3037         requires 64-bit code.
3038         * config/mips/mips-protos.h (mips_modes_tieable_p): Declare.
3039         * config/mips/mips.h (ISA_HAS_PAIRED_SINGLE): New macro.
3040         (ISA_HAS_NMADD_NMSUB): Add a mode argument.  Return true for
3041         V2SF if ISA_MIPS32R2.
3042         (MODES_TIEABLE_P): Use mips_modes_tieable_p.
3043         * config/mips/mips.c (mips_rtx_costs): Pass a mode argument
3044         to ISA_HAS_NMADD_NMSUB.
3045         (mips_split_doubleword_move): Handle V2SF.
3046         (mips_modes_tieable_p): New function.
3047         (override_options): Report a warning rather than an error when
3048         -mpaired-single is used on ISAs that don't support it; use
3049         ISA_HAS_PAIRED_SINGLE to check that case.
3050         * config/mips/mips.md (MOVE64): New mode iterator.  Replace DI
3051         and DF move splitters with a single MOVE64 splitter, thereby adding
3052         a V2SF splitter too.
3053         (SPLITF): Add TARGET_DOUBLE_FLOAT conditions to DI and DF.
3054         Add a TARGET_FLOAT64 condition to TF.  Add V2SF to the iterator.
3055         (HALFMODE): Add V2SF.
3056         (*nmadd<mode>, *nmadd<mode>_fastmath, *nmsub<mode>)
3057         (*nmsub<mode>_fastmath): Add a mode argument to ISA_HAS_NMADD_NMSUB.
3058         (movv2sf_hardfloat_64bit): Tweak ordering of conditions.
3059         (movv2sf_hardfloat_32bit): New pattern.
3060         (load_low<mode>, load_high<mode>, store_word<mode>): Remove
3061         TARGET_DOUBLE_FLOAT conditions.
3062
3063 2007-10-20  Jakub Jelinek  <jakub@redhat.com>
3064
3065         * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Point
3066         saved CR2 offset to low 32 bits of regs->ccr rather than the whole
3067         64-bit register in 64-bit libgcc.
3068
3069 2007-10-20  Eric B. Weddington  <eweddington@cso.atmel.com>
3070
3071         * config/avr/avr.c (avr_mcu_types): Add at90pwm2b, at90pwm3b.
3072         * config/avr/avr.h (LINK_SPEC): Likewise.
3073         (CRT_BINUTILS_SPECS): Likewsie.
3074         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
3075
3076 2007-10-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3077
3078         * doc/invoke.texi (Warning Options): Move -w, -Werror, -Werror=
3079         and -Wfatal-errors together.
3080         
3081 2007-10-20  Alan Modra  <amodra@bigpond.net.au>
3082
3083         PR target/33812
3084         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Revert 2007-05-16
3085         change for vrsave, ie restore after frame pop.
3086
3087 2007-10-19  David S. Miller  <davem@davemloft.net>
3088
3089         * config/sparc/niagara2.md: Fix copyright notice.
3090
3091 2007-10-19  Sebastian Pop  <sebastian.pop@amd.com>
3092
3093         PR tree-optimization/23820
3094         PR tree-optimization/24309
3095         PR tree-optimization/33766
3096         * testsuite/gcc.dg/tree-ssa/pr23820.c: New.
3097         * testsuite/gcc.dg/tree-ssa/pr24309.c: New.
3098         * testsuite/gcc.dg/tree-ssa/pr33766.c: New.
3099         * testsuite/gcc.dg/tree-ssa/ltrans-3.c: XFAILed.
3100         * tree-loop-linear.c (perfect_loop_nest_depth): New.
3101         (linear_transform_loops): Use perfect_loop_nest_depth.
3102         * lambda-code.c (perfect_nest_p): Outer loops in perfect nests 
3103         should have a single condition: their exit.
3104
3105 2007-10-19  Richard Guenther  <rguenther@suse.de>
3106
3107         PR middle-end/33816
3108         PR middle-end/32921
3109         * stor-layout.c (layout_type): Assert that aggregates do not
3110         have their alias sets set.
3111         * alias.c (get_alias_set): Return alias set zero for incomplete
3112         types, return the alias set of the element for incomplete array
3113         types, but do not remember these.
3114
3115 2007-10-19  Richard Guenther  <rguenther@suse.de>
3116
3117         Revert
3118         2007-10-19  Richard Guenther  <rguenther@suse.de>
3119
3120         PR middle-end/32921
3121         * tree.c (build_array_type): Do not re-layout unbound array
3122         types.
3123
3124 2007-10-19  Richard Guenther  <rguenther@suse.de>
3125
3126         PR middle-end/32921
3127         * tree.c (build_array_type): Do not re-layout unbound array types.
3128
3129 2007-10-19  Richard Sandiford  <rsandifo@nildram.co.uk>
3130
3131         * config/mips/mips.c (mips_canonicalize_comparison):  Check
3132         mips_relational_operand_ok_p before trying to rewrite the test.
3133         Only calculate PLUS_ONE if needed.
3134         (mips_emit_int_relational): Don't call mips_relational_operand_ok_p
3135         here.
3136
3137 2007-10-19  Richard Sandiford  <rsandifo@nildram.co.uk>
3138
3139         * config/mips/mips.c (mips16e_build_save_restore): Fix *OFFSET_PTR
3140         calculation.
3141
3142 2007-10-19  Richard Sandiford  <rsandifo@nildram.co.uk>
3143
3144         * config/mips/mips.c (mips_call_tls_get_addr): Don't claim that
3145         the call uses the incoming value of $2.
3146
3147 2007-10-19  Richard Sandiford  <rsandifo@nildram.co.uk>
3148
3149         * config/mips/mips.c (mips_call_tls_get_addr): Use gen_const_mem
3150         rather then gen_rtx_MEM.
3151         (mips_setup_incoming_varargs): Use gen_frame_mem rather than
3152         gen_rtx_MEM.
3153         (mips_set_return_address): Likewise.
3154         (mips_restore_gp): Likewise.
3155
3156 2007-10-19  Richard Sandiford  <rsandifo@nildram.co.uk>
3157
3158         * config/mips/mips.c (gpr_mode): Delete.
3159         (mips16e_build_save_restore): Use word_mode and UNITS_PER_WORD
3160         instead of gpr_mode.
3161         (mips_for_each_saved_reg): Likewise.
3162         (mips_expand_prologue, mips_expand_epilogue): Likewise.
3163         (override_options): Don't initialize gpr_mode.
3164         * config/mips/mips.md (eh_return): Use word_mode instead of gpr_mode.
3165
3166 2007-10-19  Richard Sandiford  <rsandifo@nildram.co.uk>
3167
3168         * config/mips/mips.c (mips_hard_regno_nregs): Put the UNITS_PER_WORD
3169         case last.
3170         (mips_class_max_nregs): Calculate the smallest consituent register
3171         size and use that to determine an upper bound on the number of
3172         registers.
3173
3174 2007-10-19  Richard Sandiford  <rsandifo@nildram.co.uk>
3175
3176         * config/mips/mips.c (mips16_copy_fpr_return_value): New function,
3177         split out from...
3178         (mips_expand_epilogue): ...here.
3179         (mips_mdebug_abi_name): New function, split out from...
3180         (mips_file_start): ...here.
3181         (mips_hard_regno_mode_ok_p): New function, split out from...
3182         (override_options): ...here.
3183         (mips_expand_builtin_1): New function, split out from...
3184         (mips_expand_buitin): ...here.  Abort if we don't recognize
3185         the function.
3186
3187 2007-10-19  Richard Sandiford  <rsandifo@nildram.co.uk>
3188
3189         * config/mips/mips.c (build_mips16_function_stub): Load the
3190         target address into $1 before transfering the arguments.
3191         Don't use ".set noreorder".
3192         (build_mips16_call_stub): Likewise.
3193
3194 2007-10-19  Richard Sandiford  <rsandifo@nildram.co.uk>
3195
3196         * config/mips/mips.c (mips_output_32bit_xfer): New function.
3197         (mips_output_64bit_xfer): Likewise.
3198         (mips16_fp_args): Rename to...
3199         (mips_output_args_xfer): ...this and replace the FROM_FP_P argument
3200         with a DIRECTION argument.  Use mips_output_32bit_xfer and
3201         mips_output_64bit_xfer.
3202         (build_mips16_function_stub): Update accordingly.
3203         (mips16_fpret_double): Delete.
3204         (build_mips16_call_stub): Update after above changes.
3205         Use mips_output_32bit_xfer.  Use mips_output_64bit_xfer instead
3206         of mips16_fpret_double.  Use GP_REG_RETURN.
3207
3208 2007-10-19  Richard Sandiford  <rsandifo@nildram.co.uk>
3209
3210         * config/mips/mips.c (mips16_fp_args): Remove the FILE argument and
3211         use asm_out_file instead.
3212         (build_mips16_function_stub): Likewise.
3213         (build_mips16_call_stub, mips_output_function_prologue): Update
3214         accordingly.
3215
3216 2007-10-18  David S. Miller  <davem@davemloft.net>
3217
3218         Add Niagara-2 support.
3219         * doc/invoke.texi: Document -m{cpu,tune}=niagara2.
3220         * config.gcc: Add niagara2 to cpu and tune lists for sparc.
3221         * config/sparc/sparc.md (sparc_cpu_attr): Add niagara2.
3222         (include): Add inclusion of niagara2.md
3223         * config/sparc/sparc.c (niagara2_costs): New.
3224         (sparc_override_options): Add niagara2 entry to cpu_default[]
3225         and cpu_table[].  Set align_functions to 32 on Niagara2.  Use
3226         niagara2_costs when PROCESSOR_NIAGARA2.  Handle Niagara2 for
3227         PARAM_SIMULTANEOUS_PREFETCHES and PARAM_L1_CACHE_LINE_SIZE.
3228         (sparc_initialize_trampoline): Handle niagara2 like niagara.
3229         (sparc64_initialize_trampoline): Likewise.
3230         (sparc_use_sched_lookahead): Likewise.
3231         (sparc_issue_rate): Likewise.
3232         * config/sparc/sol2-bi.h: Handle TARGET_CPU_niagara2 and
3233         mcpu=niagara2
3234         * config/sparc/sparc.h (TARGET_CPU_niagara2): Define.
3235         ({CPP,ASM}_CPU64_DEFAULT_SPEC): Set appropriately for
3236         TARGET_CPU_niagara2.
3237         (PROCESSOR_NIAGARA2): New.
3238         (REGISTER_MOVE_COST): Handle PROCESSOR_NIAGARA2.
3239         (BRANCH_COST): Likewise.
3240         * config/sparc/linux64.h: Handle TARGET_CPU_niagara2.
3241         * config/sparc/sol2.h: Likewise.
3242         * config/sparc/niagara2.md: New file.
3243
3244 2007-10-18  Richard Sandiford  <rsandifo@nildram.co.uk>
3245
3246         * config/mips/mips.c (mips_frame_info): Remove gp_reg_size and
3247         and fp_reg_size.
3248         (mips_compute_frame_info): Remove associated code.
3249         (mips16e_build_save_restore): Check num_fp instead of fp_reg_size.
3250
3251 2007-10-18  Richard Sandiford  <rsandifo@nildram.co.uk>
3252
3253         * config/mips/mips-protos.h (compute_frame_size): Delete.
3254         * config/mips/mips.h: Update comments.
3255         * config/mips/mips.c (mips_frame_info): Remove initialized.
3256         (compute_frame_size): Rename to...
3257         (mips_compute_frame_info): ...this and make static.  Remove the
3258         SIZE argument and return no value.  Remove the setting of initialized.
3259         Update rest of file accordingly.
3260         (mips_set_return_address): Don't call compute_frame_size.
3261         (mips_can_use_return_insn): Don't check df_regs_ever_live_p (31).
3262         Don't call compute_frame_size.
3263
3264 2007-10-18  Richard Sandiford  <rsandifo@nildram.co.uk>
3265
3266         * config/mips/mips-protos.h (mips_frame_pointer_required): Declare.
3267         * config/mips/mips.h (FRAME_POINTER_REQUIRED): Use
3268         mips_hard_frame_pointer_required.
3269         (CAN_ELIMINATE): Rely on FRAME_POINTER_REQUIRED to check for
3270         large MIPS16 frames.
3271         * config/mips/mips.c (mips_frame_pointer_required): New function.
3272
3273 2007-10-18  Richard Sandiford  <rsandifo@nildram.co.uk>
3274
3275         * config/mips/mips.c (mips_frame_info): Add arg_pointer_offset
3276         and hard_frame_pointer_offset.
3277         (mips_debugger_offset): Use hard_frame_pointer_offset.
3278         (mips16e_collect_argument_save_p): Likewise.
3279         (compute_frame_size): Initialize arg_pointer_offset and
3280         hard_frame_pointer_offset.
3281         (mips_initial_elimination_offset): Use them.
3282         (mips_output_function_prologue): Use hard_frame_pointer_offset.
3283         (mips_expand_prologue, mips_expand_epilogue): Likewise.
3284
3285 2007-10-18  Richard Sandiford  <rsandifo@nildram.co.uk>
3286
3287         * config/mips/mips.h (STARTING_FRAME_OFFSET): Remove rtl
3288         profiling code.
3289         * config/mips/mips.c (mips_frame_info): Give num_gp and num_fp type
3290         "unsigned int" rather than "int" and put them with the other
3291         register-related fields.  Put expanded comments above fields
3292         rather than to their right.
3293         (mips16e_mask_registers): Replace the GP_REG_SIZE_PTR argument
3294         with a NUM_REGS_PTR argument.
3295         (mips16e_save_restore_pattern_p): Update accordingly.
3296         (compute_frame_size): Clarify frame diagram.  Rewrite.
3297
3298 2007-10-18  Richard Sandiford  <rsandifo@nildram.co.uk>
3299
3300         * config/mips/mips-ftypes.def: New file.
3301         * config/mips/mips.c (MIPS_FTYPE_NAME1, MIPS_FTYPE_NAME2)
3302         (MIPS_FTYPE_NAME3, MIPS_FTYPE_NAME4): New macros.
3303         (mips_function_type): Redefine using mips-ftypes.def.
3304         (dsp_bdesc): Use POINTER rather than PTR in the MIPS_*_FTYPE_* names.
3305         (mips_builtin_vector_type): New function.
3306         (MIPS_ATYPE_VOID, MIPS_ATYPE_INT, MIPS_ATYPE_POINTER, MIPS_ATYPE_SI)
3307         (MIPS_ATYPE_USI, MIPS_ATYPE_DI, MIPS_ATYPE_SF, MIPS_ATYPE_DF)
3308         (MIPS_ATYPE_V2SF, MIPS_ATYPE_V2HI, MIPS_ATYPE_V4QI, MIPS_FTYPE_ATYPES1)
3309         (MIPS_FTYPE_ATYPES2, MIPS_FTYPE_ATYPES3, MIPS_FTYPE_ATYPES4): New
3310         macros.
3311         (mips_build_function_type): New function.
3312         (mips_init_builtins): Use it to create types lazily.
3313
3314 2007-10-18  Richard Sandiford  <rsandifo@nildram.co.uk>
3315
3316         * config/mips/mips.h (set_volatile): Delete.
3317         * config/mips/mips.c (set_volatile): Delete.
3318         (mips_print_operand_punctuation): New function, split out from
3319         print_operand.  Remove '%{', '%}', '%~', '%&' and '%!'.
3320         Use the same character ordering in the code and the comments.
3321         Use a recursive call to handle '*'.  Abort on unknown characters.
3322         (mips_init_print_operand_punct): New function, split out from
3323         override_options.
3324         (mips_print_int_branch_condition): New function, split out from
3325         print_operand.  Use GET_RTX_NAME.  Use output_operand_lossage
3326         to report unexpected codes.
3327         (mips_print_float_branch_condition): New function, split out from
3328         print_operand.  Use output_operand_lossage to report unexpected codes.
3329         (print_operand): Rework to use a case statement.  Use the
3330         same letter ordering in the code and the comments.  Use
3331         output_operand_lossage to report unexpected codes and
3332         reverse_condition to handle inverted branch conditions.
3333         (override_options): Use mips_init_print_operand_punct.
3334
3335 2007-10-18  Richard Sandiford  <rsandifo@nildram.co.uk>
3336
3337         * config/mips/mips.h: Move variable declarations to end of file and
3338         enclose them all in #ifndef USED_FOR_TARGET.
3339         * config/mips/mips.c: Reorder functions into more logical groups,
3340         and so that callees appear before callers.  Put the targetm
3341         initializer at the end of the file.  Remove forward static
3342         declarations where possible.
3343         (mips_init_builtins): Add "static" to definition.
3344         (mips_expand_builtin, mips_mode_rep_extended): Likewise.
3345
3346 2007-10-18  Richard Sandiford  <rsandifo@nildram.co.uk>
3347
3348         * config/mips/mips.c (TARGET_MIN_ANCHOR_OFFSET): Delete.
3349         (TARGET_MAX_ANCHOR_OFFSET): Delete.
3350         (mips_cannot_force_const_mem): Don't check TARGET_HAVE_TLS.
3351         (mips_set_mips16_mode): Initialize min_anchor_offset and
3352         max_anchor_offset directly to constants.
3353
3354 2007-10-18  Richard Sandiford  <rsandifo@nildram.co.uk>
3355
3356         * config/mips/mips.c: Delete trailing whitespace.
3357
3358 2007-10-18  Richard Sandiford  <rsandifo@nildram.co.uk>
3359
3360         * config/mips/mips.c (mips_expand_call): Use FAKE_CALL_REGNO.
3361         (mips_avoid_hazard): Allow multiple sets for HAZARD_DELAY,
3362         and pick the first.
3363         * config/mips/mips.md (load_call<mode>): Don't make the unspec
3364         depend on FAKE_CALL_REGNO.  Set FAKE_CALL_REGNO.
3365
3366 2007-10-18  David Daney  <ddaney@avtrex.com>
3367
3368         * config/mips/linux-unwind.h (mips_fallback_frame_state): Use new
3369         reg_offset variable to calculate register locations.
3370
3371 2007-10-18  Richard Guenther  <rguenther@suse.de>
3372
3373         * tree-ssa.c (uid_ssaname_map_eq): New function.
3374         (uid_ssaname_map_has): Likewise.
3375         (init_tree_ssa): Allocate default_defs as uid_ssaname map.
3376         * tree-flow.h (struct gimple_df): Make default_defs a
3377         uid_ssaname map.
3378         * tree-dfa.c (gimple_default_def): Deal with it.
3379         (set_default_def): Likewise.
3380
3381 2007-10-18  Richard Guenther  <rguenther@suse.de>
3382
3383         * tree-flow.h (struct gimple_df): Make referenced_vars
3384         a uid_decl_map.
3385         (uid_decl_map_eq): Declare.
3386         (uid_decl_map_hash): Likewise.
3387         * tree-ssa.c (uid_decl_map_eq): New function.
3388         (uid_decl_map_hash): Likewise.
3389         (init_tree_ssa): Make referenced_vars a uid_decl_map.
3390         * tree-flow-inline.h (first_referenced_var): Deal with
3391         the referenced_vars representation change.
3392         (next_referenced_var): Likewise.
3393         * tree-dfa.c (referenced_var_lookup): Likewise.
3394         (referenced_var_check_and_insert): Likewise.
3395         (remove_referenced_var): Likewise.
3396
3397 2007-10-18  Daniel Jacobowitz  <dan@codesourcery.com>
3398
3399         * config/mips/mips.c (mips_dwarf_register_span): New.
3400         (TARGET_DWARF_REGISTER_SPAN): Define.
3401
3402 2007-10-18  Chen Liqin  <liqin@sunnorth.com.cn>
3403
3404         * config.gcc : update score-*-elf(extra_objs).
3405         * config/score/mac.md : Remove.
3406         * config/score/misc.md : Remove.
3407         * config/score/score7.md : Remove.
3408         * config/score/score-mdaux.h : Remove.
3409         * config/score/score-mdaux.c : Remove.
3410         * config/score/score-version.h : Remove.
3411         * config/score/score-generic.md : New.
3412         * config/score/score3.h : New.
3413         * config/score/score3.c : New.
3414         * config/score/score7.h : New.
3415         * config/score/score7.c : New.
3416         * config/score/mul-div.S : add flush_cache score3 support.
3417         * config/score/elf.h : Fix some typos.
3418         * config/score/score.md : merge score3 and score7 pattern.
3419         * config/score/score.c : use to seperate which target it used.
3420         * config/score/score.h : use to seperate the target macro.
3421         * config/score/score.opt : remove -mmac option , add -mscore3,
3422         -mscore3d and -march OPTION support.
3423  
3424 2007-10-17  Andrew Pinski  <andrew_pins