OSDN Git Service

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