OSDN Git Service

2009-04-02 Rafael Avila de Espindola <espindola@google.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
2
3         * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
4         share the argument list.
5
6 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
7
8         Merge
9
10         2009-02-12  Diego Novillo  <dnovillo@google.com>
11
12                 * varpool.c (debug_varpool): New.
13                 * cgraph.h (debug_varpool): Declare.
14
15 2009-04-02  Jan Hubicka  <jh@suse.cz>
16
17         * passes.c (init_optimization_passes): Remove two copies of ehcleanup
18         pass.
19
20 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
21
22         * config/i386/i386.c (ix86_abi): Move initialization to ...
23         (override_options): Here.
24
25 2009-04-02  Christian Bruel  <christian.bruel@st.com>
26
27         * config/sh/sh.c (sh_dwarf_register_span): New function.
28         (TARGET_DWARF_REGISTER_SPAN): Define.
29         * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
30         
31 2009-04-02  Ira Rosen  <irar@il.ibm.com>
32
33         PR tree-optimization/39595
34         * tree-vect-slp.c (vect_build_slp_tree): Check that the size of 
35         interleaved loads group is not  greater than the SLP group size.
36
37 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
38
39         * builtins.c (is_builtin_name): New.
40         (called_as_built_in): Use is_builtin_name.
41         * tree.h (is_builtin_name): New.
42         * varasm.c (incorporeal_function_p): Use is_builtin_name
43
44 2009-04-02  Andrew Stubbs  <ams@codesourcery.com>
45
46         * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
47
48 2009-04-02  Dodji Seketeli  <dodji@redhat.com>
49
50         PR c++/26693
51         * c-decl.c: (clone_underlying_type): Move this ...
52         * c-common.c (set_underlying_type): ... here.
53         Also, make sure the function properly sets TYPE_STUB_DECL() on
54         the newly created typedef variant type.
55         * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
56         * c-common.c (is_typedef_decl, set_underlying_type): ... new entry points.
57
58 2009-04-02  Richard Guenther  <rguenther@suse.de>
59
60         PR tree-optimization/37221
61         * tree-flow.h (degenerate_phi_result): Declare.
62         * tree-ssa-dom.c (degenerate_phi_result): Export.
63         * tree-scalar-evolution.c (analyze_initial_condition): If
64         the initial condition is defined by a degenerate PHI node
65         use the degenerate value.
66
67 2009-04-01  Eric Botcazou  <ebotcazou@adacore.com>
68
69         PR rtl-optimization/39588
70         * combine.c (merge_outer_ops): Do not set the constant when this
71         is not necessary.
72         (simplify_shift_const_1): Do not modify it either in this case.
73
74 2009-04-01  Steven Bosscher  <steven@gcc.gnu.org>
75
76         * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
77         tuning is deprecated if -mtune value is set to an Itanium1 variant.
78
79 2009-04-01  Janis Johnson  <janis187@us.ibm.com>
80
81         PR c/29027
82         * c-lex.c (interpret_float): Default (no suffix) is double.
83
84 2009-04-1  Xinliang David Li  <davidxl@google.com>
85
86         * config/i386/i386.c (legitimate_constant_p): Recognize
87         all one vector constant.
88
89 2009-04-01      Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
90
91         * gcc/config/vax/vax.c: Add #includes to silence warnings.
92         Change #include order to silence two warnings.
93
94 2009-04-01      Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
95
96         * gcc/config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
97         (ASM_SPEC): Pass -k to the assembler for PIC code.
98
99 2009-04-01      Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
100
101         * gcc/config.gcc: Add vax-*-linux* to the switch.
102         * gcc/config/vax/linux.h: New file. (TARGET_VERSION,
103         TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
104
105 2009-04-01      Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
106
107         * gcc/config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
108         Use predicate macros instead of GET_CODE() == foo.
109         * gcc/config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
110         ashlsi3, rotrsi3, <unnamed>): Likewise.
111
112 2009-04-01      Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
113
114         * gcc/config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
115         jbbccihi, jbbccisi): Remova trailing whitespace.
116         * gcc/config/vax/constraints.md: Likewise.
117         * gcc/config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
118         * gcc/config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
119         * gcc/config/vax/predicates.md: Likewise.
120         * gcc/config/vax/vax.c (print_operand_address, vax_output_int_move,
121         vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
122         * gcc/config/vax/vax.h: Likewise.
123         * gcc/config/vax/vax.md (nonlocal_goto): Likewise.
124
125 2009-04-01      Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
126
127         * gcc/config/vax/vax.c (vax_float_literal, vax_output_int_move)
128         (indirectable_address_p, adjacent_operands_p): Add spaces around
129         braces.
130         * gcc/config/vax/vax-protos.h (adjacent_operands_p): Likewise.
131
132 2009-04-01      Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
133
134         * gcc/config/vax/vax.c (legitimate_constant_address_p,
135         legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
136         index_term_p, reg_plus_index_p, legitimate_address_p,
137         vax_mode_dependent_address_p): Update comments to match functions
138         modified by the recent int->bool conversion.
139
140 2009-04-01      Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
141
142         * gcc/config/vax/builtins.md: Update copyright message.
143         * gcc/config/vax/constraints.md: Likewise.
144         * gcc/config/vax/netbsd-elf.h: Likewise.
145         * gcc/config/vax/predicates.md: Likewise.
146         * gcc/config/vax/vax-protos.h: Likewise.
147         * gcc/config/vax/vax.c: Likewise.
148         * gcc/config/vax/vax.h: Likewise.
149         * gcc/config/vax/vax.md: Likewise.
150         * gcc/config/vax/vax.opt: Likewise.
151
152 2009-04-01      Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
153
154         * gcc/config/vax/builtins.md (ffssi2, ffssi2_internal,
155         sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
156         * gcc/config/vax/constraints.md (B, R): Likewise.
157         * gcc/config/vax/predicates.md (external_memory_operand,
158         nonimmediate_addsub_di_operand): Likewise.
159         * gcc/config/vax/vax.c (vax_output_int_add): Likewise.
160         * gcc/config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
161         untyped_call): Likewise.
162
163 2009-04-01      Matt Thomas <matt@3am-software.com>
164
165         * config/vax/predicates.md: New file. (symbolic_operand,
166         local_symbolic_operand, external_symbolic_operand,
167         external_const_operand, nonsymbolic_operand, external_memory_operand,
168         indirect_memory_operand, indexed_memory_operand,
169         illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
170         nonimmediate_addsub_di_operand, general_addsub_di_operand): New
171         predicate.
172         * config/vax/constraints.md: New file. (Z0, U06,  U08, U16, CN6, S08,
173         S16, I, J, K, L, M, N, O, G, Q, B, R, T): New constraint.
174         * config/vax/builtins.md: New file. (ffssi2, ffssi2_internal,
175         sync_lock_test_and_set<mode>, jbbssiqi, jbbssihi, jbbssisi,
176         sync_lock_release<mode>, jbbcciqi, jbbccihi, jbbccisi): Define.
177         * config/vax/vax.opt (mqmath): Add option.
178         * config/vax/vax.md (isfx): Extend with DI.
179         (VAXintQH, VAXintQHSD): Define.
180         (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
181         mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
182         and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
183         one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
184         (movdi): Update constraints and use vax_output_int_move().
185         (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
186         movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
187         pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
188         nonlocal_goto): New.
189         (mov<mode>): Extend accepted operand types.
190         (subdi3_old): Rename from subdi3, change update constraints and use
191         a new implementation.
192         * gcc/config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
193         (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
194         MOVE_RATIO, CLEAR_RATIO): Define.
195         (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
196         CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
197         (PRINT_OPERAND): Redefine using a function instead of inlined code.
198         * gcc/config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
199         (split_quadword_operands): Make static and really allow variable
200         splitting.
201         (print_operand_address): Update for PIC generation.
202         (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
203         indexable_address_p, fixup_mathdi_operand,
204         vax_expand_addsub_di_operands, adjacent_operands_p): New.
205         (vax_float_literal, legitimate_constant_p,
206         indirectable_constant_address_p, index_term_p,
207         reg_plus_index_p): Return bool instead of int.
208         (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
209         where needed.
210         (vax_output_int_move, vax_output_int_add): Extend to allow PIC
211         generation.
212         (vax_output_conditional_branch): Indent.
213         (legitimate_constant_address_p, indirectable_constant_address_p,
214         indirectable_address_p, nonindexed_address_p, legitimate_address_p,
215         vax_mode_dependent_address_p): Return bool instead of int, update for
216         PIC generation.
217         * config/vax/vax-protos.h (legitimate_constant_address_p,
218         legitimate_constant_p, legitimate_address_p,
219         vax_mode_dependent_address_p): Change declaration to bool.
220         (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
221         vax_expand_addsub_di_operands, vax_output_int_subtract,
222         vax_output_movmemsi): Declare.
223         (split_quadword_operands, vax_float_literal): Delete declaration.
224         * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
225         * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
226         VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
227         ASM_OUTPUT_DWARF_PCREL): Define.
228         (ASM_SPEC): Change definition to allow PIC generation.
229
230 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
231
232         PR target/39226
233         * config/rs6000/rs6000.md (andsi3_internal5_nomc,
234         anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
235         (booldi3_internal3): Use boolean_or_operator instead of
236         boolean_operator.
237
238 2009-04-01  Joseph Myers  <joseph@codesourcery.com>
239
240         PR c/39605
241         * c-decl.c (grokdeclarator): Pedwarn for file-scope array
242         declarator whose size is not an integer constant expression but
243         folds to an integer constant, then treat it as a constant
244         subsequently.
245
246 2009-04-01  Richard Guenther  <rguenther@suse.de>
247
248         * fold-const.c (fold_plusminus_mult_expr): Do not fold
249         i * 4 + 2 to (i * 2 + 1) * 2.
250
251 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
252
253         PR c/37772
254         * c-parser.c (c_parser_asm_statement): Skip until close paren and
255         return if c_parser_asm_string_literal returned NULL.
256
257 2009-04-01  Nick Clifton  <nickc@redhat.com>
258
259         * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
260         already defined.
261         * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
262         * config/m32c/m32c-lib2.c: Remove unused typedefs.  Rename the
263         other typedefs to avoid conflicts with libgcc2.c.  Define labels
264         to gain 16-bit bit-manipulation functions from libgcc2.c and then
265         include it.
266         * config/m32c/m32c-lib2-trapv.c: New file.  Define labels
267         to gain 16-bit trapping arithmetic functions from libgcc2.c and
268         then include it.
269
270 2009-04-01  Rafael Avila de Espindola  <espindola@google.com>
271
272        * varasm.c (default_function_rodata_section): Declare DOT as const char*.
273
274 2009-04-01  Kai Tietz  <kai.tietz@onevision.com>
275             Andrey Galkin <agalkin@hypercom.com>
276
277         PR/39492
278         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
279         Make object_name unique for each process.
280
281 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
282
283         PR other/39591
284         * omp-low.c (remove_exit_barrier): Don't optimize if there are any
285         addressable variables in the parallel that could go out of scope while
286         running queued tasks.
287
288 2009-04-01  Anatoly Sokolov  <aesok@post.ru>
289
290         * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
291         (CASE_VALUES_THRESHOLD): Redefine.
292         * config/avr/avr.c (avr_override_options): Remove initialization of
293         avr_case_values_threshold variable.
294         (avr_case_values_threshold): Remove variable. Add new function.
295         * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
296         * config/avr/avr.opt (mno-tablejump): Remove option.
297         * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
298
299 2009-04-01  DJ Delorie  <dj@redhat.com>
300
301         * varasm.c (default_function_rodata_section): Don't assume
302         anything about where the first '.' in the section name is.
303
304 2009-04-01  Alan Modra  <amodra@bigpond.net.au>
305
306         * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
307         rs6000_emit_stack_tie.
308
309 2009-03-31  Ian Lance Taylor  <iant@google.com>
310
311         * tree-eh.c (tree_remove_unreachable_handlers): Compare
312         gimple_code with GIMPLE_RESX, not RESX.
313
314 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
315
316         * c-common.c (c_get_ident): New.
317         (c_common_nodes_and_builtins): Call it for type names that may be
318         NULL.
319
320 2009-04-01  Ben Elliston  <bje@au.ibm.com>
321
322         * config/rs6000/sysv4.opt (msdata): Improve option description.
323
324 2009-03-31  Steve Ellcey  <sje@cup.hp.com>
325
326         * config/ia64/ia64.md (divsf3_internal_lat): Remove.
327         (divdf3_internal_lat): Remove.
328         (divxf3_internal_lat): Remove.
329         (divxf3_internal_thr): Remove.
330         (divxf): Use divxf3_internal.
331         * config/ia64/div.md (divsf3_internal_lat): New.
332         (divdf3_internal_lat): New.
333         (divxf3_internal): New.
334
335 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
336
337         PR c/448
338         * Makefile.in (USE_GCC_STDINT): Define.
339         (stmp-int-hdrs): Install stdint.h if applicable.
340         * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
341         if known.
342         (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
343         (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
344         UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
345         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
346         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
347         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
348         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
349         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
350         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
351         (c_common_nodes_and_builtins): Initialize
352         underlying_wchar_type_node.  Do not initialize
353         signed_wchar_type_node or unsigned_wchar_type_node.  Initialize
354         nodes for new types.
355         (c_stddef_cpp_builtins): Define macros for new types.
356         * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
357         Remove.
358         (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
359         CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
360         CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
361         CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
362         CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
363         CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
364         CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
365         CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
366         CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
367         (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
368         (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
369         int16_type_node, int32_type_node, int64_type_node,
370         uint8_type_node, uint16_type_node, c_uint32_type_node,
371         c_uint64_type_node, int_least8_type_node, int_least16_type_node,
372         int_least32_type_node, int_least64_type_node,
373         uint_least8_type_node, uint_least16_type_node,
374         uint_least32_type_node, uint_least64_type_node,
375         int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
376         int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
377         uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
378         uintptr_type_node): Define.
379         * c-cppbuiltin.c (builtin_define_constants,
380         builtin_define_type_minmax): New.
381         (builtin_define_stdint_macros): Define more macros.
382         (c_cpp_builtins): Define more limit macros.
383         (type_suffix): New.
384         (builtin_define_type_max): Define in terms of
385         builtin_define_type_minmax.  Remove is_long parameter.  All
386         callers changed.
387         * config.gcc (use_gcc_stdint): Define.
388         (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
389         Add newlib-stdint.h for generic targets.
390         * config/glibc-stdint.h, config/newlib-stdint.h,
391         ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
392         * config/m32c/m32c.h (UINTPTR_TYPE): Define.
393         * config/score/score.h (UINTPTR_TYPE): Define.
394         * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
395         INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
396         UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
397         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
398         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
399         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
400         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
401         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
402         * config/spu/spu.h (STDINT_LONG32): Define.
403         * configure.ac (use_gcc_stdint): Substitute.
404         * configure: Regenerate.
405         * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
406         __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
407         __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
408         __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
409         __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
410         __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
411         __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
412         __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
413         __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
414         __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
415         __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
416         __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
417         __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
418         __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
419         __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
420         __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
421         __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
422         __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
423         __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
424         __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
425         __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
426         * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
427         INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
428         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
429         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
430         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
431         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
432         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
433         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
434
435 2009-03-31  Bernd Schmidt  <bernd.schmidt@analog.com>
436
437         * loop-iv.c (suitable_set_for_replacement): Renamed from
438         simplify_using_assignment; changed to return bool and to accept new
439         args DEST and SRC.  Return true iff we find a source/destination pair
440         that can be used to make a replacement, and fill SRC and DEST if so.
441         Remove arg ALTERED.  Don't deal with altered regs here.  All callers
442         changed.
443         (simplify_using_initial_values): Deal with altered regs here and track
444         more precisely the effect they have on the validity of our expression.
445
446         * loop-iv.c (simplify_using_condition): A condition of the form
447         (EQ REG CONST) can be used to simply make a substitution.
448         (simplify_using_initial_values): Keep track of conditions we have seen
449         and keep using them to simplify new expressions, while applying the
450         same substitutions to them as to the expression.
451
452         * simplify-rtx.c (simplify_relational_operation_1): Simplify
453         (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
454         GEU/LTU reversed.
455
456         * loop-iv.c (determine_max_iter): New arg OLD_NITER.  All callers
457         changed.  Use this when trying to improve the upper bound.
458         Generate the comparison by using simplify_gen_relational.
459
460         * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
461
462         * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
463         functions.
464         (simplify_using_assignment, simplify_using_initial_values): Call 
465         replace_in_expr to make replacements.  Call replace_single_def_regs
466         once on the initial version of the expression.
467
468 2009-03-31  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
469
470         PR target/27237
471         * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
472         
473 2009-03-31  Richard Guenther  <rguenther@suse.de>
474
475         PR middle-end/31029
476         * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
477         equality comparisons.  Fold C - X CMP X if C % 2 == 1.
478
479 2009-03-31  Richard Guenther  <rguenther@suse.de>
480
481         * tree.h (div_if_zero_remainder): Declare.
482         * fold-const.c (div_if_zero_remainder): Export.
483         * tree-ssa-forwprop.c
484         (forward_propagate_addr_into_variable_array_index): Handle
485         constant array index addition outside of the variable index.
486
487 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
488
489         PR target/39592
490         * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
491         define_splits, floatunssi<mode>2): Require x87 conversions from
492         DImode to be permitted.
493
494 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
495
496         PR preprocessor/15638
497         * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
498
499 2009-03-31  Richard Guenther  <rguenther@suse.de>
500
501         PR middle-end/23401
502         PR middle-end/27810
503         * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
504         (struct tree_decl_with_vis): Remove gimple_formal_temp member.
505         * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
506         a separate statement.
507         * gimplify.c (pop_gimplify_context): Remove formal temp handling.
508         (lookup_tmp_var): Likewise.
509         (is_gimple_formal_tmp_or_call_rhs): Remove.
510         (is_gimple_reg_or_call_rhs): Rename to ...
511         (is_gimple_reg_rhs_or_call): ... this.
512         (is_gimple_mem_or_call_rhs): Rename to ...
513         (is_gimple_mem_rhs_or_call): ... this.
514         (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call.  Set
515         DECL_GIMPLE_REG_P only if is_formal is true.
516         (gimplify_compound_lval): Use is_gimple_reg.  Remove workaround
517         for non-proper post-modify expression gimplification.
518         (gimplify_self_mod_expr): For post-modify expressions gimplify
519         the lvalue to a minimal lvalue.
520         (rhs_predicate_for): Remove formal temp case.
521         (gimplify_modify_expr_rhs): Likewise.
522         (gimplify_addr_expr): Use is_gimple_reg.
523         (gimplify_expr): Remove formal temp cases.
524         (gimple_regimplify_operands): Likewise.
525         * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
526         and FILTER_EXPR like constants.
527         * gimple.c (walk_gimple_op): Fix val_only initialization, use
528         is_gimple_reg.
529         (is_gimple_formal_tmp_rhs): Remove.
530         (is_gimple_reg_rhs): Remove special casing.
531         (is_gimple_mem_rhs): Fix.
532         (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
533         (is_gimple_formal_tmp_var): Remove.
534         (is_gimple_formal_tmp_reg): Likewise.
535         (is_gimple_min_lval): Allow invariant component ref parts.
536         * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
537         is_gimple_formal_tmp_reg): Remove declarations.
538         * tree-cfg.c (verify_expr): Verify that variables with address
539         taken do not have DECL_GIMPLE_REG_P set.
540         * tree-mudflap.c (mf_build_check_statement_for): Use
541         force_gimple_operand instead of gimplify_expr.
542
543 2009-03-31  Ayal Zaks  <zaks@il.ibm.com>
544
545         * modulo-sched.c (sms_schedule_by_order): Pass the actual
546         schedulable rows to compute_split_row.
547
548 2009-03-31  Ben Elliston  <bje@au.ibm.com>
549
550         PR target/31635
551         * config/rs6000/rs6000.c (rs6000_handle_option): Handle
552         OPT_mvrsave.
553
554 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
555
556         * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
557         * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
558         * configure: Regenerate.
559         * config.in: Regenerate.
560         * config/rs6000/rs6000.opt (mtls-markers): Add.
561         * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
562         * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
563         (tls_ld_aix, tls_ld_sysv): Likewise.
564         (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
565         (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
566
567 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
568
569         * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
570
571 2009-03-30  Jan Hubicka  <jh@suse.cz>
572
573         * tree-eh.c (make_eh_edges): Set probability 100% to first edge
574         out of RESX.
575         (tree_remove_unreachable_handlers): Cleanup EH predecestor
576         detection and label handling.
577
578 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
579
580         * ira-int.h (ira_allocno): Rename left_conflicts_num to
581         left_conflicts_size.
582         (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
583         ALLOCNO_LEFT_CONFLICTS_SIZE.
584
585         * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
586         remove_allocno_from_bucket_and_push,
587         allocno_spill_priority_compare, push_allocnos_to_stack,
588         setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
589         instead of ALLOCNO_LEFT_CONFLICTS_NUM.
590         (setup_allocno_left_conflicts_num): Ditto.  Rename to
591         setup_allocno_left_conflicts_size.
592         (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
593         instead of ALLOCNO_LEFT_CONFLICTS_NUM and
594         setup_allocno_left_conflicts_size instead of
595         setup_allocno_left_conflicts_num.
596
597         * ira-build.c (ira_create_allocno): Use
598         ALLOCNO_LEFT_CONFLICTS_SIZE instead of
599         ALLOCNO_LEFT_CONFLICTS_NUM.
600                 
601 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
602
603         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
604         instead of DF_LR_OUT.
605
606         * ira-lives.c (process_bb_node_lives): Ditto.
607
608         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
609         instead of DF_LR_{OUT,IN}.
610
611         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
612
613         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
614
615 2009-03-30  Jan Hubicka  <jh@suse.cz>
616
617         * except.c (label_to_region_map): Fix thinko.
618
619 2009-03-30  Steve Ellcey  <sje@cup.hp.com>
620
621         PR middle-end/38237
622         * tree.h (tree_find_value): New declaration.
623         * tree.c (tree_find_value): New function.
624         * varasm.c (assemble_external): Avoid duplicate entries on lists.
625
626 2009-03-30  Jakub Jelinek  <jakub@redhat.com>
627
628         PR debug/39563
629         * c-decl.c (struct c_binding): Add locus field.
630         (bind): Add locus argument, set locus field from it.
631         (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
632         add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
633         (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
634         implicitly_declare, undeclared_variable, lookup_label,
635         declare_label, c_make_fname_decl, c_builtin_function,
636         c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
637         bind callers.
638
639 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
640
641         PR target/38781
642         * config/i386/i386.c (classify_argument): Check total size of
643         structure.
644
645 2009-03-30  Martin Jambor  <mjambor@suse.cz>
646
647         * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
648         IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
649         IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
650         respectively.
651
652         * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
653         seen_variable_array_ref while also traversing a union.
654
655         * tree-inline.c (optimize_inline_calls): Do not call
656         cgraph_node_remove_callees.
657         * cgraphbuild.c (remove_cgraph_callee_edges): New function.
658         (pass_remove_cgraph_callee_edges): New variable.
659         * passes.c (init_optimization_passes): Add
660         pass_remove_cgraph_callee_edges after early inlining and before all
661         late intraprocedural passes.
662
663         * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
664
665 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
666
667         * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
668         Fix typos in names.
669
670 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
671
672         * combine.c (simplify_comparison): Use have_insn_for.
673         * dojump.c (do_jump): Likewise.
674
675 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
676
677         * config/sparc/sparc.c (sparc_compare_emitted): Remove.
678         (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
679         sparc_compare_op0 like sparc_compare_emitted used to be handled.
680         (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
681         instead of sparc_compare_emitted.
682         * config/sparc/sparc.h (sparc_compare_emitted): Remove.
683         * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
684         instead of sparc_compare_emitted.
685
686 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
687
688         * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
689         enter/exit cfglayout mode.
690         (pass_partition_block): Require it.
691         * combine.c (find_single_use, reg_dead_at_p): Use CFG.
692         (combine_instructions): Track basic blocks instead of labels.
693         (update_cfg_for_uncondjump): New.
694         (try_combine): Use it.  Update jumps after rescanning.
695         (pass_combine): Require PROP_cfglayout.
696         * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
697
698 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
699
700         * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
701         Provide/destroy PROP_cfglayout respectively.
702         * gcse.c (pass_jump_bypass, pass_gcse): Require it.
703         * tree-pass.h (PROP_cfglayout): New.
704
705 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
706
707         * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
708         fold_convert_const_fixed_from_fixed,
709         fold_convert_const_fixed_from_int,
710         fold_convert_const_fixed_from_real, fold_negate_const): Do not
711         set TREE_CONSTANT_OVERFLOW.
712         * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
713         * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
714
715 2009-03-30  Ira Rosen  <irar@il.ibm.com>
716
717         * tree-vect-loop-manip.c: New file.
718         * tree-vectorizer.c: Update documentation and included files.
719         (vect_loop_location): Make extern.
720         (rename_use_op): Move to tree-vect-loop-manip.c
721         (rename_variables_in_bb, rename_variables_in_loop, 
722         slpeel_update_phis_for_duplicate_loop, 
723         slpeel_update_phi_nodes_for_guard1,
724         slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
725         slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
726         slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
727         set_prologue_iterations, slpeel_tree_peel_loop_to_edge, 
728         find_loop_location): Likewise.
729         (new_stmt_vec_info): Move to tree-vect-stmts.c.
730         (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
731         get_vectype_for_scalar_type, vect_is_simple_use,
732         supportable_widening_operation, supportable_narrowing_operation):
733         Likewise.
734         (bb_in_loop_p): Move to tree-vect-loop.c.
735         (new_loop_vec_info, destroy_loop_vec_info, 
736         reduction_code_for_scalar_code, report_vect_op, 
737         vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
738         (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
739         (vect_supportable_dr_alignment): Likewise.
740         * tree-vectorizer.h (tree-data-ref.h): Include.
741         (vect_loop_location): Declare.
742         Reorganize function declarations according to the new file structure.
743         * tree-vect-loop.c: New file.
744         * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c, 
745         tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
746         * tree-vect-data-refs.c: New file.
747         * tree-vect-patterns.c (timevar.h): Don't include.
748         * tree-vect-stmts.c: New file.
749         * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c, 
750         tree-vect-slp.c, tree-vect-loop.c.
751         * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and 
752         tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o, 
753         tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
754         (tree-vect-analyze.o): Remove.
755         (tree-vect-transform.o): Likewise.
756         (tree-vect-data-refs.o): Add rule.
757         (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o, 
758         tree-vect-slp.o): Likewise.
759         (tree-vect-patterns.o): Remove redundant dependencies.
760         (tree-vectorizer.o): Likewise.
761         * tree-vect-slp.c: New file.
762
763 2009-03-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
764
765         * optc-gen.awk: Warn if an option flag has multiple different
766         help strings.
767
768 2009-03-30  Sebastian Pop  <sebastian.pop@amd.com>
769
770         * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
771         -floop-block): Document dependences on PPL, CLooG and Graphite.
772
773 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
774
775         PR rtl-optimization/323
776         * c-common.c (c_fully_fold, convert_and_check,
777         c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
778         (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
779         * c-common.def (EXCESS_PRECISION_EXPR): New.
780         * c-cppbuiltin.c (builtin_define_float_constants): Define
781         constants with enough digits for long double.
782         * c-lex.c (interpret_float): Interpret constant with excess
783         precision where appropriate.
784         * c-opts.c (c_common_post_options): Set
785         flag_excess_precision_cmdline.  Give an error for
786         -fexcess-precision=standard for C++ for processors where the
787         option is significant.
788         * c-parser.c (c_parser_conditional_expression): Handle excess
789         precision in condition.
790         * c-typeck.c (convert_arguments): Handle arguments with excess
791         precision.
792         (build_unary_op): Move excess precision outside operation.
793         (build_conditional_expr): Likewise.
794         (build_compound_expr): Likewise.
795         (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
796         (build_modify_expr): Handle excess precision in RHS.
797         (convert_for_assignment): Handle excess precision in converted
798         value.
799         (digest_init, output_init_element, process_init_element): Handle
800         excess precision in initializer.
801         (c_finish_return): Handle excess precision in return value.
802         (build_binary_op): Handle excess precision in operands and add
803         excess precision as needed for operation.
804         * common.opt (-fexcess-precision=): New option.
805         * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
806         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
807         For standard excess precision, output explicit conversion to and
808         truncation from XFmode.
809         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
810         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
811         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
812         define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
813         define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
814         floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
815         divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
816         *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
817         *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
818         define_splits, sqrt<mode>2): Disable where appropriate for
819         standard excess precision.
820         * convert.c (convert_to_real): Do not shorten arithmetic to type
821         for which excess precision would be used.
822         * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
823         * doc/invoke.texi (-fexcess-precision=): Document option.
824         (-mfpmath=): Correct index entry.
825         * flags.h (enum excess_precision, flag_excess_precision_cmdline,
826         flag_excess_precision): New.
827         * langhooks.c (lhd_post_options): Set
828         flag_excess_precision_cmdline.
829         * opts.c (common_handle_option): Handle -fexcess-precision=.
830         * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
831         init_excess_precision): New.
832         (lang_dependent_init_target): Call init_excess_precision.
833         * tree.c (excess_precision_type): New.
834         * tree.h (excess_precision_type): Declare.
835
836 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
837
838         PR c/35235
839         * c-typeck.c (build_component_ref): Do not copy qualifiers from
840         non-lvalue to component.
841
842 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
843
844         PR preprocessor/34695
845         * Makefile.in (c-opts.o): Depend on c-tree.h.
846         * c-common.c: Move down include of diagnostic.h.
847         (done_lexing, c_cpp_error): New.
848         * c-common.h (done_lexing): Declare.
849         * c-decl.c (c_write_global_declarations): Don't check cpp_errors
850         (parse_in).
851         * c-opts.c: Include c-tree.h.
852         (c_common_init_options): Set preprocessor error callback.
853         (c_common_handle_option): Do not set preprocessor
854         inhibit_warnings, warnings_are_errors, warn_system_headers,
855         pedantic_errors or inhibit_warnings flags.
856         (c_common_post_options): Do not check cpp_errors (parse_in).
857         (c_common_finish): Do not output dependencies if there were
858         errors.  Do not check return value of cpp_finish.
859         * c-ppoutput.c (pp_file_change): Set input_location.
860         * c-tree.h (c_cpp_error): Declare.
861         * diagnostic.c (diagnostic_set_info_translated): Also initialize
862         override_column.
863         (diagnostic_build_prefix): Check override_column.
864         * diagnostic.h (diagnostic_info): Add override_column field.
865         (diagnostic_override_column): Define.
866
867 2009-03-28  Paolo Bonzini  <bonzini@gnu.org>
868
869         * c-common.c (c_expand_expr, c_staticp): Remove.
870         * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
871         * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
872         COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
873         * c-gimplify.c (gimplify_compound_literal_expr,
874         optimize_compound_literals_in_ctor): Remove.
875         (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
876         * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
877         * c-semantics.c (emit_local_var): Remove.
878
879         * langhooks-def.h (lhd_expand_expr): Remove.
880         * langhooks.c (lhd_expand_expr): Remove.
881         * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
882
883         * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
884         handling from c-semantics.c; don't call into langhook.
885         (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
886         * gimplify.c (gimplify_compound_literal_expr,
887         optimize_compound_literals_in_ctor): Move from c-gimplify.c.
888         (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
889         (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
890         as was done in c-gimplify.c.
891         * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
892         * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
893         Move from c-common.h.
894         * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
895
896         * tree.c (staticp): Do not call langhook.
897         * langhooks.c (lhd_staticp): Delete.
898         * langhooks-def.h (lhd_staticp): Delete prototype.
899         (LANG_HOOKS_STATICP): Delete.
900         (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
901
902         * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
903         instead of DECL_STMTs.
904
905 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
906
907         PR c/456
908         PR c/5675
909         PR c/19976
910         PR c/29116
911         PR c/31871
912         PR c/35198
913         * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
914         void_type_node.
915         (fold_call_expr): Return a NOP_EXPR from folding rather than the
916         contained expression.
917         * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
918         (c_common_truthvalue_conversion): Use c_save_expr.  Do not fold
919         conditional expressions for C.
920         (decl_constant_value_for_optimization): Move from
921         decl_constant_value_for_broken_optimization in c-typeck.c.  Check
922         whether optimizing and that the expression is a VAR_DECL not of
923         array type instead of doing such checks in the caller.  Do not
924         check pedantic.  Call gcc_unreachable for C++.
925         * c-common.def (C_MAYBE_CONST_EXPR): New.
926         * c-common.h (c_fully_fold, c_save_expr,
927         decl_constant_value_for_optimization): New prototypes.
928         (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
929         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
930         EXPR_INT_CONST_OPERANDS): Define.
931         * c-convert.c (convert): Strip nops from expression.
932         * c-decl.c (groktypename): Take extra parameters expr and
933         expr_const_operands.  Update call to grokdeclarator.
934         (start_decl): Update call to grokdeclarator.  Add statement for
935         expressions used in type of decl.
936         (grokparm): Update call to grokdeclarator.
937         (push_parm_decl): Update call to grokdeclarator.
938         (build_compound_literal): Add parameter non_const and build a
939         C_MAYBE_COSNT_EXPR if applicable.
940         (grokdeclarator): Take extra parameters expr and
941         expr_const_operands.  Track expressions used in declaration
942         specifiers and declarators.  Fold array sizes and track whether
943         they are constant expressions and whether they are integer
944         constant expressions.
945         (parser_xref_tag): Set expr and expr_const_operands fields in
946         return value.
947         (grokfield): Update call to grokdeclarator.
948         (start_function): Update call to grokdeclarator.
949         (build_null_declspecs): Set expr and expr_const_operands fields in
950         return value.
951         (declspecs_add_type): Handle expressions in typeof specifiers.
952         * c-parser.c (c_parser_declspecs): Set expr and
953         expr_const_operands fields for declaration specifiers.
954         (c_parser_enum_specifier): Likewise.
955         (c_parser_struct_or_union_specifier): Likewise.
956         (c_parser_typeof_specifier): Likewise.  Update call to
957         groktypename.  Fold expression as needed.  Return expressions with
958         type instead of adding statements.
959         (c_parser_attributes): Update calls to c_parser_expr_list.
960         (c_parser_statement_after_labels): Fold expression before passing
961         to objc_build_throw_stmt.
962         (c_parser_condition): Fold expression.
963         (c_parser_asm_operands): Fold expression.
964         (c_parser_conditional_expression): Use c_save_expr.  Update call
965         to build_conditional_expr.
966         (c_parser_alignof_expression): Update call to groktypename.
967         (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
968         original_code.  Fold expression argument of va_arg.  Create
969         C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
970         argument to va_arg.  Update calls to groktypename.  Fold array
971         index for offsetof.  Verify that first argument to
972         __builtin_choose_expr has integer type.
973         (c_parser_postfix_expression_after_paren_type): Update calls to
974         groktypename and build_compound_literal.  Handle expressions with
975         side effects in type name.
976         (c_parser_postfix_expression_after_primary): Update call to
977         c_parser_expr_list.  Set original_code for calls to
978         __builtin_constant_p.
979         (c_parser_expr_list): Take extra parameter fold_p.  Fold
980         expressions if requested.
981         (c_parser_objc_type_name): Update call to groktypename.
982         (c_parser_objc_synchronized_statement): Fold expression.
983         (c_parser_objc_receiver): Fold expression.
984         (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
985         (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
986         c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
987         * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
988         (struct c_typespec): Add elements expr and expr_const_operands.
989         (struct c_declspecs): Add elements expr and expr_const_operands.
990         (groktypename, build_conditional_expr, build_compound_literal):
991         Update prototypes.
992         (in_late_binary_op): Declare.
993         * c-typeck.c (note_integer_operands): New function.
994         (in_late_binary_op): New variable.
995         (decl_constant_value_for_broken_optimization): Move to c-common.c
996         and rename to decl_constant_value_for_optimization.
997         (default_function_array_conversion): Do not strip nops.
998         (default_conversion): Do not call
999         decl_constant_value_for_broken_optimization.
1000         (build_array_ref): Do not fold result.
1001         (c_expr_sizeof_expr): Fold operand.  Use C_MAYBE_CONST_EXPR for
1002         result when operand is a VLA.
1003         (c_expr_sizeof_type): Update call to groktypename.  Handle
1004         expressions included in type name.  Use C_MAYBE_CONST_EXPR for
1005         result when operand names a VLA type.
1006         (build_function_call): Update call to build_compound_literal.
1007         Only fold result for calls to __builtin_* functions.  Strip
1008         NOP_EXPR from INTEGER_CST returned from such functions.  Fold
1009         the function designator.
1010         (convert_arguments): Fold arguments.  Update call to
1011         convert_for_assignment.
1012         (build_unary_op): Handle increment and decrement of
1013         C_MAYBE_CONST_EXPR.  Move lvalue checks for increment and
1014         decrement earlier.  Fold operand of increment and decrement.
1015         Handle address of C_MAYBE_CONST_EXPR.  Only fold expression being
1016         built for integer operand.  Wrap returns that are INTEGER_CSTs
1017         without being integer constant expressions or that have integer
1018         constant operands without being INTEGER_CSTs.
1019         (lvalue_p): Handle C_MAYBE_CONST_EXPR.
1020         (build_conditional_expr): Add operand ifexp_bcp.  Track whether
1021         result is an integer constant expression or can be used in
1022         unevaluated parts of one and avoid folding and wrap as
1023         appropriate.  Fold operands before possibly doing -Wsign-compare
1024         warnings.
1025         (build_compound_expr): Wrap result for C99 if operands can be used
1026         in integer constant expressions.
1027         (build_c_cast): Update call to digest_init.  Do not ignore
1028         overflow from casting floating-point constants to integers.  Wrap
1029         results that could be confused with integer constant expressions,
1030         null pointer constants or floating-point constants.
1031         (c_cast_expr): Update call to groktypename.  Handle expressions
1032         included in type name.
1033         (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR.  Fold
1034         lhs inside possible SAVE_EXPR.  Fold RHS before assignment.
1035         Update calls to convert_for_assignment.
1036         (convert_for_assignment): Take new parameter
1037         null_pointer_constant.  Do not strip nops or call
1038         decl_constant_value_for_broken_optimization.  Set
1039         in_late_binary_op for conversions to boolean.
1040         (store_init_value): Update call to digest_init.
1041         (digest_init): Take new parameter null_pointer_constant.  Do not
1042         call decl_constant_value_for_broken_optimization.  pedwarn for
1043         initializers not constant expressions.  Update calls to
1044         convert_for_assignment.
1045         (constructor_nonconst): New.
1046         (struct constructor_stack): Add nonconst element.
1047         (really_start_incremental_init, push_init_level, pop_init_level):
1048         Handle constructor_nonconst and nonconst element.
1049         (set_init_index): Call constant_expression_warning for array
1050         designators.
1051         (output_init_element): Fold value.  Set constructor_nonconst as
1052         applicable.  pedwarn for initializers not constant expressions.
1053         Update call to digest_init.  Call constant_expression_warning
1054         where constant initializers are required.
1055         (process_init_element): Use c_save_expr.
1056         (c_finish_goto_ptr): Fold expression.
1057         (c_finish_return): Fold return value.  Update call to
1058         convert_for_assignment.
1059         (c_start_case): Fold switch expression.
1060         (c_process_expr_stmt): Fold expression.
1061         (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
1062         ensure statement expression is not evaluated in constant expression.
1063         (build_binary_op): Track whether results are integer constant
1064         expressions or may occur in such, disable folding and wrap results
1065         as applicable.  Fold operands for -Wsign-compare warnings unless
1066         in_late_binary_op.
1067         (c_objc_common_truthvalue_conversion): Handle results folded to
1068         integer constants that are not integer constant expressions.
1069         * doc/extend.texi: Document when typeof operands are evaluated,
1070         that condition of __builtin_choose_expr is an integer constant
1071         expression, and more about use of __builtin_constant_p in
1072         initializers.
1073
1074 2009-03-29  Richard Guenther  <rguenther@suse.de>
1075
1076         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
1077         propagate addresses of array references.
1078
1079 2009-03-29  Steven Bosscher  <steven@gcc.gnu.org>
1080
1081         * regmove.c (perhaps_ends_bb_p): Remove.
1082         (optimize_reg_copy_1): Don't call perhaps_ends_bb_p.  Get basic block
1083         from INSN and check that the main loop stays within that basic block.
1084         (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
1085         (regmove_forward_pass): Split out from regmove_optimize.  Use
1086         FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
1087         (regmove_backward_pass): Split out from regmove_optimize.  Use
1088         FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
1089         (regmove_optimize): Simplify.
1090
1091 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
1092
1093         PR target/39545
1094         * config/i386/i386.c (classify_argument): Ignore flexible array
1095         member in struct and warn ABI change.
1096
1097 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
1098
1099         * config/i386/i386-protos.h (ix86_agi_dependent): New.
1100
1101         * config/i386/i386.c (ix86_agi_dependent): Rewrite.
1102         (ix86_adjust_cost): Updated.
1103
1104 2009-03-29  Jan Hubicka  <jh@suse.cz>
1105
1106         PR middle-end/28850
1107         * tree-pass.h (pass_cleanup_eh): New function.
1108         (remove_unreachable_regions): Break code handling RTL
1109         to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
1110         that can not be reached by runtime.
1111         (can_be_reached_by_runtime): New function.
1112         (label_to_region_map): New function.
1113         (num_eh_regions): New function.
1114         (rtl_remove_unreachable_regions): New function.
1115         (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
1116         (remove_eh_region): New function.
1117         * except.h: Include sbitmap and vecprim.
1118         (remove_eh_region, remove_unreachable_regions, label_to_region_map,
1119         num_eh_regions): Declare.
1120         * passes.c (init_optimization_passes): Schedule cleanup_eh.
1121         * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
1122         * tree-eh.c (tree_remove_unreachable_handlers): New function.
1123         (tree_empty_eh_handler_p): New function.
1124         (cleanup_empty_eh): New function.
1125         (cleanup_eh): New function.
1126         (pass_cleanup_eh): New function.
1127
1128 2009-03-29  Jan Hubicka  <jh@suse.cz>
1129
1130         * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
1131         for removed regions.
1132
1133 2009-03-29  Jan Hubicka  <jh@suse.cz>
1134
1135         * except.c (dump_eh_tree): Dump all datastructures.
1136
1137 2009-03-29  Jan Hubicka  <jh@suse.cz>
1138
1139         * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
1140         (duplicate_eh_regions_1): Likewise.
1141         (duplicate_eh_regions): Likewise; cleanup code gorwing the region
1142         vector; call EH verification.
1143         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
1144         Be ready for region being removed.
1145
1146 2009-03-29  Jan Hubicka  <jh@suse.cz>
1147
1148         * bitmap.c (bitmap_last_set_bit): New function.
1149         * bitmap.h (bitmap_last_set_bit): Declare.
1150
1151 2009-03-29  David Ayers  <ayers@fsfe.org>
1152
1153         PR objc/27377
1154         * c-typeck.c (build_conditional_expr): Emit ObjC warnings
1155         by calling objc_compare_types and surpress warnings about
1156         incompatible C pointers that are compatible ObjC pointers.
1157         
1158 2009-03-29  Adam Nemet  <anemet@caviumnetworks.com>
1159
1160         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
1161         call initialize_inline_failed.
1162         (initialize_inline_failed): Move it from here ...
1163         * cgraph.c (initialize_inline_failed): ... to here.
1164         (cgraph_create_edge): Call initialize_inline_failed rather than
1165         setting inline_failed directly.
1166
1167 2009-03-29  Ben Elliston  <bje@au.ibm.com>
1168
1169         PR target/32542
1170         * sysv4.opt (msdata): Improve comment.
1171         * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
1172         * sysv4.h (SVR4_ASM_SPEC): Likewise.
1173
1174 2009-03-29  Ben Elliston  <bje@au.ibm.com>
1175
1176         PR target/30451
1177         * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
1178         load and store attributes.
1179
1180 2009-03-29  Ben Elliston  <bje@au.ibm.com>
1181
1182         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
1183         (ix86_init_builtins): Add built-in function __builtin_huge_valq.
1184         (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
1185         * doc/extend.texi (X86 Built-in Functions): Add index entries for
1186         __builtin_infq and __builtin_huge_valq.
1187
1188 2009-03-28  Anatoly Sokolov  <aesok@post.ru>
1189
1190         * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
1191         atmega8m1 devices.
1192         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
1193         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
1194
1195 2009-03-28  Xinliang David Li  <davidxl@google.com>
1196
1197         * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support. 
1198         (do_dbg_cnt): New function.
1199
1200 2009-03-28  Jan Hubicka  <jh@suse.cz>
1201
1202         Merge from pretty-ipa:
1203
1204         2009-03-27  Jan Hubicka  <jh@suse.cz>
1205
1206         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
1207         * tree-pass.h (function_called_by_processed_nodes_p): Declare.
1208         * passes.c (function_called_by_processed_nodes_p): New.
1209         * ipa-pure-const.c (check_call): Fix handling of operands.
1210         (analyze_function): Dump debug output for skipped bodies.
1211         (local_pure_const): Use function_called_by_processed_nodes_p.
1212         * dwarf2out.c (reference_to_unused): Use output.
1213         * passes.c (do_per_function_toporder): Likewise.
1214
1215         2008-11-12  Jan Hubicka  <jh@suse.cz>
1216
1217         * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
1218         * ipa-pure-const.c (funct_state_d): Add can throw field; make
1219         state_set_in_source enum
1220         (check_decl): Ignore memory tags; do not set fake looping flags;
1221         dump diagnostics.
1222         (check_operand, check_tree, check_rhs_var, check_lhs_var,
1223         get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
1224         (check_call, analyze_function): Rewrite.
1225         (check_stmt): New.
1226         (add_new_function): Update call of analyze_function.
1227         (generate_summary): Add call of analyze_function.
1228         (propagate): Propagate can_throw; handle state_set_in_source correctly.
1229         (local_pure_const): New function.
1230         (pass_local_pure_const): New pass.
1231         * ipa-inline.c (inline_transform): Set after_inlining.
1232         * tree-eh.c (stmt_can_throw_external): New.
1233         * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
1234         work with aliasing built.
1235         * tree-flow.h (stmt_can_throw_external): New.
1236         * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
1237         and local pure/const pass in early and late optimization queue.
1238
1239 2009-03-28  Martin Jambor  <mjambor@suse.cz>
1240
1241         * fold-const.c (get_pointer_modulus_and_residue): New parameter
1242         allow_func_align.
1243         (fold_binary): Allow function decl aligment consideration is the
1244         second argument is integer constant one.
1245         * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
1246         (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
1247         with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
1248
1249 2009-03-28  Jan Hubicka  <jh@suse.cz>
1250
1251         * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
1252         * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
1253         * function.h (rtl_data): Add nothrow flag.
1254         * except.c (set_nothrow_function_flags): Use crtl->nothrow;
1255         set DECL_NOTHROW for AVAILABLE functions.
1256
1257 2009-03-28  Jakub Jelinek  <jakub@redhat.com>
1258
1259         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
1260         following vector keyword has expansion starting with pixel or bool
1261         keyword, expand vector to __vector and pixel or bool to __pixel or
1262         __bool.
1263
1264         PR c++/39554
1265         * opts.c (warning_disallowed_functions, warn_disallowed_functions,
1266         warn_if_disallowed_function_p): Removed.
1267         (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
1268         * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
1269         warning_if_disallowed_function_p.
1270         * flags.h (warn_if_disallowed_function_p,
1271         warn_disallowed_functions): Removed.
1272         * common.opt (Wdisallowed-function-list=): Removed.
1273         * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
1274
1275 2009-03-28  Richard Guenther  <rguenther@suse.de>
1276
1277         PR tree-optimization/38723
1278         * tree-ssa-pre.c (compute_avail): Add all default definitions to
1279         the entry block.
1280
1281 2009-03-28  Jan Hubicka  <jh@suse.cz>
1282
1283         * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
1284         test introduced by my previous patch.
1285
1286 2009-03-28  Richard Guenther  <rguenther@suse.de>
1287
1288         * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
1289         the PHIs value undefined.
1290
1291 2009-03-28  Jan Hubicka  <jh@suse.cz>
1292
1293         * tree-pass.h (pass_fixup_cfg): New pass.
1294         * ipa-inline.c (inline_transform): Set
1295         always_inline_functions_inlined/after_inlining.
1296         * tree-optimize.c (execute_fixup_cfg): Do not set them here.
1297         (pass_fixup_cfg): New pass.
1298         * passes.c (init_optimization_passes): Add fixup_cfg.
1299
1300 2009-03-28  Richard Guenther  <rguenther@suse.de>
1301
1302         PR tree-optimization/38458
1303         * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
1304         argument use the arguments copy-of value.
1305
1306 2009-03-28  Richard Guenther  <rguenther@suse.de>
1307
1308         PR tree-optimization/38180
1309         * tree-ssa-ccp.c (get_default_value): Simplify.
1310         (likely_value): Likewise.
1311         (surely_varying_stmt_p): Properly handle VOP case.
1312         (ccp_initialize): Likewise.
1313         (ccp_fold): Handle propagating through *&.
1314         (fold_const_aggregate_ref): Also handle decls.
1315
1316 2009-03-28  Jan Hubicka  <jh@suse.cz>
1317
1318         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
1319         * cgraph.h (cgraph_node): Likewise.
1320         * cgraphunit.c (cgraph_process_new_functions): Set process flag.
1321         (cgraph_reset_node): Use process flag.
1322         (cgraph_mark_functions_to_output): Likewise.
1323         (cgraph_expand_function): Likewise.
1324         (cgraph_expand_all_functions): Likewise.
1325         (cgraph_output_in_order): Likewise.
1326         * dwarf2out.c (reference_to_unused): Likewise.
1327         * passes.c do_per_function_toporder): Likewise.
1328
1329 2009-03-28  Jan Hubicka  <jh@suse.cz>
1330
1331         Bring from lto-branch:
1332
1333         2008-09-03  Doug Kwan  <dougkwan@google.com>
1334
1335         * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
1336         enums instead of reason strings.
1337         * cgraph.c (cgraph_create_edge): Same.
1338         (cgraph_inline_failed_string): New function.
1339         * cgraph.h (cgraph_inline_failed_t): New enum type.
1340         (cgraph_inline_failed_string): New prototype.
1341         (struct cgraph_edge): Change type of INLINED_FAILED from constant
1342         char pointer to cgraph_inline_failed_t.
1343         (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
1344         (cgraph_default_inline_p): Ditto.
1345         * gcc/cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
1346         to cgraph_inline_failed_t pointer.
1347         * cif-code.def: New file.
1348         * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
1349         reason string.
1350         (cgraph_check_inline_limits): Change type of REASON to pointer to
1351         cgraph_inline_failed_t.  Replace reason strings with enums.
1352         (cgraph_default_inline_p): Ditto.
1353         (cgraph_recursive_inlining_p): Ditto.
1354         (update_caller_keys): Change type of FAILED_REASON to
1355         cgraph_inline_failed_t.
1356         (cgraph_set_inline_failed): Change type of REASON to pointer to
1357         cgraph_inline_failed_t.  Call cgraph_inline_failed_string to
1358         convert enums to strings for text output.
1359         (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
1360         to be of type cgraph_inline_failed_t.  Replace reason strings with
1361         enums.  Call cgraph_inline_failed_string to covert enums
1362         to strings for text output.
1363         (cgraph_decide_inlining): Replace reason strings with enums.
1364         (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
1365         to cgraph_inline_failed_t type.  Call cgraph_inline_failed_string
1366         for text output.
1367         * tree-inline.c (expand_call_inline): Change type of REASON
1368         to cgraph_inline_failed_t.  Replace reason strings with enums.
1369         Call cgraph_inline_failed_string for text output.
1370         * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
1371         (cgraph.o): Ditto.
1372
1373 2009-03-28  Jan Hubicka  <jh@suse.cz>
1374
1375         * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
1376         cgraph_clone_node): Remove master clone handling.
1377         (cgraph_is_master_clone, cgraph_master_clone): Remove.
1378         * cgraph.h (master_clone): Remove.
1379         (cgraph_is_master_clone, cgraph_master_clone): Remove.
1380         * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
1381         (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
1382
1383 2009-03-28  Jan Hubicka  <jh@suse.cz>
1384
1385         * cgraph.c (cgraph_function_body_availability): Functions declared
1386         inline are always safe to assume that it is not going to be replaced.
1387
1388 2009-03-28  Richard Guenther  <rguenther@suse.de>
1389
1390         PR tree-optimization/38513
1391         * tree-ssa-pre.c (eliminate): Remove redundant stores.
1392         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
1393         EXC_PTR_EXPR and FILTER_EXPR.
1394         (get_ref_from_reference_ops): Likewise.
1395
1396 2009-03-28  Richard Guenther  <rguenther@suse.de>
1397
1398         PR tree-optimization/38968
1399         * tree-vect-analyze.c (vect_compute_data_ref_alignment):
1400         Use FLOOR_MOD_EXPR to compute misalignment.
1401
1402 2009-03-28  Richard Guenther  <rguenther@suse.de>
1403
1404         PR tree-optimization/37795
1405         * tree.h (combine_comparisons): Declare.
1406         * fold-const.c (combine_comparisons): Export.
1407         * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
1408         comparisons.
1409         (ifcombine_iforif): Use combine_comparisons.
1410
1411 2009-03-28  Jan Hubicka  <jh@suse.cz>
1412
1413         * tree-eh.c (inlinable_call_p): New function.
1414         (make_eh_edges): Use it.
1415         (verify_eh_edges): Use it.
1416         (stmt_can_throw_external, stmt_can_throw_internal): Use it.
1417         * except.c (reachable_next_level): Add inlinable_function argument
1418         (sjlj_find_directly_reachable_regions): Update.
1419         (add_reachable_handler): Do not set saw_any_handlers.
1420         (reachable_next_level): Handle MUST_NOT_THROW more curefully.
1421         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
1422         Add new inlinable call parameter.
1423         (can_throw_internal, can_throw_external): Update.
1424         * except.h (can_throw_internal_1, can_throw_external_1,
1425         foreach_reachable_handler): Update declaration.
1426
1427 2009-03-28  Joseph Myers  <joseph@codesourcery.com>
1428
1429         * config/arm/t-arm-coff, config/h8300/coff.h,
1430         config/i386/i386-aout.h, config/i386/i386-coff.h,
1431         config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
1432         config/pdp11/2bsd.h, config/rs6000/aix41.h,
1433         config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
1434         fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
1435         scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
1436         sys-types.h: Remove.
1437         * Makefile.in: Remove protoize and fixproto support and references
1438         in comments.
1439         (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
1440         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
1441         Remove.
1442         (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
1443         (MOSTLYCLEANFILES): Remove protoize$(exeext) and
1444         unprotoize$(exeext).
1445         (rest.encap): Don't depend on $(STMP_FIXPROTO)
1446         (.PHONY): Don't depend on proto.
1447         (libgcc-support): Don't depend on $(STMP_FIXPROTO).
1448         (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
1449         protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
1450         deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
1451         build/gen-protos.o, build/scan.o, xsys-protos.h,
1452         build/fix-header$(build_exeext), build/fix-header.o,
1453         build/scan-decls.o, fixhdr.ready, stmp-fixproto,
1454         stmp-install-fixproto): Remove.
1455         (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
1456         SYSCALLS.c or fixproto files.
1457         (install-common): Don't install protoize.
1458         (install-headers-tar, install-headers-cpio, install-headers-cp):
1459         Don't depend on $(STMP_FIXPROTO).
1460         (install-mkheaders): Don't depend on $(STMP_FIXPROTO).  Don't
1461         install fixproto files or write out fixproto settings.
1462         (uninstall): Don't uninstall protoize.
1463         * config.gcc (use_fixproto): Remove.
1464         (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
1465         i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
1466         rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
1467         * config/m32r/t-linux (STMP_FIXPROTO): Remove.
1468         * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
1469         * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
1470         * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
1471         * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
1472         * config/t-svr4 (FIXPROTO_DEFINES): Remove.
1473         * config/t-vxworks (STMP_FIXPROTO): Remove.
1474         * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
1475         STMP_FIXPROTO): Remove.
1476         * config.in, configure: Regenerate.
1477         * crtstuff.c (gid_t, uid_t): Don't undefine.
1478         * doc/install.texi: Change m68k-coff to m68k-elf in example.
1479         (arm-*-coff, arm-*-aout: Remove target entries.
1480         (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
1481         Remove mention of AIX 4.1.
1482         (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
1483         * doc/invoke.texi (Running Protoize): Remove.
1484         * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
1485         (Protoize Caveats): Remove.
1486         * tsystem.h: Update comments on headers assumed to exist.
1487
1488 2009-03-27  Vladimir Makarov  <vmakarov@redhat.com>
1489
1490         * genautomata.c: Add a new year to the copyright.  Add a new
1491         reference.
1492         (struct insn_reserv_decl): Add comments for member bypass_list.
1493         (find_bypass): Remove.
1494         (insert_bypass): New.
1495         (process_decls): Use insert_bypass.
1496         (output_internal_insn_latency_func): Output all bypasses with the
1497         same input insn in one switch case.
1498
1499         * rtl.def (define_bypass): Describe bypass choice.
1500         * doc/md.texi (define_bypass): Ditto.
1501
1502 2009-03-27  Richard Guenther  <rguenther@suse.de>
1503
1504         * gimplify.c (mark_addressable): Export.
1505         * tree-flow.h (mark_addressable): Declare.
1506         * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
1507         * tree-ssa.c (verify_phi_args): Verify that address taken
1508         variables have TREE_ADDRESSABLE set.
1509
1510 2009-03-27  Richard Guenther  <rguenther@suse.de>
1511
1512         * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
1513         (build_fold_addr_expr_with_type): ... this.  Remove in_fold handling.
1514         Do not mark decls TREE_ADDRESSABLE.
1515         (build_fold_addr_expr): Adjust.
1516         (fold_addr_expr): Remove.
1517         (fold_unary): Use build_fold_addr_expr.
1518         (fold_comparison): Likewise.
1519         (split_address_to_core_and_offset): Likewise.
1520         * coverage.c (tree_coverage_counter_addr): Mark the array decl
1521         TREE_ADDRESSABLE.
1522         * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
1523         (gimplify_modify_expr_to_memcpy): Mark source and destination
1524         addressable.
1525         * omp-low.c (create_omp_child_function): Mark the object decl
1526         TREE_ADDRESSABLE.
1527         (lower_rec_input_clauses): Mark the var we take the address of
1528         TREE_ADDRESSABLE.
1529         (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
1530
1531 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
1532
1533         PR middle-end/39315
1534         * cfgexpand.c (expand_one_stack_var_at): Change alignment
1535         limit to MAX_SUPPORTED_STACK_ALIGNMENT.
1536
1537 2009-03-27  Richard Guenther  <rguenther@suse.de>
1538
1539         PR tree-optimization/39120
1540         * tree-ssa-structalias.c (handle_rhs_call): Fill out return
1541         constraints.
1542         (handle_lhs_call): Process return constraints.  Add escape
1543         constraints if necessary.
1544         (handle_const_call): Fill out return constraints.  Make nested
1545         case more precise.  Avoid consttmp if possible.
1546         (handle_pure_call): Fill out return constraints.  Avoid
1547         callused if possible.
1548         (find_func_aliases): Simplify call handling.
1549
1550 2009-03-27  Richard Guenther  <rguenther@suse.de>
1551
1552         PR tree-optimization/39120
1553         * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
1554         as a representative.
1555         (solve_graph): Do propagate CALLUSED.
1556         (handle_pure_call): Use a scalar constraint from CALLUSED for
1557         the return value.
1558         (find_what_p_points_to): CALLUSED shall not appear in poins-to
1559         solutions.
1560
1561 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
1562
1563         PR c/39323
1564         * c-common.c (handle_aligned_attribute): Properly check alignment
1565         overflow.  Use (1U << i) instead of (1 << i).
1566
1567         * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
1568
1569         * expr.h (get_mem_align_offset): Updated.
1570
1571         * tree.h (tree_decl_common): Change align to "unsigned int" and
1572         move it before pointer_alias_set.
1573
1574 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
1575             Jakub Jelinek  <jakub@redhat.com>
1576
1577         PR target/38034
1578         * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
1579         gr_register_operand with gr_reg_or_0_operand.
1580         (cmpxchg_rel_di): Likewise.
1581         (sync_lock_test_and_set<mode>): Likewise.
1582
1583 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
1584
1585         * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
1586         (true_regnum): Likewise.
1587
1588         * rtlanal.c (subreg_info): Moved to ...
1589         * rtl.h (subreg_info): Here.  New.
1590         (subreg_get_info): New.
1591
1592         * rtlanal.c (subreg_get_info): Make it extern.
1593
1594 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
1595
1596         PR target/39472
1597         * config/i386/i386.c (ix86_abi): New.
1598         (override_options): Handle -mabi=.
1599         (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
1600         (ix86_call_abi_override): Likewise.
1601         (init_cumulative_args): Likewise.
1602         (function_arg_advance): Likewise.
1603         (function_arg_64): Likewise.
1604         (function_arg): Likewise.
1605         (ix86_pass_by_reference): Likewise.
1606         (ix86_function_value_regno_p): Likewise.
1607         (ix86_build_builtin_va_list_abi): Likewise.
1608         (setup_incoming_varargs_64): Likewise.
1609         (is_va_list_char_pointer): Likewise.
1610         (ix86_init_machine_status): Likewise.
1611         (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
1612         (ix86_function_type_abi): Return enum calling_abi.  Rewrite
1613         for 64bit.  Replace DEFAULT_ABI with ix86_abi.
1614         (ix86_function_abi): Make it static and return enum calling_abi.
1615         (ix86_cfun_abi): Return enum calling_abi.  Replace DEFAULT_ABI
1616         with ix86_abi.
1617         (ix86_fn_abi_va_list): Updated.
1618
1619         * config/i386/i386.h (ix86_abi): New.
1620         (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
1621         (CONDITIONAL_REGISTER_USAGE): Likewise.
1622         (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
1623         (machine_function): Likewise.
1624
1625         * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
1626         with ix86_abi.
1627         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
1628         (STACK_BOUNDARY): Likewise.
1629         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
1630
1631         * config/i386/i386.opt (mabi=): New.
1632
1633         * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
1634         return enum calling_abi.
1635         (ix86_function_type_abi): Likewise.
1636         (ix86_function_abi): Removed.
1637
1638         * doc/invoke.texi: Document -mabi= option for x86.
1639
1640 2009-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1641
1642         * builtins.c (real_dconstp): Delete.
1643         (fold_builtin_logarithm): Remove inaccurate log(e) special case.
1644
1645 2009-03-27  Dodji Seketeli  <dodji@redhat.com>
1646             Jakub Jelinek  <jakub@redhat.com>
1647
1648         PR debug/37959
1649         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
1650         (gen_subprogram_die): When a function is explicit, generate the
1651         DW_AT_explicit attribute.
1652         * langhooks.h (struct lang_hooks_for_decls): Add
1653         function_decl_explicit_p langhook.
1654         * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
1655         (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
1656
1657 2009-03-27  Jakub Jelinek  <jakub@redhat.com>
1658
1659         * builtins.c (fold_builtin_memory_op): Optimize memmove
1660         into memcpy if we can prove source and destination don't overlap.
1661
1662         * tree-inline.c: Include gt-tree-inline.h.
1663         (clone_fn_id_num): New variable.
1664         (clone_function_name): New function.
1665         (tree_function_versioning): Use it.
1666         * Makefile.in (GTFILES): Add tree-inline.c.
1667
1668 2009-03-27  Mark Mitchell  <mark@codesourcery.com>
1669
1670         * BASE-VER: Change to 4.5.0.
1671
1672 2009-03-27  Xinliang David Li  <davidxl@google.com>
1673
1674         PR tree-optimization/39557
1675         * tree-ssa.c (warn_uninitialized_vars): free postdom info.
1676
1677 2009-03-27  Xinliang David Li  <davidxl@google.com>
1678
1679         PR tree-optimization/39548
1680         * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy 
1681         candidate check.
1682
1683 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
1684
1685         * c-common.c (pointer_int_sum): Use %wd on return from
1686         tree_low_cst.
1687
1688 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
1689
1690         * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
1691         on return from tree_low_cst.
1692
1693 2009-03-27  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1694
1695         PR c++/36799
1696         * ginclude/stdarg.h (va_copy): Define also for
1697         __GXX_EXPERIMENTAL_CXX0X__.
1698
1699 2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1700
1701         PR c++/35652
1702         * builtins.h (c_strlen): Do not warn here.
1703         * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
1704         * c-common.c (pointer_int_sum): Take an explicit location.
1705         Warn about offsets out of bounds.
1706         * c-common.h (pointer_int_sum): Adjust declaration.
1707
1708 2009-03-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1709
1710         * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
1711         markup glitch.
1712
1713 2009-03-26  Jakub Jelinek  <jakub@redhat.com>
1714
1715         PR c++/39554
1716         * opts.c (warn_if_disallowed_function_p): Don't assume
1717         get_callee_fndecl must return non-NULL.
1718
1719 2009-03-26  Vladimir Makarov  <vmakarov@redhat.com>
1720
1721         PR rtl-optimization/39522
1722         * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
1723         when reg_reloaded_valid is set.
1724
1725 2009-03-26  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1726
1727         * config/spu/divv2df3.c: New file.
1728         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
1729         (DPBIT_FUNCS): Filter out _div_df.
1730
1731 2009-03-26  Bernd Schmidt  <bernd.schmidt@analog.com>
1732
1733         * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
1734         a jump insn, count that jump in the distance to the loop start.
1735
1736 2009-03-25  Kaz Kojima  <kkojima@gcc.gnu.org>
1737
1738         PR target/39523
1739         * config/sh/sh.c (calc_live_regs): Fix condition for global
1740         registers except PIC_OFFSET_TABLE_REGNUM.
1741
1742 2009-03-25  Kai Tietz  <kai.tietz@onevision.com>
1743
1744         PR/39518
1745         * doc/invoke.texi (-mconsole): New.
1746         (-mcygwin): New.
1747         (-mno-cygwin): New.
1748         (-mdll): New.
1749         (-mnop-fun-dllimport): New.
1750         (-mthread): New.
1751         (-mwin32): New.
1752         (-mwindows): New.
1753         (sub section "i386 and x86-64 Windows Options"): New.
1754
1755 2009-03-25  Ralf Cors├ępius <ralf.corsepius@rtems.org>
1756
1757         * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
1758         * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
1759
1760 2009-03-25  Richard Guenther  <rguenther@suse.de>
1761
1762         PR middle-end/39497
1763         * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
1764         of -Wno-error.
1765
1766 2009-03-25  Andrey Belevantsev  <abel@ispras.ru>
1767
1768         * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
1769         neither of haifa/selective schedulers are working.
1770
1771 2009-03-25  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1772
1773         * doc/invoke.texi (Debugging Options): Fix description of
1774         -fno-merge-debug-strings.
1775
1776 2009-03-24  Hans-Peter Nilsson  <hp@axis.com>
1777
1778         * config/cris/libgcc.ver: New version-script.
1779         * config/cris/t-linux (SHLIB_MAPFILES): Use it.
1780
1781         * configure.ac <GAS features, nop mnemonic>: Add pattern
1782         crisv32-*-* for "nop".
1783         <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
1784         * configure: Regenerate.
1785
1786 2009-03-24  Ira Rosen  <irar@il.ibm.com>
1787
1788         PR tree-optimization/39529
1789         * tree-vect-transform.c (vect_create_data_ref_ptr): Call
1790         mark_sym_for_renaming for the tag copied to the new vector
1791         pointer.
1792
1793 2009-03-24  Arthur Loiret  <aloiret@debian.org>
1794
1795         * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
1796         * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
1797         EXTRA_SPEC_FUNCTIONS.
1798         (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
1799         * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
1800         * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
1801         -march and -mtune options.
1802
1803 2009-03-24  Ralf Cors├ępius <ralf.corsepius@rtems.org>
1804
1805         * config/m68k/t-rtems: Add m5329 multilib.
1806
1807 2009-03-24  Dodji Seketeli  <dodji@redhat.com>
1808             Jakub Jelinek  <jakub@redhat.com>
1809
1810         PR debug/39524
1811         * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
1812         nodes.
1813
1814 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
1815
1816         PR c/39495
1817         * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
1818         instead of c_parser_expression_conv, if original_code isn't one of the
1819         4 allowed comparison codes, fail.
1820
1821 2009-03-23  Richard Guenther  <rguenther@suse.de>
1822
1823         * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
1824         * tree.h (struct tree_type): Likewise.
1825         * reload.h (struct insn_chain): Likewise.
1826         * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
1827         * function.h (struct function): Likewise.
1828         * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
1829
1830 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
1831
1832         PR tree-optimization/39516
1833         * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
1834
1835 2009-03-23 Bingfeng Mei  <bmei@broadcom.com>
1836
1837         * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint 
1838         should be set true if BITS_PER_WORD of target is bigger than 32
1839
1840 2009-03-22  Hans-Peter Nilsson  <hp@axis.com>
1841
1842         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
1843         Translate -B-options to -rpath-link.  Correct existing
1844         rpath-link and conditionalize on !nostdlib.
1845
1846 2009-03-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1847
1848         * doc/extend.texi (Function Attributes, Variable Attributes):
1849         Fix typos.
1850         * doc/invoke.texi (Debugging Options, Optimize Options)
1851         (i386 and x86-64 Options, MCore Options): Likewise.
1852
1853 2009-03-20  Jakub Jelinek  <jakub@redhat.com>
1854
1855         PR debug/37890
1856         * dwarf2out.c (gen_namespace_die): Add context_die argument and use
1857         it for block local namespace aliases.
1858         (gen_decl_die): Pass context_die to gen_namespace_die.
1859
1860 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
1861
1862         PR c/39495
1863         * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
1864         minimum or maximum value.
1865
1866 2009-03-19  Alexandre Oliva  <aoliva@redhat.com>
1867
1868         * reginfo.c (globalize_reg): Recompute derived reg sets.
1869
1870 2009-03-19  Ozkan Sezer <sezeroz@gmail.com>
1871
1872         PR target/39063
1873         * libgcc2.c (mprotect): Do not use signed arguments for
1874         VirtualProtect, use DWORD arguments.  Also fix the 'may
1875         be used uninitialized' warning for the np variable.
1876
1877 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
1878
1879         PR target/39496
1880         * config/i386/i386.c (ix86_function_regparm): Don't optimize local
1881         functions using regparm calling conventions when not optimizing.
1882         (ix86_function_sseregparm): Similarly for sseregparm calling
1883         conventions.
1884
1885 2009-03-19  Li Feng  <nemokingdom@gmail.com>
1886
1887         PR middle-end/39500
1888         * tree-data-ref.c (analyze_subscript_affine_affine): There is no
1889         dependence if the first conflict is after niter iterations.
1890
1891 2009-03-19  Hans-Peter Nilsson  <hp@axis.com>
1892
1893         PR middle-end/38609
1894         * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
1895         functions with dynamic stack-pointer adjustments.
1896
1897 2009-03-19  Ben Elliston  <bje@au.ibm.com>
1898
1899         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
1900         option; change to -msdata=data.
1901
1902 2009-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1903
1904         * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
1905         and -fopenmp.
1906
1907 2009-03-18  Eric Botcazou  <ebotcazou@adacore.com>
1908
1909         PR target/35180
1910         * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
1911
1912 2009-03-18  Sandra Loosemore  <sandra@codesourcery.com>
1913
1914         * doc/invoke.texi (Code Gen Options): Expand discussion of
1915         -fno-common.
1916
1917 2009-03-18  Jakub Jelinek  <jakub@redhat.com>
1918
1919         * dse.c (struct group_info): Reorder fields for 64-bit hosts.
1920         * matrix-reorg.c (struct matrix_info): Likewise.
1921         * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
1922         * rtl.h (struct mem_attrs): Likewise.
1923         * df.h (struct df): Likewise.
1924         * tree-data-ref.h (struct data_dependence_relation): Likewise.
1925         * ira-int.h (struct ira_allocno): Likewise.
1926         * df-scan.c (struct df_collection_rec): Likewise.
1927         * ira.c (struct equivalence): Likewise.
1928         * function.c (struct temp_slot): Likewise.
1929         * cfgloop.h (struct loop): Likewise.
1930
1931         PR debug/39485
1932         * function.c (use_register_for_decl): When not optimizing, disregard
1933         register keyword for variables with types containing methods.
1934
1935 2009-03-18  Sebastian Pop  <sebastian.pop@amd.com>
1936
1937         PR middle-end/39447
1938         * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
1939         (is_simple_operand): Call contains_component_ref_p before calling data
1940         reference analysis that would fail on COMPONENT_REFs.
1941
1942         * tree-vrp.c (search_for_addr_array): Fix formatting.
1943
1944 2009-03-18  Richard Guenther  <rguenther@suse.de>
1945
1946         * tree-vect-transform.c (vect_loop_versioning): Fold the
1947         generated comparisons.
1948         * tree-vectorizer.c (set_prologue_iterations): Likewise.
1949         (slpeel_tree_peel_loop_to_edge): Likewise.
1950
1951 2009-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1952
1953         PR middle-end/37805
1954         * opts.c (print_specific_help): In addition to `undocumented',
1955         accept `separate' and `joined' flags if passed alone.  Describe
1956         output by the first matched one of those.
1957         (common_handle_option): Skip over empty strings.
1958         * gcc.c (display_help): Fix help string for `--help='.
1959         * doc/invoke.texi (Option Summary, Overall Options): With
1960         `--help=', classes and qualifiers can both be repeated, but
1961         only the latter can be negated.  One should not pass only
1962         negated qualifiers.  Fix markup and examples.
1963
1964         Revert
1965         2008-10-14  Jakub Jelinek  <jakub@redhat.com>
1966         PR middle-end/37805
1967         * opts.c (common_handle_option): Don't ICE on -fhelp=joined
1968         and -fhelp=separate.
1969
1970 2009-03-17  Jing Yu  <jingyu@google.com>
1971
1972         PR middle-end/39378
1973         * function.h (struct rtl_data): Move is_thunk from here...
1974         (struct function): ...to here.
1975         * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
1976         * varasm.c (assemble_start_function): Change is_thunk from crtl to
1977         cfun.
1978         * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
1979         cfun.
1980         (alpha_does_function_need_gp, alpha_start_function): Likewise.
1981         (alpha_output_function_end_prologue): Likewise.
1982         (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
1983         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
1984         (rs6000_output_function_epilogue): Likewise.
1985         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
1986
1987 2009-03-17  Uros Bizjak  <ubizjak@gmail.com>
1988
1989         PR target/39482
1990         * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
1991         from different units in a single alternative.
1992         (*truncdfsf_i387): Ditto.
1993         (*truncxfsf2_mixed): Ditto.
1994         (*truncxfdf2_mixed): Ditto.
1995
1996 2009-03-17  Jakub Jelinek  <jakub@redhat.com>
1997
1998         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
1999         non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
2000
2001         PR debug/39474
2002         * tree-ssa-live.c (remove_unused_locals): Don't remove local
2003         unused non-artificial variables when not optimizing.
2004
2005         PR debug/39471
2006         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
2007         DW_TAG_imported_module even if decl is IMPORTED_DECL with
2008         NAMESPACE_DECL in its DECL_INITIAL.
2009
2010         PR middle-end/39443
2011         * optabs.c (set_user_assembler_libfunc): New function.
2012         * expr.h (set_user_assembler_libfunc): New prototype.
2013         * c-common.c: Include libfuncs.h.
2014         (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
2015         for memcmp, memset, memcpy, memmove and abort.
2016         * Makefile.in (c-common.o): Depend on libfuncs.h.
2017
2018         PR debug/39412
2019         * dwarf2out.c (gen_inlined_enumeration_type_die,
2020         gen_inlined_structure_type_die, gen_inlined_union_type_die,
2021         gen_tagged_type_instantiation_die): Removed.
2022         (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
2023         do nothing.
2024
2025 2009-03-17  Janis Johnson  <janis187@us.ibm.com>
2026
2027         PR testsuite/38526
2028         * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
2029         its use.
2030         (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
2031         (check-parallel-%): Ditto.
2032         (check-consistency): Ditto.
2033
2034 2009-03-17  Kai Tietz  <kai.tietz@onevision.com>
2035
2036         * ipa-struct-reorg.c (create_general_new_stmt): Initialize
2037         local variable rhs by NULL_TREE.
2038
2039 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
2040
2041         PR target/39477
2042         * doc/extend.texi: Correct register behavior for regparm on Intel 386.
2043
2044 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
2045
2046         PR target/39476
2047         * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
2048
2049 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
2050
2051         PR target/39473
2052         * config/i386/i386.c (ix86_expand_call): Check extra clobbers
2053         for ms->sysv ABI calls only in 64bit mode.
2054
2055         * config/i386/i386.md (untyped_call): Support 32bit.
2056
2057 2009-03-16  H.J. Lu  <hongjiu.lu@intel.com>
2058
2059         * doc/extend.texi: Replace x86_65 with x86_64.
2060
2061 2009-03-16  Jakub Jelinek  <jakub@redhat.com>
2062
2063         PR tree-optimization/39455
2064         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
2065         mismatches for POINTER_TYPE_P (type).
2066         (number_of_iterations_le): Likewise.
2067
2068 2009-03-16  Hariharan Sandanagobalane <hariharan@picochip.com>
2069
2070         * config/picochip/picochip.c: Removed profiling support.
2071         * config/picochip/picochip.md: Removed profiling instruction.
2072         * config/picochip/picochip.h: Removed profiling builtin.
2073
2074 2009-03-16  Joseph Myers  <joseph@codesourcery.com>
2075
2076         * doc/install.texi (--with-host-libstdcxx): Document.
2077
2078 2009-03-14  Anatoly Sokolov  <aesok@post.ru>
2079
2080         PR target/34299
2081         * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
2082         generate a warning if the function name does not begin with
2083         "__vector" and the function has either the 'signal' or 'interrupt'
2084         attribute, from here to ...
2085         (avr_declare_function_name): ...here. New function.
2086         * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
2087         * config/avr/avr-protos.h (avr_declare_function_name): Declare.
2088
2089 2009-03-14  Jakub Jelinek  <jakub@redhat.com>
2090
2091         PR bootstrap/39454
2092         * cse.c (fold_rtx): Don't modify original const_arg1 when
2093         canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
2094         separate variable instead.
2095         * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
2096         from out of range shift counts.
2097         (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
2098
2099 2008-03-13  Catherine Moore  <clm@codesourcery.com>
2100
2101         * gcc/config/i386/x-mingw32 (host-mingw32.o): Replace
2102         diagnostic.h with $(DIAGNOSTIC_H).
2103
2104 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
2105
2106         PR target/39431
2107         * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
2108         predicate.
2109         * config/i386/sync.md (sync_compare_and_swap<mode>,
2110         sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
2111         if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
2112         into a register.
2113         (sync_double_compare_and_swapdi_pic,
2114         sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
2115         cmpxchg8b_pic_memory_operand instead of just memory_operand.
2116
2117 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
2118
2119         PR target/39445
2120         * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
2121
2122 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
2123
2124         PR target/39327
2125         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
2126         (avx_addsubv4df3): Likewise.
2127         (*avx_addsubv4sf3): Likewise.
2128         (sse3_addsubv4sf3): Likewise.
2129
2130 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
2131
2132         PR target/38824
2133         * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
2134
2135 2009-03-12  Vladimir Makarov  <vmakarov@redhat.com>
2136
2137         PR debug/39432
2138         * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
2139         * ira-conflicts.c (ira_build_conflicts): Prohibit call used
2140         registers for allocnos created from user-defined variables.
2141
2142 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2143
2144         PR target/39181
2145         * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
2146         of non-integer mode as well.
2147
2148 2009-03-11  Adam Nemet  <anemet@caviumnetworks.com>
2149
2150         * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
2151         for functions for which the parameter types are unknown.
2152
2153 2009-03-11  Jakub Jelinek  <jakub@redhat.com>
2154
2155         PR target/39137
2156         * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
2157         * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
2158         * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
2159         * config/i386/i386.c (ix86_local_alignment): For
2160         -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
2161         long long variables on the stack to avoid dynamic realignment.
2162         Allow the first argument to be a decl rather than type.
2163         * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
2164
2165 2009-03-11  Nick Clifton  <nickc@redhat.com>
2166
2167         PR target/5362
2168         * config/mcore/mcore.opt: Remove deprecated m4align and m8align
2169         options.
2170         Add description to mno-lsim option.
2171         * config/mcore/mcore.h: Remove comment about deprecated m4align
2172         option.
2173         (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
2174         * doc/invoke.texi: Add description of mno-lsim and
2175         mstack-increment options.
2176
2177         * config/fr30/fr30.opt: Document the -mno-lsim option.
2178         * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
2179         and -mno-lsim options.
2180
2181 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2182
2183         * fold-const.c (fold_comparison): Only call fold_inf_compare
2184         if the mode supports infinities.
2185
2186 2009-03-11  Jason Merrill  <jason@redhat.com>
2187
2188         PR debug/39086
2189         * tree-nrv.c (tree_nrv): Don't do this optimization if the front
2190         end already did.  Notice GIMPLE_CALL modifications of the result.
2191         Don't copy debug information from an ignored decl or a decl from
2192         another function.
2193
2194 2009-03-10  Richard Guenther  <rguenther@suse.de>
2195             Nathan Froyd  <froydnj@codesourcery.com>
2196
2197         PR middle-end/37850
2198         * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
2199         (__divMODE3): Likewise.
2200
2201 2009-03-09  Jakub Jelinek  <jakub@redhat.com>
2202
2203         PR tree-optimization/39394
2204         * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
2205         DECL_SIZE_UNIT of variable length FIELD_DECLs.
2206
2207 2009-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2208
2209         * recog.c (verfiy_changes): Disallow renaming of hard regs in
2210         inline asms for register asm ("") declarations.
2211
2212 2009-03-09  Eric Botcazou  <ebotcazou@adacore.com>
2213
2214         * fold-const.c (fold_unary): Fix comment.
2215
2216 2009-03-07  Jan Hubicka  <jh@suse.cz>
2217
2218         PR target/39361
2219         * tree-inline.c (setup_one_parameter): Do replacement of const
2220         argument by constant in SSA form.
2221
2222 2009-03-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2223
2224         PR middle-end/38028
2225         * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
2226         determine alignment passed to assign_stack_local.
2227         (assign_parms_unsplit_complex): Likewise.
2228         * except.c (sjlj_build_landing_pads): Likewise.
2229
2230 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
2231
2232         PR middle-end/39360
2233         * tree-flow.h (add_referenced_var): Return bool instead of void.
2234         * tree-dfa.c (add_referenced_var): Return result of
2235         referenced_var_check_and_insert call.
2236         * tree-inline.c (expand_call_inline): Call add_referenced_var instead
2237         of referenced_var_check_and_insert.
2238
2239         PR debug/39372
2240         * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
2241         (gen_variable_die): Emit DW_AT_location on abstract static variable's
2242         DIE, don't emit it if abstract origin already has it.
2243         * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
2244         BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
2245
2246 2009-03-06  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
2247
2248         * genpreds.c (needs_variable): Fix parentheses at variable name
2249         detection.
2250         (write_tm_constrs_h): Indent generated code.
2251
2252 2009-03-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2253
2254         * doc/extend.texi (Function Attributes): Add documentation
2255         for isr attributes.
2256
2257 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
2258
2259         PR debug/39387
2260         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
2261         take locus from its DECL_SOURCE_LOCATION instead of input_location.
2262
2263 2009-03-05  Bernd Schmidt  <bernd.schmidt@analog.com>
2264
2265         * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
2266         the loop as bad.
2267
2268 2009-03-05  Jakub Jelinek  <jakub@redhat.com>
2269
2270         PR debug/39379
2271         * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
2272         with blocks containing IMPORTED_DECLs in BLOCK_VARS.
2273
2274 2009-03-05  Uros Bizjak  <ubizjak@gmail.com>
2275
2276         * config/i386/i386.md (R8_REG, R9_REG): New constants.
2277         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
2278         constants instead of magic numbers.
2279         (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
2280         (QI_REG_P): Ditto.
2281         * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
2282         (x86_64_ms_abi_int_parameter_registers): Ditto.
2283         (x86_64_int_return_registers): Ditto.
2284         (ix86_maybe_switch_abi): Ditto.
2285         (ix86_expand_call): Ditto for clobbered_registers array.
2286         (ix86_hard_regno_mode_ok): Ditto.
2287         (x86_extended_QIreg_mentioned_p): Ditto.
2288
2289 2009-03-05  J"orn Rennecke  <joern.rennecke@arc.com>
2290
2291         PR tree-optimization/39349
2292         * cse.c (cse_insn): Fix loop to stop at VOIDmode.
2293
2294         * combine.c (gen_lowpart_for_combine): Use omode when generating
2295         clobber.
2296
2297 2009-03-04  J"orn Rennecke  <joern.rennecke@arc.com>
2298
2299         PR rtl-optimization/39235
2300         * loop-iv.c (get_simple_loop_desc): Use XCNEW.
2301
2302 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
2303
2304         * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
2305
2306 2009-03-04  Richard Guenther  <rguenther@suse.de>
2307
2308         PR tree-optimization/39362
2309         * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
2310         that occur in abnormal PHIs should be varying.
2311
2312 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
2313
2314         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
2315         Extend comments.
2316         (simple_iv):  Take loop as an argument instead of statement.
2317         * tree-scalar-evolution.h (simple_iv): Declaration changed.
2318         * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
2319         to simple_iv.
2320         * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
2321         Ditto.
2322         * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
2323         * matrix-reorg.c (analyze_transpose): Ditto.
2324         * tree-data-ref.c (dr_analyze_innermost): Ditto.
2325         * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
2326         * tree-predcom.c (ref_at_iteration): Ditto.
2327         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
2328
2329 2009-03-04  Richard Guenther  <rguenther@suse.de>
2330
2331         PR tree-optimization/39358
2332         * tree-ssa-structalias.c (do_sd_constraint): Fix check for
2333         escaped_id and callused_id.
2334         (solve_graph): Likewise.
2335
2336 2009-03-04  Richard Guenther  <rguenther@suse.de>
2337
2338         PR tree-optimization/39339
2339         * tree-sra.c (try_instantiate_multiple_fields): Make it
2340         no longer ICE on the above.
2341
2342 2009-03-03  Joseph Myers  <joseph@codesourcery.com>
2343
2344         * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
2345         that fits within Pmode.
2346
2347 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
2348
2349         PR middle-end/10109
2350         * tm.texi (LIBCALL_VALUE): Update description.
2351
2352 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
2353
2354         PR middle-end/34443
2355         * doc/extend.texi (section): Update description.
2356
2357 2009-03-03  H.J. Lu  <hongjiu.lu@intel.com>
2358
2359         PR middle-end/39345
2360         * tree-inline.c (remapped_type): New.
2361         (can_be_nonlocal): Call remapped_type instead of remap_type.
2362
2363 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
2364
2365         PR fortran/39354
2366         * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
2367         TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
2368
2369 2009-03-03  Richard Guenther  <rguenther@suse.de>
2370
2371         PR middle-end/39272
2372         * tree.c (tree_nonartificial_location): New function.
2373         * tree.h (tree_nonartificial_location): Declare.
2374         * builtins.c (expand_builtin_memory_chk): Provide location
2375         of the call location for artificial function pieces.
2376         (maybe_emit_chk_warning): Likewise.
2377         (maybe_emit_sprintf_chk_warning): Likewise.
2378         (maybe_emit_free_warning): Likewise.
2379         * expr.c (expand_expr_real_1): Likewise.
2380
2381 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
2382
2383         PR tree-optimization/39343
2384         * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
2385         COMPONENT_REF t has ARRAY_TYPE.
2386
2387 2009-03-02  Sebastian Pop  <sebastian.pop@amd.com>
2388
2389         PR middle-end/39335
2390         * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
2391         when the type precision of the induction variable should be
2392         larger than the type precision of nit.
2393         (gen_parallel_loop): Update use of canonicalize_loop_ivs.
2394         * graphite.c (graphite_loop_normal_form): Same.
2395         * tree-flow.h (canonicalize_loop_ivs): Update declaration.
2396
2397 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
2398
2399         * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
2400         (*call_1_rex64_ms_sysv): Use named constants instead of magic
2401         numbers to describe clobbered registers.
2402         (*call_value_0_rex64_ms_sysv): Ditto.
2403         * config/i386/mmx.md (mmx_emms): Ditto.
2404         (mmx_femms): Ditto.
2405
2406 2009-03-02  Richard Sandiford  <rdsandiford@googlemail.com>
2407
2408         * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
2409         of ABI_64.
2410
2411 2009-03-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2412
2413         * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
2414         (spu_section_type_flags): New function.
2415
2416 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
2417
2418         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
2419         reg_class_contents of FLOAT_REGS into a temporary.
2420
2421 2009-03-02  Richard Guenther  <rguenther@suse.de>
2422             Ira Rosen  <irar@il.ibm.com>
2423
2424         PR tree-optimization/39318
2425         * tree-vect-transform.c (vectorizable_call): Transfer the EH region
2426         information to the vectorized statement.
2427
2428 2009-03-01  Uros Bizjak  <ubizjak@gmail.com>
2429
2430         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
2431         variable.  Use defined names instead of magic constants for REX SSE
2432         registers.
2433
2434 2009-03-01  Richard Guenther  <rguenther@suse.de>
2435
2436         PR tree-optimization/39331
2437         * omp-low.c (lower_send_shared_vars): Do not receive new
2438         values for the reference of DECL_BY_REFERENCE parms or results.
2439
2440 2009-03-01  Jan Hubicka  <jh@suse.cz>
2441
2442         PR debug/39267
2443         * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
2444         BLOCK_NONLOCALIZED_VAR): New macros.
2445         (tree_block): Add nonlocalized_vars.
2446         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
2447         gen_decl_die): Add origin argument.  Allow generation of die with
2448         origin at hand only.
2449         (gen_member_die, gen_type_die_with_usage, force_decl_die,
2450         declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
2451         of gen_*.
2452         (gen_block_die): Fix checking for unused blocks.
2453         (process_scope_var): Break out from .... ; work with origins only.
2454         (decls_for_scope) ... here; process nonlocalized list.
2455         (dwarf2out_ignore_block): Look for nonlocalized vars.
2456         * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
2457         vars.
2458         (dump_scope_block): Dump them.
2459         * tree-inline.c (remap_decls): Handle nonlocalized vars.
2460         (remap_block): Likewise.
2461         (can_be_nonlocal): New predicate.
2462         (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
2463
2464 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2465
2466         * configure: Regenerate.
2467
2468 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2469
2470         * optc-gen.awk: No need to duplicate option flags twice.
2471         Reuse help texts for duplicate options which do not have any.
2472
2473         * gcc.c (display_help): Document --version.
2474
2475         * gcc.c (main): If print_help_list and verbose_flag, ensure
2476         driver output comes before subprocess output.
2477
2478         * optc-gen.awk: Assign all remaining fields to help string,
2479         space-separated, for multi-line help in *.opt.
2480
2481         * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
2482         -Wno-pedantic-ms-format is for MinGW targets only.
2483
2484         * doc/options.texi (Option file format): Fix bad indentation,
2485         restoring dropped sentence.
2486
2487 2009-02-28  Jan Hubicka  <jh@suse.cz>
2488
2489         * tree-inline.c (tree_function_versioning): Output debug info.
2490
2491 2009-02-28  Jan Hubicka  <jh@suse.cz>
2492
2493         PR debug/39267
2494         * tree-inline.c (setup_one_parameter): Do not copy propagate
2495         arguments when not optimizing.
2496
2497 2009-02-28  H.J. Lu  <hongjiu.lu@intel.com>
2498
2499         PR target/39327
2500         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
2501         (avx_addsubv4df3): Likewise.
2502         (*avx_addsubv4sf3): Likewise.
2503         (sse3_addsubv4sf3): Likewise.
2504         (*avx_addsubv2df3): Likewise.
2505         (sse3_addsubv2df3): Likewise.
2506         (avx_unpckhps256): Correct item selectors.
2507         (avx_unpcklps256): Likewise.
2508         (avx_unpckhpd256): Likewise.
2509         (avx_unpcklpd256): Likewise.
2510
2511 2009-02-28  Jan Hubicka  <jh@suse.cz>
2512
2513         * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
2514         static vars.
2515         (copy_arguments_for_versioning): If var is declared don't declare it.
2516         (tree_function_versioning): First setup substitutions and then copy
2517         args.
2518
2519 2009-02-27  Jan Hubicka  <jh@suse.cz>
2520
2521         PR debug/39267
2522         * cgraph.h (varpool_output_debug_info): Remove.
2523         * cgraphunit.c (varpool_output_debug_info): Remove.
2524         * dwarf2out.c (deferred_locations_struct): New struct
2525         (deferred_locations): New type.
2526         (deferred_locations_list): New static var.
2527         (deffer_location): New function.
2528         (gen_variable_die): Use it.
2529         (decls_for_scope): Output info on local static vars.
2530         (dwarf2out_finish): Process deferred locations.
2531         * varpool.c (varpool_output_debug_info): Remove.
2532
2533 2009-02-27  Jan Hubicka  <jh@suse.cz>
2534
2535         PR debug/39267
2536         * tree.h (TREE_PROTECTED): Fix comment.
2537         (BLOCK_HANDLER_BLOCK): Remove.
2538         (struct tree_block): Remove handler_block add body_block.
2539         (inlined_function_outer_scope_p): New.
2540         (is_body_block): Remove.
2541         * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
2542         * dwarf2out.c (is_inlined_entry_point): Remove.
2543         (add_high_low_attributes): Use inlined_function_outer_scope_p.
2544         (gen_block_die): Use is_inlined_entry_point check.  Remove body block
2545         code.
2546         * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
2547         * gimplify.c (gimplify_expr): Gimplify body blocks.
2548         * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
2549         block with multiple subblocks.
2550         (dump_scope_block): Prettier output; dump more flags and info.
2551         (dump_scope_blocks): New.
2552         (remove_unused_locals): Use dump_scope_blocks.
2553         * tree-flow.h (dump_scope_blocks): Declare.
2554         * tree-cfg.c (execute_build_cfg): Dump scope blocks.
2555         * stmt.c (is_body_block): Remove.
2556         * tree-inline.c (remap_block): Copy BODY_BLOCK info.
2557         * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
2558
2559 2009-02-27  Sebastian Pop  <sebastian.pop@amd.com>
2560
2561         PR middle-end/39308
2562         * graphite.c (graphite_loop_normal_form): Do not call 
2563         number_of_iterations_exit from a gcc_assert.
2564
2565 2009-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2566
2567         * gcc/config/s390/s390.c (s390_swap_cmp): Look for conditional
2568         jumps if COND is NULL.
2569         (find_cond_jump): New function.
2570         (s390_z10_optimize_cmp): Handling for reg-reg compares added.
2571         * gcc/config/s390/s390.md: Remove z10_cobra attribute value.
2572
2573 2009-02-26  Uros Bizjak  <ubizjak@gmail.com>
2574
2575         * config/alpha/alpha.h (alpha_expand_mov): Return false if
2576         force_const_mem returns NULL_RTX.
2577
2578 2009-02-26  Jan Hubicka  <jh@suse.cz>
2579
2580         PR debug/39267
2581         * cgraph.h (varpool_output_debug_info): Remove.
2582         * cgraphunit.c (varpool_output_debug_info): Remove.
2583         * dwarf2out.c (deferred_locations_struct): New struct
2584         (deferred_locations): New type.
2585         (deferred_locations_list): New static var.
2586         (deffer_location): New function.
2587         (gen_variable_die): Use it.
2588         (decls_for_scope): Output info on local static vars.
2589         (dwarf2out_finish): Process deferred locations.
2590         * varpool.c (varpool_output_debug_info): Remove.
2591
2592 2009-02-25  H.J. Lu  <hongjiu.lu@intel.com>
2593
2594         PR rtl-optimization/39241
2595         * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
2596         to subreg_offset_representable_p.
2597
2598 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
2599
2600         * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
2601         execute function prototype.  Get f and nregs from max_reg_num
2602         and get_insns.  Remove the first backward pass as it's dead,
2603         guard the forward pass by flag_expensive_optimizations.
2604         (rest_of_handle_regmove): Delete.
2605         (pass_regmove): Replace it with regmove_optimize.
2606
2607 2009-02-25  Martin Jambor  <mjambor@suse.cz>
2608
2609         PR tree-optimization/39259
2610         * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
2611         calls_alloca function flags.
2612         (copy_bb): Set calls_setjmp and alls_alloca function flags if such
2613         calls are detected.
2614
2615 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
2616
2617         * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
2618         flags_set_1_rtx, flags_set_1_set): Delete.
2619         (regmove_optimize): Do not call mark_flags_life_zones.
2620
2621 2009-02-24  Julian Brown  <julian@codesourcery.com>
2622
2623         PR target/35965
2624         * config/arm/arm.c (require_pic_register): Only set
2625         cfun->machine->pic_reg once per function.
2626
2627 2009-02-24  Sandra Loosemore  <sandra@codesourcery.com>
2628
2629         * doc/invoke.texi (Link Options): Document an easier way to pass
2630         options that take arguments to the GNU linker using -Xlinker and -Wl.
2631
2632 2009-02-24  Steve Ellcey  <sje@cup.hp.com>
2633
2634         PR target/33785
2635         * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
2636
2637 2009-02-24  Richard Guenther  <rguenther@suse.de>
2638
2639         PR debug/39285
2640         * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
2641
2642 2009-02-24  Richard Guenther  <rguenther@suse.de>
2643             Zdenek Dvorak  <ook@ucw.cz>
2644
2645         PR tree-optimization/39233
2646         * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
2647         from converting them to a generic type.
2648
2649 2009-02-23  Sebastian Pop  <sebastian.pop@amd.com>
2650
2651         PR tree-optimization/39260
2652         * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
2653         contains a condition with a real type.
2654         (build_scop_conditions_1): Conditions are always last_stmt of a bb.
2655
2656 2009-02-23  Jason Merrill  <jason@redhat.com>
2657
2658         PR c++/38880
2659         * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
2660         narrowing_initializer_constant_valid_p.
2661         (narrowing_initializer_constant_valid_p): Don't return 
2662         null_pointer_node for adding a pointer to itself.
2663
2664 2009-02-23  Jan Hubicka  <jh@suse.cz>
2665
2666         PR c/12245
2667         * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
2668         resizing.
2669
2670 2009-02-23  Jan Hubicka  <jh@suse.cz>
2671
2672         PR tree-optimization/37709
2673         * tree.c (block_ultimate_origin): Move here from dwarf2out.
2674         * tree.h (block_ultimate_origin): Declare.
2675         * dwarf2out.c (block_ultimate_origin): Move to tree.c
2676         * tree-ssa-live.c (remove_unused_scope_block_p):
2677         Eliminate blocks containig no instructions nor live variables nor
2678         nested blocks.
2679         (dump_scope_block): New function.
2680         (remove_unused_locals): Enable removal of dead blocks by default;
2681         enable dumping at TDF_DETAILS.
2682
2683 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
2684
2685         * config/i386/i386.c (classify_argument): Don't allow COImode
2686         and OImode.
2687         (function_arg_advance_32): Don't allow OImode.
2688         (function_arg_32): Likewise.
2689         (function_value_32): Likewise.
2690         (return_in_memory_32): Likewise.
2691         (function_arg_64): Remove OImode comment.
2692
2693 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
2694
2695         PR target/39261
2696         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
2697         ix86_expand_vector_set for V4DImode in 64bit mode only.
2698         (ix86_expand_vector_init_one_var): Likewise.
2699
2700 2009-02-21  Sebastian Pop  <sebastian.pop@amd.com>
2701
2702         * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
2703
2704 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
2705
2706         PR bootstrap/39257
2707         * loop-iv.c: Revert last change.
2708         * emit-rtl.c: Likewise.
2709
2710 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
2711
2712         PR target/39256
2713         * config/i386/i386.c (type_natural_mode): Remove an extra
2714         space in the warning message.
2715         (function_value_32): Handle 32-byte vector modes.
2716         (return_in_memory_32): Likewise.
2717
2718 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
2719
2720         * loop-iv.c (truncate_value): New function.
2721         (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
2722         of lowpart_subreg.
2723         (lowpart_subreg): Move to...
2724         * emit-rtl.c: ...here.
2725
2726 2009-02-21  Danny Smith  <dannysmith@users.sourceforge.net>
2727
2728         * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
2729         accidental and undocumented change at revision 140860.
2730
2731 2009-02-21  Joseph Myers  <joseph@codesourcery.com>
2732
2733         * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
2734         take gimple_seq * arguments.
2735         (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
2736         types_compatible_p langhook.
2737
2738 2009-02-20  Mark Mitchell  <mark@codesourcery.com>
2739             Joseph Myers  <joseph@codesourcery.com>
2740
2741         * config/arm/arm.c (arm_builtin_va_list): New function.
2742         (arm_expand_builtin_va_start): Likewise.
2743         (arm_gimplify_va_arg_expr): Likewise.
2744         (TARGET_BUILD_BUILTIN_VA_LIST): Define.
2745         (TARGET_BUILD_BUILTIN_VA_START): Likewise.
2746         (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
2747         (va_list_type): New variable.
2748         (arm_mangle_type): Mangle va_list_type appropriately.
2749
2750 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
2751
2752         PR middle-end/39157
2753         * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
2754         * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
2755         * params.def (loop-invariant-max-bbs-in-loop): New parameter.
2756         * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
2757         parameter to 1000 for -O1 by default.
2758         * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
2759         parameter.
2760         * loop-invariant.c: Include params.h.
2761         (move_loop_invariants): Don't call move_single_loop_invariants on
2762         very large loops.
2763
2764 2009-02-20  Jaka Mocnik  <jaka@xlab.si>
2765
2766         * calls.c (emit_library_call_value_1): Use slot_offset instead of
2767         offset when calculating bounds for indexing stack_usage_map.  Fixes
2768         a buffer overflow with certain target setups.
2769
2770 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
2771
2772         PR target/39240
2773         * calls.c (expand_call): Clear try_tail_call if caller and callee
2774         disagree in promotion of function return value.
2775
2776 2009-02-19  Jakub Jelinek  <jakub@redhat.com>
2777
2778         PR target/39175
2779         * c-common.c (c_determine_visibility): If visibility changed and
2780         DECL_RTL has been already set, call make_decl_rtl to update symbol
2781         flags.
2782
2783 2009-02-19  H.J. Lu  <hongjiu.lu@intel.com>
2784
2785         PR c++/39188
2786         * varasm.c (assemble_variable): Don't check DECL_NAME when
2787         globalizing a variable.
2788
2789 2009-02-19  Joseph Myers  <joseph@codesourcery.com>
2790
2791         PR c/38483
2792         * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
2793         expression before any __builtin_trap call.
2794         * c-typeck.c (build_function_call): Convert and check function
2795         arguments before generating a call to a trap.  Evaluate the
2796         function arguments before the trap.
2797
2798 2009-02-19  Uros Bizjak  <ubizjak@gmail.com>
2799
2800         PR target/39228
2801         * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
2802         (UNSPEC_FXAM_MEM): New unspec.
2803         (fxam<mode>2_i387_with_temp): New insn and split pattern.
2804         (isinf<mode>2): Use MODEF mode iterator.  Force operand[1] through
2805         memory using fxam<mode>2_i387_with_temp to remove excess precision.
2806
2807 2009-02-19  Richard Guenther  <rguenther@suse.de>
2808
2809         PR tree-optimization/39207
2810         PR tree-optimization/39074
2811         * tree-ssa-structalias.c (storedanything_id, var_storedanything,
2812         storedanything_tree): New.
2813         (do_ds_constraint): Simplify ANYTHING shortcutting.  Update
2814         the STOREDANYTHING solution if the lhs solution contains ANYTHING.
2815         (build_succ_graph): Add edges from STOREDANYTHING to all
2816         non-direct nodes.
2817         (init_base_vars): Initialize STOREDANYTHING.
2818         (compute_points_to_sets): Free substitution info after
2819         building the succ graph.
2820         (ipa_pta_execute): Likewise.
2821
2822         * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
2823         field.
2824         (do_ds_constraint): Do not add to special var or non-pointer
2825         field solutions.
2826         (type_could_have_pointers): Split out from ...
2827         (could_have_pointers): ... here.  For arrays use the element type.
2828         (create_variable_info_for): Initialize may_have_pointers.
2829         (new_var_info): Likewise.
2830         (handle_lhs_call): Make the HEAP variable unknown-sized.
2831         (intra_create_variable_infos): Use a type with pointers for
2832         PARM_NOALIAS, make it unknown-sized.
2833
2834 2009-02-18  H.J. Lu  <hongjiu.lu@intel.com>
2835
2836         PR target/39224
2837         * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
2838
2839 2009-02-18  Jason Merrill  <jason@redhat.com>
2840
2841         PR target/39179
2842         * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
2843         value if DECL_EXTERNAL.
2844         * tree-sra.c (sra_walk_gimple_assign): Likewise.
2845         * target.h (gcc_target::binds_local_p): Clarify "module".
2846         * tree.h (TREE_PUBLIC): Clarify "module".
2847
2848 2009-02-17  Xuepeng Guo  <xuepeng.guo@intel.com>
2849
2850         PR target/38891
2851         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
2852         initialization for MS_ABI prior to the hunk of !TARGET_MMX.
2853
2854 2009-02-17  H.J. Lu  <hongjiu.lu@intel.com>
2855
2856         PR target/39082
2857         * c.opt (Wabi): Support C and ObjC.
2858         (Wpsabi): New.
2859
2860         * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
2861
2862         * config/i386/i386.c (classify_argument): Warn once about the ABI
2863         change when passing union with long double.
2864
2865         * doc/invoke.texi: Update -Wabi for warning psABI changes.
2866
2867 2009-02-18  Joseph Myers  <joseph@codesourcery.com>
2868
2869         PR c/35447
2870         * c-parser.c (c_parser_compound_statement): Always enter and leave
2871         a scope.
2872
2873 2009-02-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2874
2875         PR target/34587
2876         * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
2877
2878 2009-02-18  Jakub Jelinek  <jakub@redhat.com>
2879
2880         PR tree-optimization/36922
2881         * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
2882         * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
2883         Likewise.
2884
2885 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
2886
2887         * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
2888         to 0 for EABI64.
2889
2890 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
2891
2892         * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
2893
2894 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
2895
2896         * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
2897         tree sharing.
2898
2899 2009-02-17  Ruan Beihong  <ruanbeihong@gmail.com>
2900             Richard Sandiford  <rdsandiford@googlemail.com>
2901
2902         * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
2903         * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
2904         (loongson_biadd): ...this.
2905
2906 2009-02-17  Richard Guenther  <rguenther@suse.de>
2907
2908         PR tree-optimization/39202
2909         * tree-ssa-structalias.c (do_structure_copy): Before collapsing
2910         a var make sure to follow existing collapses.
2911
2912 2009-02-17  Richard Guenther  <rguenther@suse.de>
2913
2914         PR middle-end/39214
2915         * langhooks.c (lhd_print_error_function): Check for NULL block.
2916
2917 2009-02-17  Richard Guenther  <rguenther@suse.de>
2918
2919         PR tree-optimization/39204
2920         * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
2921         of the PHI arg.
2922
2923 2009-02-17  Uros Bizjak  <ubizjak@gmail.com>
2924
2925         * config/soft-fp/double.h: Update from glibc CVS.
2926
2927 2009-02-17  Richard Guenther  <rguenther@suse.de>
2928
2929         PR tree-optimization/39207
2930         * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
2931         strict-aliasing warnings for pointers pointing to NULL.
2932
2933 2009-02-16  Joseph Myers  <joseph@codesourcery.com>
2934
2935         PR c/35446
2936         * c-parser.c (c_parser_braced_init): Call pop_init_level when
2937         skipping until next close brace.
2938
2939 2009-02-16  H.J. Lu  <hongjiu.lu@intel.com>
2940
2941         PR target/37049
2942         * config/i386/i386.c (ix86_expand_push): Set memory alignment
2943         to function argument boundary.
2944
2945 2009-02-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
2946
2947         * config/picochip/picochip.md (lea_add): Allow any nonimmediate
2948         in the lea_add. Reload eventually constraints it properly.
2949         * config/picochip/constraints.md : Remove the target constraint
2950         "b", since it is not needed anymore.
2951
2952 2009-02-16  Jakub Jelinek  <jakub@redhat.com>
2953
2954         * gthr-dce.h: Uglify function parameter and local variable names.
2955         * gthr-gnat.h: Likewise.
2956         * gthr-mipssde.h: Likewise.
2957         * gthr-nks.h: Likewise.
2958         * gthr-posix95.h: Likewise.
2959         * gthr-posix.h: Likewise.
2960         * gthr-rtems.h: Likewise.
2961         * gthr-single.h: Likewise.
2962         * gthr-solaris.h: Likewise.
2963         * gthr-tpf.h: Likewise.
2964         * gthr-vxworks.h: Likewise.
2965         * gthr-win32.h: Likewise.
2966
2967 2009-02-15  H.J. Lu  <hongjiu.lu@intel.com>
2968
2969         PR target/39196
2970         * config/i386/i386.md: Restrict the new peephole2 to move
2971         between MMX/SSE registers.
2972
2973 2009-02-15  Richard Guenther  <rguenther@suse.de>
2974
2975         Revert
2976         2009-02-13  Richard Guenther  <rguenther@suse.de>
2977
2978         * configure.ac: Enable LFS.
2979         * configure: Re-generate.
2980         * config.in: Likewise.
2981
2982 2009-02-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2983
2984         * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
2985         spu_srqwbyte, spu_srqwbytebc): Define.
2986         * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
2987         spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
2988         * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
2989         "shrqby_<mode>"): New insn-and-split patterns.
2990         * config/spu/spu.c (expand_builtin_args): Determine and return
2991         number of operands using spu_builtin_description data.
2992         (spu_expand_builtin_1): Use it.
2993
2994 2009-02-13  Steve Ellcey  <sje@cup.hp.com>
2995
2996         PR target/38056
2997         * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
2998         TARGET_CONST_GP.
2999
3000 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
3001
3002         PR target/39149
3003         * config/i386/i386.c (override_options): Correct warning
3004         messages for -malign-loops, -malign-jumps and -malign-functions.
3005
3006 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
3007
3008         PR target/39152
3009         * config/i386/i386.md: Restrict the new peephole2 to move
3010         between the general purpose registers.
3011
3012 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
3013
3014         PR target/39162
3015         * config/i386/i386.c (type_natural_mode): Add a new argument.
3016         Return the original mode and warn ABI change if vector size is 32byte.
3017         (function_arg_advance): Updated.
3018         (function_arg): Likewise.
3019         (ix86_function_value): Likewise.
3020         (ix86_return_in_memory): Likewise.
3021         (ix86_sol10_return_in_memory): Likewise.
3022         (ix86_gimplify_va_arg): Likewise.
3023         (function_arg_32): Don't warn ABX ABI change here.
3024         (function_arg_64): Likewise.
3025
3026 2009-02-13  Bernd Schmidt  <bernd.schmidt@analog.com>
3027
3028         * loop-iv.c (implies_p): In the final case, test that operands 0
3029         of the two comparisons match.
3030
3031         * config/bfin/bfin.c (find_prev_insn_start): New function.
3032         (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
3033         (find_next_insn_start): Move.
3034
3035 2009-02-13  Richard Guenther  <rguenther@suse.de>
3036
3037         * configure.ac: Enable LFS.
3038         * configure: Re-generate.
3039         * config.in: Likewise.
3040
3041 2009-02-13  Joseph Myers  <joseph@codesourcery.com>
3042
3043         PR c/35444
3044         * c-parser.c (c_parser_parms_list_declarator): Discard pending
3045         sizes on syntax error after some arguments have been parsed.
3046
3047 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
3048
3049         * doc/invoke.texi (-fira): Remove.
3050
3051 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
3052
3053         * caller-save.c: Replace regclass.c with reginfo.c in comments.
3054         * recog.c: Likewise.
3055         * rtl.h: Likewise.
3056
3057 2009-02-12  Uros Bizjak  <ubizjak@gmail.com>
3058
3059         * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
3060         (umul_ppmm): Likewise.
3061         (count_leading_zeros): Likewise.
3062         (count_trailing_zeros): Likewise.
3063         (UMUL_TIME): Likewise.
3064
3065 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
3066
3067         * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
3068         soft-fp/t-softfp to tmake_file.
3069
3070         * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
3071         (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
3072         (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
3073         IA64_BUILTIN_INFQ]: New.
3074         (ia64_init_builtins): Initialize __builtin_infq,
3075         __builtin_fabsq and __builtin_copysignq if not HPUX.
3076         (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
3077         IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
3078
3079         * config/ia64/lib1funcs.asm (__divtf3): Define only if
3080         SHARED is defined.
3081         (__fixtfti): Likewise.
3082         (__fixunstfti): Likewise.
3083         (__floattitf): Likewise.
3084
3085         * config/ia64/libgcc-glibc.ver: New.
3086         * config/ia64/t-fprules-softfp: Likewise.
3087         * config/ia64/sfp-machine.h: Likewise.
3088
3089         * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
3090         (LIBGCC2_TF_CEXT): Likewise.
3091         (TF_SIZE): Likewise.
3092         (TARGET_INIT_LIBFUNCS): Likewise.
3093
3094         * config/ia64/t-glibc (SHLINB_MAPFILES):
3095         Add $(srcdir)/config/ia64/libgcc-glibc.ver.
3096
3097 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
3098
3099         * config/i386/i386.c (construct_container): Rewrite processing
3100         BLKmode with X86_64_SSE_CLASS.
3101
3102 2009-02-12  Paolo Bonzini  <bonzini@gnu.org>
3103
3104         PR target/39152
3105         * config/i386/i386.md: Replace simplify_replace_rtx with
3106         replace_rtx in the new peephole2.
3107
3108 2009-02-12  Nathan Sidwell  <nathan@codesourcery.com>
3109
3110         * doc/invoke.texi (Optimize Options): Stop claiming inlining and
3111         loop unrolling do not happen at -O2.
3112
3113 2009-02-12  Michael Matz  <matz@suse.de>
3114
3115         * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
3116
3117 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
3118
3119         * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
3120         for -g3.
3121
3122 2009-02-12  Ben Elliston  <bje@au.ibm.com>
3123
3124         * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
3125         patterns when updating the back chain.  Missed in the 2009-02-10
3126         change.
3127
3128 2009-02-11  Janis Johnson  <janis187@us.ibm.com>
3129
3130         * doc/extend.texi (Decimal Floating Types): Update identifier of
3131         draft TR and list of missing support.
3132
3133 2009-02-11  Jakub Jelinek  <jakub@redhat.com>
3134
3135         PR middle-end/39154
3136         * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
3137         bit to variable length decl's flags, add it also to its
3138         pointer replacement variable.
3139
3140 2009-02-11  Uros Bizjak  <ubizjak@gmail.com>
3141             Jakub Jelinek  <jakub@redhat.com>
3142
3143         PR target/39118
3144         * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
3145         (memory_blockage): New expander.
3146         (*memory_blockage): New insn pattern.
3147         * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
3148         instead of general blockage at the end of function prologue when
3149         frame pointer is used to access red zone area.  Do not emit blockage
3150         when profiling, it is emitted in generic code.
3151         (ix86_expand_epilogue): Emit memory_blockage at the beginning of
3152         function epilogue when frame pointer is used to access red zone area.
3153
3154 2009-02-11  Paolo Bonzini  <bonzini@gnu.org>
3155
3156         PR target/38824
3157         * config/i386/i386.md: Add two new peephole2 to avoid mov followed
3158         by arithmetic with memory operands.
3159         * config/i386/predicates.md (commutative_operator): New.
3160
3161 2009-02-10  Janis Johnson  <janis187@us.ibm.com>
3162
3163         * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
3164         bulleted lists.
3165
3166 2009-02-10  Eric Botcazou  <ebotcazou@adacore.com>
3167
3168         * alias.h (record_alias_subset): Declare.
3169         * alias.c (record_alias_subset): Make global.
3170
3171 2009-02-10  Nick Clifton  <nickc@redhat.com>
3172
3173         * tree-parloops.c: Change license to GPLv3.
3174         * ipa-struct-reorg.c: Change license to GPLv3.
3175         * ipa-struct-reorg.h: Change license to GPLv3.
3176
3177 2009-02-10  Steve Ellcey  <sje@cup.hp.com>
3178
3179         PR c/39084
3180         * c-decl.c (start_struct): Return NULL on error.
3181
3182 2009-02-10  Jakub Jelinek  <jakub@redhat.com>
3183
3184         PR middle-end/39124
3185         * cfgloopmanip.c (remove_path): Call remove_bbs after
3186         cancel_loop_tree, not before it.
3187
3188         PR target/39139
3189         * function.h (struct function): Add has_local_explicit_reg_vars bit.
3190         * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
3191         VAR_DECLs were seen.
3192         * tree-ssa-live.c (remove_unused_locals): Recompute
3193         cfun->has_local_explicit_reg_vars.
3194         * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
3195         copies or clearings if cfun->has_local_explicit_reg_vars.
3196
3197 2009-02-10  Uros Bizjak  <ubizjak@gmail.com>
3198
3199         PR target/39118
3200         * config/i386/i386.c (expand_prologue): Emit blockage at the end
3201         of function prologue when frame pointer is used to access
3202         red zone area.
3203
3204 2009-02-10  Richard Guenther  <rguenther@suse.de>
3205
3206         PR middle-end/39127
3207         * gimplify.c (gimple_regimplify_operands): Always look if
3208         we need to create a temporary.
3209
3210 2009-02-10  Richard Guenther  <rguenther@suse.de>
3211
3212         PR tree-optimization/39132
3213         * tree-loop-distribution.c (todo): New global var.
3214         (generate_memset_zero): Trigger TODO_rebuild_alias.
3215         (tree_loop_distribution): Return todo.
3216
3217 2009-02-10  H.J. Lu  <hongjiu.lu@intel.com>
3218
3219         PR target/39119
3220         * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
3221         (x86_64_reg_class_name): Removed.
3222         (classify_argument): Return 0 if bytes > 32.  Return 0 if the
3223         first one isn't X86_64_SSE_CLASS or any other ones aren't
3224         X86_64_SSEUP_CLASS when size > 16bytes.  Don't turn
3225         X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
3226         is X86_64_SSEUP_CLASS.  Set AVX modes to 1 X86_64_SSE_CLASS
3227         and 3 X86_64_SSEUP_CLASS.
3228         (construct_container): Remove X86_64_AVX_CLASS.  Handle 4
3229         registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
3230
3231 2009-02-10  Ben Elliston  <bje@au.ibm.com>
3232
3233         * config/rs6000/rs6000.md (allocate_stack): Always use an update
3234         form instruction to update the stack back chain word, even if the
3235         user has disabled the generation of update instructions.
3236         (movdi_<mode>_update_stack): New.
3237         (movsi_update_stack): Likewise.
3238         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
3239         always use an update form instruction to update the stack back
3240         chain word.
3241
3242 2009-02-09  Sebastian Pop  <sebastian.pop@amd.com>
3243
3244         PR middle-end/38953
3245         * graphite.c (if_region_set_false_region): After moving a region in
3246         the false branch of a condition, remove the empty dummy basic block.
3247         (gloog): Remove wrong fix for PR38953.
3248
3249 2009-02-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3250
3251         * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
3252         generation due to implicit sign extension.
3253
3254 2009-02-09  Eric Botcazou  <ebotcazou@adacore.com>
3255
3256         PR middle-end/38981
3257         * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
3258         at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
3259
3260 2009-02-09  Richard Guenther  <rguenther@suse.de>
3261
3262         PR middle-end/35202
3263         * convert.c (convert_to_real): Disable (float)fn((double)x)
3264         to fnf(x) conversion if errno differences may occur and
3265         -fmath-errno is set.
3266
3267 2009-02-07  Anatoly Sokolov  <aesok@post.ru>
3268
3269         * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
3270         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
3271         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
3272
3273 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
3274
3275         PR c/35434
3276         * c-common.c (handle_alias_attribute): Disallow attribute for
3277         anything not a FUNCTION_DECL or VAR_DECL.
3278
3279 2009-02-06  Janis Johnson  <janis187@us.ibm.com>
3280
3281         PR c/39035
3282         * real.c (do_compare): Special-case compare of zero against
3283         decimal float value.
3284
3285 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
3286
3287         PR c/36432
3288         * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
3289         as indicating flexible array members unless the field itself is
3290         being declarared as the incomplete array.
3291
3292 2009-02-06  Jan Hubicka  <jh@suse.cz>
3293
3294         PR tree-optimization/38844
3295         * ipa-inline.c (try_inline): Stop inlining recursion when edge
3296         is already inlined.
3297
3298 2009-02-06  Richard Guenther  <rguenther@suse.de>
3299
3300         PR middle-end/38977
3301         * tree-cfg.c (need_fake_edge_p): Force a fake edge for
3302         fork because we may expand it as __gcov_fork.
3303
3304 2009-02-06  Nick Clifton  <nickc@redhat.com>
3305
3306         * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
3307
3308 2009-02-06  Paolo Bonzini  <bonzini@gnu.org>
3309
3310         PR tree-optimization/35659
3311         * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
3312         vn_phi_eq): Shortcut if hashcode does not match.
3313         (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
3314         NULL operands.
3315         * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
3316         and avoid iterative_hash_expr.
3317         (FOR_EACH_VALUE_ID_IN_SET): New.
3318         (value_id_compare): Remove.
3319         (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
3320         sort expressions by value id.
3321
3322 2009-02-05  Kaz Kojima  <kkojima@gcc.gnu.org>
3323
3324         PR target/38991
3325         * config/sh/predicates.md (general_movsrc_operand): Don't check
3326         the subreg of system registers here.
3327
3328 2009-02-05  Jakub Jelinek  <jakub@redhat.com>
3329
3330         PR c++/39106
3331         * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
3332         on the copied decl.
3333
3334 2009-02-05  Paolo Bonzini  <bonzini@gnu.org>
3335
3336         PR rtl-optimization/39110
3337         * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
3338         addresses, not aligned ones.
3339
3340 2009-02-05  Daniel Berlin  <dberlin@dberlin.org>
3341             Richard Guenther  <rguenther@suse.de>
3342
3343         PR tree-optimization/39100
3344         * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
3345         comment says and add edges.
3346
3347 2009-02-05  Joseph Myers  <joseph@codesourcery.com>
3348
3349         PR c/35435
3350         * c-common.c (handle_tls_model_attribute): Ignore attribute for
3351         non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
3352
3353 2009-02-04  Tobias Grosser  <grosser@fim.uni-passau.de> 
3354
3355         * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
3356         sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
3357         register_bb_in_sese, new_sese, free_sese): Moved.
3358         (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
3359         outermost_loop_in_scop, build_scop_iteration_domain,
3360         expand_scalar_variables_ssa_name, get_vdef_before_scop,
3361         limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
3362         Use loop_in_sese_p instead of loop_in_scop_p.
3363         (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
3364         (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
3365         (scopdet_basic_block_info): Fix bug in scop detection.
3366         (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
3367         eq_loop_to_cloog_loop): Remove.
3368         (nb_loops_around_loop_in_scop, nb_loop
3369         ref_nb_loops): Moved here...
3370         * graphite.h (ref_nb_loops): ... from here.
3371         (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
3372         (loop_domain_dim, loop_iteration_vector_dim): Remove.
3373         (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
3374         * testsuite/gcc.dg/graphite/scop-19.c: New
3375
3376 2009-02-04  Paolo Bonzini  <bonzini@gnu.org>
3377             Hans-Peter Nilsson  <hp@axis.com>
3378
3379         PR rtl-optimization/37889
3380         * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
3381         Move offset handling from PLUS to before the switch.  Use new
3382         arguments when considering SYMBOL_REFs too.
3383         (rtx_addr_can_trap_p): Pass dummy offset and size.
3384         (enum may_trap_p_flags): Remove.
3385         (may_trap_p_1): Pass size from MEM_SIZE.
3386
3387         PR rtl-optimization/38921
3388         * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
3389         * rtl.h (may_trap_after_code_motion_p): Delete prototype.
3390         * rtlanal.c (may_trap_after_code_motion_p): Delete.
3391         (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
3392
3393 2009-02-04  H.J. Lu  <hongjiu.lu@intel.com>
3394
3395         AVX Programming Reference (January, 2009)
3396         * config/i386/sse.md (*vpclmulqdq): New.
3397
3398 2009-02-04  Jakub Jelinek  <jakub@redhat.com>
3399
3400         PR tree-optimization/38977
3401         PR gcov-profile/38292
3402         * calls.c (special_function_p): Disregard __builtin_ prefix.
3403
3404 2009-02-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
3405
3406         * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
3407         non-indexable addresses even before reload.
3408
3409 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
3410
3411         PR c/29129
3412         * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
3413         as having variable size.  Do not give an error for unnamed
3414         parameters with [*] declarators.  Give a warning for type names
3415         with [*] declarators and mark them as variable size.
3416         * c-parser.c (c_parser_sizeof_expression): Do not give an error
3417         for sizeof applied to [*] type names.
3418
3419 2009-02-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3420
3421         PR C++/36607
3422         * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
3423
3424 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
3425
3426         * gcc.c (process_command): Update copyright notice dates.
3427         * gcov.c (print_version): Likewise.
3428         * gcov-dump.c (print_version): Likewise.
3429         * mips-tfile.c (main): Likewise.
3430         * mips-tdump.c (main): Likewise.
3431
3432 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
3433
3434         PR c/35433
3435         * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
3436         for composite type involving a zero-length array type.
3437
3438 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
3439
3440         PR target/35318
3441         * function.c (match_asm_constraints_1): Skip over
3442         initial optional % in the constraint.
3443
3444         PR inline-asm/39059
3445         * c-parser.c (c_parser_postfix_expression): If fixed point is not
3446         supported, don't accept FIXED_CSTs.
3447         * c-decl.c (finish_declspecs): Error if fixed point is not supported
3448         and _Sat is used without _Fract/_Accum.  Set specs->type to
3449         integer_type_node for cts_fract/cts_accum if fixed point is not
3450         supported.
3451
3452 2009-02-02  Catherine Moore  <clm@codesourcery.com>
3453
3454         * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
3455
3456 2009-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
3457