OSDN Git Service

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