OSDN Git Service

5f8aac03cb50c5f6bc1a93ce584eaf0741a12406
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
2
3         PR target/39149
4         * config/i386/i386.c (override_options): Correct warning
5         messages for -malign-loops,  -malign-jumps and
6         -malign-functions.
7
8 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
9
10         PR target/39152
11         * config/i386/i386.md: Restrict the new peephole2 to move
12         between the general purpose registers.
13
14 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
15
16         PR target/39162
17         * config/i386/i386.c (type_natural_mode): Add a new argument.
18         Return the original mode and warn ABI change if vector size
19         is 32byte.
20         (function_arg_advance): Updated.
21         (function_arg): Likewise.
22         (ix86_function_value): Likewise.
23         (ix86_return_in_memory): Likewise.
24         (ix86_sol10_return_in_memory): Likewise.
25         (ix86_gimplify_va_arg): Likewise.
26         (function_arg_32): Don't warn ABX ABI change here.
27         (function_arg_64): Likewise.
28
29 2008-02-13  Bernd Schmidt  <bernd.schmidt@analog.com>
30
31         * loop-iv.c (implies_p): In the final case, test that operands 0
32         of the two comparisons match.
33
34         * config/bfin/bfin.c (find_prev_insn_start): New function.
35         (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
36         (find_next_insn_start): Move.
37
38 2009-02-13  Richard Guenther  <rguenther@suse.de>
39
40         * configure.ac: Enable LFS.
41         * configure: Re-generate.
42         * config.in: Likewise.
43
44 2009-02-13  Joseph Myers  <joseph@codesourcery.com>
45
46         PR c/35444
47         * c-parser.c (c_parser_parms_list_declarator): Discard pending
48         sizes on syntax error after some arguments have been parsed.
49
50 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
51
52         * doc/invoke.texi (-fira): Remove.
53
54 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
55
56         * caller-save.c: Replace regclass.c with reginfo.c in comments.
57         * recog.c: Likewise.
58         * rtl.h: Likewise.
59
60 2009-02-12  Uros Bizjak  <ubizjak@gmail.com>
61
62         * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
63         (umul_ppmm): Likewise.
64         (count_leading_zeros): Likewise.
65         (count_trailing_zeros): Likewise.
66         (UMUL_TIME): Likewise.
67
68 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
69
70         * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
71         soft-fp/t-softfp to tmake_file.
72
73         * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
74         (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
75         (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
76         IA64_BUILTIN_INFQ]: New.
77         (ia64_init_builtins): Initialize __builtin_infq,
78         __builtin_fabsq and __builtin_copysignq if not HPUX.
79         (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
80         IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
81
82         * config/ia64/lib1funcs.asm (__divtf3): Define only if
83         SHARED is defined.
84         (__fixtfti): Likewise.
85         (__fixunstfti): Likewise.
86         (__floattitf): Likewise.
87
88         * config/ia64/libgcc-glibc.ver: New.
89         * config/ia64/t-fprules-softfp: Likewise.
90         * config/ia64/sfp-machine.h: Likewise.
91
92         * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
93         (LIBGCC2_TF_CEXT): Likewise.
94         (TF_SIZE): Likewise.
95         (TARGET_INIT_LIBFUNCS): Likewise.
96
97         * config/ia64/t-glibc (SHLINB_MAPFILES):
98         Add $(srcdir)/config/ia64/libgcc-glibc.ver,
99
100 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
101
102         * config/i386/i386.c (construct_container): Rewrite processing
103         BLKmode with X86_64_SSE_CLASS.
104
105 2009-02-12  Paolo Bonzini  <bonzini@gnu.org>
106
107         PR target/39152
108         * config/i386/i386.md: Replace simplify_replace_rtx with
109         replace_rtx in the new peephole2.
110
111 2009-02-12  Nathan Sidwell  <nathan@codesourcery.com>
112
113         * doc/invoke.texi (Optimize Options): Stop claiming inlining and
114         loop unrolling do not happen at -O2.
115
116 2009-02-12  Michael Matz  <matz@suse.de>
117
118         * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
119
120 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
121
122         * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
123         for -g3.
124
125 2009-02-12  Ben Elliston  <bje@au.ibm.com>
126
127         * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
128         patterns when updating the back chain.  Missed in the 2009-02-10
129         change.
130
131 2009-02-11  Janis Johnson  <janis187@us.ibm.com>
132
133         * doc/extend.texi (Decimal Floating Types): Update identifier of
134         draft TR and list of missing support.
135
136 2009-02-11  Jakub Jelinek  <jakub@redhat.com>
137
138         PR middle-end/39154
139         * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
140         bit to variable length decl's flags, add it also to its
141         pointer replacement variable.
142
143 2009-02-11  Uros Bizjak  <ubizjak@gmail.com>
144             Jakub Jelinek  <jakub@redhat.com>
145
146         PR target/39118
147         * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
148         (memory_blockage): New expander.
149         (*memory_blockage): New insn pattern.
150         * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
151         instead of general blockage at the end of function prologue when
152         frame pointer is used to access red zone area.  Do not emit blockage
153         when profiling, it is emitted in generic code.
154         (ix86_expand_epilogue): Emit memory_blockage at the beginning of
155         function epilogue when frame pointer is used to access red zone area.
156
157 2009-02-11  Paolo Bonzini  <bonzini@gnu.org>
158
159         PR target/38824
160         * config/i386/i386.md: Add two new peephole2 to avoid mov followed
161         by arithmetic with memory operands.
162         * config/i386/predicates.md (commutative_operator): New.
163
164 2009-02-10  Janis Johnson  <janis187@us.ibm.com>
165
166         * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
167         bulleted lists.
168
169 2009-02-10  Eric Botcazou  <ebotcazou@adacore.com>
170
171         * alias.h (record_alias_subset): Declare.
172         * alias.c (record_alias_subset): Make global.
173
174 2009-02-10  Nick Clifton  <nickc@redhat.com>
175
176         * tree-parloops.c: Change license to GPLv3.
177         * ipa-struct-reorg.c: Change license to GPLv3.
178         * ipa-struct-reorg.h: Change license to GPLv3.
179
180 2009-02-10  Steve Ellcey  <sje@cup.hp.com>
181
182         PR c/39084
183         * c-decl.c (start_struct): Return NULL on error.
184
185 2009-02-10  Jakub Jelinek  <jakub@redhat.com>
186
187         PR middle-end/39124
188         * cfgloopmanip.c (remove_path): Call remove_bbs after
189         cancel_loop_tree, not before it.
190
191         PR target/39139
192         * function.h (struct function): Add has_local_explicit_reg_vars bit.
193         * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
194         VAR_DECLs were seen.
195         * tree-ssa-live.c (remove_unused_locals): Recompute
196         cfun->has_local_explicit_reg_vars.
197         * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
198         copies or clearings if cfun->has_local_explicit_reg_vars.
199
200 2009-02-10  Uros Bizjak  <ubizjak@gmail.com>
201
202         PR target/39118
203         * config/i386/i386.c (expand_prologue): Emit blockage at the end
204         of function prologue when frame pointer is used to access
205         red zone area.
206
207 2009-02-10  Richard Guenther  <rguenther@suse.de>
208
209         PR middle-end/39127
210         * gimplify.c (gimple_regimplify_operands): Always look if
211         we need to create a temporary.
212
213 2009-02-10  Richard Guenther  <rguenther@suse.de>
214
215         PR tree-optimization/39132
216         * tree-loop-distribution.c (todo): New global var.
217         (generate_memset_zero): Trigger TODO_rebuild_alias.
218         (tree_loop_distribution): Return todo.
219
220 2009-02-10  H.J. Lu  <hongjiu.lu@intel.com>
221
222         PR target/39119
223         * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
224         (x86_64_reg_class_name): Removed.
225         (classify_argument): Return 0 if bytes > 32.  Return 0 if the
226         first one isn't X86_64_SSE_CLASS or any other ones aren't
227         X86_64_SSEUP_CLASS when size > 16bytes.  Don't turn
228         X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
229         is X86_64_SSEUP_CLASS.  Set AVX modes to 1 X86_64_SSE_CLASS
230         and 3 X86_64_SSEUP_CLASS.
231         (construct_container): Remove X86_64_AVX_CLASS.  Handle 4
232         registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
233
234 2009-02-10  Ben Elliston  <bje@au.ibm.com>
235
236         * config/rs6000/rs6000.md (allocate_stack): Always use an update
237         form instruction to update the stack back chain word, even if the
238         user has disabled the generation of update instructions.
239         (movdi_<mode>_update_stack): New.
240         (movsi_update_stack): Likewise.
241         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
242         always use an update form instruction to update the stack back
243         chain word.
244
245 2009-02-09  Sebastian Pop  <sebastian.pop@amd.com>
246
247         PR middle-end/38953
248         * graphite.c (if_region_set_false_region): After moving a region in
249         the false branch of a condition, remove the empty dummy basic block.
250         (gloog): Remove wrong fix for PR38953.
251
252 2009-02-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
253
254         * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
255         generation due to implicit sign extension.
256
257 2009-02-09  Eric Botcazou  <ebotcazou@adacore.com>
258
259         PR middle-end/38981
260         * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
261         at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
262
263 2009-02-09  Richard Guenther  <rguenther@suse.de>
264
265         PR middle-end/35202
266         * convert.c (convert_to_real): Disable (float)fn((double)x)
267         to fnf(x) conversion if errno differences may occur and
268         -fmath-errno is set.
269
270 2009-02-07  Anatoly Sokolov  <aesok@post.ru>
271
272         * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
273         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
274         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
275
276 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
277
278         PR c/35434
279         * c-common.c (handle_alias_attribute): Disallow attribute for
280         anything not a FUNCTION_DECL or VAR_DECL.
281
282 2009-02-06  Janis Johnson  <janis187@us.ibm.com>
283
284         PR c/39035
285         * real.c (do_compare): Special-case compare of zero against
286         decimal float value.
287
288 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
289
290         PR c/36432
291         * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
292         as indicating flexible array members unless the field itself is
293         being declarared as the incomplete array.
294
295 2009-02-06  Jan Hubicka  <jh@suse.cz>
296
297         PR tree-optimization/38844
298         * ipa-inline.c (try_inline): Stop inlining recursion when edge
299         is already inlined.
300
301 2009-02-06  Richard Guenther  <rguenther@suse.de>
302
303         PR middle-end/38977
304         * tree-cfg.c (need_fake_edge_p): Force a fake edge for
305         fork because we may expand it as __gcov_fork.
306
307 2009-02-06  Nick Clifton  <nickc@redhat.com>
308
309         * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
310
311 2009-02-06  Paolo Bonzini  <bonzini@gnu.org>
312
313         PR tree-optimization/35659
314         * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
315         vn_phi_eq): Shortcut if hashcode does not match.
316         (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
317         NULL operands.
318         * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
319         and avoid iterative_hash_expr.
320         (FOR_EACH_VALUE_ID_IN_SET): New.
321         (value_id_compare): Remove.
322         (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
323         sort expressions by value id.
324
325 2009-02-05  Kaz Kojima  <kkojima@gcc.gnu.org>
326
327         PR target/38991
328         * config/sh/predicates.md (general_movsrc_operand): Don't check
329         the subreg of system registers here.
330
331 2009-02-05  Jakub Jelinek  <jakub@redhat.com>
332
333         PR c++/39106
334         * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
335         on the copied decl.
336
337 2009-02-05  Paolo Bonzini  <bonzini@gnu.org>
338
339         PR rtl-optimization/39110
340         * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
341         addresses, not aligned ones.
342
343 2009-02-05  Daniel Berlin  <dberlin@dberlin.org>
344             Richard Guenther  <rguenther@suse.de>
345
346         PR tree-optimization/39100
347         * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
348         comment says and add edges.
349
350 2009-02-05  Joseph Myers  <joseph@codesourcery.com>
351
352         PR c/35435
353         * c-common.c (handle_tls_model_attribute): Ignore attribute for
354         non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
355
356 2009-02-04  Tobias Grosser  <grosser@fim.uni-passau.de> 
357
358         * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
359         sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
360         register_bb_in_sese, new_sese, free_sese): Moved.
361         (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
362         outermost_loop_in_scop, build_scop_iteration_domain,
363         expand_scalar_variables_ssa_name, get_vdef_before_scop,
364         limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
365         Use loop_in_sese_p instead of loop_in_scop_p.
366         (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
367         (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
368         (scopdet_basic_block_info): Fix bug in scop detection.
369         (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
370         eq_loop_to_cloog_loop): Remove.
371         (nb_loops_around_loop_in_scop, nb_loop
372         ref_nb_loops): Moved here...
373         * graphite.h (ref_nb_loops): ... from here.
374         (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
375         (loop_domain_dim, loop_iteration_vector_dim): Remove.
376         (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
377         * testsuite/gcc.dg/graphite/scop-19.c: New
378
379 2009-02-04  Paolo Bonzini  <bonzini@gnu.org>
380             Hans-Peter Nilsson  <hp@axis.com>
381
382         PR rtl-optimization/37889
383         * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
384         Move offset handling from PLUS to before the switch.  Use new
385         arguments when considering SYMBOL_REFs too.
386         (rtx_addr_can_trap_p): Pass dummy offset and size.
387         (enum may_trap_p_flags): Remove.
388         (may_trap_p_1): Pass size from MEM_SIZE.
389
390         PR rtl-optimization/38921
391         * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
392         * rtl.h (may_trap_after_code_motion_p): Delete prototype.
393         * rtlanal.c (may_trap_after_code_motion_p): Delete.
394         (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
395
396 2009-02-04  H.J. Lu  <hongjiu.lu@intel.com>
397
398         AVX Programming Reference (January, 2009)
399         * config/i386/sse.md (*vpclmulqdq): New.
400
401 2009-02-04  Jakub Jelinek  <jakub@redhat.com>
402
403         PR tree-optimization/38977
404         PR gcov-profile/38292
405         * calls.c (special_function_p): Disregard __builtin_ prefix.
406
407 2009-02-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
408
409         * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
410         non-indexable addresses even before reload.
411
412 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
413
414         PR c/29129
415         * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
416         as having variable size.  Do not give an error for unnamed
417         parameters with [*] declarators.  Give a warning for type names
418         with [*] declarators and mark them as variable size.
419         * c-parser.c (c_parser_sizeof_expression): Do not give an error
420         for sizeof applied to [*] type names.
421
422 2009-02-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
423
424         PR C++/36607
425         * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
426
427 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
428
429         * gcc.c (process_command): Update copyright notice dates.
430         * gcov.c (print_version): Likewise.
431         * gcov-dump.c (print_version): Likewise.
432         * mips-tfile.c (main): Likewise.
433         * mips-tdump.c (main): Likewise.
434
435 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
436
437         PR c/35433
438         * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
439         for composite type involving a zero-length array type.
440
441 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
442
443         PR target/35318
444         * function.c (match_asm_constraints_1): Skip over
445         initial optional % in the constraint.
446
447         PR inline-asm/39059
448         * c-parser.c (c_parser_postfix_expression): If fixed point is not
449         supported, don't accept FIXED_CSTs.
450         * c-decl.c (finish_declspecs): Error if fixed point is not supported
451         and _Sat is used without _Fract/_Accum.  Set specs->type to
452         integer_type_node for cts_fract/cts_accum if fixed point is not
453         supported.
454
455 2009-02-02  Catherine Moore  <clm@codesourcery.com>
456
457         * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
458
459 2009-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
460
461         * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
462         (ABI_HAS_64BIT_SYMBOLS): Use it.
463         (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
464
465 2009-02-02  Paul Brook  <paul@codesourcery.com>
466
467         * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
468
469 2009-02-02  Jakub Jelinek  <jakub@redhat.com>
470
471         PR inline-asm/39058
472         * recog.h (asm_operand_ok): Add constraints argument.
473         * recog.c (asm_operand_ok): Likewise.  If it is set, for digits
474         recurse on matching constraint.
475         (check_asm_operands): Pass constraints as 3rd argument to
476         asm_operand_ok.  Don't look up matching constraint here.
477         * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
478         to asm_operand_ok.
479
480 2009-02-02  Ben Elliston  <bje@au.ibm.com>
481
482         * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
483         TARGET_NARROW_VOLATILE_BITFIELD macro names.
484
485 2009-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
486
487         * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
488         information.  Remove some obsolete information.  Reorganize.
489
490         * config/pa/fptr.c: Revert license to GPL 2.
491         * config/pa/milli64.S: Likewise.
492
493 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
494
495         PR target/38904
496         * mkmap-flat.awk (END):  Use pe_dll command-line arg to pass
497         LIBRARY name in, instead of hard-coding it.
498         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*):  Add an
499         extra target make frag to tmake_files according to EH model.
500         (i[34567]86-*-mingw* | x86_64-*-mingw*):  Likewise.
501         * config/i386/t-dw2-eh, config/i386/t-sjlj-eh:  Add new target
502         frags that define makefile variable EH_MODEL appropriately.
503         * config/i386/cygming.h (DWARF2_UNWIND_INFO):  Add comment.
504         * config/i386/cygwin.h (LIBGCC_EH_EXTN):  Define to nothing or
505         to "-sjlj" according to type of EH configured.
506         (LIBGCC_SONAME):  Concatenate it to shared library base name.
507         * config/i386/mingw32.h (LIBGCC_EH_EXTN):  Define to "_dw2" or
508         to "_sjlj" according to type of EH configured.
509         (LIBGCC_SONAME):  Concatenate it to shared library base name.
510         * config/i386/t-cygming (SHLIB_SONAME):  Use EH_MODEL.
511         (SHLIB_LINK):  Add missing semicolon to if-else construct.
512         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
513         string value of "pe_dll" command-line option.
514         * config/i386/t-cygwin (SHLIB_EH_EXTENSION):  New helper.
515         (SHLIB_SONAME):  Use it when overriding t-cygming default.
516         (SHLIB_IMPLIB):  Override t-cygming default.
517         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
518         string value of "pe_dll" command-line option.
519
520 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
521
522         PR target/38952
523         * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
524         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
525
526 2009-01-31  Richard Guenther  <rguenther@suse.de>
527
528         PR tree-optimization/38937
529         * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
530         computing the transitive closure.
531
532 2009-01-30  Richard Guenther  <rguenther@suse.de>
533
534         PR tree-optimization/39041
535         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
536         Propagate variable indices only if the types match for this stmt.
537
538 2009-01-30  Jakub Jelinek  <jakub@redhat.com>
539
540         PR target/39013
541         * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
542         inline but never defined.
543
544 2009-01-30  Wolfgang Gellerich  <gellerich@de,ibm.com>
545
546         * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
547         (*insv_h_di_reg_extimm): New insn.
548         (*insv_l<mode>_reg_extimm): New insn.
549
550 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
551
552         * config/picochip/picochip.c (flag_conserve_stack): set
553         PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
554         fconserve-stack. Reduce call-overhead used by inliner.
555
556 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
557
558         PR/38157
559         * common.opt (flag_conserve_stack): Initialised to zero.
560
561 2009-01-30  Kai Tietz  <kai.tietz@onevision.com>
562
563         PR/39002
564         * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
565         (ix86_expand_epilogue): Take nsseregs in account to use proper restore
566         method.
567
568 2009-01-29  H.J. Lu  <hongjiu.lu@intel.com>
569
570         * ira-color.c (allocno_reload_assign): Update comments.
571         * regmove.c (regmove_optimize): Likewise.
572
573         * ra.h: Removed.
574
575 2009-01-29  Robert Millan  <rmh@aybabtu.com>
576
577         * gcc/config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
578         * gcc/config/i386/kopensolaris-gnu.h: New file.  Undefine
579         `MD_UNWIND_SUPPORT'.
580         * gcc/config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
581
582 2009-01-29  Kazu Hirata  <kazu@codesourcery.com>
583
584         PR tree-optimization/39007
585         * tree-loop-distribution.c (generate_builtin): Use
586         recompute_dominator to compute the immediate dominator of the
587         basic block just after the loop.
588
589 2008-01-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
590
591         * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
592         (ASM_OUTPUT_DWARF_PCREL): Define.
593
594 2008-01-29  Vladimir Makarov  <vmakarov@redhat.com>
595
596         * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
597         * doc/passes.texi: Remove entries about regclass, local-alloc, and
598         global.  Modify entries about regmove and IRA.
599
600         * ra-conflict.c: Remove the file.
601
602         * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
603
604         * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
605         (pass_regclass_init): Rename to pass_reginfo_init.
606
607         * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
608
609         * toplev.h (flag_ira): Remove.
610
611         * caller-save.c (setup_save_areas): Remove flag_ira.
612
613         * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
614
615         * global.c: Remove the file.
616
617         * opts.c: (decode_options): Remove flag_ira.
618
619         * hard-reg-set.h (losing_caller_save_reg_set): Remove.
620
621         * regmove.c: Modify file description.
622         (find_use_as_address, try_auto_increment): Define them only if
623         AUTO_INC_DEC is defined.
624         (replacement_quality, replace_in_call_usage, fixup_match_1,
625         stable_and_no_regs_but_for_p): Remove.
626         (reg_set_in_bb): Make it static.
627         (regmove_optimize): Remove flag_ira and code which worked for
628         !flag_ira.
629
630         * local-alloc.c: Remove the file.
631
632         * common.opt (fira): Remove.
633
634         * ira.c: Include except.h.
635         (eliminable_regset): Move from global.c.
636         (mark_elimination): Ditto.  Remove flag_ira.
637         (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
638         equiv_mem_modified, validate_equiv_mem_from_store,
639         validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
640         contains_replace_regs, memref_referenced_p, memref_used_between_p,
641         no_equiv, recorded_label_ref): Move from local-alloc.c.
642         (update_equiv_regs): Ditto.  Make it static.
643         (print_insn_chain, print_insn_chains): Move it from global.c.
644         (pseudo_for_reload_consideration_p): Ditto.  Remove flag_ira.
645         (build_insn_chain): Ditto.  Make it static.
646         (ra_init_live_subregs): Move from ra-conflict.c.  Make it static.
647         Rename to init_live_subregs.
648         (gate_ira): Remove flag_ira.
649
650         * regclass.c: Rename reginfo.c.  Change file description.
651         (FORBIDDEN_INC_DEC_CLASSES): Remove.
652         (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
653         (init_reg_sets_1): Remove code for evaluation of
654         reg_class_superclasses and losing_caller_save_reg_set.
655         (init_regs): Remove init_reg_autoinc.
656         (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
657         ok_for_base_p_nonstrict): Remove.
658         (regclass_init): Rename to reginfo_init.  Don't initialize init_cost.
659         (pass_regclass_init): Rename to pass_reginfo_init.  Modify
660         corresponding entries.
661         (dump_regclass, record_operand_costs, scan_one_insn,
662         init_reg_autoinc, regclass, record_reg_classes, copy_cost,
663         record_address_regs, auto_inc_dec_reg_p): Remove.
664         (gt-regclass.h): Rename to gt-reginfo.h.
665
666         * rtl.h (dump_global_regs, retry_global_alloc,
667         build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
668
669         * Makefile.in (RA_H): Remove.
670         (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
671         Rename regclass.o to reginfo.o.
672         (regclass.o): Rename to reginfo.o.  Rename gt-regclass.h to
673         gt-reginfo.h.
674         (global.o, local-alloc.o, ra-conflict.o): Remove entries.
675         (GTFILES): Rename regclass.c to reginfo.c.
676
677         * passes.c (init_optimization_passes): Remove pass_local_alloc and
678         pass_global_alloc.  Rename pass_regclass_init to pass_reginfo_init.
679
680         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
681         count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
682         Remove flag_ira.
683         (finish_spills): Ditto.  Remove code for !flga_ira.
684         
685 2009-01-29  Kenneth Zadeck  <zadeck@naturalbridge.com>
686
687         PR middle-end/35854
688         * doc/invoke.texi (rtl debug options): Complete rewrite.
689         * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
690         to auto_inc_dec".
691         * mode-switching.c (pass_mode_switching): Rename pass from
692         "mode-sw" to "mode_sw".
693         * except.c (pass_convert_to_eh_ranges): Rename pass from
694         "eh-ranges" to "eh_ranges".
695         * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
696         to "subreg1".
697                 
698         
699 2009-01-29  Andrey Belevantsev  <abel@ispras.ru>
700             Alexander Monakov  <amonakov@ispras.ru>
701
702         PR middle-end/38857
703         * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
704         register.
705         (move_exprs_to_boundary): Change return type and pass through
706         should_move from move_op.  Relax assert.  Update usage ...
707         (schedule_expr_on_boundary): ... here.  Use should_move instead of
708         cant_move.
709         (move_op_orig_expr_found): Indicate that insn was disconnected from
710         stream.
711         (code_motion_process_successors): Do not call after_merge_succs
712         callback if original expression was not found when traversing any of
713         the branches.
714         (code_motion_path_driver): Change return type.  Update prototype.
715         (move_op): Update comment.  Add a new parameter (should_move).  Update
716         prototype.  Set *should_move based on indication provided by
717         move_op_orig_expr_found.
718
719 2009-01-28  Pat Haugen  <pthaugen@us.ibm.com>
720
721         * doc/invoke.texi (avoid-indexed-addresses): Document new option.
722         * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
723         * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
724         * config/rs6000/rs6000.c (rs6000_override_options): Default
725         avoid-indexed-addresses on for Power6, off for everything else.
726         (avoiding_indexed_address_p): New function.
727         (rs6000_legitimize_address): Use it.
728         (rs6000_legitimate_address): Likewise.
729         * config/rs6000/rs6000.md (movXX_updateX): Likewise
730
731 2009-01-28  Kazu Hirata  <kazu@codesourcery.com>
732
733         PR tree-optimization/38997
734         * tree-loop-distribution.c (generate_memset_zero): Use
735         POINTER_PLUS_EXPR for a pointer addition.
736
737 2009-01-28  Andreas Krebbel  <krebbel1@de.ibm.com>
738
739         * config/s390/s390.md (bswap<mode>2): New pattern added.
740
741 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
742
743         * config/s390/s390.md (*tls_load_31): Added type attribute.
744
745 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
746
747         * config/s390/s390.md: Fix a few comments.
748
749 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
750
751         * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
752         (*tm<mode>_full): Fixed z10prop attribute.
753         (*tst<mode>_extimm): Fixed z10prop attribute.
754         (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
755         (*tstqiCCT_cconly): Fixed z10prop attribute.
756         (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
757         (*movsi_larl): Fixed z10prop attribute.
758         (*movsi_zarch): Fixed z10prop attribute.
759         (*movsi_eas): Fixed z10prop attribute.
760         (*movhi): Fixed z10prop attribute.
761         (*movqi): Fixed z10prop attribute.
762         (*movstrictqi): Fixed z10prop attribute.
763         (*mov<mode>): Fixed z10prop attribute.
764         (*movcc): Fixed z10prop attribute.
765         (*sethighpartdi_64): Fixed z10prop attribute.
766         (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
767         (*negdi2_sign_cc): Fixed z10prop attribute.
768         (*negdi2_sign): Fixed z10prop attribute.
769         (*absdi2_sign_cc): Fixed z10prop attribute.
770         (*absdi2_sign): Fixed z10prop attribute.
771         (*negabsdi2_sign_cc): Fixed z10prop attribute.
772         (*negabsdi2_sign): Fixed z10prop attribute.
773         (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
774         (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
775         (doloop_si64): Fixed z10prop attribute.
776         (doloop_si31): Fixed z10prop attribute.
777         (doloop_long): Fixed z10prop attribute.
778         (indirect_jump): Fixed z10prop attribute.
779         (nop): Fixed z10prop attribute.
780         (main_base_64): Fixed z10prop attribute.
781         (reload_base_64): Fixed z10prop attribute.
782
783 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
784
785         PR rtl-optimization/38740
786         * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling if !optimize.
787         * config/mips/mips.c (mips_reorg): Likewise.
788
789 2009-01-28  Richard Guenther  <rguenther@suse.de>
790
791         PR tree-optimization/38926
792         * tree-ssa-pre.c (add_to_value): Assert we add only expressions
793         with the correct value id to a value.
794         (do_regular_insertion): Use the value number of edoubleprime
795         for the value number of the expr.
796
797         Revert
798         2008-08-21  Richard Guenther  <rguenther@suse.de>
799
800         * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
801         a PHI ask VN if it is already available.
802         * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
803         * tree-ssa-sccvn.c (vn_phi_lookup): Export.
804
805 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
806
807         PR middle-end/38934
808         * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
809         set to varying whenever max has TREE_OVERFLOW set, similarly
810         for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
811
812 2009-01-28  Richard Guenther  <rguenther@suse.de>
813
814         PR middle-end/38908
815         * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
816         uninitialized aggregate uses in call arguments.
817
818 2009-01-28  Paolo Bonzini  <bonzini@gnu.org>
819
820         PR tree-optimization/38984
821         * tree-ssa-structalias.c (get_constraints_for_1): Do not use
822         the nothing_id variable if -fno-delete-null-pointer-checks.
823
824 2009-01-28  Uros Bizjak  <ubizjak@gmail.com>
825
826         PR target/38988
827         * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
828         (set_got_offset_rex64): Ditto.
829
830 2009-01-27  H.J. Lu  <hongjiu.lu@intel.com>
831
832         PR target/38941
833         * doc/extend.texi: Improve local variable with asm reg.
834
835 2009-01-27  Adam Nemet  <anemet@caviumnetworks.com>
836
837         * c.opt (Wpacked-bitfield-compat): Change init value to -1.
838         * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
839         was not supplied then set warn_packed_bitfield_compat to the
840         default value of 1.
841         * stor-layout.c (place_field): Check warn_packed_bitfield_compat
842         against 1.
843
844 2009-01-27  Richard Guenther  <rguenther@suse.de>
845
846         PR tree-optimization/38503
847         * cfgexpand.c (expand_gimple_basic_block): Ignore
848         GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
849         * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
850         variables that cannot have TBAA applied.
851         (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
852         statements.
853
854 2009-01-27  Uros Bizjak  <ubizjak@gmail.com>
855
856         PR middle-end/38969
857         * calls.c (initialize_argument_information): Do not wrap complex
858         arguments in SAVE_EXPR.
859
860 2009-01-26  Andreas Tobler  <a.tobler@schweiz.org>
861
862         * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
863         (INSTALL_LIBGCC): Revert typo commit.
864
865 2009-01-26  Richard Guenther  <rguenther@suse.de>
866
867         PR tree-optimization/38745
868         * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
869         from special handling.
870
871 2009-01-26  Richard Guenther  <rguenther@suse.de>
872
873         PR tree-optimization/38745
874         * tree-ssa.c (execute_update_addresses_taken): Do not include
875         variables that cannot possibly be a register in not_reg_needs.
876         Do not clear TREE_ADDRESSABLE on vars that may not become
877         registers.
878         * tree-ssa.c (update_alias_info_1): Include those in the set
879         of addressable vars.
880
881 2009-01-26  Richard Guenther  <rguenther@suse.de>
882
883         PR middle-end/38851
884         * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
885         * tree-ssa-dse.c: Include langhooks.h
886         (execute_simple_dse): Remove stores with zero size.
887
888 2009-01-24  Jakub Jelinek  <jakub@redhat.com>
889
890         PR c/38957
891         * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
892         as PLUS_EXPR.
893
894 2009-01-24  Julian Brown  <julian@codesourcery.com>
895
896         * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
897         config/arm/linux-atomic.c.
898         * config/arm/linux-atomic.c: New.
899
900 2009-01-24  Eric Botcazou  <ebotcazou@adacore.com>
901
902         * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
903         * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
904         * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
905
906 2009-01-24  H.J. Lu  <hongjiu.lu@intel.com>
907
908         PR c/38938
909         * c-opts.c (c_common_handle_option): Update warn_pointer_sign
910         properly.
911
912 2009-01-24  Sebastian Pop  <sebastian.pop@amd.com>
913
914         PR tree-optimization/38953
915         * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
916         (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
917         (gloog): Split the exit of the scop when the scop exit is a loop exit.
918         (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
919         changed the CFG.
920
921 2009-01-24  Paul Brook  <paul@codesourcery.com>
922
923         * config/arm/neon.md (neon_type): Move to arm.md.
924         (neon_mov<VSTRUCT>): Add neon_type attribute.
925         * config/arm/arm.md (neon_type): Move to here.
926         (conds): Add "unconditioal" and use as default for NEON insns.
927
928 2009-01-24  Ben Elliston  <bje@au.ibm.com>
929
930         * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
931         void *' warning from -Wc++-compat.
932         * Makefile.in (dominance.o-warn): Remove.
933
934 2008-01-23  Paolo Bonzini  <bonzini@gnu.org>
935
936         PR tree-optimization/38932
937         * fold-const.c (fold_unary_ignore_overflow): New.
938         * tree.h (fold_unary_ignore_overflow): Declare.
939         * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
940         * tree-ssa-sccvn.c (visit_reference_op_load,
941         simplify_unary_expression): Likewise.
942
943 2009-01-22  Adam Nemet  <anemet@caviumnetworks.com>
944
945         * c-decl.c (finish_struct): Move code to set DECL_PACKED after
946         DECL_BIT_FIELD is alreay known.  Also inherit packed for bitfields
947         regardless of their type.
948         * c-common.c (handle_packed_attribute): Don't ignore packed on
949         bitfields.
950         * c.opt (Wpacked-bitfield-compat): New warning option.
951         * stor-layout.c (place_field): Warn if offset of a field changed.
952         * doc/extend.texi (packed): Mention the ABI change.
953         * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
954         (Warning Options): Add it to the list.
955
956 2009-01-22  H.J. Lu  <hongjiu.lu@intel.com>
957
958         * c-opts.c (c_common_post_options): Fix a typo in comments.
959
960 2009-01-22  Steve Ellcey  <sje@cup.hp.com>
961
962         PR middle-end/38615
963         * gimplify.c (gimplify_init_constructor): Fix promotion of const
964         variables to static.
965         * doc/invoke.texi (-fmerge-all-constants): Update description.
966
967 2009-01-22  Uros Bizjak  <ubizjak@gmail.com>
968
969         PR target/38931
970         * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
971         (*movdi_1_rex64): Use type "mmx" for alternative 5.
972
973 2009-01-22  Richard Earnshaw  <rearnsha@arm.com>
974
975         * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
976         a word boundary.
977         (LOCAL_ALIGNMENT): Similarly.
978
979 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
980             Joseph Myers  <joseph@codesourcery.com>
981
982         * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
983         * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
984         * config/arm/arm-tune.md: Regenerate.
985         * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
986         -march=iwmmxt2.
987
988 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
989
990         * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
991         version number to five.
992
993 2009-01-22  Dodji Seketeli  <dodji@redhat.com>
994
995         PR c++/38930
996         * c-decl.c: (clone_underlying_type): Revert PR c++/26693 changes.
997         * c-common.c (set_underlying_type): Likewise.
998         (is_typedef_decl ): Likewise
999         * tree.h: Likewise
1000         (set_underlying_type): Likewise.
1001         (is_typedef_type): Likewise.
1002
1003 2009-01-21  Vladimir Makarov  <vmakarov@redhat.com>
1004
1005         PR middle-end/38587
1006         * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
1007         crossing setjmps.
1008
1009 2009-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
1010
1011         PR bootstrap/37660
1012         * config/i386/cygwin.h (SHARED_LIBGCC_SPEC):  New helper macro.
1013         (LIBGCC_SPEC):  Don't define.
1014         (REAL_LIBGCC_SPEC):  Define instead, using SHARED_LIBGCC_SPEC.
1015
1016 2009-01-21  Uros Bizjak  <ubizjak@gmail.com>
1017
1018         PR rtl-optimization/38879
1019         * alias.c (base_alias_check): Unaligned access via AND address can
1020         alias all surrounding object types except those with sizes equal
1021         or wider than the size of unaligned access.
1022
1023 2009-01-21  Dodji Seketeli  <dodji@redhat.com>
1024
1025         PR c++/26693
1026         * c-decl.c: (clone_underlying_type): Move this ...
1027         * c-common.c (set_underlying_type): ... here.
1028         Also, make sure the function properly sets TYPE_STUB_DECL() on
1029         the newly created typedef variant type.
1030         (is_typedef_decl ): New entry point.
1031         * tree.h: Added a new member member_types_needing_access_check to
1032         struct tree_decl_non_common.
1033         (set_underlying_type): New entry point.
1034         (is_typedef_type): Likewise.
1035
1036 2009-01-21  Bingfeng Mei  <bmei@broadcom.com>
1037
1038         * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
1039         Check whether two instructions have memory references that
1040         belong to conflicting alias sets.  walk_mems_1 and walk_mems_2
1041         are helper functions for traversing.
1042         * alias.h (insn_alias_sets_confilict_p): New prototypes.
1043         * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
1044         not to draw dependency edge for instructions with non-conflicting
1045         alias sets.
1046
1047 2009-01-20  Joseph Myers  <joseph@codesourcery.com>
1048
1049         PR other/38758
1050         * longlong.h: Update copyright years.  Use soft-fp license
1051         notice.  Sync __clz_tab declaration with glibc.
1052
1053 2009-01-20  Steve Ellcey  <sje@cup.hp.com>
1054
1055         PR target/30687
1056         * doc/extend.texi (syscall_linkage): New.
1057         (version_id): Modify.
1058
1059 2009-01-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1060             Richard Guenther  <rguenther@suse.de>
1061
1062         PR tree-optimization/38747
1063         PR tree-optimization/38748
1064         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
1065         conversion if the base address is an indirect reference and the
1066         aliasing sets could cause issues.
1067
1068 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
1069
1070         * common.opt (fgraphite, fgraphite-identity): Add comment for 
1071         explaining why these options are not documented.
1072
1073 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
1074
1075         * graphite.c (stmt_simple_for_scop_p): Also handle cases when
1076         gimple_call_lhs is NULL.
1077
1078 2008-01-20  Paolo Bonzini  <bonzini@gnu.org>
1079
1080         PR target/38868
1081         * emit-rtl.c (adjust_address_1): Make sure memref is never
1082         overwritten.
1083
1084 2009-01-20  Ben Elliston  <bje@au.ibm.com>
1085
1086         * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
1087         const qualifier from arg parameter. Remove unnecessary cast to char *.
1088         * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
1089         const qualifier from arg 2.
1090
1091 2009-01-19  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
1092
1093         * config/darwin.h: Add static-libgfortran to LINK_SPEC.
1094
1095 2009-01-19  Vladimir Makarov  <vmakarov@redhat.com>
1096
1097         PR c/38869
1098         * rtl.h (reinit_regs): New prototype.
1099         * regclass.c: Include ira.h.
1100         (reinit_regs): New.
1101         * Makefile.in (regclass.o): Add ira.h.
1102         * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
1103
1104 2009-01-18  H.J. Lu  <hongjiu.lu@intel.com>
1105
1106         PR target/38736
1107         * c-common.c (handle_aligned_attribute): Use
1108         ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
1109         default alignment value.
1110
1111         * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
1112
1113         * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
1114         * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
1115
1116         * doc/extend.texi: Update __attribute__ ((aligned)).  Document
1117         __BIGGEST_ALIGNMENT__.
1118
1119         * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
1120
1121 2009-01-18  Richard Guenther  <rguenther@suse.de>
1122
1123         PR tree-optimization/38819
1124         * tree-flow.h (operation_could_trap_helper_p): Declare.
1125         * tree-eh.c (operation_could_trap_helper_p): Export.
1126         * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
1127         * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
1128         * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
1129         are about to insert a possibly trapping instruction and fail
1130         in this case.
1131
1132 2009-01-18  Andreas Schwab  <schwab@suse.de>
1133
1134         * doc/install.texi (Configuration): Remove obsolete paragraph
1135         about use of --with-gnu-ld with --with-gnu-as.
1136
1137 2009-01-18  Kazu Hirata  <kazu@codesourcery.com>
1138
1139         * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
1140         doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
1141         Follow spelling conventions.
1142
1143 2009-01-18  Ben Elliston  <bje@au.ibm.com>
1144
1145         * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
1146         C++ warning about implicit conversion from void * to struct
1147         bitmap_head_def *.
1148         (bitmap_obstack_free): Likewise for bitmap_element *.
1149         * Makefile.in (bitmap.o-warn): Remove.
1150
1151 2009-01-17  Dave Korn  <dave.korn.cygwin@gmail.com>
1152
1153         * Makefile.in (BACKENDLIBS):  Reorder to match dependencies.
1154
1155 2009-01-17  Sebastian Pop  <sebastian.pop@amd.com>
1156             Tobias Grosser  <tobi.grosser@amd.com>
1157
1158         * graphite.c (graphite_trans_scop_block): Do not block single
1159         nested loops.
1160
1161 2009-01-16  Alexandre Oliva  <aoliva@redhat.com>
1162
1163         * ebitmap.h (ebitmap_iter_init): Initialize all fields.
1164         * ipa-struct-reorg.c (gen_struct_type): Replace known-true
1165         test with assertion.
1166
1167 2009-01-16  Richard Guenther  <rguenther@suse.de>
1168
1169         PR tree-optimization/38835
1170         PR middle-end/36227
1171         * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
1172         and INT + PTR -> (INT)(PTR p+ INT) folding.
1173         * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
1174
1175 2009-01-16  Adam Nemet  <anemet@caviumnetworks.com>
1176
1177         PR target/38554
1178         * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
1179         the subreg from a lowpart subreg if it is also casting the value.
1180
1181 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
1182             Tobias Grosser  <tobi.grosser@amd.com>
1183
1184         * graphite.c (compare_prefix_loops): New.
1185         (build_scop_canonical_schedules): Rewritten.
1186         (graphite_transform_loops): Move build_scop_canonical_schedules
1187         after build_scop_iteration_domain.
1188
1189 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
1190             Tobias Grosser  <tobi.grosser@amd.com>
1191
1192         * graphite.c (add_conditions_to_domain): Add the loops to 
1193         the dimension of the iteration domain.  Do copy the domain
1194         only when it exists.
1195         (build_scop_conditions_1): Do not call add_conditions_to_domain.
1196         (add_conditions_to_constraints): New.
1197         (can_generate_code_stmt, can_generate_code): Removed.
1198         (gloog): Do not call can_generate_code.
1199         (graphite_transform_loops): Call add_conditions_to_constraints
1200         after building the iteration domain.
1201
1202 2009-01-16  Jakub Jelinek  <jakub@redhat.com>
1203
1204         PR tree-optimization/38789
1205         * tree-ssa-threadedge.c
1206         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
1207         __builtin_constant_p.
1208
1209 2009-01-16  Kenneth Zadeck  <zadeck@naturalbridge.com>
1210
1211         * dce.c (delete_unmarked_insns): Reversed the order that insns are
1212         examined before deleting them.
1213         
1214 2009-01-16  Richard Earnshaw  <rearnsha@arm.com>
1215
1216         * function.c (aggregate_value_p): Correctly extract the function
1217         type from CALL_EXPR_FN lookup.
1218
1219 2009-01-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
1220
1221         * config/picochip/picochip.c (picochip_override_options): Revert
1222         CFI asm flag disable commited previously.
1223
1224 2009-01-15  Sebastian Pop  <sebastian.pop@amd.com>
1225             Tobias Grosser  <tobi.grosser@amd.com>
1226             Jan Sjodin  <jan.sjodin@amd.com>
1227
1228         * graphite.c (scan_tree_for_params): On substractions negate
1229         all the coefficients of the term.
1230         (clast_to_gcc_expression_red): New.  Handle reduction expressions
1231         of more than two operands.
1232         (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
1233         (get_vdef_before_scop): Handle also the case of default definitions.
1234
1235 2009-01-15  Richard Sandiford  <rdsandiford@googlemail.com>
1236
1237         * caller-save.c (add_used_regs_1, add_used_regs): New functions.
1238         (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
1239         Also use them when walking CALL_INSN_FUNCTION_USAGE.
1240
1241 2009-01-15  H.J. Lu  <hongjiu.lu@intel.com>
1242             Joey Ye  <joey.ye@intel.com>
1243
1244         PR middle-end/37843
1245         * cfgexpand.c (expand_stack_alignment): Don't update stack
1246         boundary nor check incoming stack boundary here.
1247         (gimple_expand_cfg): Update stack boundary and check incoming
1248         stack boundary here.
1249
1250 2009-01-15  Kenneth Zadeck  <zadeck@naturalbridge.com>
1251
1252         * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
1253         
1254 2009-01-14  Jakub Jelinek  <jakub@redhat.com>
1255
1256         PR rtl-optimization/38245
1257         * calls.c (expand_call): Add stack arguments to
1258         CALL_INSN_FUNCTION_USAGE even for pure calls (when
1259         ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
1260         in regs and partially in memory or BLKmode arguments.
1261         (emit_library_call_value_1): Add stack arguments to
1262         CALL_INSN_FUNCTION_USAGE even for pure calls (when
1263         ACCUMULATE_OUTGOING_ARGS).
1264         * dce.c: Include tm_p.h.
1265         (find_call_stack_args): New function.
1266         (deletable_insn_p): Call it for CALL_P insns.  Add ARG_STORES
1267         argument.
1268         (mark_insn): Call find_call_stack_args for CALL_Ps.
1269         (prescan_insns_for_dce): Walk insns backwards in bb rather than
1270         forwards.  Allocate and free arg_stores bitmap if needed, pass it
1271         down to deletable_insn_p, don't mark stores set in arg_stores
1272         bitmap, clear the bitmap at the beginning of each bb.
1273         * Makefile.in (dce.o): Depend on $(TM_P_H).
1274
1275 2009-01-14  Michael Meissner  <gnu@the-meissners.org>
1276
1277         PR target/22599
1278         * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
1279         to make sure the insn is a conditional test (bug 22599).  Reformat a
1280         few long lines.
1281
1282 2009-01-14  Sebastian Pop  <sebastian.pop@amd.com>
1283
1284         PR middle-end/38431
1285         * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
1286         (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
1287         (gloog): Do not call cleanup_tree_cfg.
1288         (graphite_transform_loops): Call cleanup_tree_cfg after all 
1289         scops have been code generated.
1290
1291 2009-01-14  Basile Starynkevitch  <basile@starynkevitch.net>
1292         * doc/gty.texi (Invoking the garbage collector): Added new node
1293         and section documenting ggc_collect.
1294
1295 2009-01-14  Richard Guenther  <rguenther@suse.de>
1296
1297         PR tree-optimization/38826
1298         PR middle-end/38477
1299         * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
1300         initialization notes only if we actually emitted a warning.
1301         (intra_create_variable_infos): Add constraints for a result decl
1302         that is passed by hidden reference.
1303         (build_pred_graph): Mark all related variables non-direct on
1304         address-taking.
1305
1306 2009-01-14  Nick Clifton  <nickc@redhat.com>
1307
1308         * ira-conflicts.c: Include addresses.h for the definition of
1309         base_reg_class.
1310         (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
1311         * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
1312
1313 2009-01-13  Vladimir Makarov  <vmakarov@redhat.com>
1314
1315         PR target/38811
1316         * Makefile.in (ira-lives.o): Add except.h.
1317
1318         * ira-lives.c: Include except.h.
1319         (process_bb_node_lives): Process can_throw_internal.
1320
1321 2009-01-13  Jakub Jelinek  <jakub@redhat.com>
1322
1323         PR rtl-optimization/38774
1324         * combine.c (simplify_set): When undoing cc_use change, don't do
1325         PUT_CODE on the newly created comparison, but instead put back the
1326         old comparison.
1327
1328 2009-01-13  Joseph Myers  <joseph@codesourcery.com>
1329
1330         * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
1331         values.  Remove duplicate arm8 entry.
1332
1333 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
1334
1335         PR tree-optimization/38786
1336         * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
1337         the SSA_NAME case of expand_scalar_variables_expr.
1338         Set the type of an expression to the type of its assign statement.
1339         (expand_scalar_variables_expr): Also gather the scalar computation
1340         used to index the memory access.  Do not pass loop_p.
1341         Fix comment.  Stop recursion on tcc_constant or tcc_declaration.
1342         (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
1343         the gimple_stmt_iterator where it inserts new code.
1344         Do not pass loop_p.
1345         (copy_bb_and_scalar_dependences): Do not pass loop_p.
1346         (translate_clast): Update call to copy_bb_and_scalar_dependences.
1347
1348 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
1349
1350         * graphite.h (debug_value): Removed.
1351         * graphite.c (debug_value): Removed.
1352
1353 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
1354
1355         * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
1356         ldrd/strd with two 32-bit instructions.
1357
1358 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
1359
1360         * config/arm/arm.c (struct processors): Pass for speed down into
1361         cost helper functions.
1362         (const_ok_for_op): Handle COMPARE and inequality nodes.
1363         (arm_rtx_costs_1): Rewrite.
1364         (arm_size_rtx_costs): Update prototype.
1365         (arm_rtx_costs): Pass speed down to helper functions.
1366         (arm_slowmul_rtx_costs): Rework cost calculations.
1367         (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
1368         (arm_9e_rtx_costs): Likewise.
1369
1370 2009-01-13  Uros Bizjak  <ubizjak@gmail.com>
1371
1372         * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
1373         relocations of local symbols wider than UNITS_PER_WORD are not valid.
1374         (alpha_legitimize_address): Do not split local symbols wider than
1375         UNITS_PER_WORD into HIGH/LO_SUM parts.
1376
1377 2009-01-13  Danny Smith  <dannysmith@users.sourceforge.net>
1378
1379         PR bootstrap/38580
1380         * gcc.c (process_command): Replace call to execvp with calls
1381         to pex_one and exit.
1382
1383 2009-01-03  Anatoly Sokolov  <aesok@post.ru>
1384
1385         PR target/29141
1386         * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
1387         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
1388         variant for devices with 3-byte PC.
1389         (__tablejump_elpm__) : New.
1390
1391 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
1392
1393         PR c/32041
1394         * c-parser.c (c_parser_postfix_expression): Allow `->' in
1395         offsetof member-designator, handle it as `[0].'.
1396
1397 2009-01-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1398
1399         * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
1400         function when not using named sections on targets with named sections
1401         if branch distance is less than 262132.
1402
1403 2009-01-12  Richard Earnshaw  <rearnsha@arm.com>
1404
1405         * combine.c (combine_instructions):  Recompute
1406         optimize_this_for_speed_p  for each BB in the main combine loop.
1407
1408 2009-01-12  Tomas Bily  <tbily@suse.cz>
1409
1410         PR middlend/38385
1411         * tree-loop-distribution.c (prop_phis): New function.
1412         (generate_builtin): Call prop_phis.
1413         * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
1414
1415 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
1416
1417         PR tree-optimization/38807
1418         * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
1419         gimple_visited_p unless stmt is GIMPLE_ASSIGN.
1420
1421 2009-01-11  Adam Nemet  <anemet@caviumnetworks.com>
1422
1423         * expmed.c (store_bit_field_1): Properly truncate the paradoxical
1424         subreg of op0 to the original op0.
1425
1426 2009-01-11  Laurent GUERBY  <laurent@guerby.net>
1427
1428         * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
1429         
1430 2009-01-11  Markus Schoepflin  <markus.schoepflin@comsoft.de>
1431
1432         PR debug/7055
1433         * gcc/mips-tfile.c (parse_def): Fix parsing of def strings
1434         starting with digits.
1435
1436 2009-01-10  Jakub Jelinek  <jakub@redhat.com>
1437
1438         PR target/38695
1439         * config/arm/arm.c (arm_is_long_call_p): Don't call
1440         arm_function_in_section_p if decl isn't a FUNCTION_DECL.
1441
1442 2009-01-09  Steven Bosscher  <steven@gcc.gnu.org>
1443
1444         * regrename.c (regrename_optimize): Fix dumping.
1445         (find_oldest_value_reg): Preserve REG_POINTER.
1446         (copy_hardreg_forward_1): Likewise.
1447
1448 2009-01-09  Diego Novillo  <dnovillo@google.com>
1449
1450         * gimple.h (struct gimple_statement_base) <uid>: Document
1451         the restrictions on its use.
1452         (gimple_uid): Tidy.
1453         (gimple_set_uid): Tidy.
1454
1455 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
1456
1457         * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
1458         zero guard even if align_bytes != 0 and count is smaller than
1459         size_needed.
1460
1461 2008-01-09  Vladimir Makarov  <vmakarov@redhat.com>
1462
1463         PR rtl-optimization/38495
1464         * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
1465         (add_range_and_copies_from_move_list): Print all added ranges.
1466         Add ranges to memory optimized destination.
1467
1468 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
1469
1470         PR target/38686
1471         PR target/38708
1472         * config/i386/i386.c (override_options): Reject
1473         -mstringop-strategy=rep_8byte with -m32.
1474         (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
1475         to 1.  Do count comparison against epilogue_size_needed at compile
1476         time even when count_exp was constant forced into register.  For
1477         size_needed don't jump to epilogue, instead just avoid aligning
1478         and invoke the body algorithm.  If need_zero_guard, add zero guard
1479         even if count is non-zero, but smaller than size_needed + number of
1480         bytes that could be stored for alignment.
1481         (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
1482         to 1.  If need_zero_guard, add zero guard even if count is non-zero,
1483         but smaller than size_needed + number of bytes that could be stored
1484         for alignment.  Compare size_needed with epilogue_size_needed instead
1485         of desired_align - align, don't adjust size_needed, pass
1486         epilogue_size_needed to the epilogue expanders.
1487
1488         PR c/35742
1489         * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
1490
1491 2009-01-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1492
1493         * pa.c (last_address): Change to unsigned.
1494         (update_total_code_bytes): Change argument to unsigned.  Don't
1495         check if insn addresses are set.
1496         (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
1497         addresses are not set.
1498         (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
1499
1500 2009-01-09  Nick Clifton  <nickc@redhat.com>
1501
1502         * config/sh/symbian.c: Replace uses of DECL_INLINE with
1503         DECL_DECLARED_INLINE_P.
1504
1505 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
1506
1507         PR middle-end/38347
1508         * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
1509         GET_MODE (op0) in operand_subword_force calls.
1510
1511         PR middle-end/38771
1512         * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
1513         fold_convert arg0 operands to TREE_TYPE (op0) first.
1514
1515 2009-01-08  Vladimir Makarov  <vmakarov@redhat.com>
1516
1517         * params.def (ira-max-conflict-table-size): Decrease default value
1518         to 1000.
1519
1520 2009-01-08  Jakub Jelinek  <jakub@redhat.com>
1521
1522         PR tree-optimization/37031
1523         * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
1524         on parameter_set.
1525         (build_access_matrix): Reserve correct size for AM_MATRIX vector,
1526         allocate it using gc instead of heap, use VEC_quick_push instead of
1527         VEC_safe_push.
1528         * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
1529         instead of heap, use VEC_quick_push instead of VEC_safe_push.
1530         * tree-data-ref.h (struct access_matrix): Change matrix to gc
1531         allocated vector from heap allocated.
1532         * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
1533         * tree-loop-linear.c (linear_transform_loops): Allocate nest
1534         vector only after perfect_loop_nest_depth call.
1535
1536 2009-01-08  Sebastian Pop  <sebastian.pop@amd.com>
1537             Jan Sjodin  <jan.sjodin@amd.com>
1538
1539         PR tree-optimization/38559
1540         * graphite.c (debug_value, copy_constraint,
1541         swap_constraint_variables, scale_constraint_variable, ): New.
1542         (get_lower_bound, get_upper_bound): Removed.
1543         (graphite_trans_bb_strip_mine): Clean up this code that works
1544         only for constant number of iterations.  Fully copy upper and
1545         lower bound constraints, not only the constant part of them.
1546         * graphite.h (debug_value): Declared.
1547
1548 2009-01-08  Ira Rosen  <irar@il.ibm.com>
1549
1550         PR tree-optimization/37194
1551         * tree-vect-transform.c (vect_estimate_min_profitable_iters):
1552         Don't add the cost of cost model guard in prologue to scalar 
1553         outside cost in case of known number of iterations.
1554
1555 2009-01-07  Nathan Froyd  <froydnj@codesourcery.com>
1556             Alan Modra  <amodra@bigpond.net.au>
1557
1558         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
1559         non-word-aligned REG+CONST addressing.
1560
1561 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
1562
1563         PR target/38706
1564         * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
1565         free_after_compilation when outputting a thunk.
1566         (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
1567         Do not call free_after_compilation here.
1568
1569 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
1570
1571         * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
1572         (ix86_valid_target_attribute_inner_p): Ditto.
1573
1574 2009-01-07  Jan Sjodin  <jan.sjodin@amd.com>
1575
1576         PR tree-optimization/38492
1577         PR tree-optimization/38498
1578         * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
1579         * tree-chrec.h (scev_is_linear_expression): Declared.
1580         * graphite.c (graphite_cannot_represent_loop_niter): New.
1581         (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
1582         (graphite_loop_normal_form): Use gcc_assert.
1583         (scan_tree_for_params): Use CASE_CONVERT.
1584         (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
1585         (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
1586         Use gcc_assert.  Discard scops that contain unhandled cases.
1587         (build_scop_conditions): Return a boolean status for unhandled cases.
1588         (strip_mine_profitable_p): Print the loop number, not its depth.
1589         (is_interchange_valid): Pass the depth of the loop nest, don't
1590         recompute it wrongly.
1591         (graphite_trans_bb_block): Same.
1592         (graphite_trans_bb_block): Print tentative of loop blocking.
1593         (graphite_trans_scop_block): Do not print that the loop has been
1594         blocked.
1595         (graphite_transform_loops): Do not handle scops that contain condition
1596         scalar phi nodes.
1597
1598 2009-01-07  H.J. Lu  <hongjiu.lu@intel.com>
1599
1600         AVX Programming Reference (December, 2008)
1601         * config/i386/avxintrin.h (_mm256_stream_si256): New.
1602         (_mm256_stream_pd): Likewise.
1603         (_mm256_stream_ps): Likewise.
1604
1605         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
1606         IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
1607         (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
1608         (bdesc_special_args): Add __builtin_ia32_movntdq256,
1609         __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
1610         (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
1611         (ix86_expand_special_args_builtin): Likewise.
1612
1613         * config/i386/sse.md (AVXMODEDI): New.
1614         (avx_movnt<mode>): Likewise.
1615         (avx_movnt<mode>): Likewise.
1616         (<sse>_movnt<mode>): Remove AVX support.
1617         (sse2_movntv2di): Likewise.
1618
1619 2009-01-07  Richard Guenther  <rguenther@suse.de>
1620
1621         PR middle-end/38751
1622         * fold-const.c (extract_muldiv): Remove obsolete comment.
1623         (fold_plusminus_mult_expr): Undo MINUS_EXPR
1624         to PLUS_EXPR canonicalization for the canonicalization.
1625
1626 2009-01-07  Gerald Pfeifer  <gerald@pfeifer.com>
1627
1628         * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
1629         hosted cross-compilers generating less efficient code.
1630
1631 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
1632
1633         * function.h (rtl_data): Add a dbr_scheduled_p field.
1634         * reorg.c (dbr_schedule): Set it.
1635         (gate_handle_delay_slots): Check it.
1636         * config/mips/mips.c (mips_base_delayed_branch): Delete.
1637         (mips_reorg): Check flag_delayed_branch instead of
1638         mips_base_delayed_branch.
1639         (mips_override_options): Don't set mips_base_delayed_branch
1640         or flag_delayed_branch.
1641
1642 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
1643
1644         PR rtl-optimization/38426.
1645         * ira.c (ira): Set current_function_is_leaf earlier.
1646
1647 2009-01-06  Jakub Jelinek  <jakub@redhat.com>
1648
1649         PR rtl-optimization/38722
1650         * combine.c (try_combine): Don't modify PATTERN (i3) and notes
1651         too early, only set a flag and modify after last possible
1652         undo_all point.
1653
1654 2009-01-06  Janis Johnson  <janis187@us.ibm.com>
1655
1656         PR c/34252
1657         * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
1658         * real.c (decimal_single_format): Correct values of emin and emax.
1659         (decimal_double_format): Ditto.
1660         (decimal_quad_format): Ditto.
1661         * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
1662         computation of DECnn_MIN and DECnn_MAX for corrected values of
1663         emin and emax.  Define __DECnn_SUBNORMAL_MIN__ instead of
1664         __DECnn_MIN__, and adjust its computation for the corrected value
1665         of emin.
1666
1667 2009-01-06  Jan Hubicka  <jh@suse.cz>
1668
1669         PR target/38744
1670         * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
1671
1672 2009-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
1673
1674         * doc/contrib.texi (Contributors): Slightly adjust the end note.
1675         Add Robert Clark to the list of testers.
1676
1677 2009-01-06  Jan Hubicka  <jh@suse.cz>
1678             Kai Tietz  <kai.tietz@onevision.com>
1679
1680         * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
1681         * config/i386/i386.c (ix86_expand_call): Add clobbers.
1682
1683 2009-01-06  Jan Hubicka  <jh@suse.cz>
1684             Kai Tietz  <kai.tietz@onevision.com>
1685
1686         * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
1687         for w64 ABI.
1688         * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
1689         (ix86_nsaved_regs): Count only general purpose regs.
1690         (ix86_nsaved_sseregs): New.
1691         (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
1692         to 16 for w64; compute padding and size of sse reg save area.
1693         (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
1694         general purpose regs.
1695         (ix86_emit_save_sse_regs_using_mov): New.
1696         (ix86_expand_prologue): Save SSE regs if needed.
1697         (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
1698         (ix86_emit_restore_sse_regs_using_mov): New.
1699         (ix86_expand_epilogue): Save SSE regs if needed.
1700
1701 2009-01-06  Jan Hubicka  <jh@suse.cz>
1702             Kai Tietz  <kai.tietz@onevision.com>
1703
1704         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
1705         * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
1706         functions when accumulate outgoing args is off.
1707
1708 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
1709
1710         PR bootstrap/38742
1711         * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
1712         before using pseudos_have_intersected_live_ranges_p.
1713
1714         * ira-int.h (ira_assert): Always define.
1715
1716 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
1717
1718         AVX Programming Reference (December, 2008)
1719         * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
1720         (_mm256_permute2_pd): Likewise.
1721         (_mm_permute2_ps): Likewise.
1722         (_mm256_permute2_ps): Likewise.
1723         * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
1724         * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
1725
1726         * config/i386/i386.c (ix86_builtins): Remove
1727         IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
1728         IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
1729         (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
1730         V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
1731         and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
1732         (bdesc_args): Remove __builtin_ia32_vpermil2pd,
1733         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
1734         __builtin_ia32_vpermil2ps256.
1735         (ix86_init_mmx_sse_builtins): Updated.
1736         (ix86_expand_args_builtin): Likewise.
1737
1738 2009-01-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1739
1740         * pa.c (output_call): Relocate non-jump insns in the delay slot of
1741         long absolute calls when generating PA 2.0 code.
1742
1743 2009-01-05  Vladimir Makarov  <vmakarov@redhat.com>
1744
1745         PR rtl-optimization/38583
1746         * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
1747
1748         * params.def (ira-max-conflict-table-size): New.
1749
1750         * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
1751         
1752         * ira.h (ira_conflicts_p): New external definition.
1753         
1754         * ira-conflicts.c (build_conflict_bit_table): Do not build too big
1755         table.  Report this.  Return result of building.
1756         (ira_build_conflicts): Use ira_conflicts_p.  Check result of
1757         building conflict table.
1758
1759         * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
1760         (ira_color): Use ira_conflicts_p.
1761         
1762         * global.c: Include ira.h.
1763         (pseudo_for_reload_consideration_p, build_insn_chain): Use
1764         ira_conflicts_p.
1765
1766         * Makefile.in (global.o): Add ira.h.
1767         
1768         * ira-build.c (mark_all_loops_for_removal,
1769         propagate_some_info_from_allocno): New.
1770         (remove_unnecessary_allocnos): Call
1771         propagate_some_info_from_allocno.
1772         (remove_low_level_allocnos): New.
1773         (remove_unnecessary_regions): Add parameter.  Call
1774         mark_all_loops_for_removal and remove_low_level_allocnos.  Pass
1775         parameter to remove_unnecessary_regions.
1776         (ira_build): Remove all regions but root if the conflict table was
1777         not built.  Update conflict hard regs for allocnos crossing calls.
1778
1779         * ira.c (ira_conflicts_p): New global.
1780         (ira): Define and use ira_conflicts_p.
1781
1782         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
1783         count_spilled_pseudo, find_reg, alter_reg, finish_spills,
1784         emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
1785         
1786 2009-01-06  Ben Elliston  <bje@au.ibm.com>
1787
1788         * gengtype-lex.l (YY_NO_INPUT): Define.
1789
1790 2009-01-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1791
1792         PR c/34911
1793         * c-common.c (handle_vector_size_attribute): Also reject
1794         BOOLEAN_TYPE types.
1795
1796 2009-01-05  Sebastian Pop  <sebastian.pop@amd.com>
1797
1798         PR tree-optimization/38492
1799         * graphite.c (rename_map_elt, debug_rename_elt,
1800         debug_rename_map_1, debug_rename_map, new_rename_map_elt,
1801         rename_map_elt_info, eq_rename_map_elts,
1802         get_new_name_from_old_name, bb_in_sese_p): Moved around.
1803         (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
1804         (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
1805         (sese_build_livein_liveouts): New.
1806         (new_sese, free_sese): New.
1807         (new_scop): Call new_sese.
1808         (free_scop): Call free_sese.
1809         (rename_variables_from_edge, rename_phis_end_scop): Removed.
1810         (register_old_new_names): Renamed register_old_and_new_names.
1811         (register_scop_liveout_renames, add_loop_exit_phis,
1812         insert_loop_close_phis, struct igp,
1813         default_liveout_before_guard, add_guard_exit_phis,
1814         insert_guard_phis, copy_renames): New.
1815         (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
1816         (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
1817         (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
1818         (scop_adjust_phis_for_liveouts): New.
1819         (gloog): Call scop_adjust_phis_for_liveouts.
1820
1821         * graphite.h (struct sese): Documented.  Added fields liveout,
1822         num_ver and livein.
1823         (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
1824         (new_sese, free_sese, sese_build_livein_liveouts): Declared.
1825         (struct scop): Added field liveout_renames.
1826         (SCOP_LIVEOUT_RENAMES): New.
1827
1828 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
1829
1830         PR tree-optimization/38510
1831         * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
1832         (translate_clast): Call recompute_all_dominators before
1833         graphite_verify.
1834         (gloog): Call recompute_all_dominators before graphite_verify.
1835
1836 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
1837             Jan Sjodin  <jan.sjodin@amd.com>
1838
1839         PR tree-optimization/38500
1840         * graphite.c (create_sese_edges): Call fix_loop_structure after
1841         splitting blocks.
1842
1843 2009-01-05  Joel Sherrill  <joel.sherrill@oarcorp.com>
1844
1845         * config.gcc: Add m32r*-*-rtems*.
1846         * config/m32r/rtems.h: New file.
1847
1848 2009-01-05  Ben Elliston  <bje@au.ibm.com>
1849
1850         * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
1851         (.po.pox): Likewise.
1852         (po/gcc.pot): Likewise.
1853
1854 2009-01-04  David S. Miller  <davem@davemloft.net>
1855
1856         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
1857         (STARTING_FRAME_OFFSET): Always set to zero.
1858
1859 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
1860
1861         * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
1862         * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
1863         fixed-point types, and vectors of the same.
1864
1865 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
1866
1867         * config/mips/sync.md (*mb_barrier): Rename to...
1868         (*memory_barrier): ...this.
1869
1870 2009-01-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
1871
1872         * doc/extend.texi (Function Attributes): Move @cindex after @item
1873         for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
1874         and put in alphabetical order. Fix 'target' name and put in order.
1875         * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
1876         typos.
1877
1878 2009-01-04  Uros Bizjak  <ubizjak@gmail.com>
1879
1880         * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
1881         (memory_barrier): Expand as unspec instead of unspec_volatile.
1882         Remove mem:BLK from insn operands.  Use Pmode scratch register.
1883         (*memory_barrier): Define as unspec instead of unspec_volatile.
1884         Use (match_dup 0) as input operand.
1885
1886         * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
1887         * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
1888         unspec_volatile.  Remove mem:BLK from insn operands.  Use Pmode
1889         scratch register.  Remove operand 1.
1890         (*stbar): Define as unspec instead of unspec_volatile.
1891         Use (match_dup 0) as input operand, remove (const_int 8).
1892         (*membar): Define as unspec instead of unspec_volatile.
1893         Use (match_dup 0) as input operand, remove input operand 2.
1894
1895         * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
1896         (memory_barrier): Expand as unspec instead of unspec_volatile.
1897         Remove mem:BLK from insn operands.  Use Pmode scratch register.
1898         (*memory_barrier): Define as unspec instead of unspec_volatile.
1899         Use (match_dup 0) as input operand.
1900
1901         * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
1902         Remove mem:BLK from insn operands.  Use Pmode scratch register.
1903         Set volatile flag on operand 0.
1904         (*memory_barrier): New insn pattern.
1905
1906         * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
1907         insn operands.
1908         (*memory_barrier): Use (match_dup 0) as input operand.
1909
1910         * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
1911         Remove mem:BLK from insn operands.  Use Pmode scratch register.
1912         Set volatile flag on operand 0.
1913         (*mb_internal): New insn pattern.
1914
1915         * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
1916
1917 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
1918
1919         PR middle-end/38586
1920         * function.c (struct temp_slot): Move to the section of the file
1921         that deals with temp slots.  Remove field 'address'.
1922         (temp_slot_address_table): New hash table of address -> temp slot.
1923         (struct temp_slot_address_entry): New struct, items for the table.
1924         (temp_slot_address_compute_hash, temp_slot_address_hash,
1925         temp_slot_address_eq, insert_temp_slot_address): Support functions
1926         for the new table.
1927         (find_temp_slot_from_address): Rewrite to use the new hash table.
1928         (remove_unused_temp_slot_addresses): Remove addresses of temp
1929         slots that have been made available.
1930         (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
1931         worker function for remove_unused_temp_slot_addresses.
1932         (assign_stack_temp_for_type): Don't clear the temp slot address list.
1933         Add the temp slot address to the address -> temp slot map.
1934         (update_temp_slot_address): Update via insert_temp_slot_address.
1935         (free_temp_slots): Call remove_unused_temp_slot_addresses.
1936         (pop_temp_slots): Likewise.
1937         (init_temp_slots): Allocate the address -> temp slot map, or empty
1938         the map if it is already allocated.
1939         (prepare_function_start): Initialize temp slot processing.
1940
1941 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
1942
1943         PR middle-end/38584
1944         * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
1945         Calculate the size of all stack vars assuming no packing of stack
1946         vars will happen, replacing a quadratic algorithm with a linear one.
1947
1948 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
1949
1950         PR target/38707
1951         * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
1952         can't be used.
1953
1954 2009-01-03  Diego Novillo  <dnovillo@google.com>
1955
1956         * doc/contrib.texi: Update contributions.
1957
1958 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
1959
1960         PR c++/38705
1961         * builtins.c (fold_builtin_memory_op): Give up if either operand
1962         is volatile.  Set srctype or desttype to non-qualified version
1963         of the other type.
1964
1965         PR c/38700
1966         * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
1967         and FUNCTION_DECLs.
1968
1969 2009-01-02  Kenneth Zadeck  <zadeck@naturalbridge.com>
1970
1971         PR rtl-optimization/35805
1972         * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
1973         problem if fast dce is able to remove any instructions.
1974         * dce.c (dce_process_block): Fix dump message.
1975         
1976 2009-01-02  Mark Mitchell  <mark@codesourcery.com>
1977
1978         PR 33649
1979         * tree-ssa-pre.c (compute_antic): Correct loop bounds.
1980
1981 2009-01-02  Jakub Jelinek  <jakub@redhat.com>
1982
1983         PR middle-end/38690
1984         * tree-flow.h (op_code_prio, op_prio): New prototypes.
1985         * tree-pretty-print.c (op_code_prio): New function.
1986         (op_prio): No longer static.  Use op_code_prio.
1987         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
1988         Use op_prio and op_code_prio to determine if () should be
1989         printed around operand(s) or not.
1990
1991         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
1992         dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
1993         dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
1994         dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
1995         pp_character instead of pp_string for single letter printing.
1996
1997 2009-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
1998
1999         * doc/extend.texi: Fix '#pragma GCC option' typo.
2000
2001 2009-01-02  Richard Guenther  <rguenther@suse.de>
2002
2003         * doc/install.texi (--enable-checking): Mention different
2004         default for stage1.
2005         (--enable-stage1-checking): Document.
2006
2007 2009-01-01  Andrew Pinski  <pinskia@gmail.com>
2008
2009         PR middle-end/30142
2010         * tree-cfg.c (verify_expr): Add INDIRECT_REF case.  Change MODIFY_EXPR
2011         case to be an error.
2012
2013 2009-01-02  Ben Elliston  <bje@au.ibm.com>
2014
2015         * config/fp-bit.h (pack_d): Constify argument.
2016         * config/fp-bit.c (makenan): Constify return type. Remove casts.
2017         (isnan): Constify argument.
2018         (isinf): Likewise.
2019         (iszero): Likewise.
2020         (pack_d): Likewise.
2021         (_fpadd_parts): Constify return type.
2022         (_fpmul_parts): Likewise.
2023         (_fpdiv_parts): Likewise.
2024
2025 2009-01-01  Jakub Jelinek  <jakub@redhat.com>
2026
2027         PR c/36489
2028         * c-typeck.c (add_pending_init): Add IMPLICIT argument.  Only
2029         warn about overwriting initializer with side-effects or
2030         -Woverride-init if !IMPLICIT.
2031         (output_init_element): Likewise.  Pass IMPLICIT down to
2032         add_pending_init.
2033         (process_init_element): Add IMPLICIT argument.  Pass it down
2034         to output_init_element.
2035         (push_init_element, pop_init_level, set_designator): Adjust
2036         process_init_element callers.
2037         (set_nonincremental_init, set_nonincremental_init_from_string):
2038         Adjust add_pending_init callers.
2039         (output_pending_init_elements): Adjust output_init_element callers.
2040         * c-tree.h (process_init_element): Adjust prototype.
2041         * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
2042         process_init_element callers.