OSDN Git Service

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