OSDN Git Service

* configure.ac <GAS features, nop mnemonic>: Add pattern
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2009-03-24  Hans-Peter Nilsson  <hp@axis.com>
2
3         * configure.ac <GAS features, nop mnemonic>: Add pattern
4         crisv32-*-* for "nop".
5         <GAS features, Thread-local storage>: Add item for CRIS and
6         CRIS v32.
7         * configure: Regenerate.
8
9 2009-03-24  Ira Rosen  <irar@il.ibm.com>
10
11         PR tree-optimization/39529
12         * tree-vect-transform.c (vect_create_data_ref_ptr): Call
13         mark_sym_for_renaming for the tag copied to the new vector
14         pointer.
15
16 2009-03-24  Arthur Loiret  <aloiret@debian.org>
17
18         * config.host (alpha*-*-linux*): Use driver-alpha.o and
19         alpha/x-alpha.
20         * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
21         EXTRA_SPEC_FUNCTIONS.
22         (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
23         * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
24         * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
25         -march and -mtune options.
26
27 2009-03-24  Ralf Corsépius <ralf.corsepius@rtems.org>
28
29         * config/m68k/t-rtems: Add m5329 multilib.
30
31 2009-03-24  Dodji Seketeli  <dodji@redhat.com>
32             Jakub Jelinek  <jakub@redhat.com>
33
34         PR debug/39524
35         * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
36         nodes.
37
38 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
39
40         PR c/39495
41         * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
42         instead of c_parser_expression_conv, if original_code isn't one of the
43         4 allowed comparison codes, fail.
44
45 2009-03-23  Richard Guenther  <rguenther@suse.de>
46
47         * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
48         * tree.h (struct tree_type): Likewise.
49         * reload.h (struct insn_chain): Likewise.
50         * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
51         * function.h (struct function): Likewise.
52         * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
53
54 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
55
56         PR tree-optimization/39516
57         * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
58
59 2009-03-23 Bingfeng Mei  <bmei@broadcom.com>
60
61         * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint 
62         should be set true if BITS_PER_WORD of target is bigger than 32
63
64 2009-03-22  Hans-Peter Nilsson  <hp@axis.com>
65
66         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
67         Translate -B-options to -rpath-link.  Correct existing
68         rpath-link and conditionalize on !nostdlib.
69
70 2009-03-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
71
72         * doc/extend.texi (Function Attributes, Variable Attributes):
73         Fix typos.
74         * doc/invoke.texi (Debugging Options, Optimize Options)
75         (i386 and x86-64 Options, MCore Options): Likewise.
76
77 2009-03-20  Jakub Jelinek  <jakub@redhat.com>
78
79         PR debug/37890
80         * dwarf2out.c (gen_namespace_die): Add context_die argument and use
81         it for block local namespace aliases.
82         (gen_decl_die): Pass context_die to gen_namespace_die.
83
84 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
85
86         PR c/39495
87         * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
88         minimum or maximum value.
89
90 2009-03-19  Alexandre Oliva  <aoliva@redhat.com>
91
92         * reginfo.c (globalize_reg): Recompute derived reg sets.
93
94 2009-03-19  Ozkan Sezer <sezeroz@gmail.com>
95
96         PR target/39063
97         * libgcc2.c (mprotect): Do not use signed arguments for
98         VirtualProtect, use DWORD arguments.  Also fix the 'may
99         be used uninitialized' warning for the np variable.
100
101 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
102
103         PR target/39496
104         * config/i386/i386.c (ix86_function_regparm): Don't optimize local
105         functions using regparm calling conventions when not optimizing.
106         (ix86_function_sseregparm): Similarly for sseregparm calling
107         conventions.
108
109 2009-03-19  Li Feng  <nemokingdom@gmail.com>
110
111         PR middle-end/39500
112         * tree-data-ref.c (analyze_subscript_affine_affine): There is no
113         dependence if the first conflict is after niter iterations.
114
115 2009-03-19  Hans-Peter Nilsson  <hp@axis.com>
116
117         PR middle-end/38609
118         * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
119         functions with dynamic stack-pointer adjustments.
120
121 2009-03-19  Ben Elliston  <bje@au.ibm.com>
122
123         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
124         option; change to -msdata=data.
125
126 2009-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
127
128         * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
129         and -fopenmp.
130
131 2009-03-18  Eric Botcazou  <ebotcazou@adacore.com>
132
133         PR target/35180
134         * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
135
136 2009-03-18  Sandra Loosemore  <sandra@codesourcery.com>
137
138         * doc/invoke.texi (Code Gen Options): Expand discussion of
139         -fno-common.
140
141 2009-03-18  Jakub Jelinek  <jakub@redhat.com>
142
143         * dse.c (struct group_info): Reorder fields for 64-bit hosts.
144         * matrix-reorg.c (struct matrix_info): Likewise.
145         * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
146         * rtl.h (struct mem_attrs): Likewise.
147         * df.h (struct df): Likewise.
148         * tree-data-ref.h (struct data_dependence_relation): Likewise.
149         * ira-int.h (struct ira_allocno): Likewise.
150         * df-scan.c (struct df_collection_rec): Likewise.
151         * ira.c (struct equivalence): Likewise.
152         * function.c (struct temp_slot): Likewise.
153         * cfgloop.h (struct loop): Likewise.
154
155         PR debug/39485
156         * function.c (use_register_for_decl): When not optimizing, disregard
157         register keyword for variables with types containing methods.
158
159 2009-03-18  Sebastian Pop  <sebastian.pop@amd.com>
160
161         PR middle-end/39447
162         * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
163         (is_simple_operand): Call contains_component_ref_p before calling data
164         reference analysis that would fail on COMPONENT_REFs.
165
166         * tree-vrp.c (search_for_addr_array): Fix formatting.
167
168 2009-03-18  Richard Guenther  <rguenther@suse.de>
169
170         * tree-vect-transform.c (vect_loop_versioning): Fold the
171         generated comparisons.
172         * tree-vectorizer.c (set_prologue_iterations): Likewise.
173         (slpeel_tree_peel_loop_to_edge): Likewise.
174
175 2009-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
176
177         PR middle-end/37805
178         * opts.c (print_specific_help): In addition to `undocumented',
179         accept `separate' and `joined' flags if passed alone.  Describe
180         output by the first matched one of those.
181         (common_handle_option): Skip over empty strings.
182         * gcc.c (display_help): Fix help string for `--help='.
183         * doc/invoke.texi (Option Summary, Overall Options): With
184         `--help=', classes and qualifiers can both be repeated, but
185         only the latter can be negated.  One should not pass only
186         negated qualifiers.  Fix markup and examples.
187
188         Revert
189         2008-10-14  Jakub Jelinek  <jakub@redhat.com>
190         PR middle-end/37805
191         * opts.c (common_handle_option): Don't ICE on -fhelp=joined
192         and -fhelp=separate.
193
194 2009-03-17  Jing Yu  <jingyu@google.com>
195
196         PR middle-end/39378
197         * function.h (struct rtl_data): Move is_thunk from here...
198         (struct function): ...to here.
199         * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
200         * varasm.c (assemble_start_function): Change is_thunk from crtl to
201         cfun.
202         * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
203         cfun.
204         (alpha_does_function_need_gp, alpha_start_function): Likewise.
205         (alpha_output_function_end_prologue): Likewise.
206         (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
207         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
208         (rs6000_output_function_epilogue): Likewise.
209         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
210
211 2009-03-17  Uros Bizjak  <ubizjak@gmail.com>
212
213         PR target/39482
214         * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
215         from different units in a single alternative.
216         (*truncdfsf_i387): Ditto.
217         (*truncxfsf2_mixed): Ditto.
218         (*truncxfdf2_mixed): Ditto.
219
220 2009-03-17  Jakub Jelinek  <jakub@redhat.com>
221
222         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
223         non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
224
225         PR debug/39474
226         * tree-ssa-live.c (remove_unused_locals): Don't remove local
227         unused non-artificial variables when not optimizing.
228
229         PR debug/39471
230         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
231         DW_TAG_imported_module even if decl is IMPORTED_DECL with
232         NAMESPACE_DECL in its DECL_INITIAL.
233
234         PR middle-end/39443
235         * optabs.c (set_user_assembler_libfunc): New function.
236         * expr.h (set_user_assembler_libfunc): New prototype.
237         * c-common.c: Include libfuncs.h.
238         (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
239         for memcmp, memset, memcpy, memmove and abort.
240         * Makefile.in (c-common.o): Depend on libfuncs.h.
241
242         PR debug/39412
243         * dwarf2out.c (gen_inlined_enumeration_type_die,
244         gen_inlined_structure_type_die, gen_inlined_union_type_die,
245         gen_tagged_type_instantiation_die): Removed.
246         (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
247         do nothing.
248
249 2009-03-17  Janis Johnson  <janis187@us.ibm.com>
250
251         PR testsuite/38526
252         * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
253         its use.
254         (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
255         (check-parallel-%): Ditto.
256         (check-consistency): Ditto.
257
258 2009-03-17  Kai Tietz  <kai.tietz@onevision.com>
259
260         * ipa-struct-reorg.c (create_general_new_stmt): Initialize
261         local variable rhs by NULL_TREE.
262
263 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
264
265         PR target/39477
266         * doc/extend.texi: Correct register behavior for regparm on Intel 386.
267
268 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
269
270         PR target/39476
271         * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
272
273 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
274
275         PR target/39473
276         * config/i386/i386.c (ix86_expand_call): Check extra clobbers
277         for ms->sysv ABI calls only in 64bit mode.
278
279         * config/i386/i386.md (untyped_call): Support 32bit.
280
281 2009-03-16  H.J. Lu  <hongjiu.lu@intel.com>
282
283         * doc/extend.texi: Replace x86_65 with x86_64.
284
285 2009-03-16  Jakub Jelinek  <jakub@redhat.com>
286
287         PR tree-optimization/39455
288         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
289         mismatches for POINTER_TYPE_P (type).
290         (number_of_iterations_le): Likewise.
291
292 2009-03-16  Hariharan Sandanagobalane <hariharan@picochip.com>
293
294         * config/picochip/picochip.c: Removed profiling support.
295         * config/picochip/picochip.md: Removed profiling instruction.
296         * config/picochip/picochip.h: Removed profiling builtin.
297
298 2009-03-16  Joseph Myers  <joseph@codesourcery.com>
299
300         * doc/install.texi (--with-host-libstdcxx): Document.
301
302 2009-03-14  Anatoly Sokolov  <aesok@post.ru>
303
304         PR target/34299
305         * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
306         generate a warning if the function name does not begin with
307         "__vector" and the function has either the 'signal' or 'interrupt'
308         attribute, from here to ...
309         (avr_declare_function_name): ...here. New function.
310         * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
311         * config/avr/avr-protos.h (avr_declare_function_name): Declare.
312
313 2009-03-14  Jakub Jelinek  <jakub@redhat.com>
314
315         PR bootstrap/39454
316         * cse.c (fold_rtx): Don't modify original const_arg1 when
317         canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
318         separate variable instead.
319         * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
320         from out of range shift counts.
321         (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
322
323 2008-03-13  Catherine Moore  <clm@codesourcery.com>
324
325         * gcc/config/i386/x-mingw32 (host-mingw32.o): Replace
326         diagnostic.h with $(DIAGNOSTIC_H).
327
328 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
329
330         PR target/39431
331         * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
332         predicate.
333         * config/i386/sync.md (sync_compare_and_swap<mode>,
334         sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
335         if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
336         into a register.
337         (sync_double_compare_and_swapdi_pic,
338         sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
339         cmpxchg8b_pic_memory_operand instead of just memory_operand.
340
341 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
342
343         PR target/39445
344         * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
345
346 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
347
348         PR target/39327
349         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
350         (avx_addsubv4df3): Likewise.
351         (*avx_addsubv4sf3): Likewise.
352         (sse3_addsubv4sf3): Likewise.
353
354 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
355
356         PR target/38824
357         * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
358
359 2009-03-12  Vladimir Makarov  <vmakarov@redhat.com>
360
361         PR debug/39432
362         * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
363         * ira-conflicts.c (ira_build_conflicts): Prohibit call used
364         registers for allocnos created from user-defined variables.
365
366 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
367
368         PR target/39181
369         * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
370         of non-integer mode as well.
371
372 2009-03-11  Adam Nemet  <anemet@caviumnetworks.com>
373
374         * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
375         for functions for which the parameter types are unknown.
376
377 2009-03-11  Jakub Jelinek  <jakub@redhat.com>
378
379         PR target/39137
380         * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
381         * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
382         * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
383         * config/i386/i386.c (ix86_local_alignment): For
384         -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
385         long long variables on the stack to avoid dynamic realignment.
386         Allow the first argument to be a decl rather than type.
387         * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
388
389 2009-03-11  Nick Clifton  <nickc@redhat.com>
390
391         PR target/5362
392         * config/mcore/mcore.opt: Remove deprecated m4align and m8align
393         options.
394         Add description to mno-lsim option.
395         * config/mcore/mcore.h: Remove comment about deprecated m4align
396         option.
397         (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
398         * doc/invoke.texi: Add description of mno-lsim and
399         mstack-increment options.
400
401         * config/fr30/fr30.opt: Document the -mno-lsim option.
402         * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
403         and -mno-lsim options.
404
405 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
406
407         * fold-const.c (fold_comparison): Only call fold_inf_compare
408         if the mode supports infinities.
409
410 2009-03-11  Jason Merrill  <jason@redhat.com>
411
412         PR debug/39086
413         * tree-nrv.c (tree_nrv): Don't do this optimization if the front
414         end already did.  Notice GIMPLE_CALL modifications of the result.
415         Don't copy debug information from an ignored decl or a decl from
416         another function.
417
418 2009-03-10  Richard Guenther  <rguenther@suse.de>
419             Nathan Froyd  <froydnj@codesourcery.com>
420
421         PR middle-end/37850
422         * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
423         (__divMODE3): Likewise.
424
425 2009-03-09  Jakub Jelinek  <jakub@redhat.com>
426
427         PR tree-optimization/39394
428         * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
429         DECL_SIZE_UNIT of variable length FIELD_DECLs.
430
431 2009-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
432
433         * recog.c (verfiy_changes): Disallow renaming of hard regs in
434         inline asms for register asm ("") declarations.
435
436 2009-03-09  Eric Botcazou  <ebotcazou@adacore.com>
437
438         * fold-const.c (fold_unary): Fix comment.
439
440 2009-03-07  Jan Hubicka  <jh@suse.cz>
441
442         PR target/39361
443         * tree-inline.c (setup_one_parameter): Do replacement of const argument
444         by constant in SSA form.
445
446 2009-03-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
447
448         PR middle-end/38028
449         * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
450         determine alignment passed to assign_stack_local.
451         (assign_parms_unsplit_complex): Likewise.
452         * except.c (sjlj_build_landing_pads): Likewise.
453
454 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
455
456         PR middle-end/39360
457         * tree-flow.h (add_referenced_var): Return bool instead of void.
458         * tree-dfa.c (add_referenced_var): Return result of
459         referenced_var_check_and_insert call.
460         * tree-inline.c (expand_call_inline): Call add_referenced_var instead
461         of referenced_var_check_and_insert.
462
463         PR debug/39372
464         * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
465         (gen_variable_die): Emit DW_AT_location on abstract static variable's
466         DIE, don't emit it if abstract origin already has it.
467         * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
468         BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
469
470 2009-03-06  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
471
472         * genpreds.c: (needs_variable): Fix parentheses at variable name
473         detection.
474         (write_tm_constrs_h): Indent generated code.
475
476 2009-03-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
477
478         * doc/extend.texi (Function Attributes): Add documentation
479         for isr attributes.
480
481 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
482
483         PR debug/39387
484         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
485         take locus from its DECL_SOURCE_LOCATION instead of input_location.
486
487 2009-03-05  Bernd Schmidt  <bernd.schmidt@analog.com>
488
489         * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
490         the loop as bad.
491
492 2009-03-05  Jakub Jelinek  <jakub@redhat.com>
493
494         PR debug/39379
495         * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
496         with blocks containing IMPORTED_DECLs in BLOCK_VARS.
497
498 2009-03-05  Uros Bizjak  <ubizjak@gmail.com>
499
500         * config/i386/i386.md (R8_REG, R9_REG): New constants.
501         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
502         constants instead of magic numbers.
503         (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
504         (QI_REG_P): Ditto.
505         * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
506         (x86_64_ms_abi_int_parameter_registers): Ditto.
507         (x86_64_int_return_registers): Ditto.
508         (ix86_maybe_switch_abi): Ditto.
509         (ix86_expand_call): Ditto for clobbered_registers array.
510         (ix86_hard_regno_mode_ok): Ditto.
511         (x86_extended_QIreg_mentioned_p): Ditto.
512
513 2009-03-05  J"orn Rennecke  <joern.rennecke@arc.com>
514
515         PR tree-optimization/39349
516         * cse.c (cse_insn): Fix loop to stop at VOIDmode.
517
518         * combine.c (gen_lowpart_for_combine): Use omode when generating
519         clobber.
520
521 2009-03-04  J"orn Rennecke  <joern.rennecke@arc.com>
522
523         PR rtl-optimization/39235
524         * loop-iv.c (get_simple_loop_desc): Use XCNEW.
525
526 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
527
528         * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
529
530 2009-03-04  Richard Guenther  <rguenther@suse.de>
531
532         PR tree-optimization/39362
533         * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
534         that occur in abnormal PHIs should be varying.
535
536 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
537
538         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
539         Extend comments.
540         (simple_iv):  Take loop as an argument instead of statement.
541         * tree-scalar-evolution.h (simple_iv): Declaration changed.
542         * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
543         to simple_iv.
544         * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
545         Ditto.
546         * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
547         * matrix-reorg.c (analyze_transpose): Ditto.
548         * tree-data-ref.c (dr_analyze_innermost): Ditto.
549         * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
550         * tree-predcom.c (ref_at_iteration): Ditto.
551         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
552
553 2009-03-04  Richard Guenther  <rguenther@suse.de>
554
555         PR tree-optimization/39358
556         * tree-ssa-structalias.c (do_sd_constraint): Fix check for
557         escaped_id and callused_id.
558         (solve_graph): Likewise.
559
560 2009-03-04  Richard Guenther  <rguenther@suse.de>
561
562         PR tree-optimization/39339
563         * tree-sra.c (try_instantiate_multiple_fields): Make it
564         no longer ICE on the above.
565
566 2009-03-03  Joseph Myers  <joseph@codesourcery.com>
567
568         * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
569         that fits within Pmode.
570
571 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
572
573         PR middle-end/10109
574         * tm.texi (LIBCALL_VALUE): Update description.
575
576 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
577
578         PR middle-end/34443
579         * doc/extend.texi (section): Update description.
580
581 2009-03-03  H.J. Lu  <hongjiu.lu@intel.com>
582
583         PR middle-end/39345
584         * tree-inline.c (remapped_type): New.
585         (can_be_nonlocal): Call remapped_type instead of remap_type.
586
587 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
588
589         PR fortran/39354
590         * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
591         TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
592
593 2009-03-03  Richard Guenther  <rguenther@suse.de>
594
595         PR middle-end/39272
596         * tree.c (tree_nonartificial_location): New function.
597         * tree.h (tree_nonartificial_location): Declare.
598         * builtins.c (expand_builtin_memory_chk): Provide location
599         of the call location for artificial function pieces.
600         (maybe_emit_chk_warning): Likewise.
601         (maybe_emit_sprintf_chk_warning): Likewise.
602         (maybe_emit_free_warning): Likewise.
603         * expr.c (expand_expr_real_1): Likewise.
604
605 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
606
607         PR tree-optimization/39343
608         * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
609         COMPONENT_REF t has ARRAY_TYPE.
610
611 2009-03-02  Sebastian Pop  <sebastian.pop@amd.com>
612
613         PR middle-end/39335
614         * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
615         when the type precision of the induction variable should be
616         larger than the type precision of nit.
617         (gen_parallel_loop): Update use of canonicalize_loop_ivs.
618         * graphite.c (graphite_loop_normal_form): Same.
619         * tree-flow.h (canonicalize_loop_ivs): Update declaration.
620
621 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
622
623         * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
624         (*call_1_rex64_ms_sysv): Use named constants instead of magic
625         numbers to describe clobbered registers.
626         (*call_value_0_rex64_ms_sysv): Ditto.
627         * config/i386/mmx.md (mmx_emms): Ditto.
628         (mmx_femms): Ditto.
629
630 2009-03-02  Richard Sandiford  <rdsandiford@googlemail.com>
631
632         * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
633         of ABI_64.
634
635 2009-03-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
636
637         * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
638         (spu_section_type_flags): New function.
639
640 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
641
642         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
643         reg_class_contents of FLOAT_REGS into a temporary.
644
645 2009-03-02  Richard Guenther  <rguenther@suse.de>
646             Ira Rosen  <irar@il.ibm.com>
647
648         PR tree-optimization/39318
649         * tree-vect-transform.c (vectorizable_call): Transfer the EH region
650         information to the vectorized statement.
651
652 2009-03-01  Uros Bizjak  <ubizjak@gmail.com>
653
654         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
655         variable.  Use defined names instead of magic constants for REX SSE
656         registers.
657
658 2009-03-01  Richard Guenther  <rguenther@suse.de>
659
660         PR tree-optimization/39331
661         * omp-low.c (lower_send_shared_vars): Do not receive new
662         values for the reference of DECL_BY_REFERENCE parms or results.
663
664 2009-03-01  Jan Hubicka  <jh@suse.cz>
665
666         PR debug/39267
667         * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
668         BLOCK_NONLOCALIZED_VAR): New macros.
669         (tree_block): Add nonlocalized_vars.
670         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
671         gen_decl_die): Add origin argument.  Allow generation of die with
672         origin at hand only.
673         (gen_member_die, gen_type_die_with_usage, force_decl_die,
674         declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
675         of gen_*.
676         (gen_block_die): Fix checking for unused blocks.
677         (process_scope_var): Break out from .... ; work with origins only.
678         (decls_for_scope) ... here; process nonlocalized list.
679         (dwarf2out_ignore_block): Look for nonlocalized vars.
680         * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
681         vars.
682         (dump_scope_block): Dump them.
683         * tree-inline.c (remap_decls): Handle nonlocalized vars.
684         (remap_block): Likewise.
685         (can_be_nonlocal): New predicate.
686         (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
687
688 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
689
690         * configure: Regenerate.
691
692 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
693
694         * optc-gen.awk: No need to duplicate option flags twice.
695         Reuse help texts for duplicate options which do not have any.
696
697         * gcc.c (display_help): Document --version.
698
699         * gcc.c (main): If print_help_list and verbose_flag, ensure
700         driver output comes before subprocess output.
701
702         * optc-gen.awk: Assign all remaining fields to help string,
703         space-separated, for multi-line help in *.opt.
704
705         * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
706         -Wno-pedantic-ms-format is for MinGW targets only.
707
708         * doc/options.texi (Option file format): Fix bad indentation,
709         restoring dropped sentence.
710
711 2009-02-28  Jan Hubicka  <jh@suse.cz>
712
713         * tree-inline.c (tree_function_versioning): Output debug info.
714
715 2009-02-28  Jan Hubicka  <jh@suse.cz>
716
717         PR debug/39267
718         * tree-inline.c (setup_one_parameter): Do not copy propagate
719         arguments when not optimizing.
720
721 2009-02-28  H.J. Lu  <hongjiu.lu@intel.com>
722
723         PR target/39327
724         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
725         (avx_addsubv4df3): Likewise.
726         (*avx_addsubv4sf3): Likewise.
727         (sse3_addsubv4sf3): Likewise.
728         (*avx_addsubv2df3): Likewise.
729         (sse3_addsubv2df3): Likewise.
730         (avx_unpckhps256): Correct item selectors.
731         (avx_unpcklps256): Likewise.
732         (avx_unpckhpd256): Likewise.
733         (avx_unpcklpd256): Likewise.
734
735 2009-02-28  Jan Hubicka  <jh@suse.cz>
736
737         * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
738         static vars.
739         (copy_arguments_for_versioning): If var is declared don't declare it.
740         (tree_function_versioning): First setup substitutions and then copy
741         args.
742
743 2009-02-27  Jan Hubicka  <jh@suse.cz>
744
745         PR debug/39267
746         * cgraph.h (varpool_output_debug_info): Remove.
747         * cgraphunit.c (varpool_output_debug_info): Remove.
748         * dwarf2out.c (deferred_locations_struct): New struct
749         (deferred_locations): New type.
750         (deferred_locations_list): New static var.
751         (deffer_location): New function.
752         (gen_variable_die): Use it.
753         (decls_for_scope): Output info on local static vars.
754         (dwarf2out_finish): Process deferred locations.
755         * varpool.c (varpool_output_debug_info): Remove.
756
757 2009-02-27  Jan Hubicka  <jh@suse.cz>
758
759         PR debug/39267
760         * tree.h (TREE_PROTECTED): Fix comment.
761         (BLOCK_HANDLER_BLOCK): Remove.
762         (struct tree_block): Remove handler_block add body_block.
763         (inlined_function_outer_scope_p): New.
764         (is_body_block): Remove.
765         * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
766         * dwarf2out.c (is_inlined_entry_point): Remove.
767         (add_high_low_attributes): Use inlined_function_outer_scope_p.
768         (gen_block_die): Use is_inlined_entry_point check.  Remove body block
769         code.
770         * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
771         * gimplify.c (gimplify_expr): Gimplify body blocks.
772         * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
773         block with multiple subblocks.
774         (dump_scope_block): Prettier output; dump more flags and info.
775         (dump_scope_blocks): New.
776         (remove_unused_locals): Use dump_scope_blocks.
777         * tree-flow.h (dump_scope_blocks): Declare.
778         * tree-cfg.c (execute_build_cfg): Dump scope blocks.
779         * stmt.c (is_body_block): Remove.
780         * tree-inline.c (remap_block): Copy BODY_BLOCK info.
781         * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
782
783 2009-02-27  Sebastian Pop  <sebastian.pop@amd.com>
784
785         PR middle-end/39308
786         * graphite.c (graphite_loop_normal_form): Do not call 
787         number_of_iterations_exit from a gcc_assert.
788
789 2009-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
790
791         * gcc/config/s390/s390.c: (s390_swap_cmp): Look for conditional
792         jumps if COND is NULL.
793         (find_cond_jump): New function.
794         (s390_z10_optimize_cmp): Handling for reg-reg compares added.
795         * gcc/config/s390/s390.md: Remove z10_cobra attribute value.
796
797 2009-02-26  Uros Bizjak  <ubizjak@gmail.com>
798
799         * config/alpha/alpha.h (alpha_expand_mov): Return false if
800         force_const_mem returns NULL_RTX.
801
802 2009-02-26  Jan Hubicka  <jh@suse.cz>
803
804         PR debug/39267
805         * cgraph.h (varpool_output_debug_info): Remove.
806         * cgraphunit.c (varpool_output_debug_info): Remove.
807         * dwarf2out.c (deferred_locations_struct): New struct
808         (deferred_locations): New type.
809         (deferred_locations_list): New static var.
810         (deffer_location): New function.
811         (gen_variable_die): Use it.
812         (decls_for_scope): Output info on local static vars.
813         (dwarf2out_finish): Process deferred locations.
814         * varpool.c (varpool_output_debug_info): Remove.
815
816 2009-02-25  H.J. Lu  <hongjiu.lu@intel.com>
817
818         PR rtl-optimization/39241
819         * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
820         to subreg_offset_representable_p.
821
822 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
823
824         * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
825         execute function prototype.  Get f and nregs from max_reg_num
826         and get_insns.  Remove the first backward pass as it's dead,
827         guard the forward pass by flag_expensive_optimizations.
828         (rest_of_handle_regmove): Delete.
829         (pass_regmove): Replace it with regmove_optimize.
830
831 2009-02-25  Martin Jambor  <mjambor@suse.cz>
832
833         PR tree-optimization/39259
834         * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
835         calls_alloca function flags.
836         (copy_bb): Set calls_setjmp and alls_alloca function flags if such
837         calls are detected.
838
839 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
840
841         * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
842         flags_set_1_rtx, flags_set_1_set): Delete.
843         (regmove_optimize): Do not call mark_flags_life_zones.
844
845 2009-02-24  Julian Brown  <julian@codesourcery.com>
846
847         PR target/35965
848         * config/arm/arm.c (require_pic_register): Only set
849         cfun->machine->pic_reg once per function.
850
851 2009-02-24  Sandra Loosemore  <sandra@codesourcery.com>
852
853         * doc/invoke.texi (Link Options): Document an easier way to pass
854         options that take arguments to the GNU linker using -Xlinker and -Wl.
855
856 2009-02-24  Steve Ellcey  <sje@cup.hp.com>
857
858         PR target/33785
859         * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
860
861 2009-02-24  Richard Guenther  <rguenther@suse.de>
862
863         PR debug/39285
864         * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
865
866 2009-02-24  Richard Guenther  <rguenther@suse.de>
867             Zdenek Dvorak  <ook@ucw.cz>
868
869         PR tree-optimization/39233
870         * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
871         from converting them to a generic type.
872
873 2009-02-23  Sebastian Pop  <sebastian.pop@amd.com>
874
875         PR tree-optimization/39260
876         * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
877         contains a condition with a real type.
878         (build_scop_conditions_1): Conditions are always last_stmt of a bb.
879
880 2009-02-23  Jason Merrill  <jason@redhat.com>
881
882         PR c++/38880
883         * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
884         narrowing_initializer_constant_valid_p.
885         (narrowing_initializer_constant_valid_p): Don't return 
886         null_pointer_node for adding a pointer to itself.
887
888 2009-02-23  Jan Hubicka  <jh@suse.cz>
889
890         PR c/12245
891         * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
892         resizing.
893
894 2009-02-23  Jan Hubicka  <jh@suse.cz>
895
896         PR tree-optimization/37709
897         * tree.c (block_ultimate_origin): Move here from dwarf2out.
898         * tree.h (block_ultimate_origin): Declare.
899         * dwarf2out.c (block_ultimate_origin): Move to tree.c
900         * tree-ssa-live.c (remove_unused_scope_block_p):
901         Eliminate blocks containig no instructions nor live variables nor
902         nested blocks.
903         (dump_scope_block): New function.
904         (remove_unused_locals): Enable removal of dead blocks by default;
905         enable dumping at TDF_DETAILS.
906
907 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
908
909         * config/i386/i386.c (classify_argument): Don't allow COImode
910         and OImode.
911         (function_arg_advance_32): Don't allow OImode.
912         (function_arg_32): Likewise.
913         (function_value_32): Likewise.
914         (return_in_memory_32): Likewise.
915         (function_arg_64): Remove OImode comment.
916
917 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
918
919         PR target/39261
920         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
921         ix86_expand_vector_set for V4DImode in 64bit mode only.
922         (ix86_expand_vector_init_one_var): Likewise.
923
924 2009-02-21  Sebastian Pop  <sebastian.pop@amd.com>
925
926         * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
927
928 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
929
930         PR bootstrap/39257
931         * loop-iv.c: Revert last change.
932         * emit-rtl.c: Likewise.
933
934 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
935
936         PR target/39256
937         * config/i386/i386.c (type_natural_mode): Remove an extra
938         space in the warning message.
939         (function_value_32): Handle 32-byte vector modes.
940         (return_in_memory_32): Likewise.
941
942 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
943
944         * loop-iv.c (truncate_value): New function.
945         (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
946         of lowpart_subreg.
947         (lowpart_subreg): Move to...
948         * emit-rtl.c: ...here.
949
950 2009-02-21  Danny Smith  <dannysmith@users.sourceforge.net>
951
952         * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
953         accidental and undocumented change at revision 140860.
954
955 2009-02-21  Joseph Myers  <joseph@codesourcery.com>
956
957         * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
958         take gimple_seq * arguments.
959         (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
960         types_compatible_p langhook.
961
962 2009-02-20  Mark Mitchell  <mark@codesourcery.com>
963             Joseph Myers  <joseph@codesourcery.com>
964
965         * config/arm/arm.c (arm_builtin_va_list): New function.
966         (arm_expand_builtin_va_start): Likewise.
967         (arm_gimplify_va_arg_expr): Likewise.
968         (TARGET_BUILD_BUILTIN_VA_LIST): Define.
969         (TARGET_BUILD_BUILTIN_VA_START): Likewise.
970         (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
971         (va_list_type): New variable.
972         (arm_mangle_type): Mangle va_list_type appropriately.
973
974 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
975
976         PR middle-end/39157
977         * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
978         * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
979         * params.def (loop-invariant-max-bbs-in-loop): New parameter.
980         * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
981         parameter to 1000 for -O1 by default.
982         * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
983         parameter.
984         * loop-invariant.c: Include params.h.
985         (move_loop_invariants): Don't call move_single_loop_invariants on
986         very large loops.
987
988 2009-02-20  Jaka Mocnik  <jaka@xlab.si>
989
990         * calls.c (emit_library_call_value_1): Use slot_offset instead of
991         offset when calculating bounds for indexing stack_usage_map.  Fixes
992         a buffer overflow with certain target setups.
993
994 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
995
996         PR target/39240
997         * calls.c (expand_call): Clear try_tail_call if caller and callee
998         disagree in promotion of function return value.
999
1000 2009-02-19  Jakub Jelinek  <jakub@redhat.com>
1001
1002         PR target/39175
1003         * c-common.c (c_determine_visibility): If visibility changed and
1004         DECL_RTL has been already set, call make_decl_rtl to update symbol
1005         flags.
1006
1007 2009-02-19  H.J. Lu  <hongjiu.lu@intel.com>
1008
1009         PR c++/39188
1010         * varasm.c (assemble_variable): Don't check DECL_NAME when
1011         globalizing a variable.
1012
1013 2009-02-19  Joseph Myers  <joseph@codesourcery.com>
1014
1015         PR c/38483
1016         * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
1017         expression before any __builtin_trap call.
1018         * c-typeck.c (build_function_call): Convert and check function
1019         arguments before generating a call to a trap.  Evaluate the
1020         function arguments before the trap.
1021
1022 2009-02-19  Uros Bizjak  <ubizjak@gmail.com>
1023
1024         PR target/39228
1025         * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
1026         (UNSPEC_FXAM_MEM): New unspec.
1027         (fxam<mode>2_i387_with_temp): New insn and split pattern.
1028         (isinf<mode>2): Use MODEF mode iterator.  Force operand[1] through
1029         memory using fxam<mode>2_i387_with_temp to remove excess precision.
1030
1031 2009-02-19  Richard Guenther  <rguenther@suse.de>
1032
1033         PR tree-optimization/39207
1034         PR tree-optimization/39074
1035         * tree-ssa-structalias.c (storedanything_id, var_storedanything,
1036         storedanything_tree): New.
1037         (do_ds_constraint): Simplify ANYTHING shortcutting.  Update
1038         the STOREDANYTHING solution if the lhs solution contains ANYTHING.
1039         (build_succ_graph): Add edges from STOREDANYTHING to all
1040         non-direct nodes.
1041         (init_base_vars): Initialize STOREDANYTHING.
1042         (compute_points_to_sets): Free substitution info after
1043         building the succ graph.
1044         (ipa_pta_execute): Likewise.
1045
1046         * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
1047         field.
1048         (do_ds_constraint): Do not add to special var or non-pointer
1049         field solutions.
1050         (type_could_have_pointers): Split out from ...
1051         (could_have_pointers): ... here.  For arrays use the element type.
1052         (create_variable_info_for): Initialize may_have_pointers.
1053         (new_var_info): Likewise.
1054         (handle_lhs_call): Make the HEAP variable unknown-sized.
1055         (intra_create_variable_infos): Use a type with pointers for
1056         PARM_NOALIAS, make it unknown-sized.
1057
1058 2009-02-18  H.J. Lu  <hongjiu.lu@intel.com>
1059
1060         PR target/39224
1061         * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
1062
1063 2009-02-18  Jason Merrill  <jason@redhat.com>
1064
1065         PR target/39179
1066         * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
1067         value if DECL_EXTERNAL.
1068         * tree-sra.c (sra_walk_gimple_assign): Likewise.
1069         * target.h (gcc_target::binds_local_p): Clarify "module".
1070         * tree.h (TREE_PUBLIC): Clarify "module".
1071
1072 2009-02-17  Xuepeng Guo  <xuepeng.guo@intel.com>
1073
1074         PR target/38891
1075         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
1076         initialization for MS_ABI prior to the hunk of !TARGET_MMX.
1077
1078 2009-02-17  H.J. Lu  <hongjiu.lu@intel.com>
1079
1080         PR target/39082
1081         * c.opt (Wabi): Support C and ObjC.
1082         (Wpsabi): New.
1083
1084         * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
1085
1086         * config/i386/i386.c (classify_argument): Warn once about the ABI
1087         change when passing union with long double.
1088
1089         * doc/invoke.texi: Update -Wabi for warning psABI changes.
1090
1091 2009-02-18  Joseph Myers  <joseph@codesourcery.com>
1092
1093         PR c/35447
1094         * c-parser.c (c_parser_compound_statement): Always enter and leave
1095         a scope.
1096
1097 2009-02-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1098
1099         PR target/34587
1100         * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
1101
1102 2009-02-18  Jakub Jelinek  <jakub@redhat.com>
1103
1104         PR tree-optimization/36922
1105         * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
1106         * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
1107         Likewise.
1108
1109 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
1110
1111         * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
1112         to 0 for EABI64.
1113
1114 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
1115
1116         * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
1117
1118 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
1119
1120         * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
1121         tree sharing.
1122
1123 2009-02-17  Ruan Beihong  <ruanbeihong@gmail.com>
1124             Richard Sandiford  <rdsandiford@googlemail.com>
1125
1126         * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
1127         * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
1128         (loongson_biadd): ...this.
1129
1130 2009-02-17  Richard Guenther  <rguenther@suse.de>
1131
1132         PR tree-optimization/39202
1133         * tree-ssa-structalias.c (do_structure_copy): Before collapsing
1134         a var make sure to follow existing collapses.
1135
1136 2009-02-17  Richard Guenther  <rguenther@suse.de>
1137
1138         PR middle-end/39214
1139         * langhooks.c (lhd_print_error_function): Check for NULL block.
1140
1141 2009-02-17  Richard Guenther  <rguenther@suse.de>
1142
1143         PR tree-optimization/39204
1144         * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
1145         of the PHI arg.
1146
1147 2009-02-17  Uros Bizjak  <ubizjak@gmail.com>
1148
1149         * config/soft-fp/double.h: Update from glibc CVS.
1150
1151 2009-02-17  Richard Guenther  <rguenther@suse.de>
1152
1153         PR tree-optimization/39207
1154         * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
1155         strict-aliasing warnings for pointers pointing to NULL.
1156
1157 2009-02-16  Joseph Myers  <joseph@codesourcery.com>
1158
1159         PR c/35446
1160         * c-parser.c (c_parser_braced_init): Call pop_init_level when
1161         skipping until next close brace.
1162
1163 2009-02-16  H.J. Lu  <hongjiu.lu@intel.com>
1164
1165         PR target/37049
1166         * config/i386/i386.c (ix86_expand_push): Set memory alignment
1167         to function argument boundary.
1168
1169 2009-02-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
1170
1171         * config/picochip/picochip.md (lea_add): Allow any nonimmediate
1172         in the lea_add. Reload eventually constraints it properly.
1173         * config/picochip/constraints.md : Remove the target constraint
1174         "b", since it is not needed anymore.
1175
1176 2009-02-16  Jakub Jelinek  <jakub@redhat.com>
1177
1178         * gthr-dce.h: Uglify function parameter and local variable names.
1179         * gthr-gnat.h: Likewise.
1180         * gthr-mipssde.h: Likewise.
1181         * gthr-nks.h: Likewise.
1182         * gthr-posix95.h: Likewise.
1183         * gthr-posix.h: Likewise.
1184         * gthr-rtems.h: Likewise.
1185         * gthr-single.h: Likewise.
1186         * gthr-solaris.h: Likewise.
1187         * gthr-tpf.h: Likewise.
1188         * gthr-vxworks.h: Likewise.
1189         * gthr-win32.h: Likewise.
1190
1191 2009-02-15  H.J. Lu  <hongjiu.lu@intel.com>
1192
1193         PR target/39196
1194         * config/i386/i386.md: Restrict the new peephole2 to move
1195         between MMX/SSE registers.
1196
1197 2009-02-15  Richard Guenther  <rguenther@suse.de>
1198
1199         Revert
1200         2009-02-13  Richard Guenther  <rguenther@suse.de>
1201
1202         * configure.ac: Enable LFS.
1203         * configure: Re-generate.
1204         * config.in: Likewise.
1205
1206 2009-02-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1207
1208         * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
1209         spu_srqwbyte, spu_srqwbytebc): Define.
1210         * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
1211         spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
1212         * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
1213         "shrqby_<mode>"): New insn-and-split patterns.
1214         * config/spu/spu.c (expand_builtin_args): Determine and return
1215         number of operands using spu_builtin_description data.
1216         (spu_expand_builtin_1): Use it.
1217
1218 2009-02-13  Steve Ellcey  <sje@cup.hp.com>
1219
1220         PR target/38056
1221         * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
1222         TARGET_CONST_GP.
1223
1224 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
1225
1226         PR target/39149
1227         * config/i386/i386.c (override_options): Correct warning
1228         messages for -malign-loops, -malign-jumps and -malign-functions.
1229
1230 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
1231
1232         PR target/39152
1233         * config/i386/i386.md: Restrict the new peephole2 to move
1234         between the general purpose registers.
1235
1236 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
1237
1238         PR target/39162
1239         * config/i386/i386.c (type_natural_mode): Add a new argument.
1240         Return the original mode and warn ABI change if vector size is 32byte.
1241         (function_arg_advance): Updated.
1242         (function_arg): Likewise.
1243         (ix86_function_value): Likewise.
1244         (ix86_return_in_memory): Likewise.
1245         (ix86_sol10_return_in_memory): Likewise.
1246         (ix86_gimplify_va_arg): Likewise.
1247         (function_arg_32): Don't warn ABX ABI change here.
1248         (function_arg_64): Likewise.
1249
1250 2009-02-13  Bernd Schmidt  <bernd.schmidt@analog.com>
1251
1252         * loop-iv.c (implies_p): In the final case, test that operands 0
1253         of the two comparisons match.
1254
1255         * config/bfin/bfin.c (find_prev_insn_start): New function.
1256         (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
1257         (find_next_insn_start): Move.
1258
1259 2009-02-13  Richard Guenther  <rguenther@suse.de>
1260
1261         * configure.ac: Enable LFS.
1262         * configure: Re-generate.
1263         * config.in: Likewise.
1264
1265 2009-02-13  Joseph Myers  <joseph@codesourcery.com>
1266
1267         PR c/35444
1268         * c-parser.c (c_parser_parms_list_declarator): Discard pending
1269         sizes on syntax error after some arguments have been parsed.
1270
1271 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
1272
1273         * doc/invoke.texi (-fira): Remove.
1274
1275 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
1276
1277         * caller-save.c: Replace regclass.c with reginfo.c in comments.
1278         * recog.c: Likewise.
1279         * rtl.h: Likewise.
1280
1281 2009-02-12  Uros Bizjak  <ubizjak@gmail.com>
1282
1283         * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
1284         (umul_ppmm): Likewise.
1285         (count_leading_zeros): Likewise.
1286         (count_trailing_zeros): Likewise.
1287         (UMUL_TIME): Likewise.
1288
1289 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
1290
1291         * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
1292         soft-fp/t-softfp to tmake_file.
1293
1294         * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
1295         (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
1296         (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
1297         IA64_BUILTIN_INFQ]: New.
1298         (ia64_init_builtins): Initialize __builtin_infq,
1299         __builtin_fabsq and __builtin_copysignq if not HPUX.
1300         (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
1301         IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
1302
1303         * config/ia64/lib1funcs.asm (__divtf3): Define only if
1304         SHARED is defined.
1305         (__fixtfti): Likewise.
1306         (__fixunstfti): Likewise.
1307         (__floattitf): Likewise.
1308
1309         * config/ia64/libgcc-glibc.ver: New.
1310         * config/ia64/t-fprules-softfp: Likewise.
1311         * config/ia64/sfp-machine.h: Likewise.
1312
1313         * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
1314         (LIBGCC2_TF_CEXT): Likewise.
1315         (TF_SIZE): Likewise.
1316         (TARGET_INIT_LIBFUNCS): Likewise.
1317
1318         * config/ia64/t-glibc (SHLINB_MAPFILES):
1319         Add $(srcdir)/config/ia64/libgcc-glibc.ver.
1320
1321 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
1322
1323         * config/i386/i386.c (construct_container): Rewrite processing
1324         BLKmode with X86_64_SSE_CLASS.
1325
1326 2009-02-12  Paolo Bonzini  <bonzini@gnu.org>
1327
1328         PR target/39152
1329         * config/i386/i386.md: Replace simplify_replace_rtx with
1330         replace_rtx in the new peephole2.
1331
1332 2009-02-12  Nathan Sidwell  <nathan@codesourcery.com>
1333
1334         * doc/invoke.texi (Optimize Options): Stop claiming inlining and
1335         loop unrolling do not happen at -O2.
1336
1337 2009-02-12  Michael Matz  <matz@suse.de>
1338
1339         * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
1340
1341 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
1342
1343         * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
1344         for -g3.
1345
1346 2009-02-12  Ben Elliston  <bje@au.ibm.com>
1347
1348         * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
1349         patterns when updating the back chain.  Missed in the 2009-02-10
1350         change.
1351
1352 2009-02-11  Janis Johnson  <janis187@us.ibm.com>
1353
1354         * doc/extend.texi (Decimal Floating Types): Update identifier of
1355         draft TR and list of missing support.
1356
1357 2009-02-11  Jakub Jelinek  <jakub@redhat.com>
1358
1359         PR middle-end/39154
1360         * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
1361         bit to variable length decl's flags, add it also to its
1362         pointer replacement variable.
1363
1364 2009-02-11  Uros Bizjak  <ubizjak@gmail.com>
1365             Jakub Jelinek  <jakub@redhat.com>
1366
1367         PR target/39118
1368         * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
1369         (memory_blockage): New expander.
1370         (*memory_blockage): New insn pattern.
1371         * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
1372         instead of general blockage at the end of function prologue when
1373         frame pointer is used to access red zone area.  Do not emit blockage
1374         when profiling, it is emitted in generic code.
1375         (ix86_expand_epilogue): Emit memory_blockage at the beginning of
1376         function epilogue when frame pointer is used to access red zone area.
1377
1378 2009-02-11  Paolo Bonzini  <bonzini@gnu.org>
1379
1380         PR target/38824
1381         * config/i386/i386.md: Add two new peephole2 to avoid mov followed
1382         by arithmetic with memory operands.
1383         * config/i386/predicates.md (commutative_operator): New.
1384
1385 2009-02-10  Janis Johnson  <janis187@us.ibm.com>
1386
1387         * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
1388         bulleted lists.
1389
1390 2009-02-10  Eric Botcazou  <ebotcazou@adacore.com>
1391
1392         * alias.h (record_alias_subset): Declare.
1393         * alias.c (record_alias_subset): Make global.
1394
1395 2009-02-10  Nick Clifton  <nickc@redhat.com>
1396
1397         * tree-parloops.c: Change license to GPLv3.
1398         * ipa-struct-reorg.c: Change license to GPLv3.
1399         * ipa-struct-reorg.h: Change license to GPLv3.
1400
1401 2009-02-10  Steve Ellcey  <sje@cup.hp.com>
1402
1403         PR c/39084
1404         * c-decl.c (start_struct): Return NULL on error.
1405
1406 2009-02-10  Jakub Jelinek  <jakub@redhat.com>
1407
1408         PR middle-end/39124
1409         * cfgloopmanip.c (remove_path): Call remove_bbs after
1410         cancel_loop_tree, not before it.
1411
1412         PR target/39139
1413         * function.h (struct function): Add has_local_explicit_reg_vars bit.
1414         * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
1415         VAR_DECLs were seen.
1416         * tree-ssa-live.c (remove_unused_locals): Recompute
1417         cfun->has_local_explicit_reg_vars.
1418         * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
1419         copies or clearings if cfun->has_local_explicit_reg_vars.
1420
1421 2009-02-10  Uros Bizjak  <ubizjak@gmail.com>
1422
1423         PR target/39118
1424         * config/i386/i386.c (expand_prologue): Emit blockage at the end
1425         of function prologue when frame pointer is used to access
1426         red zone area.
1427
1428 2009-02-10  Richard Guenther  <rguenther@suse.de>
1429
1430         PR middle-end/39127
1431         * gimplify.c (gimple_regimplify_operands): Always look if
1432         we need to create a temporary.
1433
1434 2009-02-10  Richard Guenther  <rguenther@suse.de>
1435
1436         PR tree-optimization/39132
1437         * tree-loop-distribution.c (todo): New global var.
1438         (generate_memset_zero): Trigger TODO_rebuild_alias.
1439         (tree_loop_distribution): Return todo.
1440
1441 2009-02-10  H.J. Lu  <hongjiu.lu@intel.com>
1442
1443         PR target/39119
1444         * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
1445         (x86_64_reg_class_name): Removed.
1446         (classify_argument): Return 0 if bytes > 32.  Return 0 if the
1447         first one isn't X86_64_SSE_CLASS or any other ones aren't
1448         X86_64_SSEUP_CLASS when size > 16bytes.  Don't turn
1449         X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
1450         is X86_64_SSEUP_CLASS.  Set AVX modes to 1 X86_64_SSE_CLASS
1451         and 3 X86_64_SSEUP_CLASS.
1452         (construct_container): Remove X86_64_AVX_CLASS.  Handle 4
1453         registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
1454
1455 2009-02-10  Ben Elliston  <bje@au.ibm.com>
1456
1457         * config/rs6000/rs6000.md (allocate_stack): Always use an update
1458         form instruction to update the stack back chain word, even if the
1459         user has disabled the generation of update instructions.
1460         (movdi_<mode>_update_stack): New.
1461         (movsi_update_stack): Likewise.
1462         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
1463         always use an update form instruction to update the stack back
1464         chain word.
1465
1466 2009-02-09  Sebastian Pop  <sebastian.pop@amd.com>
1467
1468         PR middle-end/38953
1469         * graphite.c (if_region_set_false_region): After moving a region in
1470         the false branch of a condition, remove the empty dummy basic block.
1471         (gloog): Remove wrong fix for PR38953.
1472
1473 2009-02-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1474
1475         * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
1476         generation due to implicit sign extension.
1477
1478 2009-02-09  Eric Botcazou  <ebotcazou@adacore.com>
1479
1480         PR middle-end/38981
1481         * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
1482         at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
1483
1484 2009-02-09  Richard Guenther  <rguenther@suse.de>
1485
1486         PR middle-end/35202
1487         * convert.c (convert_to_real): Disable (float)fn((double)x)
1488         to fnf(x) conversion if errno differences may occur and
1489         -fmath-errno is set.
1490
1491 2009-02-07  Anatoly Sokolov  <aesok@post.ru>
1492
1493         * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
1494         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
1495         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
1496
1497 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
1498
1499         PR c/35434
1500         * c-common.c (handle_alias_attribute): Disallow attribute for
1501         anything not a FUNCTION_DECL or VAR_DECL.
1502
1503 2009-02-06  Janis Johnson  <janis187@us.ibm.com>
1504
1505         PR c/39035
1506         * real.c (do_compare): Special-case compare of zero against
1507         decimal float value.
1508
1509 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
1510
1511         PR c/36432
1512         * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
1513         as indicating flexible array members unless the field itself is
1514         being declarared as the incomplete array.
1515
1516 2009-02-06  Jan Hubicka  <jh@suse.cz>
1517
1518         PR tree-optimization/38844
1519         * ipa-inline.c (try_inline): Stop inlining recursion when edge
1520         is already inlined.
1521
1522 2009-02-06  Richard Guenther  <rguenther@suse.de>
1523
1524         PR middle-end/38977
1525         * tree-cfg.c (need_fake_edge_p): Force a fake edge for
1526         fork because we may expand it as __gcov_fork.
1527
1528 2009-02-06  Nick Clifton  <nickc@redhat.com>
1529
1530         * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
1531
1532 2009-02-06  Paolo Bonzini  <bonzini@gnu.org>
1533
1534         PR tree-optimization/35659
1535         * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
1536         vn_phi_eq): Shortcut if hashcode does not match.
1537         (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
1538         NULL operands.
1539         * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
1540         and avoid iterative_hash_expr.
1541         (FOR_EACH_VALUE_ID_IN_SET): New.
1542         (value_id_compare): Remove.
1543         (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
1544         sort expressions by value id.
1545
1546 2009-02-05  Kaz Kojima  <kkojima@gcc.gnu.org>
1547
1548         PR target/38991
1549         * config/sh/predicates.md (general_movsrc_operand): Don't check
1550         the subreg of system registers here.
1551
1552 2009-02-05  Jakub Jelinek  <jakub@redhat.com>
1553
1554         PR c++/39106
1555         * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
1556         on the copied decl.
1557
1558 2009-02-05  Paolo Bonzini  <bonzini@gnu.org>
1559
1560         PR rtl-optimization/39110
1561         * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
1562         addresses, not aligned ones.
1563
1564 2009-02-05  Daniel Berlin  <dberlin@dberlin.org>
1565             Richard Guenther  <rguenther@suse.de>
1566
1567         PR tree-optimization/39100
1568         * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
1569         comment says and add edges.
1570
1571 2009-02-05  Joseph Myers  <joseph@codesourcery.com>
1572
1573         PR c/35435
1574         * c-common.c (handle_tls_model_attribute): Ignore attribute for
1575         non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
1576
1577 2009-02-04  Tobias Grosser  <grosser@fim.uni-passau.de> 
1578
1579         * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
1580         sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
1581         register_bb_in_sese, new_sese, free_sese): Moved.
1582         (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
1583         outermost_loop_in_scop, build_scop_iteration_domain,
1584         expand_scalar_variables_ssa_name, get_vdef_before_scop,
1585         limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
1586         Use loop_in_sese_p instead of loop_in_scop_p.
1587         (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
1588         (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
1589         (scopdet_basic_block_info): Fix bug in scop detection.
1590         (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
1591         eq_loop_to_cloog_loop): Remove.
1592         (nb_loops_around_loop_in_scop, nb_loop
1593         ref_nb_loops): Moved here...
1594         * graphite.h (ref_nb_loops): ... from here.
1595         (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
1596         (loop_domain_dim, loop_iteration_vector_dim): Remove.
1597         (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
1598         * testsuite/gcc.dg/graphite/scop-19.c: New
1599
1600 2009-02-04  Paolo Bonzini  <bonzini@gnu.org>
1601             Hans-Peter Nilsson  <hp@axis.com>
1602
1603         PR rtl-optimization/37889
1604         * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
1605         Move offset handling from PLUS to before the switch.  Use new
1606         arguments when considering SYMBOL_REFs too.
1607         (rtx_addr_can_trap_p): Pass dummy offset and size.
1608         (enum may_trap_p_flags): Remove.
1609         (may_trap_p_1): Pass size from MEM_SIZE.
1610
1611         PR rtl-optimization/38921
1612         * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
1613         * rtl.h (may_trap_after_code_motion_p): Delete prototype.
1614         * rtlanal.c (may_trap_after_code_motion_p): Delete.
1615         (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
1616
1617 2009-02-04  H.J. Lu  <hongjiu.lu@intel.com>
1618
1619         AVX Programming Reference (January, 2009)
1620         * config/i386/sse.md (*vpclmulqdq): New.
1621
1622 2009-02-04  Jakub Jelinek  <jakub@redhat.com>
1623
1624         PR tree-optimization/38977
1625         PR gcov-profile/38292
1626         * calls.c (special_function_p): Disregard __builtin_ prefix.
1627
1628 2009-02-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
1629
1630         * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
1631         non-indexable addresses even before reload.
1632
1633 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
1634
1635         PR c/29129
1636         * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
1637         as having variable size.  Do not give an error for unnamed
1638         parameters with [*] declarators.  Give a warning for type names
1639         with [*] declarators and mark them as variable size.
1640         * c-parser.c (c_parser_sizeof_expression): Do not give an error
1641         for sizeof applied to [*] type names.
1642
1643 2009-02-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1644
1645         PR C++/36607
1646         * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
1647
1648 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
1649
1650         * gcc.c (process_command): Update copyright notice dates.
1651         * gcov.c (print_version): Likewise.
1652         * gcov-dump.c (print_version): Likewise.
1653         * mips-tfile.c (main): Likewise.
1654         * mips-tdump.c (main): Likewise.
1655
1656 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
1657
1658         PR c/35433
1659         * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
1660         for composite type involving a zero-length array type.
1661
1662 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
1663
1664         PR target/35318
1665         * function.c (match_asm_constraints_1): Skip over
1666         initial optional % in the constraint.
1667
1668         PR inline-asm/39059
1669         * c-parser.c (c_parser_postfix_expression): If fixed point is not
1670         supported, don't accept FIXED_CSTs.
1671         * c-decl.c (finish_declspecs): Error if fixed point is not supported
1672         and _Sat is used without _Fract/_Accum.  Set specs->type to
1673         integer_type_node for cts_fract/cts_accum if fixed point is not
1674         supported.
1675
1676 2009-02-02  Catherine Moore  <clm@codesourcery.com>
1677
1678         * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
1679
1680 2009-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
1681
1682         * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
1683         (ABI_HAS_64BIT_SYMBOLS): Use it.
1684         (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
1685
1686 2009-02-02  Paul Brook  <paul@codesourcery.com>
1687
1688         * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
1689
1690 2009-02-02  Jakub Jelinek  <jakub@redhat.com>
1691
1692         PR inline-asm/39058
1693         * recog.h (asm_operand_ok): Add constraints argument.
1694         * recog.c (asm_operand_ok): Likewise.  If it is set, for digits
1695         recurse on matching constraint.
1696         (check_asm_operands): Pass constraints as 3rd argument to
1697         asm_operand_ok.  Don't look up matching constraint here.
1698         * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
1699         to asm_operand_ok.
1700
1701 2009-02-02  Ben Elliston  <bje@au.ibm.com>
1702
1703         * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
1704         TARGET_NARROW_VOLATILE_BITFIELD macro names.
1705
1706 2009-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1707
1708         * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
1709         information.  Remove some obsolete information.  Reorganize.
1710
1711         * config/pa/fptr.c: Revert license to GPL 2.
1712         * config/pa/milli64.S: Likewise.
1713
1714 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
1715
1716         PR target/38904
1717         * mkmap-flat.awk (END):  Use pe_dll command-line arg to pass
1718         LIBRARY name in, instead of hard-coding it.
1719         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*):  Add an
1720         extra target make frag to tmake_files according to EH model.
1721         (i[34567]86-*-mingw* | x86_64-*-mingw*):  Likewise.
1722         * config/i386/t-dw2-eh, config/i386/t-sjlj-eh:  Add new target
1723         frags that define makefile variable EH_MODEL appropriately.
1724         * config/i386/cygming.h (DWARF2_UNWIND_INFO):  Add comment.
1725         * config/i386/cygwin.h (LIBGCC_EH_EXTN):  Define to nothing or
1726         to "-sjlj" according to type of EH configured.
1727         (LIBGCC_SONAME):  Concatenate it to shared library base name.
1728         * config/i386/mingw32.h (LIBGCC_EH_EXTN):  Define to "_dw2" or
1729         to "_sjlj" according to type of EH configured.
1730         (LIBGCC_SONAME):  Concatenate it to shared library base name.
1731         * config/i386/t-cygming (SHLIB_SONAME):  Use EH_MODEL.
1732         (SHLIB_LINK):  Add missing semicolon to if-else construct.
1733         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
1734         string value of "pe_dll" command-line option.
1735         * config/i386/t-cygwin (SHLIB_EH_EXTENSION):  New helper.
1736         (SHLIB_SONAME):  Use it when overriding t-cygming default.
1737         (SHLIB_IMPLIB):  Override t-cygming default.
1738         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
1739         string value of "pe_dll" command-line option.
1740
1741 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
1742
1743         PR target/38952
1744         * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
1745         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
1746
1747 2009-01-31  Richard Guenther  <rguenther@suse.de>
1748
1749         PR tree-optimization/38937
1750         * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
1751         computing the transitive closure.
1752
1753 2009-01-30  Richard Guenther  <rguenther@suse.de>
1754
1755         PR tree-optimization/39041
1756         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
1757         Propagate variable indices only if the types match for this stmt.
1758
1759 2009-01-30  Jakub Jelinek  <jakub@redhat.com>
1760
1761         PR target/39013
1762         * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
1763         inline but never defined.
1764
1765 2009-01-30  Wolfgang Gellerich  <gellerich@de.ibm.com>
1766
1767         * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
1768         (*insv_h_di_reg_extimm): New insn.
1769         (*insv_l<mode>_reg_extimm): New insn.
1770
1771 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
1772
1773         * config/picochip/picochip.c (flag_conserve_stack): set
1774         PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
1775         fconserve-stack. Reduce call-overhead used by inliner.
1776
1777 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
1778
1779         PR/38157
1780         * common.opt (flag_conserve_stack): Initialised to zero.
1781
1782 2009-01-30  Kai Tietz  <kai.tietz@onevision.com>
1783
1784         PR/39002
1785         * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
1786         (ix86_expand_epilogue): Take nsseregs in account to use proper restore
1787         method.
1788
1789 2009-01-29  H.J. Lu  <hongjiu.lu@intel.com>
1790
1791         * ira-color.c (allocno_reload_assign): Update comments.
1792         * regmove.c (regmove_optimize): Likewise.
1793
1794         * ra.h: Removed.
1795
1796 2009-01-29  Robert Millan  <rmh@aybabtu.com>
1797
1798         * gcc/config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
1799         * gcc/config/i386/kopensolaris-gnu.h: New file.  Undefine
1800         `MD_UNWIND_SUPPORT'.
1801         * gcc/config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
1802
1803 2009-01-29  Kazu Hirata  <kazu@codesourcery.com>
1804
1805         PR tree-optimization/39007
1806         * tree-loop-distribution.c (generate_builtin): Use
1807         recompute_dominator to compute the immediate dominator of the
1808         basic block just after the loop.
1809
1810 2009-01-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1811
1812         * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
1813         (ASM_OUTPUT_DWARF_PCREL): Define.
1814
1815 2009-01-29  Vladimir Makarov  <vmakarov@redhat.com>
1816
1817         * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
1818         * doc/passes.texi: Remove entries about regclass, local-alloc, and
1819         global.  Modify entries about regmove and IRA.
1820
1821         * ra-conflict.c: Remove the file.
1822
1823         * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
1824
1825         * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
1826         (pass_regclass_init): Rename to pass_reginfo_init.
1827
1828         * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
1829
1830         * toplev.h (flag_ira): Remove.
1831
1832         * caller-save.c (setup_save_areas): Remove flag_ira.
1833
1834         * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
1835
1836         * global.c: Remove the file.
1837
1838         * opts.c: (decode_options): Remove flag_ira.
1839
1840         * hard-reg-set.h (losing_caller_save_reg_set): Remove.
1841
1842         * regmove.c: Modify file description.
1843         (find_use_as_address, try_auto_increment): Define them only if
1844         AUTO_INC_DEC is defined.
1845         (replacement_quality, replace_in_call_usage, fixup_match_1,
1846         stable_and_no_regs_but_for_p): Remove.
1847         (reg_set_in_bb): Make it static.
1848         (regmove_optimize): Remove flag_ira and code which worked for
1849         !flag_ira.
1850
1851         * local-alloc.c: Remove the file.
1852
1853         * common.opt (fira): Remove.
1854
1855         * ira.c: Include except.h.
1856         (eliminable_regset): Move from global.c.
1857         (mark_elimination): Ditto.  Remove flag_ira.
1858         (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
1859         equiv_mem_modified, validate_equiv_mem_from_store,
1860         validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
1861         contains_replace_regs, memref_referenced_p, memref_used_between_p,
1862         no_equiv, recorded_label_ref): Move from local-alloc.c.
1863         (update_equiv_regs): Ditto.  Make it static.
1864         (print_insn_chain, print_insn_chains): Move it from global.c.
1865         (pseudo_for_reload_consideration_p): Ditto.  Remove flag_ira.
1866         (build_insn_chain): Ditto.  Make it static.
1867         (ra_init_live_subregs): Move from ra-conflict.c.  Make it static.
1868         Rename to init_live_subregs.
1869         (gate_ira): Remove flag_ira.
1870
1871         * regclass.c: Rename reginfo.c.  Change file description.
1872         (FORBIDDEN_INC_DEC_CLASSES): Remove.
1873         (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
1874         (init_reg_sets_1): Remove code for evaluation of
1875         reg_class_superclasses and losing_caller_save_reg_set.
1876         (init_regs): Remove init_reg_autoinc.
1877         (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
1878         ok_for_base_p_nonstrict): Remove.
1879         (regclass_init): Rename to reginfo_init.  Don't initialize init_cost.
1880         (pass_regclass_init): Rename to pass_reginfo_init.  Modify
1881         corresponding entries.
1882         (dump_regclass, record_operand_costs, scan_one_insn,
1883         init_reg_autoinc, regclass, record_reg_classes, copy_cost,
1884         record_address_regs, auto_inc_dec_reg_p): Remove.
1885         (gt-regclass.h): Rename to gt-reginfo.h.
1886
1887         * rtl.h (dump_global_regs, retry_global_alloc,
1888         build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
1889
1890         * Makefile.in (RA_H): Remove.
1891         (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
1892         Rename regclass.o to reginfo.o.
1893         (regclass.o): Rename to reginfo.o.  Rename gt-regclass.h to
1894         gt-reginfo.h.
1895         (global.o, local-alloc.o, ra-conflict.o): Remove entries.
1896         (GTFILES): Rename regclass.c to reginfo.c.
1897
1898         * passes.c (init_optimization_passes): Remove pass_local_alloc and
1899         pass_global_alloc.  Rename pass_regclass_init to pass_reginfo_init.
1900
1901         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
1902         count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
1903         Remove flag_ira.
1904         (finish_spills): Ditto.  Remove code for !flag_ira.
1905         
1906 2009-01-29  Kenneth Zadeck  <zadeck@naturalbridge.com>
1907
1908         PR middle-end/35854
1909         * doc/invoke.texi (rtl debug options): Complete rewrite.
1910         * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
1911         to auto_inc_dec".
1912         * mode-switching.c (pass_mode_switching): Rename pass from
1913         "mode-sw" to "mode_sw".
1914         * except.c (pass_convert_to_eh_ranges): Rename pass from
1915         "eh-ranges" to "eh_ranges".
1916         * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
1917         to "subreg1".
1918                 
1919         
1920 2009-01-29  Andrey Belevantsev  <abel@ispras.ru>
1921             Alexander Monakov  <amonakov@ispras.ru>
1922
1923         PR middle-end/38857
1924         * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
1925         register.
1926         (move_exprs_to_boundary): Change return type and pass through
1927         should_move from move_op.  Relax assert.  Update usage ...
1928         (schedule_expr_on_boundary): ... here.  Use should_move instead of
1929         cant_move.
1930         (move_op_orig_expr_found): Indicate that insn was disconnected from
1931         stream.
1932         (code_motion_process_successors): Do not call after_merge_succs
1933         callback if original expression was not found when traversing any of
1934         the branches.
1935         (code_motion_path_driver): Change return type.  Update prototype.
1936         (move_op): Update comment.  Add a new parameter (should_move).  Update
1937         prototype.  Set *should_move based on indication provided by
1938         move_op_orig_expr_found.
1939
1940 2009-01-28  Pat Haugen  <pthaugen@us.ibm.com>
1941
1942         * doc/invoke.texi (avoid-indexed-addresses): Document new option.
1943         * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
1944         * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
1945         * config/rs6000/rs6000.c (rs6000_override_options): Default
1946         avoid-indexed-addresses on for Power6, off for everything else.
1947         (avoiding_indexed_address_p): New function.
1948         (rs6000_legitimize_address): Use it.
1949         (rs6000_legitimate_address): Likewise.
1950         * config/rs6000/rs6000.md (movXX_updateX): Likewise
1951
1952 2009-01-28  Kazu Hirata  <kazu@codesourcery.com>
1953
1954         PR tree-optimization/38997
1955         * tree-loop-distribution.c (generate_memset_zero): Use
1956         POINTER_PLUS_EXPR for a pointer addition.
1957
1958 2009-01-28  Andreas Krebbel  <krebbel1@de.ibm.com>
1959
1960         * config/s390/s390.md (bswap<mode>2): New pattern added.
1961
1962 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
1963
1964         * config/s390/s390.md (*tls_load_31): Added type attribute.
1965
1966 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
1967
1968         * config/s390/s390.md: Fix a few comments.
1969
1970 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
1971
1972         * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
1973         (*tm<mode>_full): Fixed z10prop attribute.
1974         (*tst<mode>_extimm): Fixed z10prop attribute.
1975         (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
1976         (*tstqiCCT_cconly): Fixed z10prop attribute.
1977         (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
1978         (*movsi_larl): Fixed z10prop attribute.
1979         (*movsi_zarch): Fixed z10prop attribute.
1980         (*movsi_eas): Fixed z10prop attribute.
1981         (*movhi): Fixed z10prop attribute.
1982         (*movqi): Fixed z10prop attribute.
1983         (*movstrictqi): Fixed z10prop attribute.
1984         (*mov<mode>): Fixed z10prop attribute.
1985         (*movcc): Fixed z10prop attribute.
1986         (*sethighpartdi_64): Fixed z10prop attribute.
1987         (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
1988         (*negdi2_sign_cc): Fixed z10prop attribute.
1989         (*negdi2_sign): Fixed z10prop attribute.
1990         (*absdi2_sign_cc): Fixed z10prop attribute.
1991         (*absdi2_sign): Fixed z10prop attribute.
1992         (*negabsdi2_sign_cc): Fixed z10prop attribute.
1993         (*negabsdi2_sign): Fixed z10prop attribute.
1994         (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
1995         (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
1996         (doloop_si64): Fixed z10prop attribute.
1997         (doloop_si31): Fixed z10prop attribute.
1998         (doloop_long): Fixed z10prop attribute.
1999         (indirect_jump): Fixed z10prop attribute.
2000         (nop): Fixed z10prop attribute.
2001         (main_base_64): Fixed z10prop attribute.
2002         (reload_base_64): Fixed z10prop attribute.
2003
2004 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
2005
2006         PR rtl-optimization/38740
2007         * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
2008         if !optimize.
2009         * config/mips/mips.c (mips_reorg): Likewise.
2010
2011 2009-01-28  Richard Guenther  <rguenther@suse.de>
2012
2013         PR tree-optimization/38926
2014         * tree-ssa-pre.c (add_to_value): Assert we add only expressions
2015         with the correct value id to a value.
2016         (do_regular_insertion): Use the value number of edoubleprime
2017         for the value number of the expr.
2018
2019         Revert
2020         2008-08-21  Richard Guenther  <rguenther@suse.de>
2021
2022         * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
2023         a PHI ask VN if it is already available.
2024         * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
2025         * tree-ssa-sccvn.c (vn_phi_lookup): Export.
2026
2027 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
2028
2029         PR middle-end/38934
2030         * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
2031         set to varying whenever max has TREE_OVERFLOW set, similarly
2032         for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
2033
2034 2009-01-28  Richard Guenther  <rguenther@suse.de>
2035
2036         PR middle-end/38908
2037         * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
2038         uninitialized aggregate uses in call arguments.
2039
2040 2009-01-28  Paolo Bonzini  <bonzini@gnu.org>
2041
2042         PR tree-optimization/38984
2043         * tree-ssa-structalias.c (get_constraints_for_1): Do not use
2044         the nothing_id variable if -fno-delete-null-pointer-checks.
2045
2046 2009-01-28  Uros Bizjak  <ubizjak@gmail.com>
2047
2048         PR target/38988
2049         * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
2050         (set_got_offset_rex64): Ditto.
2051
2052 2009-01-27  H.J. Lu  <hongjiu.lu@intel.com>
2053
2054         PR target/38941
2055         * doc/extend.texi: Improve local variable with asm reg.
2056
2057 2009-01-27  Adam Nemet  <anemet@caviumnetworks.com>
2058
2059         * c.opt (Wpacked-bitfield-compat): Change init value to -1.
2060         * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
2061         was not supplied then set warn_packed_bitfield_compat to the
2062         default value of 1.
2063         * stor-layout.c (place_field): Check warn_packed_bitfield_compat
2064         against 1.
2065
2066 2009-01-27  Richard Guenther  <rguenther@suse.de>
2067
2068         PR tree-optimization/38503
2069         * cfgexpand.c (expand_gimple_basic_block): Ignore
2070         GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
2071         * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
2072         variables that cannot have TBAA applied.
2073         (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
2074         statements.
2075
2076 2009-01-27  Uros Bizjak  <ubizjak@gmail.com>
2077
2078         PR middle-end/38969
2079         * calls.c (initialize_argument_information): Do not wrap complex
2080         arguments in SAVE_EXPR.
2081
2082 2009-01-26  Andreas Tobler  <a.tobler@schweiz.org>
2083
2084         * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
2085         (INSTALL_LIBGCC): Revert typo commit.
2086
2087 2009-01-26  Richard Guenther  <rguenther@suse.de>
2088
2089         PR tree-optimization/38745
2090         * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
2091         from special handling.
2092
2093 2009-01-26  Richard Guenther  <rguenther@suse.de>
2094
2095         PR tree-optimization/38745
2096         * tree-ssa.c (execute_update_addresses_taken): Do not include
2097         variables that cannot possibly be a register in not_reg_needs.
2098         Do not clear TREE_ADDRESSABLE on vars that may not become
2099         registers.
2100         * tree-ssa.c (update_alias_info_1): Include those in the set
2101         of addressable vars.
2102
2103 2009-01-26  Richard Guenther  <rguenther@suse.de>
2104
2105         PR middle-end/38851
2106         * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
2107         * tree-ssa-dse.c: Include langhooks.h
2108         (execute_simple_dse): Remove stores with zero size.
2109
2110 2009-01-24  Jakub Jelinek  <jakub@redhat.com>
2111
2112         PR c/38957
2113         * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
2114         as PLUS_EXPR.
2115
2116 2009-01-24  Julian Brown  <julian@codesourcery.com>
2117
2118         * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
2119         config/arm/linux-atomic.c.
2120         * config/arm/linux-atomic.c: New.
2121
2122 2009-01-24  Eric Botcazou  <ebotcazou@adacore.com>
2123
2124         * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
2125         * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
2126         * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
2127
2128 2009-01-24  H.J. Lu  <hongjiu.lu@intel.com>
2129
2130         PR c/38938
2131         * c-opts.c (c_common_handle_option): Update warn_pointer_sign
2132         properly.
2133
2134 2009-01-24  Sebastian Pop  <sebastian.pop@amd.com>
2135
2136         PR tree-optimization/38953
2137         * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
2138         (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
2139         (gloog): Split the exit of the scop when the scop exit is a loop exit.
2140         (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
2141         changed the CFG.
2142
2143 2009-01-24  Paul Brook  <paul@codesourcery.com>
2144
2145         * config/arm/neon.md (neon_type): Move to arm.md.
2146         (neon_mov<VSTRUCT>): Add neon_type attribute.
2147         * config/arm/arm.md (neon_type): Move to here.
2148         (conds): Add "unconditioal" and use as default for NEON insns.
2149
2150 2009-01-24  Ben Elliston  <bje@au.ibm.com>
2151
2152         * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
2153         void *' warning from -Wc++-compat.
2154         * Makefile.in (dominance.o-warn): Remove.
2155
2156 2009-01-23  Paolo Bonzini  <bonzini@gnu.org>
2157
2158         PR tree-optimization/38932
2159         * fold-const.c (fold_unary_ignore_overflow): New.
2160         * tree.h (fold_unary_ignore_overflow): Declare.
2161         * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
2162         * tree-ssa-sccvn.c (visit_reference_op_load,
2163         simplify_unary_expression): Likewise.
2164
2165 2009-01-22  Adam Nemet  <anemet@caviumnetworks.com>
2166
2167         * c-decl.c (finish_struct): Move code to set DECL_PACKED after
2168         DECL_BIT_FIELD is alreay known.  Also inherit packed for bitfields
2169         regardless of their type.
2170         * c-common.c (handle_packed_attribute): Don't ignore packed on
2171         bitfields.
2172         * c.opt (Wpacked-bitfield-compat): New warning option.
2173         * stor-layout.c (place_field): Warn if offset of a field changed.
2174         * doc/extend.texi (packed): Mention the ABI change.
2175         * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
2176         (Warning Options): Add it to the list.
2177
2178 2009-01-22  H.J. Lu  <hongjiu.lu@intel.com>
2179
2180         * c-opts.c (c_common_post_options): Fix a typo in comments.
2181
2182 2009-01-22  Steve Ellcey  <sje@cup.hp.com>
2183
2184         PR middle-end/38615
2185         * gimplify.c (gimplify_init_constructor): Fix promotion of const
2186         variables to static.
2187         * doc/invoke.texi (-fmerge-all-constants): Update description.
2188
2189 2009-01-22  Uros Bizjak  <ubizjak@gmail.com>
2190
2191         PR target/38931
2192         * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
2193         (*movdi_1_rex64): Use type "mmx" for alternative 5.
2194
2195 2009-01-22  Richard Earnshaw  <rearnsha@arm.com>
2196
2197         * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
2198         a word boundary.
2199         (LOCAL_ALIGNMENT): Similarly.
2200
2201 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
2202             Joseph Myers  <joseph@codesourcery.com>
2203
2204         * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
2205         * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
2206         * config/arm/arm-tune.md: Regenerate.
2207         * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
2208         -march=iwmmxt2.
2209
2210 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
2211
2212         * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
2213         version number to five.
2214
2215 2009-01-22  Dodji Seketeli  <dodji@redhat.com>
2216
2217         PR c++/38930
2218         * c-decl.c: (clone_underlying_type): Revert PR c++/26693 changes.
2219         * c-common.c (set_underlying_type): Likewise.
2220         (is_typedef_decl ): Likewise
2221         * tree.h: Likewise
2222         (set_underlying_type): Likewise.
2223         (is_typedef_type): Likewise.
2224
2225 2009-01-21  Vladimir Makarov  <vmakarov@redhat.com>
2226
2227         PR middle-end/38587
2228         * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
2229         crossing setjmps.
2230
2231 2009-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
2232
2233         PR bootstrap/37660
2234         * config/i386/cygwin.h (SHARED_LIBGCC_SPEC):  New helper macro.
2235         (LIBGCC_SPEC):  Don't define.
2236         (REAL_LIBGCC_SPEC):  Define instead, using SHARED_LIBGCC_SPEC.
2237
2238 2009-01-21  Uros Bizjak  <ubizjak@gmail.com>
2239
2240         PR rtl-optimization/38879
2241         * alias.c (base_alias_check): Unaligned access via AND address can
2242         alias all surrounding object types except those with sizes equal
2243         or wider than the size of unaligned access.
2244
2245 2009-01-21  Dodji Seketeli  <dodji@redhat.com>
2246
2247         PR c++/26693
2248         * c-decl.c: (clone_underlying_type): Move this ...
2249         * c-common.c (set_underlying_type): ... here.
2250         Also, make sure the function properly sets TYPE_STUB_DECL() on
2251         the newly created typedef variant type.
2252         (is_typedef_decl ): New entry point.
2253         * tree.h: Added a new member member_types_needing_access_check to
2254         struct tree_decl_non_common.
2255         (set_underlying_type): New entry point.
2256         (is_typedef_type): Likewise.
2257
2258 2009-01-21  Bingfeng Mei  <bmei@broadcom.com>
2259
2260         * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
2261         Check whether two instructions have memory references that
2262         belong to conflicting alias sets.  walk_mems_1 and walk_mems_2
2263         are helper functions for traversing.
2264         * alias.h (insn_alias_sets_confilict_p): New prototypes.
2265         * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
2266         not to draw dependency edge for instructions with non-conflicting
2267         alias sets.
2268
2269 2009-01-20  Joseph Myers  <joseph@codesourcery.com>
2270
2271         PR other/38758
2272         * longlong.h: Update copyright years.  Use soft-fp license notice.
2273         Sync __clz_tab declaration with glibc.
2274
2275 2009-01-20  Steve Ellcey  <sje@cup.hp.com>
2276
2277         PR target/30687
2278         * doc/extend.texi (syscall_linkage): New.
2279         (version_id): Modify.
2280
2281 2009-01-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2282             Richard Guenther  <rguenther@suse.de>
2283
2284         PR tree-optimization/38747
2285         PR tree-optimization/38748
2286         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
2287         conversion if the base address is an indirect reference and the
2288         aliasing sets could cause issues.
2289
2290 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
2291
2292         * common.opt (fgraphite, fgraphite-identity): Add comment for 
2293         explaining why these options are not documented.
2294
2295 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
2296
2297         * graphite.c (stmt_simple_for_scop_p): Also handle cases when
2298         gimple_call_lhs is NULL.
2299
2300 2009-01-20  Paolo Bonzini  <bonzini@gnu.org>
2301
2302         PR target/38868
2303         * emit-rtl.c (adjust_address_1): Make sure memref is never
2304         overwritten.
2305
2306 2009-01-20  Ben Elliston  <bje@au.ibm.com>
2307
2308         * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
2309         const qualifier from arg parameter. Remove unnecessary cast to char *.
2310         * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
2311         const qualifier from arg 2.
2312
2313 2009-01-19  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
2314
2315         * config/darwin.h: Add static-libgfortran to LINK_SPEC.
2316
2317 2009-01-19  Vladimir Makarov  <vmakarov@redhat.com>
2318
2319         PR c/38869
2320         * rtl.h (reinit_regs): New prototype.
2321         * regclass.c: Include ira.h.
2322         (reinit_regs): New.
2323         * Makefile.in (regclass.o): Add ira.h.
2324         * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
2325
2326 2009-01-18  H.J. Lu  <hongjiu.lu@intel.com>
2327
2328         PR target/38736
2329         * c-common.c (handle_aligned_attribute): Use
2330         ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
2331         default alignment value.
2332
2333         * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
2334
2335         * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
2336         * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
2337
2338         * doc/extend.texi: Update __attribute__ ((aligned)).  Document
2339         __BIGGEST_ALIGNMENT__.
2340
2341         * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
2342
2343 2009-01-18  Richard Guenther  <rguenther@suse.de>
2344
2345         PR tree-optimization/38819
2346         * tree-flow.h (operation_could_trap_helper_p): Declare.
2347         * tree-eh.c (operation_could_trap_helper_p): Export.
2348         * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
2349         * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
2350         * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
2351         are about to insert a possibly trapping instruction and fail
2352         in this case.
2353
2354 2009-01-18  Andreas Schwab  <schwab@suse.de>
2355
2356         * doc/install.texi (Configuration): Remove obsolete paragraph
2357         about use of --with-gnu-ld with --with-gnu-as.
2358
2359 2009-01-18  Kazu Hirata  <kazu@codesourcery.com>
2360
2361         * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
2362         doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
2363         Follow spelling conventions.
2364
2365 2009-01-18  Ben Elliston  <bje@au.ibm.com>
2366
2367         * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
2368         C++ warning about implicit conversion from void * to struct
2369         bitmap_head_def *.
2370         (bitmap_obstack_free): Likewise for bitmap_element *.
2371         * Makefile.in (bitmap.o-warn): Remove.
2372
2373 2009-01-17  Dave Korn  <dave.korn.cygwin@gmail.com>
2374
2375         * Makefile.in (BACKENDLIBS):  Reorder to match dependencies.
2376
2377 2009-01-17  Sebastian Pop  <sebastian.pop@amd.com>
2378             Tobias Grosser  <tobi.grosser@amd.com>
2379
2380         * graphite.c (graphite_trans_scop_block): Do not block single
2381         nested loops.
2382
2383 2009-01-16  Alexandre Oliva  <aoliva@redhat.com>
2384
2385         * ebitmap.h (ebitmap_iter_init): Initialize all fields.
2386         * ipa-struct-reorg.c (gen_struct_type): Replace known-true
2387         test with assertion.
2388
2389 2009-01-16  Richard Guenther  <rguenther@suse.de>
2390
2391         PR tree-optimization/38835
2392         PR middle-end/36227
2393         * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
2394         and INT + PTR -> (INT)(PTR p+ INT) folding.
2395         * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
2396
2397 2009-01-16  Adam Nemet  <anemet@caviumnetworks.com>
2398
2399         PR target/38554
2400         * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
2401         the subreg from a lowpart subreg if it is also casting the value.
2402
2403 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
2404             Tobias Grosser  <tobi.grosser@amd.com>
2405
2406         * graphite.c (compare_prefix_loops): New.
2407         (build_scop_canonical_schedules): Rewritten.
2408         (graphite_transform_loops): Move build_scop_canonical_schedules
2409         after build_scop_iteration_domain.
2410
2411 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
2412             Tobias Grosser  <tobi.grosser@amd.com>
2413
2414         * graphite.c (add_conditions_to_domain): Add the loops to 
2415         the dimension of the iteration domain.  Do copy the domain
2416         only when it exists.
2417         (build_scop_conditions_1): Do not call add_conditions_to_domain.
2418         (add_conditions_to_constraints): New.
2419         (can_generate_code_stmt, can_generate_code): Removed.
2420         (gloog): Do not call can_generate_code.
2421         (graphite_transform_loops): Call add_conditions_to_constraints
2422         after building the iteration domain.
2423
2424 2009-01-16  Jakub Jelinek  <jakub@redhat.com>
2425
2426         PR tree-optimization/38789
2427         * tree-ssa-threadedge.c
2428         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
2429         __builtin_constant_p.
2430
2431 2009-01-16  Kenneth Zadeck  <zadeck@naturalbridge.com>
2432
2433         * dce.c (delete_unmarked_insns): Reversed the order that insns are
2434         examined before deleting them.
2435         
2436 2009-01-16  Richard Earnshaw  <rearnsha@arm.com>
2437
2438         * function.c (aggregate_value_p): Correctly extract the function
2439         type from CALL_EXPR_FN lookup.
2440
2441 2009-01-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
2442
2443         * config/picochip/picochip.c (picochip_override_options): Revert
2444         CFI asm flag disable commited previously.
2445
2446 2009-01-15  Sebastian Pop  <sebastian.pop@amd.com>
2447             Tobias Grosser  <tobi.grosser@amd.com>
2448             Jan Sjodin  <jan.sjodin@amd.com>
2449
2450         * graphite.c (scan_tree_for_params): On substractions negate
2451         all the coefficients of the term.
2452         (clast_to_gcc_expression_red): New.  Handle reduction expressions
2453         of more than two operands.
2454         (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
2455         (get_vdef_before_scop): Handle also the case of default definitions.
2456
2457 2009-01-15  Richard Sandiford  <rdsandiford@googlemail.com>
2458
2459         * caller-save.c (add_used_regs_1, add_used_regs): New functions.
2460         (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
2461         Also use them when walking CALL_INSN_FUNCTION_USAGE.
2462
2463 2009-01-15  H.J. Lu  <hongjiu.lu@intel.com>
2464             Joey Ye  <joey.ye@intel.com>
2465
2466         PR middle-end/37843
2467         * cfgexpand.c (expand_stack_alignment): Don't update stack
2468         boundary nor check incoming stack boundary here.
2469         (gimple_expand_cfg): Update stack boundary and check incoming
2470         stack boundary here.
2471
2472 2009-01-15  Kenneth Zadeck  <zadeck@naturalbridge.com>
2473
2474         * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
2475         
2476 2009-01-14  Jakub Jelinek  <jakub@redhat.com>
2477
2478         PR rtl-optimization/38245
2479         * calls.c (expand_call): Add stack arguments to
2480         CALL_INSN_FUNCTION_USAGE even for pure calls (when
2481         ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
2482         in regs and partially in memory or BLKmode arguments.
2483         (emit_library_call_value_1): Add stack arguments to
2484         CALL_INSN_FUNCTION_USAGE even for pure calls (when
2485         ACCUMULATE_OUTGOING_ARGS).
2486         * dce.c: Include tm_p.h.
2487         (find_call_stack_args): New function.
2488         (deletable_insn_p): Call it for CALL_P insns.  Add ARG_STORES
2489         argument.
2490         (mark_insn): Call find_call_stack_args for CALL_Ps.
2491         (prescan_insns_for_dce): Walk insns backwards in bb rather than
2492         forwards.  Allocate and free arg_stores bitmap if needed, pass it
2493         down to deletable_insn_p, don't mark stores set in arg_stores
2494         bitmap, clear the bitmap at the beginning of each bb.
2495         * Makefile.in (dce.o): Depend on $(TM_P_H).
2496
2497 2009-01-14  Michael Meissner  <gnu@the-meissners.org>
2498
2499         PR target/22599
2500         * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
2501         to make sure the insn is a conditional test (bug 22599).  Reformat a
2502         few long lines.
2503
2504 2009-01-14  Sebastian Pop  <sebastian.pop@amd.com>
2505
2506         PR middle-end/38431
2507         * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
2508         (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
2509         (gloog): Do not call cleanup_tree_cfg.
2510         (graphite_transform_loops): Call cleanup_tree_cfg after all 
2511         scops have been code generated.
2512
2513 2009-01-14  Basile Starynkevitch  <basile@starynkevitch.net>
2514         * doc/gty.texi (Invoking the garbage collector): Added new node
2515         and section documenting ggc_collect.
2516
2517 2009-01-14  Richard Guenther  <rguenther@suse.de>
2518
2519         PR tree-optimization/38826
2520         PR middle-end/38477
2521         * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
2522         initialization notes only if we actually emitted a warning.
2523         (intra_create_variable_infos): Add constraints for a result decl
2524         that is passed by hidden reference.
2525         (build_pred_graph): Mark all related variables non-direct on
2526         address-taking.
2527
2528 2009-01-14  Nick Clifton  <nickc@redhat.com>
2529
2530         * ira-conflicts.c: Include addresses.h for the definition of
2531         base_reg_class.
2532         (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
2533         * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
2534
2535 2009-01-13  Vladimir Makarov  <vmakarov@redhat.com>
2536
2537         PR target/38811
2538         * Makefile.in (ira-lives.o): Add except.h.
2539
2540         * ira-lives.c: Include except.h.
2541         (process_bb_node_lives): Process can_throw_internal.
2542
2543 2009-01-13  Jakub Jelinek  <jakub@redhat.com>
2544
2545         PR rtl-optimization/38774
2546         * combine.c (simplify_set): When undoing cc_use change, don't do
2547         PUT_CODE on the newly created comparison, but instead put back the
2548         old comparison.
2549
2550 2009-01-13  Joseph Myers  <joseph@codesourcery.com>
2551
2552         * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
2553         values.  Remove duplicate arm8 entry.
2554
2555 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
2556
2557         PR tree-optimization/38786
2558         * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
2559         the SSA_NAME case of expand_scalar_variables_expr.
2560         Set the type of an expression to the type of its assign statement.
2561         (expand_scalar_variables_expr): Also gather the scalar computation
2562         used to index the memory access.  Do not pass loop_p.
2563         Fix comment.  Stop recursion on tcc_constant or tcc_declaration.
2564         (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
2565         the gimple_stmt_iterator where it inserts new code.
2566         Do not pass loop_p.
2567         (copy_bb_and_scalar_dependences): Do not pass loop_p.
2568         (translate_clast): Update call to copy_bb_and_scalar_dependences.
2569
2570 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
2571
2572         * graphite.h (debug_value): Removed.
2573         * graphite.c (debug_value): Removed.
2574
2575 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
2576
2577         * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
2578         ldrd/strd with two 32-bit instructions.
2579
2580 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
2581
2582         * config/arm/arm.c (struct processors): Pass for speed down into
2583         cost helper functions.
2584         (const_ok_for_op): Handle COMPARE and inequality nodes.
2585         (arm_rtx_costs_1): Rewrite.
2586         (arm_size_rtx_costs): Update prototype.
2587         (arm_rtx_costs): Pass speed down to helper functions.
2588         (arm_slowmul_rtx_costs): Rework cost calculations.
2589         (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
2590         (arm_9e_rtx_costs): Likewise.
2591
2592 2009-01-13  Uros Bizjak  <ubizjak@gmail.com>
2593
2594         * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
2595         relocations of local symbols wider than UNITS_PER_WORD are not valid.
2596         (alpha_legitimize_address): Do not split local symbols wider than
2597         UNITS_PER_WORD into HIGH/LO_SUM parts.
2598
2599 2009-01-13  Danny Smith  <dannysmith@users.sourceforge.net>
2600
2601         PR bootstrap/38580
2602         * gcc.c (process_command): Replace call to execvp with calls
2603         to pex_one and exit.
2604
2605 2009-01-03  Anatoly Sokolov  <aesok@post.ru>
2606
2607         PR target/29141
2608         * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
2609         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
2610         variant for devices with 3-byte PC.
2611         (__tablejump_elpm__) : New.
2612
2613 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
2614
2615         PR c/32041
2616         * c-parser.c (c_parser_postfix_expression): Allow `->' in
2617         offsetof member-designator, handle it as `[0].'.
2618
2619 2009-01-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2620
2621         * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
2622         function when not using named sections on targets with named sections
2623         if branch distance is less than 262132.
2624
2625 2009-01-12  Richard Earnshaw  <rearnsha@arm.com>
2626
2627         * combine.c (combine_instructions):  Recompute
2628         optimize_this_for_speed_p  for each BB in the main combine loop.
2629
2630 2009-01-12  Tomas Bily  <tbily@suse.cz>
2631
2632         PR middlend/38385
2633         * tree-loop-distribution.c (prop_phis): New function.
2634         (generate_builtin): Call prop_phis.
2635         * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
2636
2637 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
2638
2639         PR tree-optimization/38807
2640         * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
2641         gimple_visited_p unless stmt is GIMPLE_ASSIGN.
2642
2643 2009-01-11  Adam Nemet  <anemet@caviumnetworks.com>
2644
2645         * expmed.c (store_bit_field_1): Properly truncate the paradoxical
2646         subreg of op0 to the original op0.
2647
2648 2009-01-11  Laurent GUERBY  <laurent@guerby.net>
2649
2650         * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
2651         
2652 2009-01-11  Markus Schoepflin  <markus.schoepflin@comsoft.de>
2653
2654         PR debug/7055
2655         * gcc/mips-tfile.c (parse_def): Fix parsing of def strings
2656         starting with digits.
2657
2658 2009-01-10  Jakub Jelinek  <jakub@redhat.com>
2659
2660         PR target/38695
2661         * config/arm/arm.c (arm_is_long_call_p): Don't call
2662         arm_function_in_section_p if decl isn't a FUNCTION_DECL.
2663
2664 2009-01-09  Steven Bosscher  <steven@gcc.gnu.org>
2665
2666         * regrename.c (regrename_optimize): Fix dumping.
2667         (find_oldest_value_reg): Preserve REG_POINTER.
2668         (copy_hardreg_forward_1): Likewise.
2669
2670 2009-01-09  Diego Novillo  <dnovillo@google.com>
2671
2672         * gimple.h (struct gimple_statement_base) <uid>: Document
2673         the restrictions on its use.
2674         (gimple_uid): Tidy.
2675         (gimple_set_uid): Tidy.
2676
2677 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
2678
2679         * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
2680         zero guard even if align_bytes != 0 and count is smaller than
2681         size_needed.
2682
2683 2009-01-09  Vladimir Makarov  <vmakarov@redhat.com>
2684
2685         PR rtl-optimization/38495
2686         * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
2687         (add_range_and_copies_from_move_list): Print all added ranges.
2688         Add ranges to memory optimized destination.
2689
2690 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
2691
2692         PR target/38686
2693         PR target/38708
2694         * config/i386/i386.c (override_options): Reject
2695         -mstringop-strategy=rep_8byte with -m32.
2696         (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
2697         to 1.  Do count comparison against epilogue_size_needed at compile
2698         time even when count_exp was constant forced into register.  For
2699         size_needed don't jump to epilogue, instead just avoid aligning
2700         and invoke the body algorithm.  If need_zero_guard, add zero guard
2701         even if count is non-zero, but smaller than size_needed + number of
2702         bytes that could be stored for alignment.
2703         (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
2704         to 1.  If need_zero_guard, add zero guard even if count is non-zero,
2705         but smaller than size_needed + number of bytes that could be stored
2706         for alignment.  Compare size_needed with epilogue_size_needed instead
2707         of desired_align - align, don't adjust size_needed, pass
2708         epilogue_size_needed to the epilogue expanders.
2709
2710         PR c/35742
2711         * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
2712
2713 2009-01-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2714
2715         * pa.c (last_address): Change to unsigned.
2716         (update_total_code_bytes): Change argument to unsigned.  Don't
2717         check if insn addresses are set.
2718         (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
2719         addresses are not set.
2720         (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
2721
2722 2009-01-09  Nick Clifton  <nickc@redhat.com>
2723
2724         * config/sh/symbian.c: Replace uses of DECL_INLINE with
2725         DECL_DECLARED_INLINE_P.
2726
2727 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
2728
2729         PR middle-end/38347
2730         * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
2731         GET_MODE (op0) in operand_subword_force calls.
2732
2733         PR middle-end/38771
2734         * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
2735         fold_convert arg0 operands to TREE_TYPE (op0) first.
2736
2737 2009-01-08  Vladimir Makarov  <vmakarov@redhat.com>
2738
2739         * params.def (ira-max-conflict-table-size): Decrease default value
2740         to 1000.
2741
2742 2009-01-08  Jakub Jelinek  <jakub@redhat.com>
2743
2744         PR tree-optimization/37031
2745         * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
2746         on parameter_set.
2747         (build_access_matrix): Reserve correct size for AM_MATRIX vector,
2748         allocate it using gc instead of heap, use VEC_quick_push instead of
2749         VEC_safe_push.
2750         * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
2751         instead of heap, use VEC_quick_push instead of VEC_safe_push.
2752         * tree-data-ref.h (struct access_matrix): Change matrix to gc
2753         allocated vector from heap allocated.
2754         * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
2755         * tree-loop-linear.c (linear_transform_loops): Allocate nest
2756         vector only after perfect_loop_nest_depth call.
2757
2758 2009-01-08  Sebastian Pop  <sebastian.pop@amd.com>
2759             Jan Sjodin  <jan.sjodin@amd.com>
2760
2761         PR tree-optimization/38559
2762         * graphite.c (debug_value, copy_constraint,
2763         swap_constraint_variables, scale_constraint_variable, ): New.
2764         (get_lower_bound, get_upper_bound): Removed.
2765         (graphite_trans_bb_strip_mine): Clean up this code that works
2766         only for constant number of iterations.  Fully copy upper and
2767         lower bound constraints, not only the constant part of them.
2768         * graphite.h (debug_value): Declared.
2769
2770 2009-01-08  Ira Rosen  <irar@il.ibm.com>
2771
2772         PR tree-optimization/37194
2773         * tree-vect-transform.c (vect_estimate_min_profitable_iters):
2774         Don't add the cost of cost model guard in prologue to scalar 
2775         outside cost in case of known number of iterations.
2776
2777 2009-01-07  Nathan Froyd  <froydnj@codesourcery.com>
2778             Alan Modra  <amodra@bigpond.net.au>
2779
2780         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
2781         non-word-aligned REG+CONST addressing.
2782
2783 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
2784
2785         PR target/38706
2786         * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
2787         free_after_compilation when outputting a thunk.
2788         (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
2789         Do not call free_after_compilation here.
2790
2791 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
2792
2793         * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
2794         (ix86_valid_target_attribute_inner_p): Ditto.
2795
2796 2009-01-07  Jan Sjodin  <jan.sjodin@amd.com>
2797
2798         PR tree-optimization/38492
2799         PR tree-optimization/38498
2800         * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
2801         * tree-chrec.h (scev_is_linear_expression): Declared.
2802         * graphite.c (graphite_cannot_represent_loop_niter): New.
2803         (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
2804         (graphite_loop_normal_form): Use gcc_assert.
2805         (scan_tree_for_params): Use CASE_CONVERT.
2806         (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
2807         (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
2808         Use gcc_assert.  Discard scops that contain unhandled cases.
2809         (build_scop_conditions): Return a boolean status for unhandled cases.
2810         (strip_mine_profitable_p): Print the loop number, not its depth.
2811         (is_interchange_valid): Pass the depth of the loop nest, don't
2812         recompute it wrongly.
2813         (graphite_trans_bb_block): Same.
2814         (graphite_trans_bb_block): Print tentative of loop blocking.
2815         (graphite_trans_scop_block): Do not print that the loop has been
2816         blocked.
2817         (graphite_transform_loops): Do not handle scops that contain condition
2818         scalar phi nodes.
2819
2820 2009-01-07  H.J. Lu  <hongjiu.lu@intel.com>
2821
2822         AVX Programming Reference (December, 2008)
2823         * config/i386/avxintrin.h (_mm256_stream_si256): New.
2824         (_mm256_stream_pd): Likewise.
2825         (_mm256_stream_ps): Likewise.
2826
2827         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
2828         IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
2829         (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
2830         (bdesc_special_args): Add __builtin_ia32_movntdq256,
2831         __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
2832         (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
2833         (ix86_expand_special_args_builtin): Likewise.
2834
2835         * config/i386/sse.md (AVXMODEDI): New.
2836         (avx_movnt<mode>): Likewise.
2837         (avx_movnt<mode>): Likewise.
2838         (<sse>_movnt<mode>): Remove AVX support.
2839         (sse2_movntv2di): Likewise.
2840
2841 2009-01-07  Richard Guenther  <rguenther@suse.de>
2842
2843         PR middle-end/38751
2844         * fold-const.c (extract_muldiv): Remove obsolete comment.
2845         (fold_plusminus_mult_expr): Undo MINUS_EXPR
2846         to PLUS_EXPR canonicalization for the canonicalization.
2847
2848 2009-01-07  Gerald Pfeifer  <gerald@pfeifer.com>
2849
2850         * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
2851         hosted cross-compilers generating less efficient code.
2852
2853 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
2854
2855         * function.h (rtl_data): Add a dbr_scheduled_p field.
2856         * reorg.c (dbr_schedule): Set it.
2857         (gate_handle_delay_slots): Check it.
2858         * config/mips/mips.c (mips_base_delayed_branch): Delete.
2859         (mips_reorg): Check flag_delayed_branch instead of
2860         mips_base_delayed_branch.
2861         (mips_override_options): Don't set mips_base_delayed_branch
2862         or flag_delayed_branch.
2863
2864 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
2865
2866         PR rtl-optimization/38426.
2867         * ira.c (ira): Set current_function_is_leaf earlier.
2868
2869 2009-01-06  Jakub Jelinek  <jakub@redhat.com>
2870
2871         PR rtl-optimization/38722
2872         * combine.c (try_combine): Don't modify PATTERN (i3) and notes
2873         too early, only set a flag and modify after last possible
2874         undo_all point.
2875
2876 2009-01-06  Janis Johnson  <janis187@us.ibm.com>
2877
2878         PR c/34252
2879         * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
2880         * real.c (decimal_single_format): Correct values of emin and emax.
2881         (decimal_double_format): Ditto.
2882         (decimal_quad_format): Ditto.
2883         * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
2884         computation of DECnn_MIN and DECnn_MAX for corrected values of
2885         emin and emax.  Define __DECnn_SUBNORMAL_MIN__ instead of
2886         __DECnn_MIN__, and adjust its computation for the corrected value
2887         of emin.
2888
2889 2009-01-06  Jan Hubicka  <jh@suse.cz>
2890
2891         PR target/38744
2892         * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
2893
2894 2009-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
2895
2896         * doc/contrib.texi (Contributors): Slightly adjust the end note.
2897         Add Robert Clark to the list of testers.
2898
2899 2009-01-06  Jan Hubicka  <jh@suse.cz>
2900             Kai Tietz  <kai.tietz@onevision.com>
2901
2902         * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
2903         * config/i386/i386.c (ix86_expand_call): Add clobbers.
2904
2905 2009-01-06  Jan Hubicka  <jh@suse.cz>
2906             Kai Tietz  <kai.tietz@onevision.com>
2907
2908         * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
2909         for w64 ABI.
2910         * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
2911         (ix86_nsaved_regs): Count only general purpose regs.
2912         (ix86_nsaved_sseregs): New.
2913         (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
2914         to 16 for w64; compute padding and size of sse reg save area.
2915         (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
2916         general purpose regs.
2917         (ix86_emit_save_sse_regs_using_mov): New.
2918         (ix86_expand_prologue): Save SSE regs if needed.
2919         (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
2920         (ix86_emit_restore_sse_regs_using_mov): New.
2921         (ix86_expand_epilogue): Save SSE regs if needed.
2922
2923 2009-01-06  Jan Hubicka  <jh@suse.cz>
2924             Kai Tietz  <kai.tietz@onevision.com>
2925
2926         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
2927         * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
2928         functions when accumulate outgoing args is off.
2929
2930 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
2931
2932         PR bootstrap/38742
2933         * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
2934         before using pseudos_have_intersected_live_ranges_p.
2935
2936         * ira-int.h (ira_assert): Always define.
2937
2938 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
2939
2940         AVX Programming Reference (December, 2008)
2941         * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
2942         (_mm256_permute2_pd): Likewise.
2943         (_mm_permute2_ps): Likewise.
2944         (_mm256_permute2_ps): Likewise.
2945         * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
2946         * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
2947
2948         * config/i386/i386.c (ix86_builtins): Remove
2949         IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
2950         IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
2951         (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
2952         V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
2953         and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
2954         (bdesc_args): Remove __builtin_ia32_vpermil2pd,
2955         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
2956         __builtin_ia32_vpermil2ps256.
2957         (ix86_init_mmx_sse_builtins): Updated.
2958         (ix86_expand_args_builtin): Likewise.
2959
2960 2009-01-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2961
2962         * pa.c (output_call): Relocate non-jump insns in the delay slot of
2963         long absolute calls when generating PA 2.0 code.
2964
2965 2009-01-05  Vladimir Makarov  <vmakarov@redhat.com>
2966
2967         PR rtl-optimization/38583
2968         * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
2969
2970         * params.def (ira-max-conflict-table-size): New.
2971
2972         * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
2973         
2974         * ira.h (ira_conflicts_p): New external definition.
2975         
2976         * ira-conflicts.c (build_conflict_bit_table): Do not build too big
2977         table.  Report this.  Return result of building.
2978         (ira_build_conflicts): Use ira_conflicts_p.  Check result of
2979         building conflict table.
2980
2981         * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
2982         (ira_color): Use ira_conflicts_p.
2983         
2984         * global.c: Include ira.h.
2985         (pseudo_for_reload_consideration_p, build_insn_chain): Use
2986         ira_conflicts_p.
2987
2988         * Makefile.in (global.o): Add ira.h.
2989         
2990         * ira-build.c (mark_all_loops_for_removal,
2991         propagate_some_info_from_allocno): New.
2992         (remove_unnecessary_allocnos): Call
2993         propagate_some_info_from_allocno.
2994         (remove_low_level_allocnos): New.
2995         (remove_unnecessary_regions): Add parameter.  Call
2996         mark_all_loops_for_removal and remove_low_level_allocnos.  Pass
2997         parameter to remove_unnecessary_regions.
2998         (ira_build): Remove all regions but root if the conflict table was
2999         not built.  Update conflict hard regs for allocnos crossing calls.
3000
3001         * ira.c (ira_conflicts_p): New global.
3002         (ira): Define and use ira_conflicts_p.
3003
3004         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
3005         count_spilled_pseudo, find_reg, alter_reg, finish_spills,
3006         emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
3007         
3008 2009-01-06  Ben Elliston  <bje@au.ibm.com>
3009
3010         * gengtype-lex.l (YY_NO_INPUT): Define.
3011
3012 2009-01-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3013
3014         PR c/34911
3015         * c-common.c (handle_vector_size_attribute): Also reject
3016         BOOLEAN_TYPE types.
3017
3018 2009-01-05  Sebastian Pop  <sebastian.pop@amd.com>
3019
3020         PR tree-optimization/38492
3021         * graphite.c (rename_map_elt, debug_rename_elt,
3022         debug_rename_map_1, debug_rename_map, new_rename_map_elt,
3023         rename_map_elt_info, eq_rename_map_elts,
3024         get_new_name_from_old_name, bb_in_sese_p): Moved around.
3025         (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
3026         (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
3027         (sese_build_livein_liveouts): New.
3028         (new_sese, free_sese): New.
3029         (new_scop): Call new_sese.
3030         (free_scop): Call free_sese.
3031         (rename_variables_from_edge, rename_phis_end_scop): Removed.
3032         (register_old_new_names): Renamed register_old_and_new_names.
3033         (register_scop_liveout_renames, add_loop_exit_phis,
3034         insert_loop_close_phis, struct igp,
3035         default_liveout_before_guard, add_guard_exit_phis,
3036         insert_guard_phis, copy_renames): New.
3037         (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
3038         (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
3039         (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
3040         (scop_adjust_phis_for_liveouts): New.
3041         (gloog): Call scop_adjust_phis_for_liveouts.
3042
3043         * graphite.h (struct sese): Documented.  Added fields liveout,
3044         num_ver and livein.
3045         (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
3046         (new_sese, free_sese, sese_build_livein_liveouts): Declared.
3047         (struct scop): Added field liveout_renames.
3048         (SCOP_LIVEOUT_RENAMES): New.
3049
3050 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
3051
3052         PR tree-optimization/38510
3053         * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
3054         (translate_clast): Call recompute_all_dominators before
3055         graphite_verify.
3056         (gloog): Call recompute_all_dominators before graphite_verify.
3057
3058 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
3059             Jan Sjodin  <jan.sjodin@amd.com>
3060
3061         PR tree-optimization/38500
3062         * graphite.c (create_sese_edges): Call fix_loop_structure after
3063         splitting blocks.
3064
3065 2009-01-05  Joel Sherrill  <joel.sherrill@oarcorp.com>
3066
3067         * config.gcc: Add m32r*-*-rtems*.
3068         * config/m32r/rtems.h: New file.
3069
3070 2009-01-05  Ben Elliston  <bje@au.ibm.com>
3071
3072         * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
3073         (.po.pox): Likewise.
3074         (po/gcc.pot): Likewise.
3075
3076 2009-01-04  David S. Miller  <davem@davemloft.net>
3077
3078         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
3079         (STARTING_FRAME_OFFSET): Always set to zero.
3080
3081 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
3082
3083         * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
3084         * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
3085         fixed-point types, and vectors of the same.
3086
3087 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
3088
3089         * config/mips/sync.md (*mb_barrier): Rename to...
3090         (*memory_barrier): ...this.
3091
3092 2009-01-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
3093
3094         * doc/extend.texi (Function Attributes): Move @cindex after @item
3095         for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
3096         and put in alphabetical order. Fix 'target' name and put in order.
3097         * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
3098         typos.
3099
3100 2009-01-04  Uros Bizjak  <ubizjak@gmail.com>
3101
3102         * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
3103         (memory_barrier): Expand as unspec instead of unspec_volatile.
3104         Remove mem:BLK from insn operands.  Use Pmode scratch register.
3105         (*memory_barrier): Define as unspec instead of unspec_volatile.
3106         Use (match_dup 0) as input operand.
3107
3108         * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
3109         * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
3110         unspec_volatile.  Remove mem:BLK from insn operands.  Use Pmode
3111         scratch register.  Remove operand 1.
3112         (*stbar): Define as unspec instead of unspec_volatile.
3113         Use (match_dup 0) as input operand, remove (const_int 8).
3114         (*membar): Define as unspec instead of unspec_volatile.
3115         Use (match_dup 0) as input operand, remove input operand 2.
3116
3117         * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
3118         (memory_barrier): Expand as unspec instead of unspec_volatile.
3119         Remove mem:BLK from insn operands.  Use Pmode scratch register.
3120         (*memory_barrier): Define as unspec instead of unspec_volatile.
3121         Use (match_dup 0) as input operand.
3122
3123         * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
3124         Remove mem:BLK from insn operands.  Use Pmode scratch register.
3125         Set volatile flag on operand 0.
3126         (*memory_barrier): New insn pattern.
3127
3128         * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
3129         insn operands.
3130         (*memory_barrier): Use (match_dup 0) as input operand.
3131
3132         * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
3133         Remove mem:BLK from insn operands.  Use Pmode scratch register.
3134         Set volatile flag on operand 0.
3135         (*mb_internal): New insn pattern.
3136
3137         * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
3138
3139 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
3140
3141         PR middle-end/38586
3142         * function.c (struct temp_slot): Move to the section of the file
3143         that deals with temp slots.  Remove field 'address'.
3144         (temp_slot_address_table): New hash table of address -> temp slot.
3145         (struct temp_slot_address_entry): New struct, items for the table.
3146         (temp_slot_address_compute_hash, temp_slot_address_hash,
3147         temp_slot_address_eq, insert_temp_slot_address): Support functions
3148         for the new table.
3149         (find_temp_slot_from_address): Rewrite to use the new hash table.
3150         (remove_unused_temp_slot_addresses): Remove addresses of temp
3151         slots that have been made available.
3152         (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
3153         worker function for remove_unused_temp_slot_addresses.
3154         (assign_stack_temp_for_type): Don't clear the temp slot address list.
3155         Add the temp slot address to the address -> temp slot map.
3156         (update_temp_slot_address): Update via insert_temp_slot_address.
3157         (free_temp_slots): Call remove_unused_temp_slot_addresses.
3158         (pop_temp_slots): Likewise.
3159         (init_temp_slots): Allocate the address -> temp slot map, or empty
3160         the map if it is already allocated.
3161         (prepare_function_start): Initialize temp slot processing.
3162
3163 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
3164
3165         PR middle-end/38584
3166         * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
3167         Calculate the size of all stack vars assuming no packing of stack
3168         vars will happen, replacing a quadratic algorithm with a linear one.
3169
3170 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
3171
3172         PR target/38707
3173         * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
3174         can't be used.
3175
3176 2009-01-03  Diego Novillo  <dnovillo@google.com>
3177
3178         * doc/contrib.texi: Update contributions.
3179
3180 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
3181
3182         PR c++/38705
3183         * builtins.c (fold_builtin_memory_op): Give up if either operand
3184         is volatile.  Set srctype or desttype to non-qualified version
3185         of the other type.
3186
3187         PR c/38700
3188         * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
3189         and FUNCTION_DECLs.
3190
3191 2009-01-02  Kenneth Zadeck  <zadeck@naturalbridge.com>
3192
3193         PR rtl-optimization/35805
3194         * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
3195         problem if fast dce is able to remove any instructions.
3196         * dce.c (dce_process_block): Fix dump message.
3197         
3198 2009-01-02  Mark Mitchell  <mark@codesourcery.com>
3199
3200         PR 33649
3201         * tree-ssa-pre.c (compute_antic): Correct loop bounds.
3202
3203 2009-01-02  Jakub Jelinek  <jakub@redhat.com>
3204
3205         PR middle-end/38690
3206         * tree-flow.h (op_code_prio, op_prio): New prototypes.
3207         * tree-pretty-print.c (op_code_prio): New function.
3208         (op_prio): No longer static.  Use op_code_prio.
3209         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
3210         Use op_prio and op_code_prio to determine if () should be
3211         printed around operand(s) or not.
3212
3213         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
3214         dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
3215         dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
3216         dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
3217         pp_character instead of pp_string for single letter printing.
3218
3219 2009-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
3220
3221         * doc/extend.texi: Fix '#pragma GCC option' typo.
3222
3223 2009-01-02  Richard Guenther  <rguenther@suse.de>
3224
3225         * doc/install.texi (--enable-checking): Mention different
3226         default for stage1.
3227         (--enable-stage1-checking): Document.
3228
3229 2009-01-01  Andrew Pinski  <pinskia@gmail.com>
3230
3231         PR middle-end/30142
3232         * tree-cfg.c (verify_expr): Add INDIRECT_REF case.  Change MODIFY_EXPR
3233         case to be an error.
3234
3235 2009-01-02  Ben Elliston  <bje@au.ibm.com>
3236
3237         * config/fp-bit.h (pack_d): Constify argument.
3238         * config/fp-bit.c (makenan): Constify return type. Remove casts.
3239         (isnan): Constify argument.
3240         (isinf): Likewise.
3241         (iszero): Likewise.
3242         (pack_d): Likewise.
3243         (_fpadd_parts): Constify return type.
3244         (_fpmul_parts): Likewise.
3245         (_fpdiv_parts): Likewise.
3246
3247 2009-01-01  Jakub Jelinek  <jakub@redhat.com>
3248
3249         PR c/36489
3250         * c-typeck.c (add_pending_init): Add IMPLICIT argument.  Only
3251         warn about overwriting initializer with side-effects or
3252         -Woverride-init if !IMPLICIT.
3253         (output_init_element): Likewise.  Pass IMPLICIT down to
3254         add_pending_init.
3255         (process_init_element): Add IMPLICIT argument.  Pass it down
3256         to output_init_element.
3257         (push_init_element, pop_init_level, set_designator): Adjust
3258         process_init_element callers.
3259         (set_nonincremental_init, set_nonincremental_init_from_string):
3260         Adjust add_pending_init callers.
3261         (output_pending_init_elements): Adjust output_init_element callers.
3262         * c-tree.h (process_init_element): Adjust prototype.
3263         * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
3264         process_init_element callers.