OSDN Git Service

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