OSDN Git Service

de9a4758dc281a35c6fdf63971a4b14922cdf2c1
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
2
3         * config/frv/frv-protos.h (frv_function_arg): Delete.
4         (frv_function_arg_advance): Delete.
5         * config/frv/frv.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6         * config/frv/frv.c (frv_function_arg): Rename to...
7         (frv_function_arg_1): Make static.  Take const_tree and bool
8         arguments.
9         (frv_function_arg, frv_function_incoming_arg): New functions.
10         (frv_function_arg_advance): Make static.  Take a const_tree and
11         a bool.
12         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
13         (TARGET_FUNCTION_ARG_ADVANCE): Define.
14
15 2010-10-28  Uros Bizjak  <ubizjak@gmail.com>
16
17         PR target/46153
18         * config/i386/sse.md (sse_movhlps_exp): Use destination
19         returned from ix86_fixup_binary_operands to expand insn.
20         (sse_movlhps_exp): Ditto.
21         (sse_loadhps_exp): Ditto.
22         (sse_loadlps_exp): Ditto.
23         (sse2_loadhpd_exp): Ditto.
24         (sse2_loadlpd_exp): Ditto.
25         (*avx_movhlps): Use ix86_binary_operator_ok in insn predicate.
26         (sse_movhlps): Ditto.
27         (*avx_movlhps): Ditto.
28         (sse_movlhps): Ditto.
29         (*avx_loadhps): Ditto.
30         (sse_loadhps): Ditto.
31         (*avx_loadhpd): Ditto.
32         (sse_loadhpd): Ditto.
33         (*avx_storelps): Prevent both operands in memory.
34         (sse_storelps): Ditto.
35
36 2010-10-28  Andrew Stubbs  <ams@codesourcery.com>
37
38         * config/arm/arm.c (const_ok_for_arm): Support 0xXY00XY00 pattern
39         constants in thumb2.
40
41 2010-10-28  Eric Botcazou  <ebotcazou@adacore.com>
42
43         * combine.c (set_nonzero_bits_and_sign_copies): Use unsigned
44         arithmetics in masking operations.
45         (contains_muldiv): Likewise.
46         (try_combine): Likewise.
47         (find_split_point): Likewise.
48         (combine_simplify_rtx): Likewise.
49         (simplify_if_then_else): Likewise.
50         (simplify_set): Likewise.
51         (expand_compound_operation): Likewise.
52         (expand_field_assignment): Likewise.
53         (make_extraction): Likewise.
54         (extract_left_shift): Likewise.
55         (make_compound_operation): Likewise.
56         (force_to_mode): Likewise.
57         (make_field_assignment): Likewise.
58         (reg_nonzero_bits_for_combine): Likewise.
59         (simplify_shift_const_1): Likewise.
60         (simplify_comparison): Likewise.
61
62 2010-10-27  Nathan Froyd  <froydnj@codesourcery.com>
63
64         * config/ia64/ia64-protos.h (ia64_function_arg): Delete.
65         (ia64_function_arg_advance): Delete.
66         * config/ia64/ia64.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
67         (FUNCTION_ARG_ADVANCE): Delete.
68         * config/ia64/ia64.c (ia64_function_arg): Rename to...
69         (ia64_function_arg_1): ...this.  Make static.  Take const_tree and
70         bool arguments.
71         (ia64_function_arg, ia64_function_incoming_arg): New functions.
72         (ia64_function_arg_advance): Make static.  Take a const_tree and
73         a bool.
74         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
75         (TARGET_FUNCTION_ARG_ADVANCE): Define.
76
77 2010-10-27  Steve Ellcey  <sje@cup.hp.com>
78
79         * doc/tm.texi.in (TARGET_GET_RAW_RESULT_MODE): New.
80         (TARGET_GET_RAW_ARG_MODE): New.
81         * doc/tm.texi: Regenerate.
82         * target.def (get_raw_result_mode): New.
83         (get_raw_arg_mode): New.
84         * targhooks.c (default_get_reg_raw_mode): New.
85         * targhooks.h (default_get_reg_raw_mode): New.
86         * builtins.c (apply_args_size): Use targetm.calls.get_raw_arg_mode.
87         (apply_result_size): Ditto.
88         * config/ia64/ia64.c (ia64_get_reg_raw_mode): New.
89         (TARGET_GET_RAW_RESULT_MODE): Define.
90         (TARGET_GET_RAW_ARG_MODE): Ditto.
91
92 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
93
94         * config/sparc/sol2-unwind.h (sparc64_fallback_frame_state): Adjust
95         for newer Solaris 10 release.
96         (sparc_fallback_frame_state): Likewise.
97
98 2010-10-27  Jason Merrill  <jason@redhat.com>
99
100         * gimplify.c (gimplify_decl_expr): Handle anonymous artificial
101         variables sooner.
102
103 2010-10-27  Jie Zhang  <jie@codesourcery.com>
104             Maxim Kuvyrkov  <maxim@codesourcery.com>
105
106         * haifa-sched.c (ISSUE_POINTS): Remove.
107         (max_issue): Don't issue more than issue_rate instructions.
108
109 2010-10-27  Ian Lance Taylor  <iant@google.com>
110
111         PR target/46197
112         * config/i386/i386.md (UNSPECV_SPLIT_STACK_RETURN): New.
113         (split_stack_return): Replace UNSPEC_STACK_CHECK with
114         UNSPECV_SPLIT_STACK_RETURN.
115
116 2010-10-27  H.J. Lu  <hongjiu.lu@intel.com>
117
118         * config/i386/i386-protos.h (init_cumulative_args): Add an int.
119
120         * config/i386/i386.c (block_info): New.
121         (BLOCK_INFO): Likewise.
122         (call_avx256_state): Likewise.
123         (check_avx256_stores): Likewise.
124         (move_or_delete_vzeroupper_2): Likewise.
125         (move_or_delete_vzeroupper_1): Likewise.
126         (move_or_delete_vzeroupper): Likewise.
127         (use_avx256_p): Likewise.
128         (function_pass_avx256_p): Likewise.
129         (flag_opts): Add -mvzeroupper.
130         (ix86_option_override_internal): Turn on MASK_VZEROUPPER by
131         default for TARGET_AVX.  Turn off MASK_VZEROUPPER if TARGET_AVX
132         is disabled.
133         (ix86_function_ok_for_sibcall): Disable sibcall if we need to
134         generate vzeroupper.
135         (init_cumulative_args): Add an int to indicate caller.  Set
136         use_avx256_p, callee_return_avx256_p and caller_use_avx256_p
137         based on return type.
138         (ix86_function_arg): Set use_avx256_p, callee_pass_avx256_p and
139         caller_pass_avx256_p based on argument type.
140         (ix86_expand_epilogue): Emit vzeroupper if 256bit AVX register
141         is used, but not returned by caller.
142         (ix86_expand_call): Emit vzeroupper if 256bit AVX register is used.
143         (ix86_local_alignment): Set use_avx256_p if 256bit AVX register
144         is used.
145         (ix86_minimum_alignment): Likewise.
146         (ix86_expand_special_args_builtin): Set target to
147         GEN_INT (vzeroupper_intrinsic) for CODE_FOR_avx_vzeroupper.
148         (ix86_reorg): Run the vzeroupper optimization if needed.
149
150         * config/i386/i386.h (ix86_args): Add caller.
151         (INIT_CUMULATIVE_ARGS): Updated.
152         (machine_function): Add use_vzeroupper_p, use_avx256_p,
153         caller_pass_avx256_p, caller_return_avx256_p,
154         callee_pass_avx256_p and callee_return_avx256_p.
155
156         * config/i386/i386.opt (-mvzeroupper): New.
157
158         * config/i386/predicates.md (vzeroupper_operation): Removed.
159
160         * config/i386/sse.md (avx_vzeroupper): Removed.
161         (*avx_vzeroupper): Removed.
162         (avx_vzeroupper): New.
163
164         * doc/invoke.texi: Document -mvzeroupper.
165
166 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
167
168         * config/i386/t-mingw32 (SHLIB_LC): Add -lmingwthrd.
169         * config/i386/t-mingw-w32 (SHLIB_LC): Likewise.
170         * config/i386/t-mingw-w64 (SHLIB_LC): Likewise.
171
172 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
173             Olivier Hainque  <hainque@adacore.com>
174
175         * config/i386/w32-unwind.h (i386_w32_fallback_frame_state): Fix regnum
176         of EBP.  Do not restore reg #9.  Remove +1 adjustment to EIP and set
177         fs->signal_frame instead.
178
179 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
180
181         * c-parser.c (c_parser_objc_at_property_declaration): Recognize
182         RID_ASSIGN, RID_COPY, RID_RETAIN, RID_READWRITE and RID_NONATOMIC.
183         Do not use objc_set_property_attr, but use local variables
184         instead.  Detect repeated usage of setter, getter and ivar
185         attributes.  Improved error processing when a setter name does not
186         end in ':'.  Do not check for CPP_CLOSE_PAREN after we determined
187         that the token is a keyword.  Updated call to
188         objc_add_property_declaration.
189
190 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
191
192         * c-parser.c (c_parser_objc_at_property): Renamed to
193         c_parser_objc_at_property_declaration.  Updated calls to
194         objc_add_property_variable, now objc_add_property_declaration.
195         Code rewritten to be much more robust in recovering from syntax
196         errors.  Added comments.
197         (c_parser_objc_property_attrlist): Removed.
198         (c_parser_external_declaration): Updated calls to
199         c_parser_objc_at_property, now
200         c_parser_objc_at_property_declaration.
201         (c_parser_objc_methodprotolist): Same change.
202
203 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
204
205         * config/i386/i386.md (split_stack_return): Put back unspec_volatile.
206
207 2010-10-26  Jan Hubicka  <jh@suse.cz>
208
209         * ipa.c (process_references): Enqueue all referenced nodes;
210         mark as reachable only non-external nodes.
211         (cgraph_remove_unreachable_nodes): All referenced nodes should
212         be enqueued; remove bogues node->needed check.
213
214 2010-10-26  Jan Hubicka  <jh@suse.cz>
215
216         * cgraphbuild.c (build_cgraph_edges): Use ipa-reference
217         to represent OMP.
218
219 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
220
221         * config/i386/i386.md (split_stack_return): Replace
222         unspec_volatile with unspec.
223
224 2010-10-26  Jonathan Wakely  <jwakely.gcc@gmail.com>
225
226         * doc/install.texi: Fix typo in --with-sysroot description.
227
228 2010-10-26  Jan Hubicka  <jh@suse.cz>
229
230         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
231         Use info provided by linker plugin.
232
233 2010-10-26  Jason Merrill  <jason@redhat.com>
234
235         * varasm.c (constructor_static_from_elts_p): Don't require a
236         CONSTRUCTOR to have elements to be suitable for static
237         initialization.  Allow ARRAY_TYPE as well.
238
239 2010-10-26  Jan Hubicka  <jh@suse.cz>
240
241         PR middle-end/45736
242         * cgraph.c (cgraph_set_readonly_flag): Rename to...
243         (cgraph_set_const_flags) ... this one; get also looping argument;
244         clear constructor/destructor flags.
245         (cgraph_set_pure_flag): Likewise.
246         (cgraph_set_looping_const_or_pure_flag): Remove.
247         (cgraph_can_remove_if_no_direct_calls_and_refs): Do not try
248         to optimize away static ctors/dtors; it does not work on inline clones;
249         external functions can always be rmeoved.
250         (cgraph_will_be_removed_from_program_if_no_direct_calls): Assert on
251         inline clones; in LTO external functions always can go.
252         (cgraph_used_from_object_file_p): Handle EXTERNAL functions correctly.
253         (cgraph_mark_address_taken_node): Assert that we are not taking
254         address of inline clone.
255         (cgraph_can_remove_if_no_direct_calls_p): We always eventually remove
256         external functions.
257         * ipa-cp.c (ipcp_cloning_candidate_p): Do not clone functions with
258         address taken.
259         (ipcp_initialize_node_lattices): Only local functions can be
260         handled without cloning.
261         * cgraph.h (cgraph_set_readonly_flag,
262         cgraph_set_looping_const_or_pure_flag): Remove.
263         (cgraph_set_const_flag): Declare.
264         (cgraph_set_pure_flag): Update.
265         * ipa-pure-const (propagate_pure_const, local_pure_const): Update
266         flags setting code.
267         * ipa.c (cgraph_remove_unreachable_nodes): Fix formating; do not
268         look at inline clones; fix handling of external definitions.
269         (cgraph_postorder): Do not look at inline clones in the first pass.
270         (function_and_variable_visibility): Drop constructors/destructor
271         flags at pure and const functions.
272         * tree-profile.c (tree_profiling): Update.
273         * ipa-inline.c (cgraph_clone_inlined_nodes): Always clone functions with
274         address taken; external functions do not account to whole program size.
275         (cgraph_decide_inlining): Likewise; do not try to inline
276         functions already inlined.
277
278 2010-10-26  Jie Zhang  <jie@codesourcery.com>
279
280         * doc/invoke.texi: Improve documentation of
281         -fstrict-volatile-bitfields.
282
283 2010-10-26  Ira Rosen  <irar@il.ibm.com>
284
285         PR tree-optimization/46167
286         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Check that there
287         is basic block for the statement.
288
289 2010-10-26  Paul Koning  <ni1d@arrl.net>
290
291         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Update to
292         current definition of struct_real_format.
293
294 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
295
296         PR target/44948
297         * config/i386/i386.c (ix86_old_function_arg_boundary): New.
298         (ix86_function_arg_boundary): Always align parameters on stack
299         in 64bit and align parameters with alignment >= 16byte on stack
300         in 32bit.  Warn alignment change.
301
302 2010-10-26  Ian Lance Taylor  <iant@google.com>
303
304         PR middle-end/45687
305         * ipa-prop.c (ipa_modify_call_arguments): Correct type of MEM_REF
306         offset.
307
308 2010-10-25  Rodrigo Rivas Costa  <rodrigorivascosta@gmail.com>
309
310         Implement opaque-enum-specifiesr for C++0x
311         * tree.h (ENUM_IS_OPAQUE): New.
312         * dwarf2out.c (gen_enumeration_type_die): Use ENUM_IS_OPAQUE.
313
314 2010-10-26  Jie Zhang  <jie@codesourcery.com>
315
316         * stor-layout.c (layout_decl): Use the field's type to
317         determine the mode and keep DECL_BIT_FIELD for a volatile bit-field.
318         * config/arm/arm.c (arm_override_options): Default to
319         -fstrict-volatile-bitfields.
320
321 2010-10-25  Paul Koning  <ni1d@arrl.net>
322
323         * config/pdp11/pdp11.md: Add define_constants for register
324         numbers, branch offset limits.
325         * config/pdp11/pdp11.c: Use named constants instead of numbers.
326         * config/pdp11.pdp11.h: Ditto.
327
328 2010-10-25  Eric Botcazou  <ebotcazou@adacore.com>
329
330         * configure.ac: Use $cpu_type instead of $target to define the nop.
331         * configure: Regenerate.
332
333 2010-10-25  Jie Zhang  <jie@codesourcery.com>
334
335         * combine.c (try_combine): If insns need to be kept around, check that
336         they can be copied in the merged instruction.
337
338 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
339
340         * reg-stack.c (convert_regs_1): Return boolean value, true if the CFG
341         has been modified.
342         (convert_regs_2): Likewise.  Adjust calls to convert_regs_1.
343         (convert_regs): Adjust calls to convert_regs_2.  Clean up the CFG if
344         it has been modified.
345
346 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
347
348         * config/sparc/sparc.c (sparc_type_code) <NULLPTR_TYPE>: New case.
349
350 2010-10-24  Paul Koning  <ni1d@arrl.net>
351
352         * config/pdp11/pdp11.md: Change length attribute to be in bytes.
353         * config/pdp11/pdp11.c (output_jump): Ditto.
354
355 2010-10-24  Ian Lance Taylor  <iant@google.com>
356
357         * config/i386/i386.c (ix86_va_start): Remove extraneous blank line.
358
359 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
360
361         * cfglayout.c (fixup_reorder_chain): When ensuring that there is at
362         least one insn with a locus corresponding to an edge's goto_locus,
363         disregard non-fallthru edges to the exit block and merge the blocks
364         created for the same goto_locus.
365
366 2010-10-23  Joseph Myers  <joseph@codesourcery.com>
367
368         * gcc.c (n_switches_alloc_debug_check): New.
369         (set_option_handlers): New.
370         (process_command): Use set_option_handlers.
371         (do_self_spec): Pass spec-generated options through option handlers.
372         (main): Also save and restore n_switches_alloc when swapping
373         switch arrays.
374
375 2010-10-23  Richard Henderson  <rth@redhat.com>
376
377         PR target/46144
378         * config/i386/sse.md (*avx_absneg<AVXMODEF2P>2): New.
379         (*sse_absneg<SSEMODEF2P>2): Rename from *absneg<VEC_FLOAT_MODE>2.
380         Honor matching operands when splitting to XOR.
381
382 2010-10-23  Ian Lance Taylor  <iant@google.com>
383
384         * tree-vrp.c (extract_range_from_binary_expr): If
385         flag_non_call_exceptions don't eliminate division by zero.
386         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
387
388 2010-10-23  Nathan Froyd  <froydnj@codesourcery.com>
389
390         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Define
391         __BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__, __ORDER_BIG_ENDIAN__, and
392         __ORDER_PDP_ENDIAN__.
393         * libgcc2.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
394         (struct DWstruct): Define based on __BYTE_ORDER__.
395         * config/fixed-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
396         (struct INTstruct): Define based on __BYTE_ORDER__.
397         * config/dfp-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
398         (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Test __BYTE_ORDER__.
399         * system.h (LIBGCC2_WORDS_BIG_ENDIAN): Poison identifier.
400         * config/arc/arc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
401         * config/arm/arm.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
402         * config/ia64/ia64.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
403         * config/iq2000/iq2000.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
404         * config/lm32/lm32.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
405         * config/m32r/m32r.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
406         * config/mcore/mcore.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
407         * config/mep/mep.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
408         * config/mips/mips.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
409         * config/rs6000/sysv4.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
410         * config/rx/rx.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
411         * config/score/score.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
412         * config/sh/sh.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
413         * config/sparc/sparc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
414         * config/xtensa/xtensa.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
415         * doc/tm.texi.in (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
416         * doc/tm.texi: Regenerate.
417         * doc/cpp.texi (__BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__): Document.
418         (__ORDER_BIG_ENDIAN__, __ORDER_PDP_ENDIAN__): Likewise.
419
420 2010-10-23  Jie Zhang  <jie@codesourcery.com>
421
422         PR rtl-optimization/37360
423         * config/mips/mips.c (cached_can_issue_more): New local variable.
424         (mips_sched_reorder_1): New.
425         (mips_sched_reorder): Use mips_sched_reorder_1.
426         (mips_sched_reorder2): New.
427         (mips_variable_issue): Set cached_can_issue_more.
428         (TARGET_SCHED_REORDER2): Define to mips_sched_reorder2
429         instead of mips_sched_reorder.
430
431         Revert:
432         2008-09-09  Andrey Belevantsev  <abel@ispras.ru>
433         PR rtl-optimization/37360
434         * haifa-sched.c (max_issue): Do not assert that we never issue more
435         insns than issue_rate.  Add comment.
436
437 2010-10-22  Eric Botcazou  <ebotcazou@adacore.com>
438
439         * gimplify.c (gimplify_variable_sized_compare): Preserve the source
440         location info of the expression.
441
442 2010-10-22  DJ Delorie  <dj@redhat.com>
443
444         * doc/extend.texi (Named Address Spaces): Document the M32C named
445         address space.
446
447         * config/m32c/m32c-pragma.c (m32c_register_pragmas): Register the
448         __far address space.
449         * config/m32c/m32c.h (ADDR_SPACE_FAR): New.  Add support for
450         "__far" address space for R8C and M16C processor variants.
451         * config/m32c/m32c.c (m32c_addr_space_legitimate_address_p): New.
452         (far_addr_space_p): New.
453         (encode_pattern_1): Add sign and zero extend support.
454         (m32c_hard_regno_nregs_1): Large pointers in A16 mode are SImode.
455         (m32c_extra_constraint_p2): Add SF constraint.
456         (m32c_legitimate_address_p): Support __far addresses.
457         (m32c_addr_space_pointer_mode): New.
458         (m32c_addr_space_address_mode): New.
459         (m32c_addr_space_legitimate_address_p): New.
460         (m32c_addr_space_legitimize_address): New.
461         (m32c_addr_space_subset_p): New.
462         (m32c_addr_space_convert): New.
463         (conversions): Add __far operand patterns.
464         (m32c_prepare_move): Force constants into registers for __far moves.
465         (m32c_split_move): __far moves are always split.
466         * config/m32c/addsub.md (addsi3_1): Support SImode symbols.
467         * config/m32c/mov.md (mov<mode>_far_op1): New.
468         (mov<mode>_far_op2): New.
469         (movqi_op): Add __far (SF) support.
470         (movhi_op): Likewise.
471         (movsi_splittable): Split A1A0 also.
472
473 2010-10-22  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
474             Andrew Pinski  <pinskia@gmail.com>
475
476         * c-typeck.c (build_array_ref): Handle subscripting of vectors.
477         * doc/extend.texi: New paragraph
478
479 2010-10-22  Paul Koning  <ni1d@arrl.net>
480
481         * config.pdp11/pdp11.h (DBX_DEBUGGING_INFO): Define.
482
483 2010-10-22  DJ Delorie  <dj@redhat.com>
484
485         * config/m32c/m32c-lib1.S (m32c_jsri16): Make reentrant.
486
487 2010-10-22  Paul Koning  <ni1d@arrl.net>
488
489         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Define.
490
491 2010-10-22  Richard Henderson  <rth@redhat.com>
492
493         * config/i386/i386.c (ix86_builtin_vectorized_function): Add
494         cases for __builtin_fma and __builtin_fmaf.
495
496 2010-10-22  Richard Henderson  <rth@redhat.com>
497
498         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Produce
499         NEG+USE for vectors as well.
500         * config/i386/i386.md (*absneg<VEC_FLOAT_MODE>2): New pattern
501         and splitter.
502
503 2010-10-22  Joseph Myers  <joseph@codesourcery.com>
504
505         * gcc.c (DEFAULT_SWITCH_CURTAILS_COMPILATION,
506         SWITCH_CURTAILS_COMPILATION): Remove.
507         * doc/tm.texi.in (SWITCH_CURTAILS_COMPILATION): Remove documentation.
508         * doc/tm.texi: Regenerate.
509         * system.h (SWITCH_CURTAILS_COMPILATION): Poison.
510
511 2010-10-22  Changpeng Fang  <changpeng.fang@amd.com>
512
513         * config/i386/bdver1.md: New file.
514         * config/i386/i386.md (include "bdver1.md"): Invoke the
515         pipeline description for bdver1.
516         (x86_sahf_1): Add "bdver1_decode" attribute.
517         (*cmpfp_i_mixed): Likewise.
518         (*cmpfp_i_sse): Likewise.
519         (*cmpfp_i_i387): Likewise.
520         (*cmpfp_iu_mixed): Likewise.
521         (*cmpfp_iu_sse): Likewise.
522         (*cmpfp_iu_387): Likewise.
523         (*swap<mode>,*swap<mode>_1): Likewise.
524         (fixuns_trunc<mode>hi2): Likewise.
525         (fix_trunc<mode>si_sse): Likewise.
526         (x86_fnstcw_1): Likewise.
527         (x86_fldcw_1): Likewise.
528         (*floatsi<mode>2_vector_mixed_with_temp): Likewise.
529         (*floatsi<mode>2_vector_mixed): Likewise.
530         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Likewise.
531         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Likewise.
532         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Likewise.
533         (*floatsi<mode>2_vector_sse_with_temp): Likewise.
534         (*floatsi<mode>2_vector_sse): Likewise.
535         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Likewise.
536         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Likewise.
537         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Likewise.
538         (*mul<mode>3_1): Likewise.
539         (*mulsi3_1_zext): Likewise.
540         (*mulhi3_1): Likewise.
541         (*mulqi3_1): Likewise.
542         (*<u>mul<mode><dwi>3_1): Likewise.
543         (*<u>mulqihi3_1): Likewise.
544         (*<s>muldi3_highpart_1): Likewise.
545         (*<s>mulsi3_highpart_1): Likewise.
546         (*<s>mulsi3_highpart_zext): Likewise.
547         (x86_64_shld): Likewise.
548         (x86_shld): Likewise.
549         (x86_64_shrd): Likewise.
550         (x86_shrd): Likewise.
551         (sqrtxf2): Likewise.
552         (sqrt_extend<mode>xf2_i387): Likewise.
553         (*sqrt<mode>2_sse): Likewise.
554         * config/i386/sse.md (sse_cvtsi2ss): Add "bdver1_decode" attribute.
555         (sse_cvtsi2ssq): Likewise.
556         (sse_cvtss2si): Likewise.
557         (sse_cvtss2si_2): Likewise.
558         (sse_cvtss2siq): Likewise.
559         (sse_cvtss2siq_2): Likewise.
560         (sse_cvttss2si): Likewise.
561         (sse_cvttss2siq): Likewise.
562         (sse2_cvtpi2pd): Likewise.
563         (sse2_cvttpd2pi): Likewise.
564         (sse2_cvtsi2sd): Likewise.
565         (sse2_cvtsi2sdq): Likewise.
566         (sse2_cvtsd2si): Likewise.
567         (sse2_cvtsd2si_2): Likewise.
568         (sse2_cvtsd2siq): Likewise.
569         (sse2_cvtsd2siq_2): Likewise.
570         (sse2_cvttsd2si): Likewise.
571         (sse2_cvttsd2siq): Likewise.
572         (*sse2_cvtpd2dq): Likewise.
573         (*sse2_cvttpd2dq): Likewise.
574         (sse2_cvtsd2ss): Likewise.
575         (sse2_cvtss2sd): Likewise.
576         (*sse2_cvtpd2ps): Likewise.
577         (sse2_cvtps2pd): Likewise.
578
579 2010-10-22  Richard Guenther  <rguenther@suse.de>
580
581         PR middle-end/46137
582         * gimple-fold.c (gimplify_and_update_call_from_tree): Properly
583         remove the virtual operands if they are not needed.
584
585 2010-10-22  Changpeng Fang  <changpeng.fang@amd.com>
586
587         * config/i386/i386.c (processor_costs bdver1_cost): Update
588         insn costs and architectural parameters for bdver1.
589
590 2010-10-22  Richard Guenther  <rguenther@suse.de>
591
592         * gimple.h (gimple_register_canonical_type): Declare.
593         * gimple.c (gimple_canonical_types): New global hashtable.
594         (struct gimple_type_leader_entry_s): New type.
595         (gimple_type_leader): New global cache.
596         (gimple_lookup_type_leader): New function.
597         (gtc_visit): Query the proper cache.
598         (gimple_types_compatible_p): Likewise.
599         (gimple_register_type): Use the new cache instead of TYPE_CANONICAL.
600         (gimple_canonical_type_eq): New function.
601         (gimple_register_canonical_type): Likewise.
602         (print_gimple_types_stats): Adjust for gimple_canonical_types.
603         (free_gimple_type_tables): Likewise.  Free gimple_type_leader.
604         * tree-ssa.c (useless_type_conversion_p): Do not dispatch to
605         gimple_types_compatible_p for LTO.
606
607 2010-10-22  Uros Bizjak  <ubizjak@gmail.com>
608
609         PR target/46098
610         * config/i386/sse.md (*avx_movu<ssemodesuffix><avxmodesuffix>):
611         Rename from avx_movu<ssemodesuffix><avxmodesuffix>.
612         (avx_movu<ssemodesuffix><avxmodesuffix>): New expander.
613         (*<sse>_movu<ssemodesuffix>): Rename from <sse>_movu<ssemodesuffix>.
614         (<sse>_movu<ssemodesuffix>): New expander.
615         (*avx_movdqu<avxmodesuffix>): Rename from avx_movdqu<avxmodesuffix>.
616         (avx_movdqu<avxmodesuffix>): New expander.
617         (*sse2_movdqu): Rename from sse2_movdqu.
618         (sse2_movdqu): New expander.
619
620 2010-10-22  Richard Guenther  <rguenther@suse.de>
621
622         PR tree-optimization/45720
623         * tree-vect-data-refs.c (vect_update_misalignment_for_peel):
624         Handle negative step.
625         (vect_enhance_data_refs_alignment): Likewise.
626         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Likewise.
627         (vect_create_cond_for_align_checks): Likewise.
628         (vect_create_cond_for_alias_checks): Likewise.
629
630 2010-10-22  Ira Rosen  <irar@il.ibm.com>
631
632         PR tree-optimization/46126
633         * tree-vect-stmts.c (vect_analyze_stmt): Pass NODE to
634         vectorizable_shift in case of basic block vectorization.
635
636 2010-10-22  Joseph Myers  <joseph@codesourcery.com>
637
638         * target.h (enum opt_levels, struct default_options): New.
639         * target.def (handle_ofast): Remove hook.
640         (target_option.optimization): Change to
641         target_option.optimization_table.
642         * doc/tm.texi.in (TARGET_OPTION_OPTIMIZATION): Change to
643         TARGET_OPTION_OPTIMIZATION_TABLE.
644         (CAN_DEBUG_WITHOUT_FP): Remove.
645         * doc/tm.texi: Regenerate.
646         * opts.c (maybe_default_option, maybe_default_options,
647         default_options_table): New.
648         (default_options_optimization): Take extra parameters.  Don't
649         assert that global_options and global_options_set are in use.  Use
650         maybe_default_options.
651         (decode_options): Pass extra parameters to
652         default_options_optimization.
653         * common.opt (falign-loops): Use value 0 with Var.
654         (frerun-cse-after-loop, ftree-ter): Remove Init.
655         * system.h (CAN_DEBUG_WITHOUT_FP, TARGET_HANDLE_OFAST,
656         TARGET_OPTION_OPTIMIZATION): Remove.
657         * targhooks.c (empty_optimization_table): New.
658         * targhooks.h (empty_optimization_table): Declare.
659         * toplev.c (process_options): Don't set flag_rerun_cse_after_loop.
660         * config/alpha/alpha.c (alpha_option_optimization_table,
661         TARGET_OPTION_OPTIMIZATION_TABLE): New.
662         * config/alpha/alpha.h (CAN_DEBUG_WITHOUT_FP): Remove.
663         * config/arm/arm.c (arm_option_optimization: Change to
664         arm_option_optimization_table.
665         (TARGET_OPTION_OPTIMIZATION): Change to
666         TARGET_OPTION_OPTIMIZATION_TABLE.
667         * config/arm/arm.h (CAN_DEBUG_WITHOUT_FP): Remove.
668         * config/avr/avr.c (avr_option_optimization_table,
669         TARGET_OPTION_OPTIMIZATION_TABLE): New.
670         * config/avr/avr.h (CAN_DEBUG_WITHOUT_FP): Remove.
671         * config/cris/cris.c (cris_option_optimization): Change to
672         cris_option_optimization_table.
673         (TARGET_OPTION_OPTIMIZATION): Change to
674         TARGET_OPTION_OPTIMIZATION_TABLE.
675         * config/crx/crx.c (crx_option_optimization): Change to
676         crx_option_optimization_table.
677         (TARGET_OPTION_OPTIMIZATION): Change to
678         TARGET_OPTION_OPTIMIZATION_TABLE.
679         * config/crx/crx.h (CAN_DEBUG_WITHOUT_FP): Remove.
680         * config/fr30/fr30.c (fr30_option_optimization_table,
681         TARGET_OPTION_OPTIMIZATION_TABLE): New.
682         * config/fr30/fr30.h (CAN_DEBUG_WITHOUT_FP): Remove.
683         * config/frv/frv.c (frv_option_optimization_table,
684         TARGET_OPTION_OPTIMIZATION_TABLE): New.
685         * config/frv/frv.h (CAN_DEBUG_WITHOUT_FP): Remove.
686         * config/h8300/h8300.c (h8300_option_optimization): Change to
687         h8300_option_optimization_table.
688         (TARGET_OPTION_OPTIMIZATION): Change to
689         TARGET_OPTION_OPTIMIZATION_TABLE.
690         * config/h8300/h8300.h (CAN_DEBUG_WITHOUT_FP): Remove.
691         * config/i386/i386.c (ix86_option_optimization): Change to
692         ix86_option_optimization_table.
693         (TARGET_OPTION_OPTIMIZATION): Change to
694         TARGET_OPTION_OPTIMIZATION_TABLE.
695         * config/i386/sol2-10.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
696         as initializer.
697         * config/ia64/ia64.c (ia64_option_optimization): Change to
698         ia64_option_optimization_table.
699         (TARGET_OPTION_OPTIMIZATION): Change to
700         TARGET_OPTION_OPTIMIZATION_TABLE.
701         * config/ia64/ia64.h (CAN_DEBUG_WITHOUT_FP): Remove.
702         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define as
703         initializer.
704         * config/iq2000/iq2000.c (iq2000_option_optimization_table,
705         TARGET_OPTION_OPTIMIZATION_TABLE): New.
706         * config/iq2000/iq2000.h (CAN_DEBUG_WITHOUT_FP): Remove.
707         * config/lm32/lm32.c (lm32_option_optimization_table,
708         TARGET_OPTION_OPTIMIZATION_TABLE): New.
709         * config/lm32/lm32.h (CAN_DEBUG_WITHOUT_FP): Remove.
710         * config/m32r/m32r.c (m32r_option_optimization): Change to
711         m32r_option_optimization_table.
712         (TARGET_OPTION_OPTIMIZATION): Change to
713         TARGET_OPTION_OPTIMIZATION_TABLE.
714         * config/m32r/m32r.h (SUBTARGET_OPTIMIZATION_OPTIONS,
715         CAN_DEBUG_WITHOUT_FP): Remove.
716         * config/mcore/mcore.c (mcore_option_optimization): Change to
717         mcore_option_optimization_table.
718         (TARGET_OPTION_OPTIMIZATION): Change to
719         TARGET_OPTION_OPTIMIZATION_TABLE.
720         * config/mep/mep.c (mep_option_optimization): Change to
721         mep_option_optimization_table.
722         (TARGET_OPTION_OPTIMIZATION): Change to
723         TARGET_OPTION_OPTIMIZATION_TABLE.
724         * config/mep/mep.h (CAN_DEBUG_WITHOUT_FP): Remove.
725         * config/microblaze/microblaze.c
726         (microblaze_option_optimization_table,
727         TARGET_OPTION_OPTIMIZATION_TABLE): New.
728         * config/microblaze/microblaze.h (CAN_DEBUG_WITHOUT_FP): Remove.
729         * config/mips/mips.c (mips_option_optimization_table,
730         TARGET_OPTION_OPTIMIZATION_TABLE): New.
731         * config/mips/mips.h (CAN_DEBUG_WITHOUT_FP): Remove.
732         * config/mmix/mmix.c (mmix_option_optimization): Change to
733         mmix_option_optimization_table.
734         (TARGET_OPTION_OPTIMIZATION): Change to
735         TARGET_OPTION_OPTIMIZATION_TABLE.
736         * config/mmix/mmix.h (CAN_DEBUG_WITHOUT_FP): Remove.
737         * config/mn10300/mn10300.c (mn10300_option_optimization_table,
738         TARGET_OPTION_OPTIMIZATION_TABLE): New.
739         * config/mn10300/mn10300.h (CAN_DEBUG_WITHOUT_FP): Remove.
740         * config/pa/pa.c (pa_option_optimization_table,
741         TARGET_OPTION_OPTIMIZATION_TABLE): New.
742         * config/pa/pa.h (CAN_DEBUG_WITHOUT_FP): Remove.
743         * config/pdp11/pdp11.c (pdp11_option_optimization): Change to
744         pdp11_option_optimization_table.
745         (TARGET_OPTION_OPTIMIZATION): Change to
746         TARGET_OPTION_OPTIMIZATION_TABLE.
747         * config/picochip/picochip.c (picochip_option_optimization_table,
748         TARGET_OPTION_OPTIMIZATION_TABLE): New.
749         * config/picochip/picochip.h (CAN_DEBUG_WITHOUT_FP): Remove.
750         * config/rs6000/rs6000.c (rs6000_option_optimization_table,
751         TARGET_OPTION_OPTIMIZATION_TABLE): New.
752         * config/rs6000/rs6000.h (CAN_DEBUG_WITHOUT_FP): Remove.
753         * config/rx/rx.c (rx_option_optimization_table,
754         TARGET_OPTION_OPTIMIZATION_TABLE): New.
755         * config/rx/rx.h (CAN_DEBUG_WITHOUT_FP): Remove.
756         * config/s390/s390.c (s390_option_optimization): Change to
757         s390_option_optimization_table.
758         (s390_option_override): Update comment.
759         (TARGET_OPTION_OPTIMIZATION): Change to
760         TARGET_OPTION_OPTIMIZATION_TABLE.
761         * config/s390/s390.h (CAN_DEBUG_WITHOUT_FP): Remove.
762         * config/score/score.c (score_option_optimization_table,
763         TARGET_OPTION_OPTIMIZATION_TABLE): New.
764         * config/score/score.h (CAN_DEBUG_WITHOUT_FP): Remove.
765         * config/sh/sh.c (sh_option_optimization): Change to
766         sh_option_optimization_table.
767         (TARGET_OPTION_OPTIMIZATION): Change to
768         TARGET_OPTION_OPTIMIZATION_TABLE.
769         (sh_option_override): Set MASK_SAVE_ALL_TARGET_REGS here.
770         (sh_option_override, expand_block_move, multcosts, find_barrier,
771         barrier_align): Use optimize_size instead of TARGET_SMALLCODE.
772         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Remove.
773         (LOOP_ALIGN, TRAMPOLINE_ALIGNMENT, MOVE_BY_PIECES_P,
774         STORE_BY_PIECES_P, SH_DYNAMIC_SHIFT_COST): Use optimize_size
775         instead of TARGET_SMALLCODE.
776         * config/sh/sh.opt (mspace): Make into an alias for -Os.
777         * config/sparc/sparc.c (sparc_option_optimization_table,
778         TARGET_OPTION_OPTIMIZATION_TABLE): New.
779         * config/sparc/sparc.h (CAN_DEBUG_WITHOUT_FP): Remove.
780         * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
781         TARGET_OPTION_OPTIMIZATION_TABLE): New.
782         * config/stormy16/stormy16.h (CAN_DEBUG_WITHOUT_FP): Remove.
783         * config/v850/v850.c (v850_option_optimization): Change to
784         v850_option_optimization_table.
785         (TARGET_OPTION_OPTIMIZATION): Change to
786         TARGET_OPTION_OPTIMIZATION_TABLE.
787         * config/v850/v850.h (CAN_DEBUG_WITHOUT_FP): Remove.
788         * config/xtensa/xtensa.c (xtensa_option_optimization): Change to
789         xtensa_option_optimization_table.
790         (TARGET_OPTION_OPTIMIZATION): Change to
791         TARGET_OPTION_OPTIMIZATION_TABLE.
792         * config/xtensa/xtensa.h (CAN_DEBUG_WITHOUT_FP): Remove.
793
794 2010-10-21  Iain Sandoe  <iains@gcc.gnu.org>
795
796         Based on the CFString implementation in FSF apple/trunk branch.
797
798         * target.def (objc_construct_string): New Hook.
799         * doc/tm.texi (objc_construct_string): Document.
800         * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING): New.
801         * config/t-darwin: Amend build rules for darwin.o.
802         * config/darwin.opt: Add cfstrings flags.
803         * config/darwin-c.c: Define __CONSTANT_CFSTRINGS__.
804         (darwin_objc_construct_string): New.
805         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Define.
806         * config/i386/i386.c (ix86_init_builtins): Add SUBTARGET_INIT_BUILTINS.
807         * config/darwin-protos.h (darwin_init_cfstring_builtins): New prototype.
808         (darwin_fold_builtin): Likewise.
809         (darwin_build_constant_cfstring): Likewise.
810         (darwin_objc_construct_string): Likewise.
811         (darwin_cfstring_p): Likewise.
812         (darwin_enter_string_into_cfstring_table): Likewise.
813         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS) Update for CFString.
814         * config/darwin.c (darwin_running_cxx): New var.
815         (machopic_select_section): Return cfstring_constant_object_section.
816         (darwin_override_options): Set darwin_running_cxx.
817         (add_builtin_field_decl): New.
818         (darwin_init_cfstring_builtins): New.
819         (darwin_build_constant_cfstring): New.
820         (darwin_fold_builtin): New.
821         (cfstring_hash): New.
822         (cfstring_eq): New.
823         (darwin_enter_string_into_cfstring_table): New.
824         * config/darwin-sections.def (cfstring_constant_object_section): New.
825         * config/darwin.h (TARGET_FOLD_BUILTIN): Define.
826         (TARGET_OBJC_CONSTRUCT_STRING): Define.
827
828 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
829
830         * config/alpha/alpha.c (alpha_build_builtin_va_list): Use
831         TYPE_STUB_DECL instead of TREE_CHAIN.
832         * config/i386/i386.c (ix86_build_builtin_va_list_abi): Likewise.
833         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Likewise.
834         * config/s390/s390.c (s390_build_builtin_va_list): Likewise.
835         * config/sh/sh.c (sh_build_builtin_va_list): Likewise.
836         * config/spu/spu.c (spu_build_builtin_va_list): Likewise.
837         * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list):
838         Likewise.
839         * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Likewise.
840
841 2010-10-22  Jie Zhang  <jie@codesourcery.com>
842
843         * expr.c (emit_group_load_1): Update calls to extract_bit_field.
844         (copy_blkmode_from_reg): Likewise.
845         (read_complex_part): Likewise.
846         (expand_expr_real_1): Calculate packedp and pass it to
847         extract_bit_field.
848         * expr.h (extract_bit_field): Update declaration.
849         * calls.c (store_unaligned_arguments_into_pseudos): Update call
850         to extract_bit_field.
851         * expmed.c (extract_fixed_bit_field): Update calls to
852         extract_fixed_bit_field.
853         (store_split_bit_field): Likewise.
854         (extract_bit_field_1): Add new argument packedp.
855         (extract_bit_field): Add new argument packedp.
856         (extract_fixed_bit_field): Add new argument packedp and let
857         packed attribute override volatile.
858         * stmt.c (expand_return): Update call to extract_bit_field.
859
860 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
861
862         * config/spu/spu.c (spu_function_arg): Dereference CUM parameter.
863
864 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
865
866         * ddg.c (add_cross_iteration_register_deps): Call gcc_assert instead
867         of gcc_checking_assert.
868         * sel-sched.c (code_motion_process_successors): Likewise.
869
870 2010-10-21  Eric Botcazou  <ebotcazou@adacore.com>
871
872         * cfgcleanup.c (try_forward_edges): Do not throw away previous steps
873         when stopping because of a different locus on edge or insn.
874         (try_optimize_cfg): Add comment.
875         * cfgrtl.c (rtl_merge_blocks): Tweak log message.  If the destination
876         block is a forwarder block, propagate locus on the edge.
877         (cfg_layout_merge_blocks): Likewise.
878
879 2010-10-21  Uros Bizjak  <ubizjak@gmail.com>
880
881         PR target/45946
882         * config/i386/i386.md (*pushti2): New insn pattern.
883         (pushti2 splitter): New insn splitter.
884         (*push<mode>2): Macroize insn pattern from *push{di,ti}2 using
885         DWI mode iterator.
886
887 2010-10-21  Paul Koning  <ni1d@arrl.net>
888
889         * config/pdp11/pdp11-protos.md (arith_operand,
890         const_immediate_operand, expand_shift_operand,
891         immediate15_operand): Delete
892         * config/pdp11/pdp11.c: Ditto.
893         * config/pdp11/pdp11.h (REG_CLASS_FROM_LETTER,
894         CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
895         EXTRA_CONSTRAINT): Delete.
896         * config/pdp11/pdp11.md (various): Use standard constraints
897         instead of removed ones.
898         * config/pdp11/constraints.md: New file.
899         * config/pdp11/predicates.md: New file.
900
901 2010-10-21  Bingfeng Mei  <bmei@broadcom.com>
902
903         PR c/45834
904         * alias.c (true_dependence_1): Remove obsolete check for QImode.
905         (may_alias_p): Ditto.
906
907 2010-10-21  Martin Jambor  <mjambor@suse.cz>
908
909         PR tree-optimization/45875
910         * tree.c (get_binfo_at_offset): Remove initial zero offset test.
911
912 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
913
914         * tree-into-ssa.c (rewrite_update_enter_block): Remove unused
915         variables.
916         (create_new_def_for): Likewise.
917
918 2010-10-21  Nick Clifton  <nickc@redhat.com>
919
920         * config/mn10300/mn10300.c: Fold code to 80-character width.
921         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
922         MEM, CONST_INT and CONST_DOUBLE.
923         (targetm): Move initialization to end of file.
924         (print_operand): Rename to mn10300_print_operand.
925         (print_operand_address): Rename to mn10300_print_operand_address.
926         (can_use_return_insn): Rename to mn10300_can_use_return_insn.
927         (expand_prologue): Rename to mn10300_expand_prologue.
928         (expand_epilogue): Rename to mn10300_expand_epilogue.
929         (initial_offset): Rename to mn10300_initial_offset.
930         (function_arg): Rename to mn10300_function_arg.
931         (mask_ok_for_mem_btst): Rename to mn10300_mask_ok_for_mem_btst.
932         (symbolic_operand): Rename to mn10300_symbolic_operand.
933         (legitimize_pic_address): Rename to mn10300_legitimize_pic_address.
934         (legitimate_pic_operand_p): Rename to mn10300_legitimate_pic_operand_p.
935         * config/mn10300/mn10300-protos.h: Update prototypes.
936         * config/mn10300/mn10300.h: Fold code to 80-character width.
937         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
938         MEM, CONST_INT and CONST_DOUBLE.
939         (CPP_SPEC): Move to...
940         (TARGET_CPU_CPP_BUILTINS): ... here.
941         * config/mn10300/mn10300.md: Fold code to 80-character width.
942         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
943         MEM, CONST_INT and CONST_DOUBLE.
944
945 2010-10-21  Ira Rosen  <irar@il.ibm.com>
946
947         PR tree-optimization/46049
948         PR tree-optimization/46052
949         * tree-vectorizer.h (enum stmt_vec_info_type): Add new value for shift.
950         (vect_get_slp_defs): Add arguments.
951         * tree-vect-loop.c (vect_create_epilog_for_reduction): Pass scalar
952         operands to vect_get_slp_defs.
953         (vectorizable_reduction): Fix comment, pass scalar operands to
954         vect_get_slp_defs.
955         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use operand's
956         type to determine number of units in the created vector.
957         (vect_get_vec_defs): Pass scalar operands to vect_get_slp_defs.
958         (vectorizable_conversion): Fix comment.
959         (vectorizable_shift): New function.
960         (vectorizable_operation): Move code that handles shifts to
961         vectorizable_shift.
962         (vectorizable_type_demotion): Fix comment, pass scalar operands to
963         vect_get_slp_defs.
964         (vectorizable_type_promotion, vectorizable_store): Likewise.
965         (vectorizable_condition): Fix comment.
966         (vect_analyze_stmt): Call vectorizable_shift.
967         (vect_transform_stmt): Likewise.
968         * tree-vect-slp.c (vect_get_constant_vectors): Add new argument.
969         Use it as the operand to create vectors for, except reduction
970         initial definition and store.  Use operands type.
971         (vect_get_slp_defs): Add new arguments.  Pass them to
972          vect_get_constant_vectors.
973
974 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
975
976         * basic-block.h (single_succ_edge): Use gcc_checking_assert.
977         (single_pred_edge, ei_container, ei_next, ei_prev): Likewise.
978         * cfghooks.c (fixup_reorder_chain): Likewise.
979         * cfgrtl.c (cfg_layout_merge_blocks): Likewise.
980         * cgraph.c (cgraph_add_thunk): Likewise.
981         (cgraph_create_edge_1): Likewise.
982         (cgraph_create_virtual_clone): Likewise.
983         * ddg.c (add_cross_iteration_register_deps): Likewise.
984         * dwarf2out.c (modified_type_die): Likewise.
985         * emit-rtl.c (set_mem_alias_set): Likewise.
986         * ggc-zone.c (zone_allocate_marks): Likewise.
987         * gimple-iterator.c (gsi_move_to_bb_end): Likewise.
988         * gimple.c (iterative_hash_gimple_type): Likewise.
989         * graphite-scop-detection.c (create_single_entry_edge): Likewise.
990         (create_single_exit_edge): Likewise.
991         * haifa-sched.c (choose_ready): Likewise.
992         * lto-streamer-in.c (input_gimple_stmt): Likewise.
993         * passes.c (execute_todo): Likewise.
994         * sched-ebb.c (begin_schedule_ready): Likewise.
995         * sel-sched.c (code_motion_process_successors): Likewise.
996         * tree-call-cdce.c (gen_conditions_for_pow): Likewise.
997         * tree-cfg-cleanup.c (tree_forwarder_block_p): Likewise.
998         * tree-flow-inline.h (link_imm_use, move_use_after_head): Likewise.
999         (phi_arg_index_from_use, phi_ssa_name_p): Likewise.
1000         * tree-into-ssa.c (insert_updated_phi_nodes_for): Likewise.
1001         * tree-ssa-coalesce.c (ssa_conflicts_test_p): Likewise.
1002         (ssa_conflicts_add): Likewise.
1003         * tree-ssa-copy.c (replace_exp): Likewise.
1004         * tree-ssa-dom.c (eliminate_redundant_computations): Likewise.
1005         * tree-ssa-forwprop.c (simple_gimple_switch): Likewise.
1006         * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
1007         * tree-ssa-pre.c (bitmap_value_insert_into_set): Likewise.
1008         (compute_antic): Likewise.
1009         * tree-ssa-ter.c (add_to_partition_kill_list): Likewise.
1010         (add_dependence): Likewise.
1011         (process_replaceable, kill_expr, find_replaceable_exprs): Likewise.
1012         * tree-vrp.c (supports_overflow_infinity): Likewise.
1013         (make_overflow_infinity, negative_overflow_infinity): Likewise.
1014         (avoid_overflow_infinity, register_new_assert_for): Likewise.
1015         (process_assert_insertions_for): Likewise.
1016         * var-tracking.c (dv_is_value_p, dv_as_decl, dv_from_decl): Likewise.
1017         (dv_from_value, variable_union, find_loc_in_1pdv): Likewise.
1018         (intersect_loc_chains, variable_merge_over_cur): Likewise.
1019
1020 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
1021
1022         * cfgloop.c (flow_loops_find): Call bb_has_abnormal_pred.
1023         * reload1.c (has_nonexceptional_receiver): Likewise.
1024         * tree-into-ssa.c (rewrite_update_enter_block): Likewise.
1025         (create_new_def_for): Likewise.
1026         * tree-cfgcleanup.c (remove_forwarder_block): Likewise.
1027         (merge_phi_nodes): Likewise.
1028         (has_abnormal_incoming_edge_p): Delete.
1029
1030 2010-10-21  H.J. Lu  <hongjiu.lu@intel.com>
1031
1032         * config/i386/sse.md (ssescalarmodesuffix): Add V8SI and V4DI.
1033
1034 2010-10-21  Richard Guenther  <rguenther@suse.de>
1035             Michael Matz  <matz@suse.de>
1036
1037         PR tree-optimization/45764
1038         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
1039         Adjust initial misalignment for negative DR_STEP.
1040         (vect_find_same_alignment_drs): Two DRs with different DR_STEP
1041         do not have the same alignment over the whole iteration domain.
1042
1043 2010-10-21  Richard Guenther  <rguenther@suse.de>
1044
1045         PR tree-optimization/46111
1046         * tree-parloops.c (take_address_of): Re-organize for MEM_REF.
1047
1048 2010-10-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1049
1050         * config/s390/s390.md (*xordi3_cc): Mark xgrk as z196 only.
1051
1052 2010-10-21  Tristan Gingold  <gingold@adacore.com>
1053
1054         * config/vms/vms-crtl.h (CRTL_NAMES): Add new translations.
1055         * config/vms/vms-crtl-64.h (CRTL_NAMES): Ditto.
1056
1057 2010-10-21  Tristan Gingold  <gingold@adacore.com>
1058
1059         * config/alpha/vms-unwind.h (alpha_vms_fallback_frame_state): Set
1060         signal_frame.
1061         * config/alpha/alpha.c (alpha_function_arg): Adjust call.
1062
1063 2010-10-21  Tristan Gingold  <gingold@adacore.com>
1064
1065         * config/ia64/vms64.h (TARGET_DEFAULT): Add MASK_FUSED_MADD.
1066         * config/ia64/vms.h (TARGET_DEFAULT): Ditto.
1067
1068 2010-10-20  Nathan Froyd  <froydnj@codesourcery.com>
1069
1070         * basic-block.h (find_fallthru_edge): Define.
1071         * cfgcleanup.c (merge_blocks_move): Use it.
1072         (try_crossjump_bb): Likewise.
1073         * cfglayout.c (fixup_reorder_chains): Likewise.
1074         (fixup_fallthru_exit_predecessor): Likewise.
1075         * cfgrtl.c (rtl_split_edge): Likewise.
1076         (rtl_verify_flow_info): Likewise.
1077         * function.c (thread_prologue_and_epilogue_insns): Likewise.
1078         * gimple-pretty-print.c (dump_implicit_edges): Likewise.
1079         * ifcvt.c (block_fallthru): Likewise.
1080         * reload1.c (fixup_abnormal_edges): Likewise.
1081         * sched-ebb.c (being_schedule_ready): Likewise.
1082         (schedule_ebb): Likwise.
1083         * sched-rgn.c (find_single_block_region): Likewise.
1084         * sel-sched-ir.c (bb_ends_ebb_p): Likewise.
1085         * tree-complex.c (expand_complex_move): Likewise.
1086         * sched-int.h (find_fallthru_edge): Rename to...
1087         (find_fallthru_edge_from): ...this.
1088         * haifa-sched.c (find_fallthru_edge): Rename to...
1089         (find_fallthru_edge_from): ...this.  Use new find_fallthru_edge.
1090         (init_before_recovery): Call find_fallthru_edge_from.
1091         * sel-sched-ir.c (merge_fences): Likewise.
1092         * sel-sched.c (in_fallthru_bb_p): Likewise.
1093         (move_cond_jump): Likewise.
1094
1095 2010-10-20  Paul Koning  <ni1d@arrl.net>
1096
1097         * config/pdp11/pdp11.md (various): Fix conditions on a number of
1098         insn to check for target 11/40 or higher.
1099
1100 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
1101
1102         * parser.c (c_parser_objc_method_type): Mark inline.  Return a
1103         bool instead of a tree.
1104         (c_parser_objc_method_decl): Added bool argument.  Updated call to
1105         objc_build_method_signature.
1106         (c_parser_objc_method_definition): Do not call
1107         objc_set_method_type.  Updated calls to c_parser_objc_method_type,
1108         c_parser_objc_method_decl and objc_start_method_definition.
1109         (c_parser_objc_methodproto): Do not call objc_set_method_type.
1110         Updated calls to c_parser_objc_method_type,
1111         c_parser_objc_method_decl and objc_add_method_declaration.
1112
1113 2010-10-20  Jakub Jelinek  <jakub@redhat.com>
1114
1115         PR tree-optimization/45919
1116         * tree-ssa-ccp.c (fold_nonarray_ctor_reference): Handle flexible
1117         array members.
1118
1119         PR tree-optimization/46066
1120         * tree-parloops.c (create_parallel_loop): Use gsi_last_nondebug_bb
1121         instead of gsi_last_bb.
1122
1123 2010-10-20  DJ Delorie  <dj@redhat.com>
1124
1125         * config/m32c/m32c.c (m32c_option_override): Always disable
1126         function-cse in 16-bit mode.  Indirect calls are always worse than
1127         direct calls as there is no 16-bit indirect call opcode.
1128         (m32c_override_options_after_change): New, likewise.
1129
1130 2010-10-20  Nathan Froyd  <froydnj@codesourcery.com>
1131
1132         * ifcvt.c (noce_emit_cmove): If both of the values are SUBREGs, try
1133         emitting the conditional move in the inner mode of the SUBREG.
1134
1135 2010-10-20  Anatoly Sokolov  <aesok@post.ru>
1136
1137         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS): Remove macros.
1138         * config/ia64/ia64-protos.h (ia64_preferred_reload_class): Remove.
1139         * config/ia64/ia64.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
1140         (ia64_preferred_reload_class): Make static.  Change rclass argument
1141         and result types from enum reg_class to reg_class_t.
1142
1143 2010-10-20  Pat Haugen  <pthaugen@us.ibm.com>
1144
1145         * tree-ssa-ter.c (find_replaceable_in_bb): Allow replacement over
1146         call for single operand expression.
1147
1148 2010-10-20  Eric Botcazou  <ebotcazou@adacore.com>
1149
1150         * tree-optimize.c (execute_fixup_cfg): Purge dead abnormal call edges
1151         if there is a call statement to pure or const function in the block.
1152
1153 2010-10-20  Paul Koning  <pkoning@equallogic.com>
1154
1155         Fix several build errors for pdp11 target.
1156         * config/pdp11/pdp11.md (*cmpdf): Fix tstd operands.
1157         (cbranchdf4): Conditional on TARGET_FPU.
1158         (movdf): Ditto; correct alternatives check.
1159         (movmemhi): Fix predicate and constraint.
1160         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Handle 64 bit mode.
1161
1162 2010-10-20  Richard Guenther  <rguenther@suse.de>
1163
1164         PR lto/45667
1165         * lto-streamer-out.c (output_gimple_stmt): Fix typo.
1166         * tree-cfg.c (verify_gimple_call): Properly get the call fndecl.
1167         (verify_gimple_assign_single): Disable ADDR_EXPR type check
1168         when in LTO.
1169
1170 2010-10-20  Vladimir Makarov  <vmakarov@redhat.com>
1171
1172         PR fortran/42169
1173         * ira-emit.c (store_can_be_removed_p): Return false instead of
1174         gcc_unreachable.
1175
1176 2010-10-20  Dmitry Melnik  <dm@ispras.ru>
1177
1178         * fold-const.c (fold_binary_loc): New transformation.
1179
1180 2010-10-20  H.J. Lu  <hongjiu.lu@intel.com>
1181
1182         PR target/46085
1183         * config/i386/sse.md (reduc_splus_v8sf): Updated.
1184         (reduc_splus_v4df): Likewise.
1185
1186 2010-10-20  Richard Guenther  <rguenther@suse.de>
1187
1188         PR tree-optimization/45860
1189         * tree-ssa-phiopt.c (cond_store_replacement): Do not do
1190         conditional store replacement for non-register type stores.
1191
1192 2010-10-20  Eric Botcazou  <ebotcazou@adacore.com>
1193
1194         * stor-layout.c (skip_simple_constant_arithmetic): New function.
1195         (self_referential_size): Use it instead of skip_simple_arithmetic.
1196
1197 2010-10-20  Olivier Hainque  <hainque@adacore.com>
1198
1199         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p):
1200         If the current function calls eh_return, claim live all registers
1201         that we need to check for liveness otherwise.
1202
1203 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
1204
1205         * c-decl.c (c_write_global_declarations): Call
1206         objc_write_global_declarations when compiling Objective-C.
1207         * c-lang.c (finish_file): Removed.
1208
1209 2010-10-19  DJ Delorie  <dj@redhat.com>
1210
1211         * doc/tm.texi.in (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): New.
1212         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Change to hook.
1213         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Likewise.
1214         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Likewise.
1215         * doc/tm.texi: Regenerate.
1216         * targhooks.h (default_label_align_after_barrier_max_skip,
1217         default_loop_align_max_skip, default_label_align_max_skip,
1218         default_jump_align_max_skip): Declare.
1219         * target.def (label_align_after_barrier_max_skip): New.
1220         (loop_align_max_skip): New.
1221         (label_align_max_skip): New.
1222         (jump_align_max_skip): New.
1223         * system.h (poison): Add those macros to the list.
1224         * final.c (LABEL_ALIGN_MAX_SKIP): Remove.
1225         (LOOP_ALIGN_MAX_SKIP): Remove.
1226         (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Remove.
1227         (JUMP_ALIGN_MAX_SKIP): Remove.
1228         (default_label_align_after_barrier_max_skip): New.
1229         (default_loop_align_max_skip): New.
1230         (default_label_align_max_skip): New.
1231         (default_jump_align_max_skip): New.
1232         (compute_alignments): Use the new hooks.
1233         (shorten_branches): Likewise.
1234
1235 2010-10-19  Richard Henderson  <rth@redhat.com>
1236
1237         * config/i386/i386.c (bdesc_multi_arg): Use fma4i_fmadd_<mode>.
1238         * config/i386/sse.md (fma<mode>4): Enable for FMA & SSE_MATH.
1239         (fma4i_fmadd_<mode>): New.
1240         (*split_fma, *split_fms, *split_fnma, *split_fnms): Rename from
1241         fma4_fm*_<mode> and adjust to be pre-reload splitters to the
1242         standard fma patterns.
1243         (fmaddsub_<mode>): Rename from fma4i_fmaddsub_<mode> and
1244         enable for FMA.
1245         (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
1246         (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
1247         (*fma_fmaddsub_<mode>, *fma_fmsubadd_<mode>): New.
1248
1249 2010-10-19  Paul Koning  <pkoning@equallogic.com>
1250
1251         * lower-subreg.c (resolve_shift_zext): Delete conditional code for
1252         WORDS_BIG_ENDIAN != BYTES_BIG_ENDIAN.
1253
1254 2010-10-19  Richard Henderson  <rth@redhat.com>
1255
1256         * config/ia64/ia64.md (fmasf4, *fmssf4, *nfmasf4): New.
1257         (fmadf4, *fmsdf4, *nfmadf4): New.
1258         (fmaxf4, *fmsxf4, *nfmaxf4): New.
1259
1260 2010-10-19  Michael Eager  <eager@eagercon.com>
1261
1262         * config/microblaze/microblaze.c (TARGET_EXCEPT_UNWIND_INFO):
1263         Use sjlj unwind info for exceptions.
1264
1265 2010-10-19  Francois-Xavier Coudert<fxcoudert@gcc.gnu.org>
1266
1267         PR fortran/43414
1268         * dwarf2out.c (add_calling_convention_attribute): Flag main
1269         Fortran subroutine with DW_AT_main_subprogram.
1270
1271 2010-10-19  Nick Clifton  <nickc@redhat.com>
1272
1273         * config/rx/rx.c (rx_function_value): Small integer types are
1274         promoted to SImode.
1275         (rx_promote_function_mode): New function.
1276         (TARGET_PROMOTE_FUNCTION_MODE): Define.
1277
1278 2010-10-19  Nick Clifton  <nickc@redhat.com>
1279
1280         * config/mep/mep.c (mep_print_operand): Use
1281         targetm.strip_name_encoding.
1282         (mep_output_aligned_common): Likewise.
1283
1284 2010-10-19  Basile Starynkevitch  <basile@starynkevitch.net>
1285
1286         * gengtype.c (new_structure): Remove ad-hoc "location_s" processing.
1287
1288 2010-10-18  Richard Henderson  <rth@redhat.com>
1289
1290         * simplify-rtx.c (simplify_ternary_operation) [FMA]: Simplify
1291         (fma (neg a) (neg b) c) and (fma a (neg b) c).
1292
1293 2010-10-18  Richard Henderson  <rth@redhat.com>
1294
1295         * config/i386/i386.c (IX86_BUILTIN_VFMSUBSS, IX86_BUILTIN_VFMSUBSD,
1296         IX86_BUILTIN_VFMSUBPS, IX86_BUILTIN_VFMSUBPD,
1297         IX86_BUILTIN_VFMSUBADDPS, IX86_BUILTIN_VFMSUBADDPD,
1298         IX86_BUILTIN_VFNMADDSS, IX86_BUILTIN_VFNMADDSD,
1299         IX86_BUILTIN_VFNMADDPS, IX86_BUILTIN_VFNMADDPD,
1300         IX86_BUILTIN_VFNMSUBSS, IX86_BUILTIN_VFNMSUBSD,
1301         IX86_BUILTIN_VFNMSUBPS, IX86_BUILTIN_VFNMSUBPD,
1302         IX86_BUILTIN_VFMSUBADDPS256, IX86_BUILTIN_VFMSUBADDPD256,
1303         IX86_BUILTIN_VFNMADDPS256, IX86_BUILTIN_VFNMADDPD256,
1304         IX86_BUILTIN_VFNMSUBPS256, IX86_BUILTIN_VFNMSUBPD256): Remove.
1305         (bdesc_multi_arg): Remove the corresponding builtins.
1306         * config/i386/i386.md (UNSPEC_FMA4_INTRINSIC): Remove.
1307         (UNSPEC_FMA4_FMSUBADD): Remove.
1308         (UNSPEC_FMADDSUB): Rename from UNSPEC_FMA4_FMADDSUB.
1309         * config/i386/sse.md (FMA4MODEF4): Remove.
1310         (FMAMODE): Add.
1311         (fma<mode>4): New expander.
1312         (*fma4i_fmadd_<mode>): Macroize from fma4i_fmadd<mode>4 patterns,
1313         and use FMA rtx code instead of UNSPEC_FMA4_INTRINSIC.
1314         (*fma4i_fmsub_<mode>): Similarly.
1315         (*fma4i_fnmadd_<mode>): Similarly.
1316         (*fma4i_fnmsub_<mode>): Similarly.
1317         (fma4i_vmfmadd_<mode>): Scalar patterns zero-extend, not merge
1318         with the first operand.
1319         (fma4i_fmaddsub_<mode>): Represent with UNSPEC_FMADDSUB instead
1320         of explicit arithmetic.  Macroize with AVXMODEF2P.
1321         (*fma4i_fmsubadd_<mode>): Represent with UNSPEC_FMADDSUB + NEG.
1322         (xop_frcz<mode>2): Macroize with FMAMODE.
1323         (xop_vmfrcz<mode>2): Scalar patterns zero-extend, not merge with
1324         the first operand.
1325         * config/i386/fma4intrin.h (_mm_msub_ps): Use vfmadd intrinsic with
1326         extra negations.
1327         (_mm_msub_pd, _mm_msub_ss, _mm_msub_sd): Likewise.
1328         (_mm_nmacc_ps, _mm_nmacc_pd, _mm_nmacc_ss, _mm_nmacc_sd): Likewise.
1329         (_mm_nmsub_ps, _mm_nmsub_pd, _mm_nmsub_ss, _mm_nmsub_sd): Likewise.
1330         (_mm256_msub_ps, _mm256_msub_pd): Likewise.
1331         (_mm256_nmacc_ps, _mm256_nmacc_pd): Likewise.
1332         (_mm256_nmsub_ps, _mm256_nmsub_pd): Likewise.
1333         (_mm_msubadd_ps): Use vfmaddsub intrinsic with extra negation.
1334         (_mm_msubadd_pd, _mm256_msubadd_ps, _mm256_msubadd_pd): Likewise.
1335
1336 2010-10-18  Bernd Schmidt  <bernds@codesourcery.com>
1337
1338         PR rtl-optimization/45966
1339         * combine.c (try_combine): If added_sets_2, deal with the case
1340         where i0 feeds i1 and i1 feeds i2.
1341
1342 2010-10-18  Jan Hubicka  <jh@suse.cz>
1343
1344         * ipa.c (cgraph_externally_visible_p): Handle externally visible and
1345         preserve flags before trying to guess on visibility.
1346         (varpool_externally_visible_p): New function.
1347         (function_and_variable_visibility): Use it.
1348
1349 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
1350
1351         Implemented parsing @synthesize and @dynamic for Objective-C.
1352         * c-parser.c (c_parser_external_declaration): Recognize
1353         RID_AT_SYNTHESIZE and RID_AT_DYNAMIC.
1354         (c_parser_objc_at_synthesize_declaration): New.
1355         (c_parser_objc_at_dynamic_declaration): New.
1356
1357 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
1358
1359         * c-parser.c (c_parser_objc_class_declaration): After finding an
1360         error, parse the whole declaration then reset parser->error.
1361
1362 2010-10-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
1363
1364         PR target/46041
1365         * tree.h (mode_has_fma): Delete, move to c-cppbuiltins.c.
1366         * builtins.c (mode_has_fma): Ditto.
1367
1368 2010-10-18  Steve Ellcey  <sje@cup.hp.com>
1369
1370         PR target/36898
1371         PR middle-end/43760
1372         * config/ia64/ia64.c (rws_access_regno): Remove predicate check.
1373
1374 2010-10-18  Joseph Myers  <joseph@codesourcery.com>
1375
1376         * config/i386/i386.c (ix86_option_override_internal): Define and
1377         use USE_X86_64_FRAME_POINTER for 64-bit flag_omit_frame_pointer
1378         default.
1379         * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Remove.
1380         (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Define.
1381
1382 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
1383
1384         Merge from 'apple/trunk' branch on FSF servers.
1385         * c-parser.c (c_parser_objc_type_name): Adapted to new parser the
1386         following Objective-C change:
1387
1388         2005-10-10  Fariborz Jahanian <fjahanian@apple.com>
1389
1390         Radar 4301047
1391         * c-parse.in (objc_quals): Build objc qualifier list same way
1392         as gcc-3.3
1393
1394 2010-10-18  Jan Hubicka  <jh@suse.cz>
1395
1396         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p,
1397         function_and_variable_visibility): Revert accidental commit.
1398
1399 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
1400
1401         Merge from 'apple/trunk' branch on FSF servers.
1402         * c-parser.c (c_parser_typeof_specifier): Adapted to new parser
1403         the following Objective-C change:
1404
1405         2005-10-07  Fariborz Jahanian <fjahanian@apple.com>
1406
1407         Radar 4204796
1408         * c-parse.in (typespec_nonreserved_nonattr): Remove volatile from
1409         'volatilized' type used in a typeof operator.
1410
1411 2010-10-18  Eric Botcazou  <ebotcazou@adacore.com>
1412
1413         * tree-flow.h (gimple_purge_all_dead_abnormal_call_edges): Declare.
1414         * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): Move around and
1415         rewrite modelled on gimple_purge_dead_eh_edges.
1416         (gimple_purge_all_dead_abnormal_call_edges): New function.
1417         * tree-inline.c (expand_call_inline): Call gimple_purge_dead_eh_edges
1418         directly instead of through gimple_purge_dead_abnormal_call_edges.
1419         * tree-ssa-pre.c (need_ab_cleanup): New static variable.
1420         (eliminate): Set bit in need_ab_cleanup for the basic block if we have
1421         removed AB side-effects from one of its statements.
1422         (init_pre): Initialize need_ab_cleanup.
1423         (fini_pre): Purge dead abnormal call edges and clean up the CFG if bits
1424         are set in need_ab_cleanup.  Free need_ab_cleanup afterward.
1425
1426 2010-10-18  Jakub Jelinek  <jakub@redhat.com>
1427
1428         PR c/46015
1429         * c-parser.c (c_parser_statement_after_labels): Call mark_exp_read
1430         on computed goto argument.
1431
1432 2010-10-18  Richard Guenther  <rguenther@suse.de>
1433
1434         PR tree-optimization/45967
1435         * tree-ssa-structalias.c (type_could_have_pointers): Remove.
1436         (could_have_pointers): Likewise.
1437         (handle_rhs_call, handle_const_call, handle_pure_call,
1438         find_func_aliases, intra_create_variable_infos): Remove calls to them.
1439         (struct fieldoff): Add must_have_pointers field.
1440         (type_must_have_pointers): New function.
1441         (field_must_have_pointers): Likewise.
1442         (push_fields_onto_fieldstack): Remove must_have_pointers_p argument.
1443         Adjust field merging.
1444         (create_function_info_for): May-have-pointers of varinfo is
1445         almost always true.
1446         (create_variable_info_for_1): Likewise.
1447
1448 2010-10-18  Tejas Belagod  <tejas.belagod@arm.com>
1449
1450         * config/arm/neon.md (neon_move_hi_quad_<mode>): Fix the order
1451         of operands to vec_concat.
1452
1453 2010-10-18  Richard Guenther  <rguenther@suse.de>
1454
1455         PR lto/44950
1456         * tree.c (free_lang_data_in_decl): As we clear TYPE_METHODS
1457         also clear references to entries of it.
1458
1459 2010-10-18  Andi Kleen  <ak@linux.intel.com>
1460
1461         PR other/43448
1462         * gccbug.in: Remove.
1463         * Makefile.in (GCCBUG_INSTALL_NAME, gccbug): Remove
1464         (doc, distclean, install-common): Remove reference to gccbug.
1465         * configure: Regenerate.
1466         * configure.ac (all_outputs): Remove gccbug.
1467         * doc/configfiles.texi: Remove references to gccbug.
1468         * doc/sourcebuild.texi: Dito.
1469
1470 2010-10-18  Jakub Jelinek  <jakub@redhat.com>
1471
1472         PR middle-end/46019
1473         * fold-const.c (fold_binary_loc): If integer_pow2p has
1474         TREE_INT_CST_LOW zero, look at TREE_INT_CST_HIGH.
1475
1476 2010-10-18  Basile Starynkevitch  <basile@starynkevitch.net>
1477             Jeremie Salvucci  <jeremie.salvucci@free.fr>
1478
1479         * gengtype.c (verbosity_level): Add variable.
1480         (set_gc_used): Count variables for verbosity.
1481         (close_output_files): Backing up files, counting written ones
1482         verbosily.
1483         (write_types): Count emitted functions for verbosity. Added
1484         debug messages.
1485         (write_enum_defn): Count structures for verbosity. Added debug
1486         messages.
1487         (gengtype_long_options): Add "verbose" & "backupdir".
1488         (print_usage): Ditto.
1489         (main): Verbose display of parsed files.
1490
1491         * gengtype.h (verbosity_level): Add declaration.
1492
1493 2010-10-18  Basile Starynkevitch  <basile@starynkevitch.net>
1494
1495         * gengtype.c (parse_program_options): Add allocation of
1496         plugin_files, and correct test on nb_plugin_files.
1497
1498 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
1499
1500         Merge from 'apple/trunk' branch on FSF servers.
1501
1502         2006-03-27 Fariborz Jahanian <fjahanian@apple.com>
1503
1504         Radar 4133425
1505         * c-decl.c (undeclared_variable): Issue diagnostic on
1506         private 'ivar' access.
1507
1508 2010-10-17  Uros Bizjak  <ubizjak@gmail.com>
1509
1510         PR target/46051
1511         * config/i386/sse.md (vec_interleave_highv4df): Fix third RTX of
1512         generated sequence to match *avx_vperm2f128<mode>_nozero.
1513         (vec_interleave_lowv4df): Ditto.
1514         (vec_interleave_highv8sf): Ditto.
1515         (vec_interleave_lowv8sf): Ditto.
1516
1517 2010-10-17  Kai Tietz  <kai.tietz@onevision.com>
1518
1519         * libgcov.c (create_file_directory): Enable it for win32 case.
1520         (gcov_exit): De-couple GCOV_PREFIX and GCOV_PREFIX_STRIP.
1521         * doc/gcov.texi (GCOV_PREFIX): Adjusted.
1522         (GCOV_PREFIX_SKIP): Likewise.
1523
1524 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
1525
1526         * doc/objc.texi (GNU Objective-C runtime API): New section.
1527         (Modern GNU Objective-C runtime API): New section.
1528         (Traditional GNU Objective-C runtime API): New section.
1529         (Executing code before main): Mention that this section is
1530         specific to the GNU Objective-C runtime.
1531         (Garbage Collection): Same.
1532
1533 2010-10-17  Uros Bizjak  <ubizjak@gmail.com>
1534
1535         * c-parser.c (c_parser_for_statement): Move initialization of
1536         cond and incr before if.
1537
1538 2010-10-17  Anatoly Sokolov  <aesok@post.ru>
1539
1540         * target.def (preferred_output_reload_class): New hook.
1541         * doc/tm.texi.in (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Document.
1542         * doc/tm.texi: Regenerate.
1543         * targhooks.c (default_preferred_output_reload_class): New function.
1544         * targhooks.h (default_preferred_output_reload_class): Declare.
1545         * reload.c (find_dummy_reload): Change rclass argument type from
1546         enum reg_class to reg_class_t. Change this_alternative array type
1547         from enum reg_class to reg_class_t.
1548         Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
1549         (push_reload): Change preferred_class variable type to reg_class_t.
1550         Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
1551         * recog.c (reg_fits_class_p): Change result type to bool. Change cl
1552         argument type from enum reg_class to reg_class_t. Use
1553         HARD_REGISTER_NUM_P predicate.
1554         * recog.h (reg_fits_class_p): Update prototype.
1555
1556         * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
1557         * config/i386/i386-protos.h (ix86_preferred_output_reload_class):
1558         Remove.
1559         * config/i386/i386.c (ix86_preferred_output_reload_class): Make
1560         static. Change regclass argument and result types from enum reg_class
1561         to reg_class_t.
1562         (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
1563
1564 2010-10-17  Iain Sandoe  <iains@gcc.gnu.org>
1565
1566         * c-parser.c (c_parser_objc_class_instance_variables): Update to use
1567         visibility enum, and handle @package.
1568
1569 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
1570
1571         * doc/objc.texi (What you can and what you cannot do in +load):
1572         Document that sending messages to constant string objects in +load
1573         is not guaranteed to work.
1574
1575 2010-10-16  Jan Hubicka  <jh@suse.cz>
1576
1577         PR middle-end/44206
1578         * ipa.c (cgraph_remove_unreachable_nodes): Cleanup; check
1579         existence of refrences before removing the function.
1580
1581 2010-10-16  Jan Hubicka  <jh@suse.cz>
1582
1583         * cgraph.c (dump_cgraph_node): Dump same_comdat_group,
1584         only_called_at_startup and only_called_at_exit.
1585         (cgraph_propagate_frequency): Compute only_called_at_startup and
1586         only_called_at_exit.
1587         * cgraph.h (struct cgraph_node): New fileds only_called_at_startup and
1588         only_called_at_exit.
1589         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream the new
1590         flags.
1591         * predict.c (compute_function_frequency): Initialize the new flags.
1592
1593 2010-10-16  Eric Botcazou  <ebotcazou@adacore.com>
1594
1595         * gimplify.c (gimplify_type_sizes) <ARRAY_TYPE>: If the type is to be
1596         ignored for debug info purposes, do not clear the DECL_IGNORED_P flag
1597         on the bounds of its domain.
1598         * tree.h (DECL_IGNORED_P): Document effect on TYPE_DECL specifically.
1599
1600 2010-10-16  Anatoly Sokolov  <aesok@post.ru>
1601
1602         * config/avr/avr.h (PREFERRED_RELOAD_CLASS): Remove.
1603         * config/avr/avr-protos.h (preferred_reload_class): Remove.
1604         * config/avr/avr.c (preferred_reload_class): Remove.
1605         * config/pa/pa.h (PREFERRED_RELOAD_CLASS): Remove.
1606         * config/pa/pa.c (emit_move_sequence): Update comment
1607         * config/arc/arc.h (PREFERRED_RELOAD_CLASS): Remove.
1608         * config/crx/crx.h (PREFERRED_RELOAD_CLASS): Remove.
1609         * config/fr30/fr30.h (PREFERRED_RELOAD_CLASS): Remove.
1610         * config/frv/frv.h (PREFERRED_RELOAD_CLASS): Remove.
1611         * config/h8300/h8300.h (PREFERRED_RELOAD_CLASS): Remove.
1612         * config/lm32/lm32.h (PREFERRED_RELOAD_CLASS): Remove.
1613         * config/m32r/m32r.h (PREFERRED_RELOAD_CLASS): Remove.
1614         * config/moxie/moxie.h (PREFERRED_RELOAD_CLASS): Remove.
1615         * config/picochip/picochip.h (PREFERRED_RELOAD_CLASS): Remove.
1616         * config/rx/rx.h (PREFERRED_RELOAD_CLASS): Remove.
1617         * config/spu/spu.h (PREFERRED_RELOAD_CLASS): Remove.
1618         * config/v850/v850.h (PREFERRED_RELOAD_CLASS): Remove.
1619         * config/vax/vax.h (PREFERRED_RELOAD_CLASS): Remove.
1620
1621 2010-10-16  Joseph Myers  <joseph@codesourcery.com>
1622
1623         * opts.c (set_fast_math_flags,
1624         set_unsafe_math_optimizations_flags): Make static.
1625         * toplev.h (set_fast_math_flags,
1626         set_unsafe_math_optimizations_flags): Remove prototypes.
1627
1628 2010-10-16  Joseph Myers  <joseph@codesourcery.com>
1629
1630         * config/arm/arm.c (arm_option_optimization): Set
1631         flag_section_anchors to 1 not 2.
1632         * config/i386/i386.c (ix86_option_override_internal): Check
1633         global_options_set.x_flag_zee and
1634         global_options_set.x_flag_omit_frame_pointer.
1635         (ix86_option_optimization): Don't set flag_omit_frame_pointer and
1636         flag_zee to 2.
1637         * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Check
1638         global_options_set.x_flag_omit_frame_pointer.
1639         * config/rs6000/rs6000.c (rs6000_option_init_struct): Set
1640         opts->x_flag_section_anchors to 1 not 2.
1641         * config/sh/sh.c (sh_option_optimization): Don't set
1642         flag_schedule_insns to 2.
1643         (sh_option_override): Check
1644         global_options_set.x_flag_schedule_insns.
1645         * opts.c (finish_options): Check opts_set->x_flag_section_anchors.
1646
1647 2010-10-16  Kai Tietz  <kai.tietz@onevision.com>
1648
1649         * configure.ac: Make sure inhibit_libc remains false for mingw targets
1650         as cross.
1651         * configure: Regenerated.
1652
1653 2010-10-15  Xinliang David Li  <davidxl@google.com>
1654
1655         * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths): New
1656         function.
1657         (use_pred_not_overlap_with_undef_path_pred): Outline phi arg pruning
1658         into a recursive function.
1659
1660 2010-10-15  Uros Bizjak  <ubizjak@gmail.com>
1661
1662         * config/i386/i386.md (*movdfcc_1_rex64): Correct mode attribute.
1663         (*movdfcc_1): ditto.
1664
1665 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
1666
1667         * target.def (target_option.init_struct): New hook.
1668         * doc/tm.texi.in (TARGET_OPTION_INIT_STRUCT): New @hook.
1669         * doc/tm.texi: Regenerate.
1670         * hooks.c (hook_void_gcc_optionsp): New.
1671         * hooks.h (hook_void_gcc_optionsp): Declare.
1672         * langhooks-def.h (lhd_init_options_struct): Remove.
1673         (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define to hook_void_gcc_optionsp.
1674         * langhooks.c (lhd_init_options_struct): Remove.
1675         * opts.c (init_options_struct): Also call
1676         targetm.target_option.init_struct.
1677         * config/i386/i386.c (ix86_option_init_struct,
1678         TARGET_OPTION_INIT_STRUCT): New.
1679         (ix86_option_optimization): Move some settings to
1680         ix86_option_init_struct.
1681         * config/pdp11/pdp11.c (pdp11_option_init_struct,
1682         TARGET_OPTION_INIT_STRUCT): New.
1683         (pdp11_option_optimization): Move some settings to
1684         pdp11_option_init_struct.
1685         * config/rs6000/rs6000.c (rs6000_option_optimization): Replace by
1686         rs6000_option_init_struct.  Use options structure pointer.
1687         (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
1688         * config/s390/s390.c (s390_option_init_struct,
1689         TARGET_OPTION_INIT_STRUCT): New.
1690         (s390_option_optimization): Don't set
1691         flag_asynchronous_unwind_tables here.
1692         * config/sh/sh.c (sh_option_init_struct,
1693         TARGET_OPTION_INIT_STRUCT): New.
1694         (sh_option_optimization): Don't set flag_finite_math_only here.
1695         * config/spu/spu.c (spu_option_optimization): Replace by
1696         spu_option_optimization.  Use options structure pointer.
1697         (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
1698
1699 2010-10-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
1700
1701         * doc/md.texi (Standard Names): Add fma@var{m}4 documentation.
1702
1703         * doc/rtl.texi (RTX_TERNARY): Document FMA is ternary.  Add
1704         SIGN_EXTRACT and ZERO_EXTRACT which were missing.
1705         (Standard names): Document fma.
1706
1707         * doc/cpp.texi (Common Predefined Macros): Document __FP_FAST_FMA,
1708         __FP_FAST_FMAF, __FP_FAST_FMAL.
1709
1710         * builitns.c (expand_builtin_mathfn_ternary): New function for
1711         expanding ternary math functions, like fma.
1712         (expand_builtin): Call it for the fma builtins.
1713
1714         * simplify-rtx.c (simplify_ternary_operation): Don't simplify FMA
1715         ops at present.
1716
1717         * tree-vect-stmts.c (vectorizable_call): Allow 3 argument
1718         vectorizable functions to support vectorizing fma.
1719
1720         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
1721         Handle fma builtins.
1722
1723         * config/rs6000/vsx.md (UNSPEC_VSX_MADD): Delete.
1724         (UNSPEC_VSX_MSUB): Ditto.
1725         (UNSPEC_VSX_NMADD): Ditto.
1726         (UNSPEC_VSX_NMSUB): Ditto.
1727         (vsx_fmadd<mode>4*): Rewrite to use FMA rtl in some cases instead
1728         of UNSPEC. Renumber combiner patterns.
1729         (vsx_fmsub<mode>4*): Ditto.
1730         (vsx_fnmadd<mode>4*): Ditto.
1731         (vsx_fnmsub<mode>4*): Ditto.
1732
1733         * config/rs6000/altivec.md (UNSPEC_VNMSUBFP): Delete.
1734         (altivec_vmaddfp): Rewrite to use FMA rtl if no fused
1735         multiply/add.  Rename combiner pattern, and add TARGET_FUSED_MADD test.
1736         (altivec_vmaddfp_1): Ditto.
1737         (altivec_vmaddfp_2): Ditto.
1738         (atlivec_mulv4sf3): Ditto.
1739         (altivec_vnmsubfp): Ditto.
1740         (altivec_vnmsubfp_1): Ditto.
1741         (altivec_vnmsubfp_2): Ditto.
1742         (altivec_vnmsubfp_3): Delete.
1743
1744         * config/rs6000/rs6000.md (fmasf4): New insns for fma builtin support.
1745         (fmasf4_fpr): Ditto.
1746         (fmssf4_fpr): Ditto.
1747         (fnmasf4_fpr): Ditto.
1748         (fnmssf4_fpr): Ditto.
1749         (fmadf4): Ditto.
1750         (fmadf4_fpr): Ditto.
1751         (fmsdf4_fpr): Ditto.
1752         (fnmadf4_fpr): Ditto.
1753         (fnmsdf4_fpr): Ditto.
1754
1755         * optabs.h (OTI_fma): Add fma optab.
1756         (fma_optab): Ditto.
1757
1758         * genopinit.c (optabs): Set fma optab.
1759
1760         * rtl.def (FMA): Add FMA rtl.
1761
1762         * tree.h (mode_has_fma): New function to return if MODE supports a
1763         fast multiply and add instruction.
1764         * builtins.c (mode_has_fma): Ditto.
1765
1766 2010-10-15  Jan Hubicka  <jh@suse.cz>
1767
1768         * lto-streamer-out.c (write_symbol): Use pointer set of seen
1769         objects instead of bitmap.
1770         (produce_symtab): Likewise; output defined symbols first.
1771
1772 2010-10-15  Jie Zhang  <jie@codesourcery.com>
1773
1774         * doc/invoke.texi: Add -fstrict-volatile-bitfields to
1775         Option Summary and Index.
1776
1777 2010-10-15  Richard Guenther  <rguenther@suse.de>
1778
1779         * tree.c (free_lang_data_in_decl): Clear DECL_INITIAL
1780         for automatic variables again.
1781
1782 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
1783
1784         * doc/extend.texi (Variable Length): Don't refer to VLAs not
1785         conforming to C99.
1786
1787 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
1788
1789         * config/rx/rx.c (rx_option_optimization): Change to
1790         rx_override_options_after_change.  Don't change
1791         flag_lto_compression_level.  Don't check for changes to whether
1792         FPU instructions can be used.  Check and set only
1793         flag_finite_math_only, not other fast-math flags.
1794         (rx_option_override): Call rx_override_options_after_change.
1795         (TARGET_OPTION_OPTIMIZATION): Remove.
1796         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
1797
1798 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
1799
1800         * config/rs6000/rs6000.c (rs6000_option_optimization): Don't
1801         disable section anchors for lang_hooks.name[4] != 'O'.
1802
1803 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
1804
1805         * config/frv/frv.c (frv_option_optimization,
1806         TARGET_OPTION_OPTIMIZATION): Remove.
1807         * config/frv/frv.h (RCSP_SOFTWARE_PIPELINING): Remove.
1808
1809 2010-10-15  Michael Matz  <matz@suse.de>
1810
1811         * cgraphunit.c (clone_of_p): Define unconditionally.
1812
1813 2010-10-15  Richard Guenther  <rguenther@suse.de>
1814
1815         PR lto/45957
1816         * tree.c (free_lang_data_in_decl): Do not clear DECL_INITIAL of vars.
1817
1818 2010-10-15  Chung-Lin Tang  <cltang@codesourcery.com>
1819
1820         * ifcvt.c (find_active_insn_before): New function.
1821         (find_active_insn_after): New function.
1822         (cond_exec_process_if_block): Use new functions to replace
1823         prev_active_insn() and next_active_insn().
1824
1825 2010-10-14  Yao Qi  <yao@codesourcery.com>
1826
1827         PR target/45447
1828         * config/arm/arm.c (arm_build_builtin_va_list): Assign
1829         va_list_name to TYPE_STUB_DECL (va_list_type).
1830
1831 2010-10-14  Jan Hubicka  <jh@suse.cz>
1832
1833         PR middle-end/45621
1834         * cgraph.c (cgraph_update_edges_for_call_stmt_node): When new call is
1835         redirected to clone, be happy.
1836         * cgraph.h (cgraph node): Enable former_clone_of unconditinally.
1837         * cgraphunit.c (verify_cgraph_node, cgraph_materialize_clone): Handle
1838         former_clone_of unconditionally.
1839
1840 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
1841
1842         Merge from FSF apple 'trunk' branch.
1843         2006 Fariborz Jahanian <fjahanian@apple.com>
1844
1845         Radars 4436866, 4505126, 4506903, 4517826
1846         * c-parser.c (c_parser, objc_property_attr_context) New flag.
1847         (c_lex_one_token): Handle property attributes.
1848         (c_parser_external_declaration): Handle @property.
1849         (c_parser_declaration_or_fndef): Warn on invalid attributes before
1850         @alias, @class, @end and @property objc keywords.
1851         (c_parser_objc_methodprotolist): Handle @property.
1852         (c_parser_objc_property_attrlist): New.
1853         (c_parser_objc_at_property): New.
1854         * c-typeck.c (build_component_ref): Handle CLASS.property syntax.
1855         (build_modify_expr): Likewise.
1856
1857 2010-10-14  Jakub Jelinek  <jakub@redhat.com>
1858
1859         PR tree-optimization/46008
1860         * tree-if-conv.c (predicate_bbs): Try to canonicalize c2 if possible.
1861
1862 2010-10-14  Richard Guenther  <rguenther@suse.de>
1863
1864         PR tree-optimization/44913
1865         * tree-data-ref.c (disjoint_objects_p): Remove.
1866         (dr_may_alias_p): Simplify.  Only hand the base object to
1867         the alias-oracle.
1868         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
1869         some more trees, bail out instead of asserting.
1870         (ptr_derefs_may_alias_p): Likewise.  Export.
1871         (refs_may_alias_p_1): Handle STRING_CSTs.
1872         * tree-ssa-alias.h (ptr_derefs_may_alias_p): Declare.
1873
1874 2010-10-14  Joseph Myers  <joseph@codesourcery.com>
1875
1876         PR c/45969
1877         * c-typeck.c (build_binary_op): Don't try to compute a semantic
1878         type with excess precision for boolean operations.
1879
1880 2010-10-14  Jeremie Salvucci  <jeremie.salvucci@free.fr>
1881             Basile Starynkevitch  <basile@starynkevitch.net>
1882
1883         * gengtype.c:  Include getopt.h and version.h.
1884
1885         (lang_bitmap, struct outf, outf_p)
1886         (get_output_file_with_visibility, oprintf): Definitions moved to
1887         gengtype.h
1888         (output_files, header_file, srcdir, srcdir_len, this_file)
1889         (do_dump): No more static variables.
1890         (do_debug): New.
1891         (dbgprint_count_type_at): Added new function.
1892         (gengtype_long_options): New.
1893         (print_usage, print_version, parse_program_options): New.
1894         (main): Call parse_program_options, and removed old option
1895         handling code.  Added some debug output.
1896
1897         * gengtype.h:  Updated copyright year.
1898         (lang_bitmap, struct outf, outf_p, header_file, oprintf)
1899         (get_output_file_with_visibility, srcdir, srcdir_len, do_dump):
1900         Moved from gengtype.c to here.
1901         (do_debug, read_state_filename, write_state_filename): New variables.
1902         (DBGPRINTF, DBGPRINT_COUNT_TYPE): New macros.
1903
1904         * Makefile.in:
1905         (REVISION): Always defined.
1906         (version.o): Removed ifdef REVISION_c.
1907         (s-gtype): Pass arguments to build/gengtype program.
1908         (build/version.o): Added building rule.
1909         (build/gengtype$(build_exeext)): Added build/version.o.
1910
1911 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
1912
1913         Partial merge of 'ObjC GC' from FSF apple 'trunk' branch.
1914         * config/darwin-c.c (darwin_cpp_builtins): Define __weak and
1915         __strong macros.
1916
1917 2010-10-14  Eric Botcazou  <ebotcazou@adacore.com>
1918
1919         * sched-deps.c (sched_insn_is_legitimate_for_speculation): Invoke
1920         may_trap_or_fault_p instead of may_trap_p predicate.
1921         * tree.c (substitute_in_expr): Propagate the TREE_THIS_NOTRAP flag.
1922         (substitute_placeholder_in_expr): Likewise.
1923         * tree-inline.c (remap_gimple_op_r): Propagate the TREE_THIS_NOTRAP
1924         flag on MEM_REF nodes.
1925         (copy_tree_body_r): Propagate the TREE_READONLY and TREE_THIS_NOTRAP
1926         flags on INDIRECT_REF nodes.
1927
1928 2010-10-14  Nathan Froyd  <froydnj@codesourcery.com>
1929
1930         * config.gcc (arm*-*-linux-*eabi) <tm_file>: Add bpabi.h from libgcc.
1931         (arm*-*-uclinux*eabi) <tm_file>: Likewise.
1932         (arm*-*-eabi*) <tm_file>: Likewise.
1933         (frv-*-elf) <tm_file>: Add frv-abi.h from libgcc.
1934         (frv-*-*linux*) <tm_file>: Likewise.
1935         * config/arm/bpabi.h: Delete DECLARE_LIBRARY_RENAMES stanzas
1936         and associated helper macros.
1937         * config/frv/frv-abi.h: Delete.
1938
1939 2010-10-14  Richard Guenther  <rguenther@suse.de>
1940
1941         PR lto/44561
1942         * tree.def (NULLPTR_TYPE): New tree code.
1943         * dbxout.c (dbxout_type): Handle NULLPTR_TYPE.
1944         * dwarf2out.c (is_base_type): Likewise.
1945         (gen_type_die_with_usage): Likewise.
1946         * sdbout.c (plain_type_1): Likewise.
1947         * tree.c (build_int_cst_wide): Likewise.
1948         * gimple.c (gimple_types_compatible_p_1): NULLPTR_TYPE types are equal.
1949
1950 2010-10-14  Joseph Myers  <joseph@codesourcery.com>
1951
1952         * params.c (params_finished): New.
1953         (add_params): Assert !params_finished.
1954         (finish_params): New.
1955         (set_param_value_internal): Take params and params_set
1956         parameters.  Assert params_finished.
1957         (set_param_value, maybe_set_param_value): Take params and
1958         params_set parameters.  Update calls to set_param_value_internal.
1959         (set_default_param_value): Assert !params_finished.  Don't use
1960         set_param_value_internal.
1961         (default_param_value, init_param_values): New.
1962         * params.h (struct param_info): Change value to default_value.
1963         Remove set.
1964         (set_param_value, maybe_set_param_value): Add params and
1965         params_set parameters.
1966         (PARAM_VALUE): Get parameters from global_options.
1967         (PARAM_SET_P): Remove.
1968         (finish_params, default_param_value, init_param_values): New.
1969         * common.opt (param_values): New Variable.
1970         * config/arm/arm.c (arm_option_override): Pass extra arguments to
1971         maybe_set_param_value.
1972         * config/i386/i386.c (ix86_option_override_internal): Pass extra
1973         arguments to maybe_set_param_value.
1974         * config/picochip/picochip.c (picochip_option_override): Pass
1975         extra arguments to maybe_set_param_value.
1976         * config/rs6000/rs6000.c (rs6000_option_override_internal): Pass
1977         extra arguments to maybe_set_param_value.
1978         * config/s390/s390.c (s390_option_override): Use
1979         maybe_set_param_value instead of set_param_value.  Pass extra
1980         arguments to maybe_set_param_value.
1981         * config/sparc/sparc.c (sparc_option_override): Pass extra
1982         arguments to maybe_set_param_value.
1983         * config/spu/spu.c (spu_option_override): Pass extra arguments to
1984         maybe_set_param_value.
1985         * opts.c (handle_param): Take opts and opts_set parameters.
1986         Update call to set_param_value.
1987         (initial_min_crossjump_insns, initial_max_fields_for_field_sensitive,
1988         initial_loop_invariant_max_bbs_in_loop): Remove.
1989         (init_options_once): Don't set them.
1990         (init_options_struct): Initialize parameters structures.
1991         (default_options_optimization): Use default_param_value when
1992         restoring defaults.  Update calls to maybe_set_param_value.
1993         (finish_options): Update calls to maybe_set_param_value.
1994         (common_handle_option): Update calls to handle_param and
1995         set_param_value.
1996         * toplev.c (DEFPARAM): Update definition for changes to param_info.
1997         (general_init): Call finish_params.
1998
1999 2010-10-14  Nick Clifton  <nickc@redhat.com>
2000
2001         * config/mn10300/mn10300.h (CONSTANT_ALIGNMENT): Define.
2002         (DATA_ALIGNMENT, LOCAL_ALIGNMENT): Define.
2003         (FIRST_PSEUDO_REGISTER): Increase by one.
2004         (FIXED_REGISTERS, CALL_USED_REGISTERS): Update with CC_REG.
2005         (HARD_REGNO_MODE_OK): Call mn10300_hard_regno_mode_ok.
2006         (MODES_TIEABLE): Call mn10300_modes_tieable.
2007         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add CC_REGS.
2008         (LEGITIMATE_CONSTANT_P): Call mn10300_legitimate_constant_p.
2009         (CC_OVERFLOW_UNUSABLE, CC_NO_CARRY, NOTICE_UPDATE_CC)
2010         (SELECT_CC_MODE, REVERSIBLE_CC_MODE): Delete.
2011         (REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES): Add CC register.
2012         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
2013         (mn10300_cc_status_mdep): Delete.
2014         (CC_STATUS_MDEP, CC_STATUS_MDEP_INIT): Delete.
2015         * config/mn10300/mn10300 (mn10300_option_override): Stop disabling
2016         the combine-stack-adjust pass.
2017         (print_operand): Use the mode of the comparison operation to
2018         select the comparison suffix.
2019         (notice_update_cc): Delete.
2020         (mn10300_secondary_reload_class): Remove test for stack pointer
2021         based arithmetic.
2022         (output_tst): Rename to mn10300_output_cmp.
2023         (impossible_plus_operand): Move into predicates.md.
2024         (mn10300_legitimize_address): Make static.
2025         (mn10300_legitimate_address_p): Make static.  Only allow SI sized
2026         constant pic operands.
2027         (mn10300_legitimate_constant_p): New function.
2028         (mn10300_case_values_threshold): Make static.
2029         (mn10300_hard_regno_mode_ok): New function.
2030         (mn10300_modes_tieable): New function.
2031         (mn10300_select_cc_mode): New function.
2032         * config/mn10300/predicates.md (impossible_plus_operand): Define.
2033         * config/mn10300/mn10300-protos.h: Tidy.
2034         (mn10300_legitimate_constant_p, mn10300_modes_tieable)
2035         (mn10300_hard_regno_mode_ok, mn10300_select_cc_mode): Prototype.
2036         * config/mn10300/mn10300.md (cc attribute): Delete.  Replace
2037         with clobbers or sets of CC_REG.
2038         (CC_REG): Define.
2039         (mov*): Remove use of CLR instruction.
2040         (cbranch_si4_<code>): New pattern/split.
2041         (integer_conditional_branch): New pattern.
2042         (cbranch_sf4_<code>): New pattern/split.
2043         (float_conditional_branch): New pattern.
2044         (casesi): Use addsi3 pattern instead of movsi pattern to add and
2045         move a value at the same time.
2046         (cc0 peepholes): Remove.
2047
2048 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
2049
2050         * sel-sched-ir.c (init_global_and_expr_for_insn): Set CANT_MOVE
2051         on RTX_FRAME_RELATED_P insns and the insn to which
2052         NOTE_INSN_EPILOGUE_BEG is attached.
2053         * sched-vis.c (print_value): Allow NULL value.
2054
2055 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
2056
2057         PR rtl-optimization/45570
2058         * sel-sched-ir.c (cfg_preds_1): When walking out of the region,
2059         assert that we are pipelining outer loops.  Allow returning
2060         zero predecessors.
2061
2062 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
2063
2064         * sel-sched-ir.c (maybe_tidy_empty_bb): Simplify comment.
2065         (tidy_control_flow): Tidy vertical space.
2066         (sel_remove_bb): New variable idx.  Use it to remember the basic
2067         block index before deleting the block.
2068         (sel_remove_empty_bb): Remove dead code, simplify and insert to ...
2069         (sel_merge_blocks): ... here.
2070         * sel-sched-ir.h (sel_remove_empty_bb): Remove prototype.
2071
2072 2010-10-14  Jakub Jelinek  <jakub@redhat.com>
2073
2074         * cse.c (is_dead_reg): Change into inline function that is not
2075         called through for_each_rtx.
2076         (set_live_p): Adjust caller.
2077         (insn_live_p): Don't reset DEBUG_INSNs here.
2078         (struct dead_debug_insn_data): New data.
2079         (count_stores, is_dead_debug_insn, replace_dead_reg): New functions.
2080         (delete_trivially_dead_insns): If there is just one setter for the
2081         dead reg that is referenced by some DEBUG_INSNs, create a DEBUG_EXPR
2082         and add DEBUG_INSN for it right before the removed setter and
2083         use the DEBUG_EXPR instead of the dead pseudo.
2084
2085 2010-10-14  Zdenek Dvorak  <rakdver@kam.uniff.cz>
2086
2087         * et-forest.c (et_nca): Return NULL immediately when
2088         the dominance forest has disjoint components.
2089
2090 2010-10-13  Vladimir Makarov  <vmakarov@redhat.com>
2091
2092         * ira.c (setup_class_hard_regs): Fix typo in indexing
2093         ira_non_ordered_class_hard_regs and ira_class_hard_reg_index.
2094
2095 2010-10-14  Tijs Wiebe Lefering  <twlevo@gmail.com>
2096
2097         * graph.c (inbb): New variable.
2098         (start_bb): Set inbb to 1 if output is inside of a building block.
2099         (end_bb): Check if output is inside of a building block.
2100
2101 2010-10-13  Eric Botcazou  <ebotcazou@adacore.com>
2102
2103         PR rtl-optimization/45912
2104         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Test the
2105         regno of registers instead of their index to compute the alignment.
2106
2107 2010-10-13  H.J. Lu  <hongjiu.lu@intel.com>
2108
2109         * config/i386/i386.c (ix86_build_const_vector): Check vector
2110         mode instead of scalar mode.
2111         (ix86_build_signbit_mask): Likewise.
2112         (ix86_expand_fp_absneg_operator): Updated.
2113         (ix86_expand_copysign): Likewise.
2114         (ix86_expand_int_vcond): Likewise.
2115         (ix86_emit_swdivsf): Likewise.
2116         (ix86_sse_copysign_to_positive): Likewise.
2117         (ix86_expand_sse_fabs): Likewise.
2118         * config/i386/i386.md (fixuns_trunc<mode>si2): Likewise.
2119         * config/i386/sse.md (copysign<mode>3): Likewise.
2120         (sse2_cvtudq2ps): Likewise.
2121         (vec_unpacku_float_hi_v4si): Likewise.
2122         (vec_unpacku_float_lo_v4si): Likewise.
2123
2124         * config/i386/i386.c (ix86_builtins): Add
2125         IX86_BUILTIN_CPYSGNPS256 and IX86_BUILTIN_CPYSGNPD256.
2126         (bdesc_args): Likewise.
2127         (ix86_builtin_vectorized_function): Support
2128         IX86_BUILTIN_CPYSGNPS256, IX86_BUILTIN_CPYSGNPD256,
2129         IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS_NR256,
2130         and IX86_BUILTIN_CVTPS2DQ256.
2131         (ix86_builtin_reciprocal): Support IX86_BUILTIN_SQRTPS_NR256.
2132
2133         * config/i386/sse.md (STORENT_MODE): New.
2134         (VEC_FLOAT_MODE): Likewise.
2135         (VEC_EXTRACT_MODE): Likewise.
2136         (*avx_cvtdq2pd256_2): Likewise.
2137         (vec_pack_trunc_v4df): Likewise.
2138         (vec_interleave_highv8sf): Likewise.
2139         (vec_interleave_lowv8sf): Likewise.
2140         (storent<mode>): Macroized.
2141         (<code><mode>2: absneg): Likewise.
2142         (copysign<mode>3): Likewise.
2143         (vec_extract<mode>): Likewise.
2144
2145         PR target/44180
2146         * config/i386/i386.c (expand_vec_perm_even_odd_1): Rewritten
2147         for V8SFmode.
2148
2149 2010-10-13  Richard Guenther  <rguenther@suse.de>
2150             H.J. Lu  <hongjiu.lu@intel.com>
2151
2152         * config/i386/sse.md (reduc_splus_v8sf): Add.
2153         (reduc_splus_v4df): Likewise.
2154         (vec_unpacks_hi_v8sf): Likewise.
2155         (vec_unpacks_lo_v8sf): Likewise.
2156         (*avx_cvtps2pd256_2): Likewise.
2157         (vec_unpacks_float_hi_v8si): Likewise.
2158         (vec_unpacks_float_lo_v8si): Likewise.
2159         (vec_interleave_highv4df): Likewise.
2160         (vec_interleave_lowv4df): Likewise.
2161
2162 2010-10-13  Richard Guenther  <rguenther@suse.de>
2163
2164         PR objc/45878
2165         * gimple-fold.c (gimple_fold_obj_type_ref): Leave OBJ_TYPE_REFs
2166         alone if there are no virtual methods.
2167
2168 2010-10-13  Richard Henderson  <rth@redhat.com>
2169
2170         * expr.c (build_personality_function): Take parameter LANG instead
2171         of parameter NAME.  Build the name based on the lang prefix and the
2172         unwind method in use.
2173         * tree.c (lhd_gcc_personality): Update call to
2174         build_personality_function.
2175
2176 2010-10-13  Richard Guenther  <rguenther@suse.de>
2177
2178         PR objc/45878
2179         * tree-ssa-ccpc (ccp_fold_stmt): Use gimple_fold_obj_type_ref.
2180
2181 2010-10-13  Eric Botcazou  <ebotcazou@adacore.com>
2182
2183         * cse.c (cse_insn): Fix thinko in the canonicalization of USE insns.
2184         Canonicalize input operands of ASM_OPERANDS insns.
2185
2186 2010-10-13  Richard Guenther  <rguenther@suse.de>
2187
2188         PR tree-optimization/45788
2189         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Delay
2190         EH update until fixup-cfg.
2191
2192 2010-10-13  Julian Brown  <julian@codesourcery.com>
2193
2194         * config/arm/arm.h (REG_CLASS_CONTENTS): Remove soft frame pointer
2195         from CORE_REGS and GENERAL_REGS classes.
2196         * config/arm/arm.md (*thumb1_movsi_insn): Ignore all parts of
2197         final constraint for register preferencing.
2198
2199 2010-10-13  Richard Guenther  <rguenther@suse.de>
2200
2201         PR tree-optimization/45970
2202         * tree-ssa-alias.h (stmt_kills_ref_p): Declare.
2203         * tree-ssa-alias.c (stmt_kills_ref_p_1): New function.
2204         (stmt_kills_ref_p): Likewise.
2205         * tree-ssa-dse.c (dse_optimize_stmt): Use it.
2206
2207 2010-10-13  Richard Guenther  <rguenther@suse.de>
2208
2209         PR tree-optimization/45982
2210         * tree-ssa-structalias.c (make_constraints_to): New function.
2211         (make_constraint_to): Implement in terms of make_constraints_to.
2212         (find_func_aliases): Properly make return values of pure/const
2213         functions escape if they assign to sth that is not a pointer.
2214
2215 2010-10-13  Richard Guenther  <rguenther@suse.de>
2216
2217         PR middle-end/45874
2218         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
2219         Fixup the CFG when EH was fixed up.
2220
2221 2010-10-13  Ira Rosen  <irar@il.ibm.com>
2222
2223         * tree-vect-slp.c (vect_get_constant_vectors): Fix comment.
2224         Use operand's type for POINTER_PLUS_EXPR.
2225
2226 2010-10-13  Alexandre Oliva  <aoliva@redhat.com>
2227
2228         * c-parser.c (c_parser_for_statement): Initialize incr.
2229
2230 2010-10-12  Xinliang David Li  <davidxl@google.com>
2231
2232         PR tree-optimization/45972
2233         * tree-ssa-uninit.c (compute_uninit_opnds_pos): Skip phis
2234         with too many arguments.
2235
2236 2010-10-12  Jakub Jelinek  <jakub@redhat.com>
2237
2238         PR fortran/45636
2239         * tree-ssa-forwprop.c: Include expr.h.
2240         (constant_pointer_difference, simplify_builtin_call): New functions.
2241         (tree_ssa_forward_propagate_single_use_vars): Call
2242         simplify_builtin_call on builtin calls.
2243
2244 2010-10-12  Eric Botcazou  <ebotcazou@adacore.com>
2245
2246         * config/sparc/sparc.md (*adddi3_insn_sp32): Rename.
2247         (*adddi3_extend_sp32): Likewise.
2248         (*subdi3_insn_sp32): Likewise.
2249         (*subdi3_extend_sp32): Likewise.
2250         (*negdi2_sp32): Use negative test for consistency.
2251
2252 2010-10-12  Nathan Froyd  <froydnj@codesourcery.com>
2253
2254         * libgcc2.h: Use __SIZEOF_DOUBLE__ instead of LIBGCC2_DOUBLE_TYPE_SIZE.
2255         (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
2256         * config/fixed-bit.h: Likewise.
2257         * config/rx/rx.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
2258         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
2259         * system.h (LIBGCC2_DOUBLE_TYPE_SIZE): Poison.
2260         * doc/tm.texi.in (LIBGCC2_HAS_DF_MODE): Use DOUBLE_TYPE_SIZE.
2261         (DF_SIZE): Likewise.
2262         * doc/tm.texi: Regenerate.
2263
2264 2010-10-12  Nathan Froyd  <froydnj@codesourcery.com>
2265
2266         * config/rs6000/predicates.md (scc_rev_comparison_operator): New.
2267         * config/rs6000/rs6000.md (*isel_reversed_signed_<mode>): New.
2268         (*isel_reversed_unsigned_<mode>): New.
2269         * config/rs6000/rs6000.c (output_isel): Accept GE/GEU/LE/LEU/NE
2270         as valid comparisons and adjust operands and output appropriately.
2271         (rs6000_rtx_costs) <CONST_INT>: Accept NE as a cost-0 outer_code.
2272
2273 2010-10-12  Chung-Lin Tang  <cltang@codesourcery.com>
2274
2275         * config/arm/arm.h (ARM_EXPAND_ALIGNMENT): Rename from
2276         DATA_ALIGNMENT and add COND parameter. Update comments above.
2277         (DATA_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !optimize_size.
2278         (LOCAL_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !flag_conserve_stack.
2279
2280 2010-10-12  H.J. Lu  <hongjiu.lu@intel.com>
2281
2282         PR bootstrap/45958
2283         * exec-tool.in: Support '-plugin' as the second option to the linker.
2284
2285 2010-10-12  Richard Henderson  <rth@redhat.com>
2286
2287         PR middle-end/45962
2288         * cfgexpand.c (add_stack_var): Ensure every variable has 1 byte.
2289         (expand_stack_vars): Assert large base allocated when used.
2290
2291 2010-10-12  Richard Guenther  <rguenther@suse.de>
2292
2293         * tree-ssa-structalias.c (get_constraint_for_1): Constants
2294         only point to nonlocal, not anything.
2295
2296 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
2297
2298         * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Use sjlj
2299         unwind info for exceptions.
2300
2301 2010-10-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2302
2303         PR testsuite/45851
2304         * doc/sourcebuild.texi (LTO Testing, dg-extra-ld-options):
2305         Document optional target selector.
2306
2307 2010-10-12  Joseph Myers  <joseph@codesourcery.com>
2308
2309         * flag-types.h: New.
2310         * Makefile.in (TH_H): Include $(OPTIONS_H) instead of $(FLAGS_H).
2311         (FLAGS_H): Include flag-types.h.  Include $(OPTIONS_H) instead of
2312         options.h.
2313         (OPTIONS_H): Define.
2314         (c-family/c-opts.o, lto-opts.o, opts.o): Use $(OPTIONS_H) instead
2315         of options.h.
2316         * configure.ac (tm_include_list): Include options.h not flags.h.
2317         * configure: Regenerate.
2318         * flags.h: Include flag-types.h.  Include options.h at top of file
2319         again.
2320         (enum debug_info_type, enum debug_info_level, enum
2321         debug_info_usage, enum symbol_visibility, struct visibility_flags,
2322         enum ira_algorithm, enum ira_region, enum excess_precision, enum
2323         graph_dump_types, enum stack_check_type,
2324         enum warn_strict_overflow_code): Move to flag-types.h
2325         * opth-gen.awk: Include flag-types.h in options.h.
2326
2327 2010-10-12  Jakub Jelinek  <jakub@redhat.com>
2328
2329         * expr.c (store_expr): Share code for STRING_CST and
2330         MEM_REF of &STRING_CST cases.  Don't require BLKmode, instead
2331         check if target is a MEM.
2332
2333         * rtl.h: Include hashtab.h.
2334         (iterative_hash_rtx): New prototype.
2335         * rtl.c (iterative_hash_rtx): New function.
2336         * dwarf2out.c (dw_loc_list_node): Add hash and emitted fields.
2337         (output_loc_list): Return immediately if emitted is set, set it.
2338         (hash_loc_operands, hash_locs, hash_loc_list,
2339         compare_loc_operands, compare_locs, loc_list_hash, loc_list_eq,
2340         optimize_location_lists_1, optimize_location_lists): New function.
2341         (dwarf2out_finish): Call optimize_location_lists.
2342         * Makefile.in (RTL_BASE_H): Depend on $(HASHTAB_H).
2343
2344 2010-10-12  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2345
2346         PR testsuite/45974
2347         Revert:
2348         * Makefile.in ($(lang_checks_parallel))
2349         ($(lang_checks_parallelized)): Use single quotes for
2350         $(RUNTESTFLAGS), to allow passing quoted content.
2351
2352 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2353
2354         * config/pa/linux-atomic.c (__sync_val_compare_and_swap_4): Return
2355         actual_oldval.  Use __builtin_expect.
2356         (SUBWORD_VAL_CAS): Likewise.
2357
2358 2010-10-11  Nathan Froyd  <froydnj@codesourcery.com>
2359
2360         * recog.c (nonmemory_operand): Call immediate_operand for
2361         CONSTANT_P operands.
2362
2363 2010-10-11  Uros Bizjak  <ubizjak@gmail.com>
2364
2365         * config/i386/i386.md (movmem<mode>): Macroize expander from
2366         movmem{si,di} using SWI48 mode iterator.
2367         (*strmovsi_1): Macroize insn pattern from *strmovsi_1 and
2368         *strmovsi_rex_1 using P mode iterator.
2369         (*strmovhi_1): Ditto from *strmovhi_1 and *strmovhi_rex_1.
2370         (*strmovqi_1): Ditto from *strmovqi_1 and *strmovqi_rex_1.
2371         (*rep_movsi): Ditto from *rep_movsi and *rep_movsi_rex64.
2372         (*rep_movqi): Ditto from *rep_movqi and *rep_movqi_rex64.
2373         (setmem<mode>): Macroize expander from setmem{si,di} using
2374         SWI48 mode iterator.
2375         (*strsetsi_1): Macroize insn pattern from *strsetsi_1 and
2376         *strsetsi_rex_1 using P mode iterator.
2377         (*strsethi_1): Ditto from *strsethi_1 and *strsethi_rex_1.
2378         (*strsetqi_1): Ditto from *strsetqi_1 and *strsetqi_rex_1.
2379         (*rep_stossi): Ditto from *rep_stossi and *rep_stossi_rex64.
2380         (*rep_stosqi): Ditto from *rep_stosqi and *rep_stosqi_rex64.
2381         (*cmpstrnqi_nz_1): Ditto from *cmpstrnqi_nz_1 and *cmpstrnqi_nz_rex_1.
2382         (*cmpstrnqi_1): Ditto from *cmpstrnqi_1 and *cmpstrnqi_rex_1.
2383         (strlen<mode>): Macroize expander from strlen{si,di} using SWI48x
2384         mode iterator.
2385         (*strlenqi_1): Macroize insn pattern from *strlenqi_1 and
2386         *strlenqi_rex_1 using P mode iterator.
2387
2388 2010-10-11  Bernd Schmidt  <bernds@codesourcery.com>
2389
2390         PR bootstrap/45445
2391         * ira-lives.c (mark_pseudo_reg_live, mark_pseudo_reg_dead): New
2392         static functions.
2393         (mark_ref_live, mark_ref_dead): Use them.
2394         (make_pseudo_conflict): New arg ORIG_DREG.  All callers changed.
2395         Save the original reg, and use the new functions.
2396         (check_and_make_def_use_conflict): New arg ORIG_DREG.  All callers
2397         changed.
2398         (check_and_make_def_conflict): Save the original reg.
2399
2400 2010-10-11  Martin Jambor  <mjambor@suse.cz>
2401
2402         PR middle-end/45699
2403         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Choose among
2404         thunks.
2405
2406 2010-10-11  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2407
2408         * Makefile.in ($(lang_checks_parallel))
2409         ($(lang_checks_parallelized)): Use single quotes for
2410         $(RUNTESTFLAGS), to allow passing quoted content.
2411
2412         PR bootstrap/35855
2413         * opt-functions.awk (BEGIN): New section.
2414         (lower, upper, digit, alnum): New variables.
2415         (static_var, opt_sanitized_name): Use alnum instead of character
2416         classes, for non-C locale.
2417         * optc-gen.awk: Likewise.
2418         * opth-gen.awk: Likewise.
2419
2420 2010-10-11  Anatoly Sokolov  <aesok@post.ru>
2421
2422         * target.def (preferred_reload_class): New hook.
2423         * doc/tm.texi.in (TARGET_PREFERRED_RELOAD_CLASS): Document.
2424         * doc/tm.texi: Regenerate.
2425         * targhooks.c (default_preferred_reload_class): New function.
2426         * targhooks.h (default_preferred_reload_class): Declare.
2427         * reload.c (find_dummy_reload): Change preferred_class variable type
2428         from enum reg_class to reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS
2429         target hook.
2430         (find_reloads): Change goal_alternative array type from int to
2431         reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS target hook.
2432         (push_reload, find_reloads_address_part): Use
2433         TARGET_PREFERRED_RELOAD_CLASS target hook.
2434         * reload1.c (emit_input_reload_insns): Ditto.
2435         * ira-costs.c (copy_cost): Use TARGET_PREFERRED_RELOAD_CLASS target
2436         hook. Change rclass argument and secondary_class variable types from
2437         'enum reg_class' to reg_class_t.
2438
2439         * config/i386/i386.h (PREFERRED_RELOAD_CLASS): Remove.
2440         * config/i386/i386-protos (ix86_preferred_reload_class): Remove.
2441         * config/i386/i386.c (ix86_preferred_reload_class): Make static.
2442         Change regclass argument and result types from enum reg_class to
2443         reg_class_t.
2444         (TARGET_PREFERRED_RELOAD_CLASS): Define.
2445
2446 2010-10-11  Eric Botcazou  <ebotcazou@adacore.com>
2447
2448         * simplify-rtx.c (simplify_unary_operation_1): Use unsigned arithmetics
2449         in masking operations.
2450         (simplify_const_unary_operation): Likewise.
2451         (simplify_binary_operation_1): Likewise.
2452         (simplify_const_binary_operation): Likewise.
2453         (simplify_const_relational_operation): Likewise.
2454         (simplify_ternary_operation): Likewise.
2455         (simplify_immed_subreg): Likewise.
2456
2457 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2458
2459         PR middle-end/45862
2460         * doc/tm.texi.in (SUPPORTS_WEAK): Update.
2461         (TARGET_SUPPORTS_WEAK): New.
2462         * doc/tm.texi: Regenerate.
2463         * defaults.h (SUPPORTS_WEAK): Update comment.
2464         (TARGET_SUPPORTS_WEAK): New.
2465         * dwarf2asm.c (USE_LINKONCE_INDIRECT): Update define.
2466         * varasm.c (assemble_external): Use TARGET_SUPPORTS_WEAK instead of
2467         SUPPORTS_WEAK.
2468         (merge_weak, declare_weak, do_assemble_alias, supports_one_only,
2469         make_decl_one_only): Likewise.
2470         * config/pa/som.h (SUPPORTS_WEAK): Rename defines to
2471         TARGET_SUPPORTS_WEAK.
2472         (SUPPORTS_ONE_ONLY, MAKE_DECL_ONE_ONLY): Use TARGET_SUPPORTS_WEAK
2473         instead of SUPPORTS_WEAK.
2474
2475 2010-10-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2476
2477         * config/sparc/gmon-sol2.c: Don't include coretypes.h, tm.h.
2478
2479 2010-10-11  Nathan Froyd  <froydnj@codesourcery.com>
2480
2481         * vec.h (VEC_qsort): Define.
2482         * dbxout.c (output_used_types): Use it.
2483         * df-scan.c (df_sort_and_compress_refs): Likewise.
2484         (df_sort_and_compress_mws): Likewise.
2485         * genautomata.c (uniq_sort_alt_states): Likewise.
2486         (evaluate_equiv_classes): Likewise.
2487         (output_trans_table): Likewise.
2488         (output_state): Likewise.
2489         * gimplify.c (compare_case_labels): Likewise.
2490         * graphite-sese-to-poly.c (graphite_sort_dominated_info): Likewise.
2491         * ipa.c (build_cdtor_fns): Likewise.
2492         * lto.c (lto_wpa_write_files): Likewise.
2493         * sel-sched.c (fill_vec_av_set): Likewise.
2494         * tree-predcom.c (determine_roots_comp): Likewise.
2495         * tree-sra.c (sort_and_spliace_var_accesses): Likewise.
2496         (splice_param_accesses): Likewise.
2497         * tree-ssa-live.c (dump_enumerated_decls): Likewise.
2498         * tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
2499         (reassociate_bb): Likewise.
2500         * tree-ssa-sccvn.c (sort_scc): Likewise.
2501         * tree-ssa-structalias.c (sort_fieldstack): Likewise.
2502
2503 2010-10-11  Ian Lance Taylor  <iant@google.com>
2504
2505         * tree.h (TREE_THIS_NOTRAP): Use TREE_CHECK5.
2506         * emit-rtl.c (set_mem_attributes_minus_bitpos): Only check
2507         TREE_THIS_NOTRAP when appropriate.
2508         (get_spill_slot_decl): Don't set TREE_THIS_NOTRAP on the new VAR_DECL.
2509         * gimplify.c (gimplify_expr): Copy NOTRAP from INDIRECT_REF to
2510         newly created MEM_REF.
2511
2512 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
2513
2514         Nathan Froyds patch to hooks FUNCTION_ARG etc.
2515         * config/picochip/picochip-protos.h (picochip_function_arg): Delete.
2516         (picochip_incoming_function_arg): Delete.
2517         (picochip_arg_advance): Delete.
2518         * config/picochip/picochip.h (FUNCTION_ARG): Delete.
2519         (FUNCTION_INCOMING_ARG): Delete.
2520         (FUNCTION_ARG_ADVANCE): Delete.
2521         * config/picochip/picochip.c (picochip_function_arg): Take a
2522         const_tree and a bool.
2523         (picochip_incoming_function_arg): Likewise.
2524         (picochip_arg_advance): Likewise.
2525         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
2526         (TARGET_FUNCTION_ARG_ADVANCE): Define.
2527
2528 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2529
2530         PR middle-end/45955
2531         * ipa.c (build_cdtor): Delete endless loop.
2532
2533 2010-10-07  Andi Kleen  <ak@linux.intel.com>
2534
2535         * Makefile.in (MOSTLYCLEANFILES): Remove cc1*dummy, add
2536         checksum-options.
2537         (checksum-options): Add.
2538         (cc1-dummy): Remove.
2539         (cc1-checksum): Change to run checksum over object files
2540         and options only.
2541         * dummy-checksum.c: Remove.
2542         * genchecksum.c: Update copyright.
2543         (usage): Allow multiple arguments.
2544         (BLOCKSIZE): Add.
2545         (dosum): Change for incremental checksum. Remove C output.
2546         (main): Iterate over all argument files. Add C output.
2547
2548 2010-10-11  Joseph Myers  <joseph@codesourcery.com>
2549
2550         * params.c (set_param_value_internal): New.
2551         (set_param_value): Use set_param_value_internal.
2552         (maybe_set_param_value, set_default_param_value): New.
2553         * params.h (PARAM_VALUE, PARAM_SET_P): Make into rvalues.
2554         (maybe_set_param_value, set_default_param_value): Declare.
2555         * config/arm/arm.c (arm_option_override): Use maybe_set_param_value.
2556         * config/i386/i386.c (ix86_option_override_internal): Use
2557         maybe_set_param_value.
2558         * config/ia64/ia64.c (ia64_option_default_params,
2559         TARGET_OPTION_DEFAULT_PARAMS): New.
2560         (ia64_option_optimization): Move some code to
2561         ia64_option_default_params.
2562         * config/picochip/picochip.c (picochip_option_override): Use
2563         maybe_set_param_value.
2564         * config/rs6000/rs6000.c (rs6000_option_default_params,
2565         TARGET_OPTION_DEFAULT_PARAMS): New.
2566         (rs6000_option_override_internal): Use maybe_set_param_value.
2567         (rs6000_option_optimization): Move some code to
2568         rs6000_option_default_params.
2569         * config/s390/s390.c (s390_option_override): Use maybe_set_param_value.
2570         * config/sh/sh.c (sh_option_default_params,
2571         TARGET_OPTION_DEFAULT_PARAMS): New.
2572         (sh_option_optimization): Move some code to sh_option_default_params.
2573         * config/sparc/sparc.c (sparc_option_override): Use
2574         maybe_set_param_value.
2575         * config/spu/spu.c (spu_option_default_params,
2576         TARGET_OPTION_DEFAULT_PARAMS): New.
2577         (spu_option_optimization): Move some code to spu_option_default_params.
2578         (spu_option_override): Use maybe_set_param_value.
2579         * doc/tm.texi.in (TARGET_OPTION_DEFAULT_PARAMS): New @hook.
2580         * doc/tm.texi: Regenerate.
2581         * ggc-common.c (init_ggc_heuristics): Use set_default_param_value.
2582         * opts.c (init_options_once): Use PARAM_VALUE not direct access to
2583         compiler_params.
2584         (default_options_optimization): Use maybe_set_param_value.
2585         (finish_options): Use maybe_set_param_value.
2586         * target.def (target_option.default_params): New hook.
2587         * toplev.c (general_init): Call targetm.target_option.default_params.
2588
2589 2010-10-11  Ira Rosen  <irar@il.ibm.com>
2590
2591         PR tree-optimization/45902
2592         * tree-vect-slp.c (vect_get_constant_vectors): Use statement's
2593         vector type for constants, unless it's a pointer.
2594
2595 2010-10-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2596
2597         * config/s390/s390.md (*mov<mode>cc): lgoc -> locg and stgoc -> stocg.
2598
2599 2010-10-11  Jakub Jelinek  <jakub@redhat.com>
2600
2601         PR target/45870
2602         * config/i386/i386.c (ix86_delegitimize_tls_address): New function.
2603         (ix86_delegitimize_address): Use it.
2604
2605 2010-10-10  Eric Botcazou  <ebotcazou@adacore.com>
2606
2607         * opt-functions.awk (opt_sanitized_name): Remove gdwarf+ handling.
2608
2609 2010-10-10  Uros Bizjak  <ubizjak@gmail.com>
2610
2611         * config/alpha/alpha.c (alpha_setup_incoming_varargs): Pass pointer
2612         to cum struct in the call to function_arg_advance.
2613         (alpha_function_arg_advance): Mark named as unused.
2614
2615 2010-10-10  Richard Sandiford  <rdsandiford@googlemail.com>
2616
2617         * config/mips/mips.c (mips_handle_option): Make "value" with
2618         ATTRIBUTE_UNUSED.
2619
2620 2010-10-09  Richard Henderson  <rth@redhat.com>
2621
2622         PR rtl-opt/33721
2623         * explow.c (allocate_dynamic_stack_space): Add REQUIRED_ALIGN parm,
2624         remove TARGET parm, convert KNOWN_ALIGN parm to SIZE_ALIGN.  Honor
2625         required_align, tidy the code a bit.  Emit split_stack code in the
2626         right place.  Mark the return value with the alignment properly.
2627         * expr.h (allocate_dynamic_stack_space): Update decl.
2628         * builtins.c (expand_builtin_apply): Update call to
2629         allocate_dynamic_stack_space.
2630         (expand_builtin_alloca): Likewise.  Remove TARGET parameter.
2631         * calls.c (initialize_argument_information): Update call to
2632         allocate_dynamic_stack_space.
2633         (expand_call): Likewise.
2634
2635         * cfgexpand.c (get_decl_align_unit): Don't limit alignment.
2636         Don't update_stack_alignment here.
2637         (alloc_stack_frame_space): Make ALIGN unsigned.
2638         (stack_var_cmp): Sort by alignment too.
2639         (partition_stack_vars): Don't merge large and small alignment vars.
2640         (expand_one_stack_var_at): Add BASE and BASE_ALIGN parameters.
2641         Take care when BASE is not virtual_stack_vars_rtx.
2642         (expand_stack_vars): Allocate dynamic stack space for large
2643         alignment variables.
2644         (expand_one_stack_var): Update all to expand_one_stack_var_at.
2645         (defer_stack_allocation): True for large alignment vars.
2646         (update_stack_alignment): Merge into ...
2647         (expand_one_var): ... here.
2648         (gimple_expand_cfg): Place code from expand_stack_vars.
2649
2650 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
2651
2652         * config/pdp11/pdp11.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2653         * config/pdp11/pdp11.c (pdp11_function_arg): New function.
2654         (pdp11_function_arg_advance): New function.
2655         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2656
2657 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
2658
2659         * libgcc2.h: Use __SIZEOF_LONG_LONG__ instead of LONG_LONG_TYPE_SIZE.
2660         * libgcc2.c: Likewise.
2661
2662 2010-10-09  Richard Guenther  <rguenther@suse.de>
2663
2664         PR lto/45956
2665         * lto-streamer-in.c (lto_register_var_decl_in_symtab):
2666         Properly check if a decl is an automatic var.
2667
2668 2010-10-09  Richard Guenther  <rguenther@suse.de>
2669
2670         PR lto/45947
2671         * tree.c (free_lang_data_in_cgraph): Properly walk the varpool.
2672
2673 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
2674
2675         * config/mmix/mmix-protos.h (mmix_function_arg): Delete.
2676         * config/mmix/mmix.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2677         * config/mmix/mmix.c (mmix_function_arg): Rename to...
2678         (mmix_function_arg_1): ...this.  Make static.  Take a const_tree and
2679         bool arguments.
2680         (mmix_function_arg): New function.
2681         (mmix_function_incoming_arg): New function.
2682         (mmix_function_arg_advance): New function.
2683         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
2684         (TARGET_FUNCTION_ARG_ADVANCE): Define.
2685
2686 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
2687
2688         * config/vax/vax.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2689         * config/vax/vax.c (vax_function_arg): New function.
2690         (vax_function_arg_advance): New function.
2691         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2692
2693 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
2694
2695         * config/pa/pa-protos.h (function_arg): Delete.
2696         * config/pa/pa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2697         * config/pa/pa.c (function_arg): Rename to...
2698         (pa_function_arg): ...this.  Make static.  Take a const_tree and
2699         a bool.
2700         (pa_function_arg_advance): New function.
2701         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2702
2703 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
2704
2705         * config/m68k/m68k.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2706         * config/m68k/m68k.c (m68k_function_arg): New function.
2707         (m68k_function_arg_advance): New function.
2708         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2709
2710 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
2711
2712         * config/avr/avr-protos.h (function_arg): Delete.
2713         (function_arg_advance): Delete.
2714         * config/avr/avr.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2715         * config/avr/avr.c (function_arg): Rename to...
2716         (avr_function_arg): ...this.  Make static.  Take a const_tree and
2717         a bool.
2718         (function_arg_advance): Rename to...
2719         (avr_function_arg_advance): ...this.  Make static.  Take a
2720         const_tree and a bool.
2721         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2722
2723 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
2724
2725         * config/alpha/alpha-protos.h (function_arg): Delete.
2726         * config/alpha/alpha.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2727         * config/alpha/vms.h (FUNCTION_ARG_ADVANCE): Delete.
2728         * config/alpha/alpha.c (function_arg): Rename to...
2729         (alpha_function_arg): ...this.  Make static.  Take a const_tree and
2730         a bool.  Delete TARGET_ABI_UNICOSMK code.
2731         (alpha_function_arg_advance): New function.
2732         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2733
2734 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
2735
2736         * config/mep/mep-protos.h (mep_function_arg): Delete.
2737         (mep_function_arg_advance): Delete.
2738         * config/mep/mep.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2739         * config/mep/mep.c (mep_function_arg): Make static.  Take a
2740         const_tree and a bool.
2741         (mep_function_arg_advance): Likewise.
2742         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2743
2744 2010-10-09  Richard Guenther  <rguenther@suse.de>
2745
2746         PR tree-optimization/45945
2747         * tree-ssa.c (execute_update_addresses_taken): Fixup LHS scanning.
2748
2749 2010-10-09  Eric Botcazou  <ebotcazou@adacore.com>
2750
2751         PR tree-optimization/45612
2752         * ipa-split.c (test_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.
2753         Test LABEL_DECLs as well.  Fix formatting issues.
2754         (verify_non_ssa_vars): Return false for a GIMPLE_LABEL statement
2755         whose label is present in NON_SSA_VARS.
2756         (mark_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.  Handle LABEL_DECLs
2757         as well.  Fix formatting issues.
2758         (visit_bb): Fix typos and formatting issue.
2759
2760 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
2761
2762         PR tree-optimization/45950
2763         * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): Consult length
2764         before initializing vno->op.
2765
2766 2010-10-09  Ralf Corsépius <ralf.corsepius@rtems.org>
2767
2768         * config.gcc (bfin*-rtems*): Add newlib-stdint.h.
2769         * config.gcc (lm32*-rtems*): Add newlib-stdint.h.
2770
2771 2010-10-08  H.J. Lu  <hongjiu.lu@intel.com>
2772
2773         PR target/45913
2774         * config/i386/i386.c (ix86_binary_operator_ok): Support
2775         "andhi/andsi/anddi" as a zero-extending move.
2776
2777 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
2778
2779         * builtins.c (fold_call_stmt): Don't copy gimple call arguments
2780         into a temporary array.
2781
2782 2010-10-08  Jakub Jelinek  <jakub@redhat.com>
2783
2784         PR tree-optimization/45903
2785         * simplify-rtx.c (simplify_subreg): Optimize lowpart SUBREG
2786         of {A,L}SHIFTRT of MEM.
2787
2788 2010-10-08  Richard Guenther  <rguenther@suse.de>
2789
2790         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
2791         Re-construct BLOCK_VARS.
2792         (lto_input_ts_block_tree_pointers): Do not stream BLOCK_VARS.
2793         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
2794         * tree.c (free_lang_data_in_block): Remove.
2795         (free_lang_data_in_decl): Do not touch DECL_CONTEXT of non-PARM_DECLs.
2796         Do not touch the BLOCK tree.
2797         * expr.c (expand_expr_real_1): Allow externals.
2798
2799 2010-10-08  Richard Guenther  <rguenther@suse.de>
2800
2801         * lto-streamer-out.c (lto_output_ts_block_tree_pointers):
2802         Do not output BLOCK_SUBBLOCKS.
2803         * lto-streamer-in.c (lto_input_ts_block_tree_pointers):
2804         Reserve exact space needed for BLOCK_NONLOCALIZED_VARS.
2805         Re-construct BLOCK_SUBBLOCKS of parent block.
2806         (lto_input_ts_binfo_tree_pointers): Reserve exact space needed
2807         for BINFO_BASE_ACCESSES.
2808
2809 2010-10-08  Joseph Myers  <joseph@codesourcery.com>
2810
2811         * Makefile.in (TM_H): Include $(FLAGS_H) instead of options.h.
2812         (TREE_H): Include $(FLAGS_H) instead of options.h.
2813         (opts-common.o): Depend on $(FLAGS_H) instead of options.h.
2814         * c-objc-common.h (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
2815         * common.opt (flag_complex_method, flag_evaluation_order,
2816         flag_ira_algorithm, flag_ira_region, flag_warn_unused_result): New
2817         Variable declarations.
2818         * configure.ac (tm_include_list): Include flags.h instead of options.h.
2819         * configure: Regenerate.
2820         * flags.h: Condition out contents for target libraries.  Include
2821         options.h at end of file.
2822         (flag_complex_method, flag_ira_algorithm, flag_ira_region,
2823         flag_evaluation_order, flag_warn_unused_result): Remove.
2824         * gcc.c (main): Intialize global_options with global_options_init.
2825         * langhooks-def.h (lhd_init_options_struct): Declare.
2826         (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
2827         (LANG_HOOKS_INITIALIZER): Include LANG_HOOKS_INIT_OPTIONS_STRUCT.
2828         * langhooks.c (lhd_init_options_struct): New.
2829         * langhooks.h (struct lang_hooks): Add init_options_struct.
2830         Update comment on init_options.
2831         * optc-gen.awk: Generate initializer for global_options_init, not
2832         global_options.
2833         * opth-gen.awk: Condition out structure declarations for target
2834         libraries.  Declare global_options_init.
2835         * opts-common.c: Include flags.h instead of options.h.
2836         * opts.c (flag_warn_unused_result): Remove.
2837         (read_cmdline_options): Take gcc_options parameters.  Pass them to
2838         read_cmdline_option.
2839         (initial_lang_mask, initial_min_crossjump_insns,
2840         initial_max_fields_for_field_sensitive,
2841         initial_loop_invariant_max_bbs_in_loop): Define at file scope.
2842         (init_options_once): New.  Split out of decode_options.
2843         (init_options_struct): New.  Split out of decode_options.
2844         (decode_cmdline_options_to_array_default_mask): New.
2845         (default_options_optimization): New.  Split out of decode_options.
2846         (decode_options): Move most code to other functions.  Update call
2847         to read_cmdline_options.
2848         (finish_options): New.  Split out of decode_options.
2849         * opts.h (decode_options): Add gcc_options parameters.
2850         (init_options_once, init_options_struct,
2851         decode_cmdline_options_to_array_default_mask): New.
2852         * toplev.c (flag_complex_method, flag_ira_algorithm,
2853         flag_ira_region, flag_evaluation_order): Remove.
2854         (general_init): Use global_options_init for initial flag values
2855         for global_dc.
2856         (toplev_main): Call init_options_once, init_options_struct,
2857         lang_hooks.init_options_struct,
2858         decode_cmdline_options_to_array_default_mask and
2859         lang_hooks.init_option before decode_options.  Update arguments to
2860         decode_options.
2861         * tree.h: Include flags.h instead of options.h.
2862
2863 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
2864
2865         * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
2866
2867 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
2868
2869         * config/sparc/sparc-protos.h (function_arg_advance, function-arg):
2870         Delete.
2871         * config/sparc/sparc.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
2872         (FUNCTION_INCOMING_ARG): Delete.
2873         * config/sparc/sparc.c (scan_record_type): Const-ify tree argument.
2874         (function_arg_slotno): Likewise.  Take bool arguments.
2875         (sparc_arg_partial_bytes): Update call to it.
2876         (function_arg): Rename to...
2877         (sparc_function_arg_1): ...this.  Take bool arguments.
2878         (sparc_function_arg, sparc_function_incoming_arg): New functions.
2879         (function_arg_advance): Rename to...
2880         (sparc_function_arg_advance): ...this.  Take bool argument.
2881         (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG): Define.
2882         (TARGET_FUNCTION_INCOMING_ARG): Define.
2883
2884 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
2885
2886         * config/bfin/bfin-protos.h (function_arg, function_arg_advance):
2887         Delete.
2888         * config/bfin/bfin.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2889         * config/bfin/bfin.c (function_arg_advance): Rename to...
2890         (bfin_function_arg_advance): ...this.  Make static.  Take const_tree
2891         and bool arguments.
2892         (function_arg): Rename to...
2893         (bfin_function_arg): ...this.  Make static.  Take const_tree and bool
2894         arguments.
2895         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2896
2897 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
2898
2899         * config/score/score-protos.h (score_function_arg): Delete.
2900         (score_function_arg_advance): Delete.
2901         * config/score/score3.h (score3_function_arg_advance): Take a
2902         const_tree and a bool.
2903         (score3_function_arg): Likewise.
2904         * config/score/score7.h (score7_function_arg_advance): Likewise.
2905         (score7_function_arg): Likewise.
2906         * config/score/score3.c (score3_classify_arg): Likewise.
2907         (score3_function_arg_advance, score3_function_arg): Likewise.
2908         * config/score/score7.c (score7_classify_arg): Likewise.
2909         (score7_function_arg_advance, score7_function_arg): Likewise.
2910         * config/score/score.c (score_function_arg_advance): Likewise.
2911         (score_function_arg): Likewise.  De-const-ify `cum' argument.
2912         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2913
2914 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
2915
2916         * config/s390/s390-protos.h (s390_function_arg_advance): Delete.
2917         (s390_function_arg): Delete.
2918         * config/s390/s390.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2919         * config/s390/s390.c (s390_function_arg_float): Take a const_tree.
2920         (s390_function_arg_integer): Likewise.
2921         (s390_function_arg_advance): Make static.  Take a const_tree and
2922         a bool.
2923         (s390_function_arg): Likewise.
2924         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2925
2926 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
2927
2928         * config/spu/spu-protos.h (spu_function_arg): Delete.
2929         * config/spu/spu.h (FUNCTION_ARG): Delete.
2930         (FUNCTION_ARG_ADVANCE): Move code to ...
2931         * config/spu/spu.c (spu_function_arg_advance): New function.
2932         (spu_function_arg): Make static.  Take a const_tree and a bool.
2933         (spu_setup_incoming_varargs): Call spu_function_arg_advance.
2934         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2935
2936 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
2937
2938         * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
2939
2940 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
2941
2942         * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): New function.
2943         (init_vn_nary_op_from_op): New function.
2944         (init_vn_nary_op_from_stmt): New function.
2945         (vn_nary_op_lookup_1): New function.
2946         (sizeof_vn_nary_op): New function.
2947         (alloc_vn_nary_op_noinit): New function.
2948         (alloc_vn_nary_op): New function.
2949         (vn_nary_op_insert_into): New function.
2950         (vn_nary_op_lookup_pieces): Rewrite to use new helper functions.
2951         (vn_nary_op_lookup): Likewise.
2952         (vn_nary_op_lookup_stmt): Likewise.
2953         (vn_nary_op_insert_pieces): Likewise.
2954         (vn_nary_op_insert): Likewise.
2955         (vn_nary_op_insert_stmt): Likewise.
2956         (copy_nary): Likewise.
2957         (set_value_id_for_result): New function.
2958         (set_hashtable_value_ids): Call it.
2959
2960 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
2961
2962         * config/fr30/fr30.c (TARGET_EXCEPT_UNWIND_INFO): Define.
2963         * config/fr30/fr30.md (leave_func): Rewrite without post_inc.
2964
2965 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
2966
2967         * config/mcore/mcore.h (INCOMING_RETURN_ADDR_RTX): Define.
2968         * config/mcore/mcore.c (TARGET_EXCEPT_UNWIND_INFO): Define.
2969
2970 2010-10-08  Alexandre Oliva  <aoliva@redhat.com>
2971
2972         PR debug/45656
2973         * cse.c (cse_extended_basic_block): Preserve cc0 info across
2974         debug isnsn.  Skip them when searching for cc0 setter.
2975         (set_live_p): Skip debug insns when searching for cc0 user.
2976
2977 2010-10-08  Alexandre Oliva  <aoliva@redhat.com>
2978
2979         PR debug/45673
2980         PR debug/45604
2981         PR debug/45419
2982         PR debug/45408
2983         * tree-pretty-print.c (dump_generic_node): Explicitly dump the
2984         type of MEM_REFs to INTEGER_CSTs.
2985
2986 2010-10-07  Nathan Froyd  <froydnj@codesourcery.com>
2987
2988         * config/m68hc11/m68hc11.c (m68hc11_print_operand): Call
2989         m68hc11_print_operand_address.
2990
2991 2010-10-07  Nathan Froyd  <froydnj@codesourcery.com>
2992
2993         * builtins.c (rewrite_call_expr): Move code to...
2994         (rewrite_call_expr_valist): ...here.  Call build_call_expr_loc_array.
2995         (rewrite_call_expr_array): New function.
2996         (fold_builtin_sprintf_chk_1): New function.
2997         (fold_builtin_sprintf_chk): Call it.
2998         (gimple_fold_builtin_sprintf_chk): Likewise.
2999         (fold_builtin_snprintf_chk_1): New function.
3000         (fold_builtin_snprintf_chk): Call it.
3001         (gimple_fold_builtin_snprintf_chk): Likewise.
3002         (gimple_rewrite_call_expr): Delete.
3003
3004 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
3005
3006         * config.host: Update copyright year.
3007
3008 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
3009
3010         * config.host (host_lto_plugin_soname): New shell variable.
3011         * configure.ac (LTOPLUGINSONAME): Add an AC_DEFINE for the above.
3012         * config.in: Regenerate.
3013         * configure: Regenerate.
3014         * gcc.c (main): Use LTOPLUGINSONAME instead of hard-coding name of
3015         LTO plugin shared library.
3016
3017 2010-10-07  Richard Henderson  <rth@redhat.com>
3018
3019         * target.h (enum unwind_info_type): Move ...
3020         * coretypes.h: ... here.
3021
3022 2010-10-07  Nicola Pero  <nicola.pero@meta-innovation.com>
3023
3024         * doc/objc.texi (Fast enumeration protocol): Mention that
3025         'unsigned int' can also be used instead of 'unsigned long' in
3026         countByEnumeratingWithState:objects:count:.
3027
3028 2010-10-07  Martin Jambor  <mjambor@suse.cz>
3029
3030         * tree-sra.c (struct access): New field grp_assignment_write.
3031         (dump_access): Dump grp_assignment_write.
3032         (build_accesses_from_assign): Set grp_assignment_write.
3033         (sort_and_splice_var_accesses): Aggregate grp_assignment_write.
3034         (mark_read_status): Renamed to mark_rw_status, individual values
3035         renamed too.
3036         (analyze_access_subtree): Changed type of mark_write to
3037         mark_read_status.  Fixed propagating of mark_read and
3038         mark_write.  Changed benefit estimate.  Updated comment.
3039
3040 2010-10-07  Tejas Belagod  <tejas.belagod@arm.com>
3041
3042         PR Tree-Vect/45847
3043         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Add NULL
3044         check for vectype_out returned by get_vectype_for_scalar_type().
3045
3046 2010-10-07  Tejas Belagod  <tejas.belagod@arm.com>
3047
3048         PR target/45805
3049         * config/arm/neon.md (neon_unpack<US>_<mode>): Add 'w' to
3050         constraint, add register specifier in instruction template.
3051         (neon_vec_pack_trunc_<mode>): Likewise.
3052         (neon_vec_<US>mult_<mode>): Add register specifier to
3053         instruction template.
3054
3055 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
3056
3057         * config.gcc (c_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add
3058         cygwin2.o.
3059         (cxx_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Likewise.
3060         (extra_gcc_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add cygwin1.o.
3061         * config/i386/t-cygwin (cygwin1.o): Delete build rule.
3062         (cygwin2.o): Likewise.
3063         * config/i386/cygwin1.c: Delete file.
3064         * config/i386/cygwin2.c: Likewise.
3065         * config/i386/cygwin.h (CPP_SPEC): Remove all %{mno-cygwin} specs and
3066         make all {%!mno-cygwin} ones unconditional.
3067         (STARTFILE_SPEC): Likewise.
3068         (REAL_LIBGCC_SPEC): Likewise.
3069         (LIB_SPEC): Likewise.
3070         (CXX_WRAP_SPEC): Likewise.
3071         (LINK_SPEC): Likewise.
3072         (CYGWIN_MINGW_SUBDIR): Delete now-unused macro definition.
3073         (CYGWIN_MINGW_SUBDIR_LEN): Likewise.
3074         (cygwin_gplusplus_include_dir): Delete now-unused array.
3075         (GPLUSPLUS_INCLUDE_DIR): Don't redefine to point to it.
3076         (cygwin_gplusplus_tool_include_dir): Delete now-unused array.
3077         (GPLUSPLUS_TOOL_INCLUDE_DIR): Don't redefine to point to it.
3078         (cygwin_gplusplus_backward_include_dir): Delete now-unused array.
3079         (GPLUSPLUS_BACKWARD_INCLUDE_DIR): Don't redefine to point to it.
3080         (cygwin_local_include_dir): Delete now-unused array.
3081         (LOCAL_INCLUDE_DIR): Don't redefine to point to it.
3082         (cygwin_cross_include_dir): Delete now-unused array.
3083         (CROSS_INCLUDE_DIR): Don't redefine to point to it.
3084         (cygwin_tool_include_dir): Delete now-unused array.
3085         (TOOL_INCLUDE_DIR): Don't redefine to point to it.
3086         (cygwin_standard_include_dir): Delete now-unused array.
3087         (STANDARD_INCLUDE_DIR): Don't redefine to point to it.
3088         (GEN_CVT_ARRAY): Delete now-unused macro definition.
3089         (cvt_to_mingw): Delete now-unused array.
3090         (mingw_scan): Remove prototype of deleted function.
3091         (GCC_DRIVER_HOST_INITIALIZATION): Don't define now-unused target macro.
3092         * config/i386/cygming.opt (mcygwin): Delete target-specific option.
3093         * doc/invoke.texi (-mcygwin): Don't document removed option.
3094         (-mno-cygwin): Likewise.
3095
3096 2010-10-07  Richard Guenther  <rguenther@suse.de>
3097
3098         * machmode.h (mode_for_vector): Declare.
3099         * stor-layout.c (mode_for_vector): New function, split out from ...
3100         (layout_type): ... here.
3101         * tree-vectorizer.h (current_vector_size): Declare.
3102         * tree-vect-stmts.c (perm_mask_for_reverse): Check if the
3103         mask vector type is available.
3104         (get_vectype_for_scalar_type): Rename to ...
3105         (get_vectype_for_scalar_type_and_size): ... this.  Get a vector
3106         size argument.
3107         (get_vectype_for_scalar_type): New wrapper around
3108         get_vectype_for_scalar_type_and_size using current_vector_size.
3109         (get_same_sized_vectype): Use get_vectype_for_scalar_type_and_size.
3110         * tree-vect-loop.c (vect_analyze_loop_2): Split out core part
3111         of vect_analyze_loop here.
3112         (vect_analyze_loop): Loop over vector sizes calling vect_analyze_loop_3.
3113         * tree-vect-slp.c (vect_slp_analyze_bb): Set current_vector_size
3114         to autodetect.
3115         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Fix
3116         V8SF to V8SI conversion builtin.
3117
3118 2010-10-07  Richard Guenther  <rguenther@suse.de>
3119
3120         * target.def (autovectorize_vector_sizes): New target hook.
3121         * targhooks.c (default_autovectorize_vector_sizes): New function.
3122         * targhooks.h (default_autovectorize_vector_sizes): Declare.
3123         * doc/tm.texi.in (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES):
3124         Document.
3125         * doc/tm.texi: Update.
3126         * config/i386/i386.c (ix86_autovectorize_vector_sizes): New function.
3127         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
3128
3129 2010-10-07  Richard Guenther  <rguenther@suse.de>
3130
3131         * target.def (units_per_simd_word): Rename to ...
3132         (preferred_simd_mode): ... this.  Return mode instead of size.
3133         * targhooks.c (default_units_per_simd_word): Rename to ...
3134         (default_preferred_simd_mode): ... this.  Return word_mode.
3135         * targhooks.h (default_preferred_simd_mode): Declare.
3136         * config/arm/arm.c (arm_units_per_simd_word): Rename to ...
3137         (arm_preferred_simd_mode): ... this.  Re-implement.
3138         * config/i386/i386.c (ix86_units_per_simd_word): Rename to ...
3139         (ix86_preferred_simd_mode): ... this.  Re-implement.
3140         * config/sparc/sparc.c (sparc_units_per_simd_word): Rename to ...
3141         (sparc_preferred_simd_mode): ... this.  Re-implement.
3142         * config/mips/mips.c (mips_units_per_simd_word): Rename to ...
3143         (mips_preferred_simd_mode): ... this.  Re-implement.
3144         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Rename to ...
3145         (rs6000_preferred_simd_mode): ... this.  Re-implement.
3146         * tree-vect-stmts.c (get_vectype_for_scalar_type): Adjust.
3147         * doc/tm.texi.in (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Remove.
3148         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): Document.
3149         * doc/tm.texi: Update.
3150
3151 2010-10-07  Richard Guenther  <rguenther@suse.de>
3152
3153         PR middle-end/45869
3154         * tree-cfg.c (verify_gimple_assign_binary): Allow vector shifts
3155         of pointers.
3156
3157 2010-10-07  Alan Modra  <amodra@gmail.com>
3158
3159         * config/rs6000/rs6000.c (rs6000_emit_prologue): Use gen_int_mode
3160         rather than sign extension by hand.
3161
3162 2010-10-07  Jan Hubicka  <jh@suse.cz>
3163
3164         PR middle-end/45926
3165         * ipa.c (cgraph_remove_unreachable_nodes): Revert my previous patch.
3166
3167 2010-10-07  Richard Guenther  <rguenther@suse.de>
3168
3169         PR bootstrap/45914
3170         * configure.ac: Fix typo.
3171         * configure: Regenerated.
3172
3173 2010-10-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3174
3175         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Don't use
3176         define_builtin_std where it's unnecessary.
3177         * config/i386/nto.h (TARGET_OS_CPP_BUILTINS): Likewise.
3178
3179 2010-10-06  Anatoly Sokolov  <aesok@post.ru>
3180
3181         * doc/tm.texi.in (CLASS_LIKELY_SPILLED_P): Remove documentation.
3182         * doc/tm.texi.in: Regenerate.
3183         * system.h (CLASS_LIKELY_SPILLED_P): Poison.
3184         * targhooks.c (default_class_likely_spilled_p): Don't use the
3185         CLASS_LIKELY_SPILLED_P macro.
3186
3187         * config/arm/arm.md: Update comment.
3188
3189 2010-10-06  Jan Hubicka  <jh@suse.cz>
3190
3191         * ipa.c (cgraph_remove_unreachable_nodes): External references can
3192         always be removed.
3193         (cgraph_externally_visible_p): We can not bring local comdats that
3194         are known to linker; fix handling of internal visibility.
3195         (function_and_variable_visibility): Likewise.
3196
3197 2010-10-06  Eric Botcazou  <ebotcazou@adacore.com>
3198
3199         PR rtl-optimization/45394
3200         * combine.c (cleanup_auto_inc_dec): Remove AFTER parameter and adjust.
3201         (struct rtx_subst_pair): Remove AFTER field.
3202         (propagate_for_debug_subst): Adjust call to cleanup_auto_inc_dec.
3203         (propagate_for_debug): Remove MOVE parameter and adjust.
3204         (try_combine): In the special case where I2 is a PARALLEL, combine only
3205         destinations of SETs and set I2SRC to the I2 source.
3206         Adjust calls to propagate_for_debug throughout.
3207         * reload1.c (eliminate_regs_1) <ASM_OPERANDS>: Do not abort for debug
3208         insns.
3209
3210 2010-10-06  Olivier Hainque  <hainque@adacore.com>
3211
3212         * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Rewrite
3213         switch on insn codes as sequence of ifs.
3214
3215 2010-10-06  Hariharan Sandanagobalane  <hariharan@picochip.com>
3216
3217         * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Define it to
3218         be UI_NONE for picochip.
3219         (picochip_option_override): Do not disable exception flags.
3220         * config/picochip/picochip-protos.h (picochip_except_unwind_info):
3221         Declare.
3222
3223 2010-10-06  Richard Guenther  <rguenther@suse.de>
3224
3225         * Makefile.in (regmove.o): Depend on $(TARGET_H).
3226
3227 2010-10-06  Nicola Pero  <nicola.pero@meta-innovation.com>
3228
3229         Implemented fast enumeration for Objective-C.
3230         * c-parser.c (objc_could_be_foreach_context): New.
3231         (c_lex_one_token): Recognize RID_IN keyword in a potential
3232         Objective-C foreach context.
3233         (c_parser_declaration_or_fndef): Added parameter.  Accept
3234         Objective-C RID_IN keyword as terminating a declaration; in that
3235         case, return the declaration in the new parameter.
3236         (c_parser_extenral_declaration): Updated calls to
3237         c_parser_declaration_or_fndef.
3238         (c_parser_declaration_or_fndef): Same change.
3239         (c_parser_compound_statement_nostart): Same change.
3240         (c_parser_label): Same change.
3241         (c_parser_objc_methodprotolist): Same change.
3242         (c_parser_omp_for_loop): Same change.
3243         (c_parser_for_statement): Detect and parse Objective-C foreach
3244         statements.
3245         (c_parser_omp_for_loop): Updated call to check_for_loop_decls().
3246         * c-decl.c (check_for_loop_decls): Added parameter to allow ObjC
3247         fast enumeration parsing code to turn off the c99 error but still
3248         perform checks on the loop declarations.
3249         * c-tree.h (check_for_loop_decls): Updated declaration.
3250         * doc/objc.texi: Document fast enumeration.
3251
3252 2010-10-06  Nick Clifton  <nickc@redhat.com>
3253
3254         * config/mn10300/mn10300.h (FIRST_PSEUDO_REGISTER): Increment by one.
3255         (MDR_REGNUM): Define.
3256         (FIXED_REGISTERS, CALL_USED_REGISTERS): Add MDR as a fixed register.
3257         (REG_CLASS_CONTENTS): Add MDR to ALL_REGS.
3258         (INCOMING_RETURN_ADDR_RTX): Define in terms of MDR.
3259         (REGISTER_NAMES): Add MDR.
3260         (DWARF2_DEBUGGING_INFO): Define to 1.
3261         * config/mn10300/mn10300.c (TARGET_EXCEPT_UNWIND_INFO): Define.
3262         (F): New function.  Sets RTX_FRAME_RELATED_P.
3263         (mn10300_gen_multiple_store): Use F.
3264         (expand_prologue): Use F.  Use gen_movsf() to push floating
3265         point registers.
3266         (expand_epilogue): Use gen_movsf() to pop floating point registers.
3267         (mn10300_option_override): Disable combine stack adjust pass.
3268
3269 2010-10-06  Thomas Schwinge  <thomas@schwinge.name>
3270
3271         PR target/45901
3272         * config/alpha/gnu.h (TARGET_OS_CPP_BUILTINS): Refer to
3273         LINUX_TARGET_OS_CPP_BUILTINS instead of HURD_TARGET_OS_CPP_BUILTINS.
3274
3275 2010-10-06  Jakub Jelinek  <jakub@redhat.com>
3276
3277         * builtins.def (BUILT_IN_CALLOC, BUILT_IN_REALLOC,
3278         BUILT_IN_ISALNUM, BUILT_IN_ISALPHA, BUILT_IN_ISASCII,
3279         BUILT_IN_ISBLANK, BUILT_IN_ISCNTRL, BUILT_IN_ISDIGIT,
3280         BUILT_IN_ISGRAPH, BUILT_IN_ISLOWER, BUILT_IN_ISPRINT,
3281         BUILT_IN_ISPUNCT, BUILT_IN_ISSPACE, BUILT_IN_ISUPPER,
3282         BUILT_IN_ISXDIGIT, BUILT_IN_TOASCII, BUILT_IN_TOLOWER,
3283         BUILT_IN_TOUPPER): Mark as leaf.
3284
3285         PR middle-end/45838
3286         * omp-builtins.def (BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
3287         BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
3288         BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
3289         BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
3290         BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_TASK,
3291         BUILT_IN_GOMP_PARALLEL_SECTIONS_START): Use
3292         Revert back to ATTR_NOTHROW_LIST instead of ATTR_NOTHROW_LEAF_LIST.
3293
3294 2010-10-05  Anatoly Sokolov  <aesok@post.ru>
3295
3296         * config/m68hc11/m68hc11.h (CLASS_LIKELY_SPILLED_P): Remove.
3297         * config/m68hc11/m68hc11.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
3298         (m68hc11_class_likely_spilled_p): New function.
3299
3300 2010-10-05  Nicola Pero  <nicola.pero@meta-innovation.com>
3301
3302         * c-parser.c (c_parser_objc_method_definition): Updated comment.
3303
3304 2010-10-05  Jan Hubicka  <jh@suse.cz>
3305
3306         * doc/invoke.texi (-flto-partition, lto-partitions, lto-minpartition):
3307         Document.
3308         * opts.c (decode_options): Handle lto partitions.
3309         * common.opt (flto-partition=1to1, flto-partition=balanced): New.
3310         * params.def (PARAM_LTO_PARTITIONS, MIN_PARTITION_SIZE): New.
3311
3312 2010-10-05  Jan Hubicka  <jh@suse.cz>
3313
3314         * cgraphunit.c (assemble_function): Output thunks and aliases before
3315         the function itself.
3316
3317 2010-09-29  Hariharan Sandanagobalane  <hariharan@picochip.com>
3318
3319         * config/picochip/picochip.c (picochip_option_override): Disable
3320         exception flags for picochip.
3321
3322 2010-10-05  Joseph Myers  <joseph@codesourcery.com>
3323
3324         * opts-common.c (handle_option, handle_generated_option,
3325         read_cmdline_option, set_option): Add diagnostic_context
3326         parameter.  Update calls among these functions.
3327         (set_option): Don't use global_dc.
3328         * opts.c (read_cmdline_options): Pass global_dc to read_cmdline_option.
3329         (decode_options): Pass global_dc to enable_warning_as_error.
3330         (common_handle_option): Pass global_dc to enable_warning_as_error.
3331         (enable_warning_as_error): Add diagnostic_context parameter.
3332         Document parameters.  Don't use global_dc.  Pass
3333         diagnostic_context parameter to handle_generated_option.
3334         * opts.h (set_option, handle_option, handle_generated_option,
3335         read_cmdline_option, enable_warning_as_error): Add
3336         diagnostic_context parameter.
3337         * Makefile.in (lto-opts.o): Update dependencies.
3338         * coretypes.h (struct diagnostic_context, diagnostic_context):
3339         Declare here.
3340         * diagnostic.h (diagnostic_context): Don't declare typedef here.
3341         * gcc.c (process_command): Pass global_dc to read_cmdline_option.
3342         * langhooks-def.h (struct diagnostic_context): Don't declare here.
3343         (lhd_print_error_function, lhd_initialize_diagnostics): Declare
3344         using diagnostic_context typedef.
3345         * langhooks.c (lhd_initialize_diagnostics): Declare using
3346         diagnostic_context typedef.
3347         * langhooks.h (struct diagnostic_context): Don't declare here.
3348         (initialize_diagnostics, print_error_function): Declare using
3349         diagnostic_context typedef.
3350         * lto-opts.c: Include diagnostic.h.
3351         (lto_reissue_options): Pass global_dc to set_option.  Pass
3352         DK_UNSPECIFIED not 0.
3353         * plugin.c (plugins_internal_error_function): Declare using
3354         diagnostic_context typedef.
3355         * plugin.h (struct diagnostic_context): Don't declare here.
3356         (plugins_internal_error_function): Declare using
3357         diagnostic_context typedef.
3358
3359 2010-10-05  Olivier Hainque  <hainque@adacore.com>
3360             Nicolas Roche  <roche@adacore.com>
3361
3362         * config/vxworksae.h: Add missing VXWORKS_OS_CPP_BUILTINS.
3363         * config/rs6000/vxworks.h: Remove redundant CPP builtin definitions.
3364
3365 2010-10-05  Ira Rosen  <irar@il.ibm.com>
3366
3367         PR tree-optimization/45752
3368         * tree-vect-slp.c (vect_get_mask_element): Remove static
3369         variables, make them function arguments.
3370         (vect_transform_slp_perm_load): Pass new arguments to
3371         vect_get_mask_element.
3372
3373 2010-10-05  Richard Guenther  <rguenther@suse.de>
3374
3375         * value-prof.c (gimple_divmod_fixed_value): Work on SSA form.
3376         (gimple_mod_pow2): Likewise.
3377         (gimple_mod_subtract): Likewise.
3378         (gimple_ic): Likewise.
3379         (gimple_stringop_fixed_value): Likewise.
3380         * tree-profile.c (tree_init_edge_profiler): Mark profile
3381         functions nothrow and leaf.
3382         (add_abnormal_goto_call_edges): Remove.
3383         (tree_gen_edge_profiler): Work on SSA form.
3384         (tree_gen_ic_profiler): Likewise.  Simplify.
3385         (do_tree_profiling): Update SSA form.
3386         (pass_tree_profile): Remove.
3387         (do_tree_profiling): Likewise.
3388         (gate_tree_profile_ipa): New function.
3389         (pass_ipa_tree_profile): New.
3390         (tree_profiling): Re-write as IPA pass.  Properly drop const/pure
3391         state of instrumented functions.
3392         * passes.c (init_optimization_passes): Remove early non-SSA
3393         inlining.  Move profiling after early optimizations.
3394         * ipa-inline.c (cgraph_gate_ipa_early_inlining): Remove.
3395         (pass_ipa_early_inline): Likewise.
3396         * tree-pass.h (pass_ipa_early_inline): Remove.
3397         (pass_tree_profile): Likewise.
3398         (pass_ipa_tree_profile): Declare.
3399
3400 2010-10-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3401             Christian Borntraeger  <Christian.Borntraeger@de.ibm.com>
3402
3403         * gcc/config/s390/s390.c (z196_cost): New.
3404         (s390_handle_arch_option): Add -march=z196.
3405         (s390_option_override): Use the new cost function and use the z10
3406         defaults also for z196.
3407         (legitimate_reload_constant_p): Adjust comment.
3408         (legitimate_reload_fp_constant_p): New function.
3409         (s390_preferred_reload_class): Distingiush between FP and Int constants.
3410         (preferred_la_operand_p): Avoid la with index on z196.
3411         (s390_adjust_priority): Trigger also for z196.
3412         (s390_issue_rate): Issue rate for z196 is 3.
3413         (s390_z10_fix_long_loop_prediction): Rename to ...
3414         (s390_fix_long_loop_prediction): ... this.
3415         (s390_reorg): Apply the z10 adjustments also for z196.
3416         (s390_loop_unroll_adjust): Do this also for z196.
3417         * gcc/config/s390/s390.h (enum processor_type): Add PROCESSOR_2817_Z196.
3418         (enum processor_flags): Add PF_Z196.
3419         (TARGET_AVOID_CMP_AND_BRANCH): New macro.
3420         (TARGET_CPU_Z196, TARGET_Z196): New macros.
3421         * gcc/config.gcc: Enable z196 for --with-arch.
3422         * gcc/config/s390/2817.md: New file.
3423         * gcc/config/s390/2084.md: New type for multiply and add.
3424         * gcc/config/s390/2097.md: Likewise.
3425         * gcc/config/s390/s390.md (UNSPEC_POPCNT, UNSPEC_COPYSIGN)
3426         (UNSPECV_ATOMIC_OP): New constants.
3427         (fmadddf, fmaddsf): New values for type attribute.
3428         (z196prop): New insn attribute.
3429         (cpu, cpu_facility): Add z196.
3430         (ATOMIC_Z196): New code iterator.
3431         (noxa): New code attribute.
3432         (gk): New mode attribute.
3433         (*mov<mode>_64, *mov<mode>_31, *mov<mode>_64dfp, mov<mode>):
3434         Support load zero for fp constants.
3435         (fixuns_truncdddi2, fixuns_trunctddi2)
3436         (fixuns_trunc<BFP:mode><GPR:mode>2): Use the standard rtx pattern
3437         for z196.
3438         (fixuns_trunc<mode>si2, mov<mode>cc, popcountdi2, popcountsi2)
3439         (popcounthi2, popcountqi2): New expander.
3440         (*fixuns_trunc<FP:mode><GPR:mode>2_z196, floatsi<mode>2)
3441         (floatuns<GPR:mode><FP:mode>2, *mov<mode>cc, sync_<atomic><mode>)
3442         (sync_old_<atomic><mode>, *popcount<mode>, copysign<mode>3): New
3443         insn definition.
3444         (add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry1_cconly)
3445         (*add<mode>3_carry2_cc, *add<mode>3_carry2_cconly, *add<mode>3_cc)
3446         (*add<mode>3_cconly, *add<mode>3_cconly2, *add<mode>3_imm_cc)
3447         (*sub<mode>3, *sub<mode>3_borrow_cc, *sub<mode>3_borrow_cconly)
3448         (*sub<mode>3_cc, *sub<mode>3_cc2, *sub<mode>3_cconly)
3449         (*sub<mode>3_cconly2, *anddi3_cc, *anddi3_cconly, *anddi3, *andsi3_cc)
3450         (*andsi3_cconly, *andsi3_zarch, *andsi3_esa, *andhi3_zarch
3451         (*andqi3_zarch, *iordi3_cc, *iordi3_cconly, *iordi3, *iorsi3_cc)
3452         (*iorsi3_cconly, *iorsi3_zarch, *iorhi3_zarch, *iorqi3_zarch)
3453         (*xordi3_cc, *xordi3_cconly, *xordi3, *xorsi3_cc, *xorsi3_cconly)
3454         (*xorsi3, *xorhi3, *xorqi3, *<shift><mode>3, *<shift><mode>3_and)
3455         (*ashr<mode>3_cc, *ashr<mode>3_cconly, *ashr<mode>3)
3456         (*ashr<mode>3_cc_and, *ashr<mode>3_cconly_and, *ashr<mode>3_and):
3457         Support new z196 instructions.
3458
3459 2010-10-05  Richard Guenther  <rguenther@suse.de>
3460
3461         PR middle-end/45877
3462         * gimple-fold.c (gimplify_and_update_call_from_tree): Handle
3463         case where gimplification optimizes away the stmt.
3464
3465 2010-10-04  Jakub Jelinek  <jakub@redhat.com>
3466
3467         PR debug/45849
3468         * var-tracking.c (strip_pointer_flags): New function.
3469         (emit_note_insn_var_location): If rtx_equal_p check failed,
3470         retry on locations simplified with simplify_replace_fn_rtx
3471         and strip_pointer_flags as its callback.
3472
3473 2010-10-04  Jan Hubicka  <jh@suse.cz>
3474
3475         * gimple-fold.c (static_object_in_other_unit_p): Rename to...
3476         (can_refer_decl_in_current_unit_p): ... this one; reverse return
3477         value; handle comdats too.
3478         (canonicalize_constructor_val): Use it; handle function_decls
3479         correctly.
3480         (gimple_fold_obj_type_ref_known_binfo): Likewise.
3481         * gimple.c (get_base_address): Accept all kinds of decls.
3482
3483 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
3484
3485         * flags.h (g_switch_value, g_switch_set): Remove.
3486         * opts.c (g_switch_value, g_switch_set): Remove.
3487         * config/g.opt (G): Add Var(g_switch_value).
3488         * config/alpha/alpha.c (alpha_handle_option): Don't handle -G here.
3489         (alpha_option_override): Check global_options_set.x_g_switch_value
3490         instead of g_switch_set.
3491         (alpha_in_small_data_p): Remove cast in comparison with
3492         g_switch_value.
3493         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Cast
3494         g_switch_value to unsigned HOST_WIDE_INT.
3495         * config/frv/frv.c (frv_const_unspec_p): Remove cast in comparison
3496         with g_switch_value.
3497         (frv_handle_option): Don't handle -G here.
3498         (frv_option_override): Check global_options_set.x_g_switch_value
3499         instead of g_switch_set.  Don't modify g_switch_set.
3500         (frv_in_small_data_p): Remove cast in comparison with g_switch_value.
3501         * config/frv/frv.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Cast
3502         g_switch_value to unsigned HOST_WIDE_INT.
3503         * config/ia64/ia64.c (ia64_handle_option): Don't handle -G here.
3504         (ia64_option_override): Check global_options_set.x_g_switch_value
3505         instead of g_switch_set.
3506         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION):
3507         Remove.
3508         (lm32_in_small_data_p): Remove cast in comparison with
3509         g_switch_value.
3510         * config/lm32/lm32.h (ASM_OUTPUT_ALIGNED_LOCAL,
3511         ASM_OUTPUT_ALIGNED_COMMON): Cast g_switch_value to unsigned
3512         HOST_WIDE_INT.
3513         * config/m32r/m32r.c (m32r_handle_option): Don't handle -G here.
3514         (m32r_init): Check global_options_set.x_g_switch_value instead of
3515         g_switch_set.
3516         (m32r_in_small_data_p): Remove cast in comparison with
3517         g_switch_value.
3518         (m32r_file_start): Format g_switch_value with %d.
3519         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_COMMON,
3520         ASM_OUTPUT_ALIGNED_BSS): Cast g_switch_value to unsigned HOST_WIDE_INT.
3521         * config/microblaze/microblaze.c (microblaze_handle_option): Don't
3522         handle -G here.
3523         (microblaze_option_override): Check
3524         global_options_set.x_g_switch_value instead of g_switch_set.
3525         * config/mips/mips.c (mips_handle_option): Don't handle -G here.
3526         (mips_option_override): Check global_options_set.x_g_switch_value
3527         instead of g_switch_set.
3528         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle -G here.
3529         (rs6000_file_start): Format g_switch_value with %d.
3530         (small_data_operand, rs6000_elf_in_small_data_p): Remove casts in
3531         comparisons with g_switch_value.
3532         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Check
3533         global_options_set.x_g_switch_value instead of g_switch_set.
3534         * config/rs6000/vxworks.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
3535         global_options_set.x_g_switch_value instead of g_switch_set.
3536         * config/score/score.c (score_handle_option): Don't handle -G here.
3537         * config/score/score3.c (score3_option_override): Check
3538         global_options_set.x_g_switch_value instead of g_switch_set.
3539         * config/score/score7.c (score7_option_override): Check
3540         global_options_set.x_g_switch_value instead of g_switch_set.
3541
3542 2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
3543
3544         * common.opt (fira-coalesce): Remove.
3545
3546         * doc/invoke.texi (flag_ira_coalesce): Remove.
3547
3548         * ira-color.c (allocno_coalesced_p): Move before
3549         copy_freq_compare_func.
3550         processed_coalesced_allocno_bitmap): Ditto.
3551         (update_conflict_hard_regno_costs): Don't use
3552         ALLOCNO_FIRST_COALESCED_ALLOCNO.
3553         (allocno_cost_compare_func, print_coalesced_allocno): Remove.
3554         (assign_hard_reg): Assume no coalesced allocnos.
3555         (get_coalesced_allocnos_attributes): Remove.
3556         (bucket_allocno_compare_func): Assume no coalesced allocnos.
3557         (push_allocno_to_stack): Ditto.
3558         (remove_allocno_from_bucket_and_push): Use
3559         ira_print_expanded_allocno instead of print_coalesced_allocno.
3560         (push_allocnos_to_stack): Assume uncoalesced allocnos.
3561         (all_conflicting_hard_regs_coalesced): Ditto.  Rename to
3562         all_conflicting_hard_regs.
3563         (setup_allocno_available_regs_num): Assume uncoalesced allocnos.
3564         (setup_allocno_left_conflicts_size): Ditto.
3565         (put_allocno_into_bucket): Ditto.
3566         (copy_freq_compare_func): Remove.
3567         (copy_freq_compare_func, merge_allocnos): Move before
3568         coalesced_pseudo_reg_freq_compare.
3569         coalesced_allocno_conflict_p): Ditto.
3570         (coalesced_allocno_conflict_p, coalesce_allocnos): Ditto.  Remove
3571         parameter.  Assume it true.
3572         (color_allocnos): Assume uncoalesced allocnos.  Use
3573         ira_print_expanded_allocno instead of print_coalesced_allocno.
3574         (ira_sort_regnos_for_alter_reg): Call coalesce_allocnos without
3575         parameter.
3576
3577         * ira.c: Remove comment about coalescing.
3578
3579 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
3580
3581         * config/mips/mips.h (target_flags_explicit): Declare for
3582         GENERATOR_FILE.
3583
3584 2010-10-04  Andi Kleen <ak@linux.intel.com>
3585
3586         * Makefile.in (xgcc, cpp, cc1, collect2, lto-wrapper, gcov,
3587         gcov-dump, cc1-dummy, genprog, build/gcov-iov): Add + to build rule.
3588
3589 2010-10-04  Matthias Klose  <doko@ubuntu.com>
3590
3591         * config/sparc/t-linux64 (MULTILIB_OSDIRNAMES): Use ../lib32 as the
3592         multilib osdirname if it exists.
3593         * config/s390/t-linux64 (MULTILIB_OSDIRNAMES): Likewise.
3594
3595 2010-10-04  Jakub Jelinek  <jakub@redhat.com>
3596
3597         PR middle-end/45876
3598         * fold-const.c (fold_binary_loc) <case BIT_AND_EXPR>: Use
3599         arg0's type or its unsigned counterpart as utype.  Convert
3600         arg1 to utype unconditionally.
3601
3602 2010-10-04  Julian Brown  <julian@codesourcery.com>
3603
3604         * expr.c (expand_assignment): Add assertion to prevent emitting
3605         null rtx for movmisalign pattern.
3606         (expand_expr_real_1): Likewise.
3607         * config/arm/arm.c (arm_builtin_support_vector_misalignment): New.
3608         (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT): New. Use above.
3609         (arm_vector_alignment_reachable): New.
3610         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): New. Use above.
3611         (neon_vector_mem_operand): Disallow PRE_DEC for misaligned loads.
3612         (arm_print_operand): Include alignment qualifier in %A.
3613         * config/arm/neon.md (UNSPEC_MISALIGNED_ACCESS): New constant.
3614         (movmisalign<mode>): New expander.
3615         (movmisalign<mode>_neon_store, movmisalign<mode>_neon_load): New
3616         insn patterns.
3617
3618 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
3619
3620         * optc-gen.awk: Define global_options_set.  Don't define
3621         target_flags_explicit.
3622         * opth-gen.awk: Declare global_options_set.  Define
3623         target_flags_explicit as macro.
3624         * opts-common.c (handle_option): Take opts_set and generated_p
3625         parameters.
3626         (handle_generated_option, read_cmdline_option, set_option): Take
3627         opts_set parameter.
3628         (set_option): Use opts_set instead of hardcoding target_flags and
3629         target_flags_explicit.
3630         * opts.c (sel_sched_switch_set, profile_arc_flag_set,
3631         flag_profile_values_set, flag_unroll_loops_set, flag_tracer_set,
3632         flag_value_profile_transformations_set, flag_peel_loops_set,
3633         flag_branch_probabilities_set, flag_inline_functions_set,
3634         flag_ipa_cp_set, flag_ipa_cp_clone_set,
3635         flag_predictive_commoning_set, flag_unswitch_loops_set,
3636         flag_gcse_after_reload_set): Remove.
3637         (common_handle_option, lang_handle_option, target_handle_option):
3638         Take opts_set parameter.  Assert that it is &global_options_set.
3639         (common_handle_option): Don't set _set variables.  Check opts_set
3640         instead of such variables.
3641         (enable_warning_as_error): Pass &global_options_set to
3642         handle_generated_option.
3643         * opts.h (cl_option_handler_func.handler, set_option,
3644         handle_option, handle_generated_option, read_cmdline_option): Add
3645         opts_set parameters.
3646         (handle_option): Add generated_p parameter.
3647         * config/i386/i386.c (ix86_function_specific_save,
3648         ix86_function_specific_restore): Updat for renaming of
3649         target_flags_explicit field.
3650         * config/i386/i386.opt (target_flags_explicit): Rename to
3651         ix86_target_flags_explicit.
3652         * config/ia64/ia64.c (ia64_override_options_after_change): Check
3653         global_options_set.x_flag_selective_scheduling and
3654         global_options_set.x_flag_selective_scheduling2, not
3655         sel_sched_switch_set.
3656         * flags.h (sel_sched_switch_set,
3657         flag_speculative_prefetching_set): Remove.
3658         * gcc.c (driver_handle_option): Take opts_set parameter.  Assert
3659         that it is &global_options_set.
3660         (process_command): Pass &global_options_set to read_cmdline_option.
3661         * lto-opts.c (lto_reissue_options): Pass &global_options_set to
3662         set_option.
3663         * toplev.c (target_flags_explicit): Remove.
3664
3665 2010-10-04  Jan Hubicka  <jh@suse.cz>
3666
3667         PR middle-end/45871
3668         * tree-ssa-ccp.c (get_base_constructor): Take HOST_WIDE_INT offset;
3669         use get_ref_base_and_offset to handle references.
3670         (fold_const_aggregate_ref): Update.
3671
3672 2010-10-04  Martin Jambor  <mjambor@suse.cz>
3673
3674         PR tree-optimization/45572
3675         * ipa-prop.c (ipa_make_edge_direct_to_target): Call
3676         ipa_check_create_node_params.
3677         * ipa-inline.c (add_new_edges_to_heap): Do not insert inlined edges.
3678
3679 2010-10-04  Yao Qi  <yao@codesourcery.com>
3680
3681         * doc/passes.texi: Clean up.
3682
3683 2010-10-03  Ian Lance Taylor  <iant@google.com>
3684
3685         * c-typeck.c (lookup_field): If -fplan9-extensions, permit
3686         referring to a field using a typedef name.
3687         (find_anonymous_field_with_type): New static function.
3688         (convert_to_anonymous_field): New static function.
3689         (convert_for_assignment): If -fplan9-extensions, permit converting
3690         pointer to struct to pointer to anonymous field.
3691         * c-decl.c (grokfield): If -fplan9-extensions, permit anonymous fields.
3692         (is_duplicate_field): New static function.
3693         (detect_field_duplicates_hash): If -fplan9-extensions, check for
3694         typedef names duplicating field names.
3695         (detect_field_duplicates): Likewise.
3696         * doc/invoke.texi (Option Summary): Mention -fplan9-extensions.
3697         (C Dialect Options): Document -fplan9-extensions.
3698         * doc/extend.texi (Unnamed Fields): Document -fplan9-extensions.
3699
3700 2010-10-03  H.J. Lu  <hongjiu.lu@intel.com>
3701
3702         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Revert
3703         revision 164914.
3704         (vect_create_data_ref_ptr): Likewise.
3705         * tree-vect-stmts.c (vectorizable_store): Likewise.
3706         (perm_mask_for_reverse): Likewise.
3707         (reverse_vec_elements): Likewise.
3708         (vectorizable_load): Likewise.
3709
3710 2010-10-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3711
3712         * cppbuiltin.c: New file.
3713         * cppbuiltin.h: New file.
3714         * Makefile.in: Take into account cppbuiltin.{h,c}.
3715
3716 2010-10-03  Andi Kleen <ak@linux.intel.com>
3717
3718         * lto-cgraph.c (input_cgraph): Check for missing sections.
3719
3720 2010-10-03  Uros Bizjak  <ubizjak@gmail.com>
3721
3722         * config/i386/i386.md (*ashl<mode>3_mask): Change operand 2 predicate
3723         to nonimmediate_operand.  Force operand 2 to register when allowed.
3724         (*<shiftrt_insn><mode>3_mask): Ditto.
3725         (*<rotate_insn><mode>3_mask): Ditto.
3726
3727 2010-10-02  H.J. Lu  <hongjiu.lu@intel.com>
3728
3729         PR tree-optimization/45720
3730         PR tree-optimization/45764
3731         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
3732         Don't accept backwards consecutive accesses.
3733         (vect_create_data_ref_ptr): Disallow negative steps.
3734
3735         * tree-vect-stmts.c (vectorizable_store): Allow negative steps.
3736         (perm_mask_for_reverse): Removed.
3737         (reverse_vec_elements): Likewise.
3738         (vectorizable_load): Don't handle negative steps.
3739
3740 2010-10-02  Jan Hubicka  <jh@suse.cz>
3741
3742         * tree-ssa-ccp.c (ccp_fold_stmt): Fold away OBJ_TYPE_REF when
3743         call destination is known.
3744
3745 2010-10-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3746
3747         PR target/45820
3748         * config/pa/pa.c (pa_secondary_reload): Handle symbolic operands
3749         earlier.
3750
3751 2010-10-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3752
3753         * doc/install.texi (Configuration): Document build_configargs,
3754         host_configargs, target_configargs.
3755
3756 2010-10-01  Uros Bizjak  <ubizjak@gmail.com>
3757
3758         * config/i386/i386.md (*ashl<mode>3_mask): New insn_and_split pattern.
3759         (*<shiftrt_insn><mode>3_mask): Ditto.
3760         (*<rotate_insn><mode>3_mask): Ditto.
3761
3762 2010-10-01  Steve Ellcey  <sje@cup.hp.com>
3763
3764         PR tree-optimization/44716
3765         * config/ia64/hpux.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
3766         (HOT_TEXT_SECTION_NAME): Define.
3767
3768 2010-10-01  Nick Clifton  <nickc@redhat.com>
3769
3770         * common.opt: Add -fcombine-stack-adjustments.
3771         * opts.c (decode_options): Enable -fcombine-stack-adjustments at -O1.
3772         * combine-stack-adj.c (gate_handle_stack_adjustments): Check
3773         flag_combine_stack_adjustments.
3774         * doc/invoke.texi: Document the new option.
3775
3776 2010-10-01  Richard Guenther  <rguenther@suse.de>
3777
3778         PR tree-optimization/45854
3779         * tree-eh.c (cleanup_empty_eh): Avoid degenerate case.
3780
3781 2010-10-01  Anthony Green  <green@moxielogic.com>
3782
3783         * config.gcc: Fix moxie-*-rtems* configuration.
3784
3785 2010-10-01  Richard Guenther  <rguenther@suse.de>
3786
3787         * dwarf2out.c (gen_namespace_die): Use DECL_FILE_SCOPE_P.
3788         (gen_decl_die): Likewise.
3789
3790 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3791
3792         * config/spu/spu.c (spu_init_builtins): No longer add END_BUILTINS
3793         to the function code for SPU MD builtins.
3794         (spu_expand_builtin): Update.
3795         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Update.
3796
3797 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3798
3799         * config/spu/spu.c (TARGET_EXCEPT_UNWIND_INFO): Set to
3800         sjlj_except_unwind_info.
3801
3802 2010-10-01  Tristan Gingold  <gingold@adacore.com>
3803
3804         * configure.ac: Define the nop insn for avr*-*-*
3805         * configure: Regenerate.
3806
3807 2010-10-01  Alan Modra  <amodra@gmail.com>
3808
3809         PR target/45807
3810         * config/rs6000/rs6000.c (rs6000_emit_prologue): Properly sign
3811         extend toc_restore_insn.
3812
3813 2010-09-30  Richard Guenther  <rguenther@suse.de>
3814
3815         PR tree-optimization/43959
3816         * function.c (gimplify_parameters): Use create_tmp_reg instead of
3817         create_tmp_var.
3818
3819 2010-09-30  Kaz Kojima  <kkojima@gcc.gnu.org>
3820
3821         * config/sh/sh.c (sh_expand_prologue): Set
3822         current_function_static_stack_size.
3823
3824 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3825
3826         * configure.ac: Check for Solaris 8 ld with .hidden support.
3827         * configure: Regenerate.
3828
3829 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
3830
3831         PR middle-end/45758
3832         * graphite.c (graphite_initialize): Call scev_reset.
3833
3834 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
3835
3836         * sese.h (scev_analyzable_p): Return false for real or floating
3837         point.  Only handle INTEGRAL_TYPE_P and POINTER_TYPE_P.
3838
3839 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
3840
3841         * graphite-clast-to-gimple.c (compute_bounds_for_level): Free le
3842         and ps.
3843         * graphite-poly.c (pbb_number_of_iterations_at_time): Free le and
3844         domain.
3845         * graphite-sese-to-poly.c (add_upper_bounds_from_estimated_nit):
3846         Do not allocate ub_expr, it is passed in initialized.
3847
3848 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
3849
3850         * graphite-clast-to-gimple.c (init_cloog_input_file): New.
3851         (build_cloog_prog): Dump CLooG input file when
3852         flag_graphite_dump_cloog is set.  This is disabled on trunk.
3853         * graphite-cloog-compat.h (cloog_program_dump_cloog): New.
3854
3855 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
3856
3857         * graphite-clast-to-gimple.c (graphite_verify): Remove call to
3858         verify_dominators for CDI_POST_DOMINATORS.
3859         * sese.h: Remove comment about CDI_POST_DOMINATORS.
3860         (recompute_all_dominators): Remove call to free_dominance_info
3861         for CDI_POST_DOMINATORS.  Remove call to calculate_dominance_info
3862         for CDI_POST_DOMINATORS.
3863
3864 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
3865
3866         * graphite-poly.c (pbb_number_of_iterations_at_time): Only iterate
3867         over pbb_dim_iter_domain.
3868
3869 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
3870
3871         * graphite-flattening.c: Fix comments.
3872
3873 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
3874
3875         * Makefile.in (OBJS-common): Add graphite-flattening.o.
3876         (graphite-flattening.o): New rule.
3877         * common.opt (floop-flatten): New flag.
3878         * doc/invoke.texi (-floop-flatten): Documented.
3879         * graphite-flattening.c: New.
3880         * graphite-poly.c (apply_poly_transforms): Call flatten_all_loops.
3881         * graphite-poly.h (flatten_all_loops): Declared.
3882         (lst_remove_loop_and_inline_stmts_in_loop_father): New.
3883         * tree-ssa-loop.c (gate_graphite_transforms): When flag_loop_flatten
3884         is set, also set flag_graphite.
3885
3886 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
3887
3888         * graphite-poly.c (cloog_checksum): New.
3889         * graphite-poly.h (cloog_checksum): Declared.
3890
3891 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
3892
3893         * graphite-poly.c (pbb_number_of_iterations): Removed.
3894         (pbb_number_of_iterations_at_time): Correctly compute the number
3895         of iterations in the transformed loop.
3896         * graphite-poly.h (pbb_number_of_iterations): Removed.
3897
3898 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
3899
3900         * graphite-poly.h (lst_update_scattering_seq): Removed.
3901         (lst_update_scattering): Correctly handle outermost loop dewey
3902         renumbering.
3903
3904 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
3905
3906         * graphite-blocking.c (pbb_strip_mine_profitable_p): Renamed
3907         lst_strip_mine_profitable_p.  Call lst_niter_for_loop.
3908         * graphite-poly.h (lst_niter_for_loop): New.
3909
3910 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
3911
3912         * graphite-poly.c (apply_poly_transforms): Do not abort when the
3913         transform read from disk is not legal.  Call fatal_error instead.
3914
3915 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
3916
3917         * graphite-poly.c (print_pbb_body): Add missing closing parenthesis.
3918         (print_scop_header): Removed.  Inlined in the only call place...
3919         (print_scop): ... here.
3920
3921 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
3922
3923         * graphite-poly.h (lst_dewey_number): Use FOR_EACH_VEC_ELT.
3924
3925 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
3926
3927         * graphite-poly.c (graphite_read_scop_file): Fix uninitialize warning.
3928
3929 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
3930
3931         * graphite-dependences.c (dot_deps): Avoid set but not used warning.
3932         (dot_deps_stmt): Same.
3933         * graphite-poly.c (dot_lst): Same.
3934
3935 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
3936
3937         * graphite-blocking.c (scop_do_strip_mine): Do not call
3938         graphite_legal_transform.
3939         (scop_do_block): Same.
3940
3941 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
3942
3943         * graphite-scop-detection.c (graphite_can_represent_loop): Correct the
3944         description.
3945
3946 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
3947
3948         * tree-scalar-evolution.c (instantiate_array_ref): New.
3949         (instantiate_scev_r): Also handle ARRAY_REFs.
3950
3951 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
3952
3953         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
3954         Do not check for VAR_DECL, PARM_DECL, FUNCTION_DECL, LABEL_DECL,
3955         RESULT_DECL, and FIELD_DECL.  Return false for an
3956         SSA_NAME_IS_DEFAULT_DEF.
3957         (compute_scalar_evolution_in_loop): Do not further analyze the
3958         scalar evolution when no_evolution_in_loop_p returns true.
3959
3960 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
3961
3962         * tree-chrec.h (evolution_function_is_affine_p): Do not check
3963         whether CHREC_LEFT is invariant.  A function is affine when
3964         CHREC_RIGHT is invariant.
3965
3966 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
3967
3968         * graphite-sese-to-poly.c (reduction_phi_p): Remove check for
3969         is_gimple_reg.
3970         (rewrite_degenerate_phi): Same.
3971         (rewrite_reductions_out_of_ssa): Add check for is_gimple_reg.
3972
3973 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
3974
3975         * graphite-scop-detection.c (graphite_can_represent_scev,
3976         graphite_can_represent_expr, stmt_has_simple_data_refs_p,
3977         graphite_can_represent_loop): Remove outermost_loop.
3978
3979 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
3980
3981         PR middle-end/45229
3982         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Do not
3983         handle GIMPLE_CALLs with no LHS.
3984
3985 2010-09-30  Riyadh Baghdadi <baghdadi.mr@gmail.com>
3986
3987         * graphite-poly.c (init_graphite_out_file): New.
3988         (init_graphite_in_file): New.
3989         (apply_poly_transforms): Updated to enable reading and writing of
3990         multiple scop files.
3991
3992 2010-09-30  Tobias Grosser  <grosser@fim.uni-passau.de>
3993
3994         * graphite-scop-detection.c (graphite_can_represent_scev): Remove
3995         redundant checks.
3996
3997 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
3998
3999         * graphite-clast-to-gimple.c (precision_for_value): Adjust
4000         computation of precision by 1.
4001
4002 2010-09-30  Riyadh Baghdadi <baghdadi.mr@gmail.com>
4003
4004         * graphite-cloog-util.c (openscop_read_cloog_matrix): New.
4005         (openscop_read_polyhedron_matrix): New.
4006         * graphite-cloog-util.h (openscop_read_polyhedron_matrix): Declared.
4007         (openscop_read_N_int): Same.
4008         * graphite-poly.c (openscop_read_N_int): New.
4009         (openscop_read_one_int): New.
4010         (openscop_read_N_string): New.
4011         (openscop_read_one_string): New.
4012         (openscop_read_powerset_matrix): New.
4013         (graphite_read_transforms): Remove.
4014         (graphite_read_scatt): New.
4015         (graphite_read_scop_file): New.
4016         (apply_poly_transforms): Updated to call graphite_read_scop_file.
4017
4018 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
4019
4020         * graphite-poly.c: Change include order.
4021
4022 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
4023
4024         * graphite-cloog-compat.h (cloog_matrix_ncolumns): New.
4025         (cloog_matrix_nrows): New.
4026
4027 2010-09-30  Riyadh Baghdadi <baghdadi.mr@gmail.com>
4028
4029         * graphite-cloog-util.c (openscop_print_cloog_matrix): Remove spaces
4030         from matrix lines.
4031         * graphite-poly.c (openscop_print_scattering_function_1): Same.
4032         (print_scattering_function_1): Same.
4033         (openscop_print_pbb_domain): Same.
4034         (openscop_print_scop_context): Same.
4035         (print_scop_context): Same.
4036
4037 2010-09-30  Riyadh Baghdadi <baghdadi.mr@gmail.com>
4038
4039         * graphite-poly.c (openscop_print_pdr_polyhedron): Fix indentation.
4040         (openscop_print_pdr_polyhedron): Print pph.
4041
4042 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
4043
4044         * graphite-clast-to-gimple.c (gcc_type_for_interval): Generate in
4045         priority signed types.
4046
4047 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
4048
4049         * graphite-clast-to-gimple.c (max_signed_precision_type): Remove
4050         the call to lang_hooks.types.type_for_size.  Call
4051         build_nonstandard_integer_type.
4052
4053 2010-09-30  Riyadh Baghdadi <baghdadi.mr@gmail.com>
4054
4055         * graphite-cloog-util.c (openscop_print_cloog_matrix): New.
4056         (openscop_print_polyhedron_matrix): New.
4057         * graphite-cloog-util.h (openscop_print_polyhedron_matrix): Declared.
4058         * graphite-poly.c (openscop_print_pdr_polyhedron): Same.
4059         (openscop_print_pdr_powerset): New.
4060         (openscop_print_powerset_matrix): New.
4061         (openscop_print_scattering_function_1): New.
4062         (print_scattering_function): Add support for scattering names and
4063         OpenScop format.
4064         (graphite_write_transforms): Remove.
4065         (print_pdr_access_layout): Updated to support OpenScop format.
4066         (print_pdr): Same.
4067         (openscop_print_pbb_domain): New.
4068         (print_pbb_body): Added a parameter to allow indicating that pbb_body
4069         is not provided.
4070         (print_pbb): Updated to call the new print_pbb_body.
4071         (openscop_print_scop_context): New.
4072         (print_scop_header): New.
4073         (print_scop): Updated to call print_scop_header.
4074         * graphite-poly.h: Document OpenScop format.
4075
4076 2010-09-30  Anatoly Sokolov  <aesok@post.ru>
4077
4078         * config/cris/m32c.c (cris_memory_move_cost): New.
4079         (cris_register_move_cost): Make static. Change arguments type from
4080         enum reg_class to reg_class_t.
4081         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
4082         * config/cris/cris.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
4083         * config/cris/cris-protos.h (cris_register_move_cost): Remove.
4084
4085 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
4086
4087         PR target/45843
4088         * config/i386/i386.c (ix86_gimplify_va_arg): Use
4089         INTVAL (XEXP (slot, 1)) as prev_size.
4090
4091 2010-09-30  Michael Meissner  <meissner@linux.vnet.ibm.com>
4092
4093         PR target/45837
4094         * config/rs6000/aix.h (TARGET_AIX_OS): Define to be 1.
4095         * config/rs6000/rs6000.h (TARGET_AIX_OS): Define to be 0 if not
4096         defined.
4097         * config/rs6000/option-defaults.h (toplevel): Change #if
4098         TARGET_AIX to TARGET_AIX_OS to allow compiler to build after
4099         global option changes.
4100
4101 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
4102
4103         * dwarf2out.c (mem_loc_descriptor): Handle IF_THEN_ELSE.
4104
4105         PR tree-optimization/31261
4106         * fold-const.c (fold_binary): Optimize ((A & N) + B) & M
4107         for constants M and N, M == (1LL << cst) - 1 && (N & M) == M.
4108
4109 2010-09-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4110
4111         PR bootstrap/45796
4112         * Makefile.in (build/gen%$(build_exeext)): Move rule after all
4113         special-casing for generators and turn into ...
4114         ((genprog:%=build/gen%$(build_exeext))): ... this static pattern
4115         rule, for better error messages in case of toplevel dependency errors.
4116         (genprog): Add hooks, rename to ...
4117         (genprogerr): ... this, and let genprog also contain check,
4118         checksum, condmd.
4119         ((genprog:%=build/gen%$(build_exeext))): Rename to ...
4120         ((genprogerr:%=build/gen%$(build_exeext))): ... this.
4121         (build/genhooks$(build_exeext)): Remove now-unneeded dependency.
4122
4123 2010-09-30  Jonathan Wakely  <jwakely.gcc@gmail.com>
4124             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4125
4126         * doc/install.texi: Suggest using LD_LIBRARY_PATH to find libs
4127         for GMP, MPFR and MPC.
4128
4129 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4130
4131         * config/sparc/sparc.opt (mimpure-text): Move ...
4132         * config/sol2.opt: ... here.  Correct description.
4133         * config.gcc (*-*-solaris2*): Add sol2.opt to extra_options.
4134         * doc/invoke.texi (Option Summary, SPARC Options): Move
4135         -mimpure-text, -mno-impure-text, -threads, -pthreads, -pthread ...
4136         (Option Summary, Solaris 2 Options): ... here.
4137         (Submodel Options, Solaris 2 Options): New menu entry.
4138         (SPARC Options): Move -mimpure-text, -threads, -pthreads, -pthread ...
4139         (Solaris 2 Options): ... here.
4140
4141 2010-09-30  Michael Eager  <eager@eagercon.com>
4142
4143         * extend.texi (interrupt_handler): Add MicroBlaze to list.
4144         (save_volatiles): Describe option for MicroBlaze.
4145         * invoke.texi: Add MicroBlaze Options.
4146         * contrib.texi: Add acknowledgment.
4147         * md.texi: Add MicroBlaze d and z constraints.
4148         * install.texi: Add microblaze-*-elf.
4149         * configure.ac: Add microblaze-*-* to target list.
4150         * configure: Regenerate.
4151         * config.gcc: Add microblaze*-*-*, microblaze*-linux*.
4152         * config/microblaze/microblaze-protos.h: New.
4153         * config/microblaze/crti.s: New.
4154         * config/microblaze/predicates.md: New.
4155         * config/microblaze/linux.h: New.
4156         * config/microblaze/microblaze.md: New.
4157         * config/microblaze/constraints.md: New.
4158         * config/microblaze/crtn.s: New.
4159         * config/microblaze/microblaze.opt: New.
4160         * config/microblaze/microblaze-c.c: New.
4161         * config/microblaze/t-microblaze: New.
4162         * config/microblaze/microblaze.c: New.
4163         * config/microblaze/microblaze.h: New.
4164
4165 2010-09-30  Iain Sandoe  <iains@gcc.gnu.org>
4166
4167         * c-parser.c (c_parser_objc_methodprotolist): Amend preceding comment,
4168         parse @optional/@required and set the flags as appropriate.
4169
4170 2010-09-30  Nathan Froyd  <froydnj@codesourcery.com>
4171
4172         * config/iq2000/t-iq2000 (TARGET_LIBGCC2_CFLAGS): Delete.
4173
4174 2010-09-30  Joseph Myers  <joseph@codesourcery.com>
4175
4176         * opt-functions.awk (static_var): Update comment.
4177         (var_ref): Return offsetof expression or -1, not variable address.
4178         * optc-gen.awk: Generate structure field initializers instead of
4179         static variables.  Expect -1 for missing variables instead of null
4180         pointer.  Add gcc_options parameters to generated functions.
4181         * opth-gen.awk: Generate structure fields for static variables.
4182         Add gcc_options parameters to generated functions.
4183         * common.opt (optimize, optimize_size): Add variables.
4184         * config/i386/i386-c.c (ix86_pragma_target_parse): Pass
4185         &global_options to cl_target_option_restore.
4186         * config/i386/i386.c (ix86_valid_target_attribute_p): Pass
4187         &global_options to cl_optimization_restore, cl_target_option_save
4188         and cl_target_option_restore.
4189         (ix86_set_current_function): Pass &global_options to
4190         cl_target_option_restore.
4191         * config/pdp11/pdp11.h (optimize): Remove.
4192         * config/rs6000/rs6000.h (optimize): Remove.
4193         * config/sh/sh.h (optimize): Remove.
4194         * config/xtensa/xtensa.h (optimize): Remove.
4195         * coretypes.h (struct gcc_options): Declare.
4196         * diagnostic.c (diagnostic_initialize): Initialize
4197         context->option_state.
4198         (diagnostic_report_diagnostic): Pass option_state to
4199         option_enabled hook.
4200         * diagnostic.h (diagnostic_context.option_enabled): Add void *
4201         parameter.
4202         (diagnostic_context.option_state): New field.
4203         * final.c (final_start_function, final, final_scan_insn): Rename
4204         optimize parameter to optimize_p.
4205         * flags.h (optimize, optimize_size): Remove.
4206         * function.c (invoke_set_current_function_hook): Pass
4207         &global_options to cl_optimization_restore.
4208         * gcc.c (driver_handle_option): Take gcc_options parameter.
4209         Assert that it is &global_options.
4210         (process_command): Pass &global_options to read_cmdline_option.
4211         * ipa-pure-const.c (suggest_attribute): Pass &global_options to
4212         option_enabled.
4213         * lto-opts.c (lto_reissue_options): Use option_flag_var.  Pass
4214         &global_options to set_option.
4215         * opts-common.c (handle_option, handle_generated_option,
4216         read_cmdline_option, set_option): Take explicit gcc_options
4217         parameters.  Use option_flag_var.
4218         (option_flag_var): New.
4219         * opts.c (common_handle_option, lang_handle_option,
4220         target_handle_option): Take gcc_options parameter.  Assert that it
4221         is &global_options.
4222         (read_cmdline_options): Pass &global_options to read_cmdline_option.
4223         (print_filtered_help): Use option_flag_var.  Pass &global_options
4224         to option_enabled.
4225         (common_handle_option): Use option_flag_var.
4226         (option_enabled): Take opts parameter.  Use option_flag_var.
4227         (get_option_state): Take gcc_options parameter.  Use
4228         option_flag_var.  Pass gcc_options parameter to option_enabled.
4229         (enable_warning_as_error): Pass &global_options to
4230         handle_generated_option.
4231         * opts.h (struct cl_option): Change flag_var to flag_var_offset.
4232         (cl_option_handler_func.handler): Take gcc_options parameter.
4233         (option_enabled, get_option_state, set_option, handle_option,
4234         handle_generated_option, read_cmdline_option): Take gcc_options
4235         parameters.
4236         * toplev.c (optimize, optimize_size): Remove.
4237         (print_switch_values): Pass &global_options to option_enabled.
4238         (option_affects_pch_p): Use option_flag_var.  Pass &global_options
4239         to get_option_state.
4240         (general_init): Initialize global_dc->option_state.
4241         * tree.c (build_optimization_node): Pass &global_options to
4242         cl_optimization_save.
4243         (build_target_option_node): Pass &global_options to
4244         cl_target_option_save.
4245
4246 2010-09-30  Martin Jambor  <mjambor@suse.cz>
4247
4248         * tree-sra.c (type_consists_of_records_p): Do not check for trailing
4249         zero sized bit-fields.
4250
4251 2010-09-30  Nicola Pero  <nicola.pero@meta-innovation.com>
4252
4253         * c-parser.c (c_lex_one_token): When finding a CPP_AT_NAME
4254         Objective-C token, map RID_CLASS to RID_AT_CLASS and similar.
4255         (c_parser_external_declaration): Use RID_AT_CLASS instead of RID_CLASS.
4256         (c_parser_objc_class_declaration): Same change.
4257         (c_parser_objc_try_catch_statement): Use RID_AT_TRY instead of
4258         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
4259         (c_parser_objc_class_instance_variables): Use RID_AT_PRIVATE
4260         instead of RID_PRIVATE, RID_AT_PROTECTED instead of RID_PROTECTED
4261         and RID_AT_PUBLIC instead of RID_PUBLIC.
4262         (c_parser_statement_after_labels): Use RID_AT_TRY instead of
4263         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
4264
4265 2010-09-30  Tom G. Christensen <tgc@jupiterrise.com>
4266
4267         * doc/install.texi (Binaries): Update link to HP-UX porting centre.
4268         Add links to current providers of packages for Solaris and IRIX.
4269
4270 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
4271
4272         Merge from 'apple/trunk' branch on FSF servers.
4273         * c-parser.c: Applied change originally in c-parse.in.
4274
4275         2005-10-04  Fariborz Jahanian <fjahanian@apple.com>
4276
4277         Radar 4281748
4278         * c-decl.c (start_decl): Check for redeclaration of class name.
4279         * c-parse.in (after_type_declarator): Recognize CLASSNAME.
4280
4281 2010-09-29  Steve Ellcey  <sje@cup.hp.com>
4282
4283         * config/ia64/ia64.c (ia64_builtin_decl): New.
4284         (TARGET_BUILTIN_DECL): Define.
4285         (ia64_builtins): New.
4286         (ia64_init_builtins): Save decls in ia64_builtins.
4287
4288 2010-09-29  Bernd Schmidt  <bernds@codesourcery.com>
4289
4290         PR target/40457
4291         * postreload.c (move2add_use_add2_insn): Use full_costs for comparison.
4292         (move2add_use_add3_insn): Likewise.
4293         (reload_cse_move2add): Likewise.
4294         * rtlanal.c (get_full_rtx_cost): New function.
4295         * rtl.h (struct full_rtx_costs): New.
4296         (init_costs_to_max, init_costs_to_zero, costs_lt_p,
4297         costs_add_n_insns): New inline functions.
4298         (get_full_rtx_cost): Declare.
4299
4300         PR c/45054
4301         * reload1.c (replace_pseudos_in): Use eliminate_regs_1, allowing
4302         invariants.  Check for reg_equiv_invariant.
4303         (reload): Assert that spilled_pseudos is empty when returning.
4304
4305 2010-09-29  Kai Tietz  <kai.tietz@onevision.com>
4306
4307         * config/i386/mingw32.h (TARGET_64BIT): replaced by
4308         TARGET_64BIT_DEFAULT in #if check.
4309
4310 2010-09-29  Jack Howarth <howarth@bromo.med.uc.edu>
4311
4312         * varasm.c (assemble_alias): Add error message for unsupported ifunc.
4313
4314 2010-09-29  Mike Stump  <mikestump@comcast.net>
4315
4316         * config/darwin.h (flag_mkernel): Remove.
4317         (flag_apple_kext): Likewise.
4318
4319 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
4320             Jack Howarth <howarth@bromo.med.uc.edu>
4321
4322         * config/darwin.opt (undefined): Add.
4323
4324 2010-09-29  Nathan Sidwell  <nathan@codesourcery.com>
4325
4326         PR testsuite/45664
4327         * configure.ac: Add --enable-indirect-function option.
4328         * config.gcc: Add default_gnu_indirect_function.
4329         * config.in (HAVE_GAS_INDIRECT_FUNCTION): Rename to ...
4330         (HAVE_GNU_INDIRECT_FUNCTION): ... this.
4331         * varasm.c (do_assemble_alias): Adjust for macro name change.
4332         * configure: Rebuilt.
4333         * doc/install.texi: Document --enable-indirect-function.
4334
4335 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
4336
4337         * doc/options.texi (Variable, Var, Init): Update documentation
4338         without reference to VarExists.
4339         (VarExists): Remove.
4340         * common.opt, config/i386/i386.opt, config/linux.opt,
4341         config/rs6000/rs6000.opt, config/sh/sh.opt, config/spu/spu.opt:
4342         Don't use VarExists.
4343
4344 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
4345
4346         * optc-gen.awk: Generate global_options initializer instead of
4347         individual variables.  Add x_ prefix to names of structure members.
4348         * opth-gen.awk: Generate gcc_options structure.  Add x_ prefix to
4349         names of structure members.
4350         * doc/tm.texi.in (HARD_FRAME_POINTER_IS_FRAME_POINTER,
4351         HARD_FRAME_POINTER_IS_ARG_POINTER): Document.
4352         * doc/tm.texi: Regenerate.
4353         * alias.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
4354         * builtins.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
4355         * c-parser.c (disable_extension_diagnostics,
4356         restore_extension_diagnostics): Update names of cpp_options members.
4357         * combine.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
4358         * common.opt (fcompare-debug-second): Don't use Var.
4359         * config/alpha/alpha.h (target_flags): Remove.
4360         * config/arm/arm.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
4361         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
4362         * config/bfin/bfin.h (target_flags): Remove.
4363         * config/cris/cris.h (target_flags): Remove.
4364         * config/i386/i386-c.c (ix86_pragma_target_parse): Update names of
4365         cl_target_option members.
4366         * config/i386/i386.c (ix86_force_align_arg_pointer): Remove.
4367         (ix86_function_specific_print, ix86_valid_target_attribute_tree,
4368         ix86_can_inline_p): Update names of cl_target_option members.
4369         * config/i386/i386.h (ix86_isa_flags): Remove.
4370         * config/lm32/lm32.h (target_flags): Remove.
4371         * config/mcore/mcore.h (mcore_stack_increment): Remove.
4372         * config/mcore/mcore.md (addsi3): Remove extern declaration of
4373         flag_omit_frame_pointer.
4374         * config/mep/mep.h (target_flags): Remove.
4375         * config/mips/mips.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
4376         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
4377         * config/mmix/mmix.h (target_flags): Remove.
4378         * config/rs6000/rs6000.h (rs6000_xilinx_fpu, flag_pic,
4379         flag_expensive_optimizations): Remove.
4380         * config/s390/s390.h (flag_pic): Remove.
4381         * config/score/score-conv.h (target_flags): Remove.
4382         * config/sh/sh.h (sh_fixed_range_str): Remove.
4383         * config/spu/spu.h (target_flags, spu_fixed_range_string): Remove.
4384         * dbxout.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
4385         * df-scan.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
4386         * diagnostic.c (diagnostic_initialize): Update names of
4387         diagnostic_context members.
4388         * diagnostic.h (diagnostic_context): Rename inhibit_warnings and
4389         warn_system_headers.
4390         (diagnostic_report_warnings_p): Update for new names.
4391         * dwarf2out.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
4392         * emit-rtl.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER and
4393         HARD_FRAME_POINTER_IS_ARG_POINTER.
4394         * flags.h (flag_compare_debug): Declare.
4395         * ira.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
4396         * opts.c (flag_compare_debug): Define.
4397         (common_handle_option): Update names of diagnostic_context
4398         members.  Handle -fcompare-debug-second.
4399         (fast_math_flags_struct_set_p): Update names of cl_optimization
4400         members.
4401         * reginfo.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
4402         * regrename.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
4403         * reload.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
4404         * reload1.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
4405         * resource.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
4406         * rtl.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
4407         HARD_FRAME_POINTER_IS_ARG_POINTER): Define and use.
4408         * sel-sched.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
4409         * stmt.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
4410
4411 2010-09-29  Hariharan Sandanagobalane  <hariharan@picochip.com>
4412
4413         * config/picochip/picochip.c (picochip_output_internal_label):
4414         This function can now be called for debug CFI labels, which can come
4415         in the middle of a vliw instruction.  Postpone until end of vliw.
4416
4417 2010-09-29  Richard Guenther  <rguenther@suse.de>
4418
4419         * tree.h (SCOPE_FILE_SCOPE_P): New macro.
4420         (DECL_FILE_SCOPE_P): Use it.
4421         (TYPE_FILE_SCOPE_P): New macro.
4422
4423 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
4424
4425         * c-parser.c (c_lex_one_token): In Objective-C, when dealing with
4426         a CPP_NAME which is a reserved word, clearly separate cases for
4427         OBJC_IS_PQ_KEYWORD, OBJC_IS_AT_KEYWORD and OBJC_IS_CXX_KEYWORD.
4428
4429 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
4430
4431         * c-parser.c (c_lex_one_token): In Objective-C, do not replace
4432         token->value with the canonical spelling.  Do exactly like C and
4433         C++ and leave it as it is.
4434
4435 2010-09-28  Richard Henderson  <rth@redhat.com>
4436
4437         * config/alpha/alpha.c (alpha_builtins): New.
4438         (alpha_builtin_decl, TARGET_BUILTIN_DECL): New.
4439         (alpha_builtin_function): New.
4440         (alpha_add_builtins, alpha_init_builtins): Use it.
4441
4442 2010-09-28  Nicola Pero  <nicola.pero@meta-innovation.com>
4443
4444         * doc/standards.texi (Standards): Expanded the section on
4445         Objective-C and Objective-C++.
4446
4447 2010-09-28  DJ Delorie  <dj@redhat.com>
4448
4449         PR target/45800
4450         * config/m32c/m32c.c (m32c_subreg): Force adjustment of subregs of
4451         volatile MEMs.
4452
4453 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
4454
4455         * c-parser.c (c_parser_declaration_or_fndef): Diagnose incorrect prefix
4456         attributes on methods.
4457          (c_parser_objc_method_definition): Handle attributes.
4458         (c_parser_objc_methodproto): Likewise.
4459         (c_parser_objc_maybe_method_attributes): New.
4460         (c_parser_objc_method_decl): Handle attributes, add a diagnostic for a
4461         missing definition, similar to that in ObjC++.
4462
4463 2010-09-28  Richard Henderson  <rth@redhat.com>
4464
4465         * defaults.h (DWARF2_UNWIND_INFO): Don't depend on TARGET_UNWIND_INFO.
4466         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
4467         (CONFIG_SJLJ_EXCEPTIONS): Remove.
4468         (STACK_OLD_CHECK_PROTECT): Use targetm.except_unwind_info.
4469         (STACK_CHECK_PROTECT): Likewise.
4470         * dwarf2out.c (DWARF2_UNWIND_INFO, DWARF2_FRAME_INFO): Poison.
4471         (dwarf2out_do_frame): Use debug_unwind_info and except_unwind_info.
4472         (dwarf2out_do_cfi_asm, dwarf2out_begin_prologue): Likewise.
4473         (dwarf2out_frame_init, dwarf2out_frame_finish): Likewise.
4474         (dwarf2out_assembly_start): Likewise.
4475         * except.c (init_eh): Use targetm.except_unwind_info.
4476         (finish_eh_generation, gate_convert_to_eh_region_ranges): Likewise.
4477         (output_one_function_exception_table): Likewise.
4478         * final.c: Unconditionally include dwarf2out.h.
4479         (final_start_function): Unconditionally call dwarf2out routines.
4480         (final_end_function, final_scan_insn): Likewise.
4481         * function.c (expand_function_end): Use targetm.except_unwind_info.
4482         * opts.c (decode_options): Use targetm.except_unwind_info.
4483         * system.h (USING_SJLJ_EXCEPTIONS, TARGET_UNWIND_INFO): Poison.
4484         * target.def (debug_unwind_info, except_unwind_info): New.
4485         * target.h (enum unwind_info_type): New.
4486         * targhooks.c (default_debug_unwind_info): New.
4487         (default_except_unwind_info): New.
4488         (dwarf2_except_unwind_info, sjlj_except_unwind_info): New.
4489         * targhooks.h: Declare them.
4490         * tree-tailcall.c: Include "target.h"
4491         (suitable_for_tail_call_opt_p): Use targetm.except_unwind_info.
4492         * Makefile.in (tree-tailcall.o): Update.
4493         * tree.c (build_common_builtin_nodes): Use targetm.except_unwind_info.
4494         (lhd_gcc_personality): Likewise.
4495
4496         * doc/tm.texi.in (TARGET_UNWIND_INFO): Remove.
4497         (TARGET_EXCEPT_UNWIND_INFO): New.
4498         (DWARF2_UNWIND_INFO): Update.
4499         (TARGET_DEBUG_UNWIND_INFO): New.
4500         * doc/tm.texi: Rebuild.
4501
4502         * c-family/c-cppbuiltin.c (c_cpp_builtins): Use
4503         targetm.except_unwind_info.
4504
4505         * config/arm/arm.c (TARGET_EXCEPT_UNWIND_INFO): New.
4506         (arm_except_unwind_info): New.
4507         (arm_compute_func_type): Use it.
4508         (arm_expand_prologue, thumb_pushpop): Likewise.
4509         (thumb1_expand_prologue, thumb1_output_function_prologue): Likewise.
4510         (arm_unwind_emit, arm_output_fn_unwind): Likewise.
4511         * config/arm/bpabi.h (ARM_UNWIND_INFO): Rename from TARGET_UNWIND_INFO.
4512         * config/arm/arm.h (ARM_UNWIND_INFO): Likewise.
4513         (DWARF2_UNWIND_INFO): Remove.
4514         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
4515         (ARM_EABI_UNWIND_TABLES): Remove.
4516
4517         * config/ia64/ia64.c (ia64_debug_unwind_info): New.
4518         (TARGET_DEBUG_UNWIND_INFO, TARGET_EXCEPT_UNWIND_INFO): New.
4519         (ia64_except_unwind_info): New.
4520         (ia64_output_function_prologue): Use it.
4521         (ia64_add_bundle_selector_before): Likewise.
4522         (ia64_reorg, ia64_asm_unwind_emit): Likewise.
4523         * config/ia64/ia64.h (DWARF2_FRAME_INFO): Remove.
4524         (TARGET_UNWIND_INFO): Remove.
4525
4526         * config/pa/pa.c (pa_option_override): Use targetm.except_unwind_info.
4527
4528 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
4529
4530         * c-parser.c (c_parser_objc_class_definition): Adjust prototype.
4531         (c_parser_objc_protocol_definition): Likewise.
4532         (c_parser_external_declaration): Provide dummy attribute arguments.
4533         (c_parser_declaration_or_fndef): Parse prefix attributes for ObjC.
4534         (c_parser_objc_class_definition): Handle attributes.
4535         (c_parser_objc_protocol_definition): Likewise.
4536
4537 2010-09-28  Tobias Burnus  <burnus@net-b.de>
4538
4539         PR fortran/40569
4540         PR fortran/40568
4541         * toplev.h (save_decoded_options, save_decoded_options_count):
4542         New global variables.
4543         * toplev.c (save_decoded_options, save_decoded_options_count):
4544         Export variables.
4545
4546 2010-09-28  Ian Lance Taylor  <iant@google.com>
4547
4548         * config/i386/i386.c (ix86_supports_split_stack): Test
4549         HAVE_GAS_CFI_PERSONALITY_DIRECTIVE rather than dwarf2out_do_cfi_asm.
4550
4551 2010-09-28  Ian Lance Taylor  <iant@google.com>
4552
4553         PR target/45815
4554         * opts.c (decode_options): Don't test whether the target supports
4555         split stack if flag_split_stack == 0.
4556
4557 2010-09-28  Jan Hubicka  <jh@suse.cz>
4558
4559         * builtin-attrs.def (ATTR_LEAF): New attribute.
4560         (ATTR_NOVOPS_LEAF_LIST, ATTR_LEAF_LIST, ATTR_NOTHROW_LEAF_LIST,
4561         ATTR_CONST_NOTHROW_LEAF_LIST, ATTR_PURE_NOTHROW_LEAF_LIST,
4562         ATTR_PURE_NOTHROW_NOVOPS_LEAF_LIST, ATTR_NORETURN_NOTHROW_LEAF_LIST,
4563         ATTR_MALLOC_NOTHROW_LEAF_LIST, ATTR_SENTINEL_NOTHROW_LEAF_LIST,
4564         ATTR_NOTHROW_NONNULL_LEAF, ATTR_CONST_NOTHROW_NONNULL_LEAF,
4565         ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF, ATTR_PURE_NOTHROW_NONNULL_LEAF,
4566         ATTR_MALLOC_NOTHROW_NONNULL_LEAF): New attribute lists.
4567         * sync-builtins.def: Annotate all builtins by leaf.
4568         * omp-builtins.def: Annotate all builtins by leaf.
4569         * builtins.def: Annotate relevant builtins with leaf attribute.
4570         (ATTR_MATHFN_ERRNO, ATTR_MATHFN_FPROUNDING,
4571         ATTR_MATHFN_FPROUNDING_ERRNO, ATTR_MATHFN_FPROUNDING_STORE): Make
4572         leaf.
4573
4574 2010-09-28  Jan Hubicka  <jh@suse.cz>
4575
4576         * tree-ssa-ccp.c (fold_ctor_reference): New function.
4577         (fold_const_aggregate_ref): Use it.
4578         * fold-const.c (canonicalize_constructor_val): Check that we don't fold
4579         into external static.
4580
4581 2010-09-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4582
4583         PR target/44452
4584         * config/i386/i386.opt (mvect8-ret-in-mem): Define.
4585         * config/i386/i386.c (ix86_target_string): Handle -mvect8-ret-in-mem.
4586         (ix86_solaris_return_in_memory): Remove.
4587         * config/i386/i386-protos.h (ix86_solaris_return_in_memory): Remove.
4588         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
4589         (TARGET_SUBTARGET_DEFAULT): Redefine.
4590         * config/i386/sol2-10.h (TARGET_SUBTARGET_DEFAULT): Update comment.
4591         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
4592         (TARGET_SUBTARGET_DEFAULT): Redefine.
4593         * doc/invoke.texi (Option Summary, i386 and x86-64 Options): Add
4594         -mvect8-ret-in-mem.
4595         (i386 and x86-64 Options): Document -mvect8-ret-in-mem.
4596
4597 2010-09-29  Alan Modra  <amodra@gmail.com>
4598
4599         PR target/45807
4600         * config/rs6000/aix.h (SETUP_FRAME_ADDRESSES): Delete.
4601         * config/rs6000/linux64.h (SETUP_FRAME_ADDRESSES): Delete.
4602         * config/rs6000/rs6000-protos.h (rs6000_aix_emit_builtin_unwind_init):
4603         Delete.
4604         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init): Delete.
4605         (rs6000_emit_prologue): Don't just create frame save info for r2,
4606         actually save r2.
4607
4608 2010-09-28  Richard Henderson  <rth@redhat.com>
4609
4610         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Output 8 bytes
4611         when 8 bytes are requested.
4612
4613 2010-09-28  Tristan Gingold  <gingold@adacore.com>
4614
4615         * config/avr/avr.c (expand_prologue): Set
4616         current_function_static_stack_size.
4617
4618 2010-09-28  Tristan Gingold  <gingold@adacore.com>
4619
4620         * config/alpha/alpha.md: Change the initial condition of the
4621         probing loop.
4622
4623 2010-09-28  Uros Bizjak  <ubizjak@gmail.com>
4624
4625         * config/i386/sse.md (*avx_<umaxmin:code><mode>3):
4626         Split from *avx_<maxmin:code><mode>3.
4627         (*avx_<smaxmin:code><mode>3): Ditto.
4628         * config/i386/i386.md (maxmin): Remove code iterator.
4629
4630 2010-09-27  Ian Lance Taylor  <iant@google.com>
4631
4632         * config/i386/i386.c (ix86_supports_split_stack): -fsplit-stack
4633         requires assembler support for CFI directives.
4634
4635 2010-09-27  Richard Henderson  <rth@redhat.com>
4636
4637         * dwarf2out.c (dwarf2out_cfi_label): Use ASM_OUTPUT_DEBUG_LABEL.
4638
4639 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
4640
4641         * emit-rtl.c (reorder_insns_nobb) [ENABLE_CHECKING]: Sanity-check
4642         that AFTER is not in the range FROM..TO, inclusive.
4643
4644 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
4645             Bernd Schmidt  <bernds@codesourcery.com>
4646
4647         PR rtl-optimization/45792
4648         * cfgcleanup.c (try_head_merge_bb): New rtx vector nextptr.
4649         If not all insns are to be merged, for each edge, stash the
4650         next candidate after the to-be-merged insns before doing the
4651         merge, and use them for the retry at the new insertion point.
4652         Handle CC0 targets when retrying.
4653
4654 2010-09-27  Ian Lance Taylor  <iant@google.com>
4655
4656         * common.opt (fsplit-stack): New option.
4657         * opts.c (decode_options): Set flag_split_stack to final value.
4658         * target.def (supports_split_stack): New hook.
4659         * gcc.c (STACK_SPLIT_SPEC): Define.
4660         (LINK_COMMAND_SPEC): Use STACK_SPLIT_SPEC.
4661         * doc/invoke.texi (Option Summary): Mention -fsplit-stack.
4662         (Code Gen Options): Document -fsplit-stack.
4663         * doc/extend.texi (Function Attributes): Mention no_split_stack.
4664         (Function Attributes): Document no_split_stack.
4665         * doc/tm.texi.in (Stack Smashing Protection): Add @hook
4666         TARGET_SUPPORTS_SPLIT_STACK.
4667         * doc/tm.texi: Rebuild.
4668         * function.c (thread_prologue_and_epilogue_insns): If
4669         flag_split_stack, add split stack prologue.
4670         * explow.c (allocate_dynamic_stack_space): Support -fsplit-stack.
4671         * varasm.c (saw_no_split_stack): New static variable.
4672         (assemble_start_function): Set saw_no_split_stack if the function
4673         has the no_split_stack attribute.
4674         (file_end_indicate_split_stack): New function.
4675         * output.h (file_end_indicate_split_stack): Declare.
4676         * libgcc-std.ver (GCC_4.6.0): Add -fsplit-stack support variables
4677         and function.
4678         * doc/libgcc.texi (Miscellaneous routines): Document -fsplit-stack
4679         routines.
4680         * config/i386/i386.c (ix86_option_override_internal): Don't set
4681         expand_builtin_va_start to NULL if -fsplit-stack.
4682         (ix86_function_regparm): Reduce local regparm by 1 for 32-bit
4683         -fsplit-stack.
4684         (ix86_va_start): If -fsplit-stack, get overflow pointer from
4685         scratch register set by prologue.
4686         (ix86_code_end): If -fsplit-stack, call
4687         file_end_indicate_split_stack.
4688         (ix86_supports_split_stack): New static function.
4689         (SPLIT_STACK_AVAILABLE): Define.
4690         (split_stack_prologue_scratch_regno): New static function.
4691         (split_stack_fn): New static variable.
4692         (ix86_expand_split_stack_prologue): New function.
4693         (ix86_live_on_entry): New static function.
4694         (ix86_legitimate_address_p): Handle UNSPEC_STACK_CHECK.
4695         (output_pic_addr_const): Likewise.
4696         (i386_asm_output_addr_const_extra): Likewise.
4697         (ix86_expand_call): Change return type to rtx.  Return the new
4698         call instruction.
4699         (TARGET_SUPPORTS_SPLIT_STACK): Define.
4700         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
4701         * config/i386/i386.md (UNSPEC_STACK_CHECK): Define.
4702         (split_stack_prologue, split_stack_return): New insns.
4703         (split_stack_space_check): New insn.
4704         * config/i386/i386.h (struct machine_function): Add
4705         split_stack_varargs_pointer field.
4706         * config/i386/linux.h (TARGET_CAN_SPLIT_STACK): Define.
4707         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
4708         * config/i386/linux64.h (TARGET_CAN_SPLIT_STACK): Define.
4709         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
4710         * config/i386/i386-protos.h (ix86_expand_split_stack_prologue):
4711         Declare.
4712         (ix86_expand_call): Update declaration.
4713
4714 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
4715
4716         * doc/objc.texi (Type encoding): Added the new 'long double' (D)
4717         code.  Added byref, which was missing in the list of codes.
4718         Explain that enumeration values are encoded as the integer type
4719         that the compiler uses to store them.  Explain and make examples
4720         of how 'const' interacts with pointers, and the complication of
4721         the encoding of 'const char *'.
4722         (Legacy type encoding): New subsection, explaining that GCC emits
4723         incorrect type encodings for the NeXT runtime for compatibility
4724         reasons.
4725         (@@encode): New subsection, explaining @encode and particularly
4726         that protocol qualifiers are not recognized inside an @encode()
4727         expression.
4728         (Method signatures): New subsection, explaining how method
4729         signatures are encoded.
4730
4731 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
4732
4733         Merge from 'apple/trunk' branch on FSF servers.  Removed small
4734         change in build_conditional_expr that had been added when fixing
4735         PR objc/27377 and which did the same check in a less complete way.
4736
4737         2005-12-15  Fariborz Jahanian <fjahanian@apple.com>
4738
4739         Radar 4229905
4740         * c-typeck.c (build_conditional_expr): Call objc_have_common_type when
4741         looking for objective-c common pointer types.
4742
4743         2005-06-22  Ziemowit Laski  <zlaski@apple.com>
4744
4745         Radar 4154928
4746         * c-typeck.c (build_conditional_expr): For two ObjC pointer types,
4747         use their ObjC common type.
4748
4749 2010-09-27  Richard Guenther  <rguenther@suse.de>
4750
4751         * dbxout.c (dbxout_symbol): Use DECL_FILE_SCOPE_P.
4752
4753 2010-09-27  Jie Zhang  <jie@codesourcery.com>
4754
4755         * print-tree.c (print_node): Print in-constant-pool.
4756
4757 2010-09-27  Uros Bizjak  <ubizjak@gmail.com>
4758
4759         * config/i386/i386.h (CLASS_MAX_NREGS): Also handle XCmode.
4760         (UNITS_PER_WORD): Define only when IN_LIBGCC2 is undefined.
4761         (MOVE_MAX_PIECES): Redefine using UNITS_PER_WORD.
4762         (ASM_OUTPUT_AVX_PREFIX): Simplify pointer addition.
4763
4764 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
4765
4766         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_add): Merge
4767         from pro_epilogue_adjust_stack_<mode>_{1,2}.
4768         (pro_epilogue_adjust_stack_<mode>_add): Rename from
4769         pro_epilogue_adjust_stack_<mode>_3.
4770         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for
4771         renamed pro_epilogue_adjust_stack_{si,di}_add.
4772         (ix86_expand_prologue): Use indirect functions.  Update for renamed
4773         pro_epilogue_adjust_stack_{si,di}_sub.
4774
4775 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
4776
4777         * config/i386/i386.md (movmsk_df): New insn.
4778         (signbitdf): Split out of signbit<mode>2.  Generate movmsk_df
4779         sequence for TARGET_SSE_MATH.
4780
4781 2010-09-26  Richard Sandiford  <rdsandiford@googlemail.com>
4782
4783         * config/mips/mips.c (mips_builtin_decls): Declare.
4784         (mips_init_builtins): Store function declarations in
4785         mips_builtin_decls.
4786         (mips_builtin_decl): New function.
4787         (TARGET_BUILTIN_DECL): Define.
4788
4789 2010-09-25  Kai Tietz  <kai.tietz@onevision.com>
4790             Richard Henderson  <rth@redhat.com>
4791
4792         * config/i386/cygwin.asm: Include auto-host.h.
4793         (cfi_startproc, cfi_endproc, cfi_adjust_cfa_offset,
4794         cfi_def_cfa_register, cfi_register, cfi_push, cfi_pop): New macros.
4795         (__chkstk, __alloca): Annotate for dwarf2 unwind info.  Drop
4796         alignment code from the 64-bit path.  Use gas local labels.
4797         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_2): Macroize
4798         from _di_2.  Remove the useless constant integer argument.
4799         (pro_epilogue_adjust_stack_<mode>_3): New.
4800         (allocate_stack_worker_probe_<mode>): Macroize from
4801         allocate_stack_worker_{32,64}.  Use __chkstk_ms.  Update all users.
4802         * config/i386/i386.c (ix86_expand_prologue): Use __chkstk_ms;
4803         use gen_pro_epilogue_adjust_stack_*_3 and annotate it.
4804         (__chkstk_ms): New function.
4805         * config/i386/t-cygming (LIB1ASMFUNCS): Add _chkstk_ms.
4806         * gcc/config/i386/t-interix: Likewise.
4807         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Export for target.
4808         (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
4809         (HAVE_GAS_CFI_SECTIONS_DIRECTIVE): Likewise.
4810         * configure, config.in: Rebuild.
4811
4812 2010-09-25  Eric Botcazou  <ebotcazou@adacore.com>
4813
4814         * tree-inline.c (copy_bb): Use GSI_CONTINUE_LINKING when inserting new
4815         statements because of the return slot optimization.
4816
4817 2010-09-25  Anatoly Sokolov  <aesok@post.ru>
4818
4819         * config/avr/avr.h (CLASS_LIKELY_SPILLED_P): Remove.
4820         * config/avr/avr-protos.h (class_likely_spilled_p): Remove.
4821         * config/avr/avr.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
4822         (class_likely_spilled_p): Rename to...
4823         (avr_class_likely_spilled_p): ...this. Make static. Change argument
4824         type to reg_class_t.
4825
4826 2010-09-24  Jan Hubicka  <jh@suse.cz>
4827
4828         * lto-symtab.c (lto_symtab_entry_def): Add guessed field.
4829         (lto_symtab_resolve_symbols): Set it.
4830         (lto_symtab_merge_decls_1): Do not compute used_from_object_file;
4831         store resolution field in cgraph/varpool.
4832         * cgraph.c (cgraph_same_body_alias, cgraph_add_thunk): Return node.
4833         (cgraph_get_node_or_alias, cgraph_get_node_or_alias): Constify.
4834         (cgraph_dump_node): Drop used_from_object_file.
4835         (cgraph_clone_node, cgraph_create_virtual_clone): Likewise.
4836         (cgraph_function_body_availability): Use decl_replaceable_p.
4837         (cgraph_make_node_local): Set resolution to LDPR_PREVAILING_DEF_IRONLY.
4838         (cgraph_can_remove_if_no_direct_calls_and_refs): Use
4839         cgraph_used_from_object_file_p.
4840         (cgraph_will_be_removed_from_program_if_no_direct_calls): Use
4841         cgraph_used_from_object_file_p.
4842         (resolution_used_from_other_file_p): New functoin.
4843         (cgraph_used_from_object_file_p): New predicate.
4844         * cgraph.h: Include plugin-api.h
4845         (struct cgraph_local_info): Remove used_from_object_file.
4846         (struct cgraph_node): Add resolution field.
4847         (struct varpool_node): Likewise; remove used_from_object_file;
4848         reove const_value_known.
4849         (cgraph_get_node, cgraph_get_node_or_alias, cgraph_node,
4850         cgraph_same_body_alias, cgraph_add_thunk): Update prototypes.
4851         (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
4852         varpool_used_from_object_file_p): Declare.
4853         (varpool_get_node, varpool_extra_name_alias): Update prototype.
4854         * tree.h (DECL_REPLACEABLE_P): Remove.
4855         (decl_replaceable_p, decl_binds_to_current_def_p): Declare.
4856         * final.c (rest_of_clean_state): Use decl_binds_to_current_def_p.
4857         * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
4858         input_overwrite_node, input_node, input_varpool_node): Stream
4859         resolution.
4860         * expr.c (expand_expr_real_1): Use const_value_known_p
4861         * ipa.c (ipa_discover_readonly_nonaddressable_var): Do not set
4862         const_value_known.
4863         (cgraph_externally_visible_p): Use cgraph_used_from_object_file_p.
4864         (function_and_variable_visibility): Set resolution for local vars
4865         and functions; use varpool_used_from_object_file_p.
4866         * varasm.c (resolution_to_local_definition_p, resolution_local_p): New
4867         static functions.
4868         (default_binds_local_p_1): Use resolutoin info.
4869         (decl_binds_to_current_def_p, decl_replaceable_p): New functions.
4870         * varpool.c (varpool_get_node): Constify.
4871         (const_value_known_p): Do not use vnode->const_value_known;
4872         use decl_replaceable_p.
4873         (varpool_finalize_decl): Do not set const_value_known.
4874         (cgraph_variable_initializer_availability): Use decl_replaceable_p
4875         (varpool_extra_name_alias): Return new node.
4876         (varpool_used_from_object_file_p): New function.
4877
4878 2010-09-24  Richard Henderson  <rth@redhat.com>
4879
4880         * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): New.
4881         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): New.
4882         (do_spill): Use REG_CFA_OFFSET.
4883         (ia64_expand_prologue): Use REG_CFA_ADJUST_CFA and REG_CFA_REGISTER
4884         as appropriate.
4885         (ia64_expand_epilogue): Likewise.
4886         (process_set): Split into ...
4887         (process_cfa_adjust_cfa): this,
4888         (process_cfa_register): this,
4889         (process_cfa_offset): and this new function.
4890         (ia64_asm_unwind_emit): Use them.  Expect REG_CFA_* notes
4891         instead of REG_FRAME_RELATED_EXPR.
4892
4893 2010-09-24  Olivier Hainque  <hainque@adacore.com>
4894
4895         * config/i386/vx-common.h (DBX_REGISTER_NUMBER): Reinstate.
4896
4897 2010-09-24  Jan Hubicka  <jh@suse.cz>
4898
4899         * doc/extend.texi: (attribute leaf): Document.
4900         * tree.c (local_define_builtin): Handle ECF_LEAF.
4901         (build_common_builtin_nodes): Set ECF_LEAF where needed.
4902         * tree.h (ECF_LEAF): New.
4903         * ipa-reference.c (propagate_bits): For leaf calls propagate ever
4904         overwrittable and unavailable functions.
4905         (ipa_init): Put all_module_statics into optimization_summary_obstack.
4906         (copy_global_bitmap): Do not copy all_module_statics.
4907         (read_write_all_from_decl): Use cgraph_node argument; handle ECF_LEAF.
4908         (propagate): Handle overwritable and unavailable leaf functions;
4909         initialize global info for overwritable and unavailable leaf functions;
4910         do not free all module statics.
4911         (ipa_reference_get_not_{read,written}_global): Leaf calls don't clobber
4912         local statics.
4913         * calls.c (flags_from_decl_or_type): Handle leaf.
4914         * tree-cfg.c (stmt_can_make_abnormal_goto): Leaf functions can't do
4915         abnormal gotos.
4916
4917 2010-09-24  Basile Starynkevitch  <basile@starynkevitch.net>
4918
4919         * gengtype.c: Reindented.
4920         * gengtype.h: Reindented.
4921         * gengtype-parse.c: Reindented.
4922
4923 2010-09-24  Jan Hubicka  <jh@suse.cz>
4924
4925         PR tree-optimization/45738
4926         PR tree-optimization/45741
4927         * expr.c (string_constant): Allow CONST_DECL too;
4928         check that DECL_INITIAL is set.
4929         * varpool.c (const_value_known_p): Only look into VAR_DECL
4930         and CONST_DECL.
4931
4932 2010-09-24  Joseph Myers  <joseph@codesourcery.com>
4933
4934         * common.opt (undef): New.
4935
4936 2010-09-24  Jakub Jelinek  <jakub@redhat.com>
4937
4938         PR middle-end/45234
4939         * rtl.h (enum global_rtl_index): Add
4940         GR_VIRTUAL_PREFERRED_STACK_BOUNDARY.
4941         (LAST_VIRTUAL_POINTER_REGISTER): Define.
4942         (virtual_preferred_stack_boundary_rtx,
4943         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM): Define.
4944         (LAST_VIRTUAL_REGISTER): Increase by one.
4945         (REGNO_PTR_FRAME_P): Use LAST_VIRTUAL_POINTER_REGISTER
4946         instead of LAST_VIRTUAL_REGISTER.
4947         * function.c (instantiate_new_reg): Handle
4948         virtual_preferred_stack_boundary_rtx.
4949         * emit-rtl.c (init_virtual_regs): Handle
4950         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
4951         (init_emit_regs): Initialize virtual_preferred_stack_boundary_rtx.
4952         * explow.c (round_push): If crtl->preferred_stack_boundary
4953         is smaller than MAX_SUPPORTED_STACK_ALIGNMENT, use
4954         virtual_preferred_stack_boundary_rtx alignment instead of
4955         crtl->preferred_stack_boundary alignment.
4956         (allocate_dynamic_stack_space): Use CONST_INT_P and REG_P
4957         macros.  Never decrease crtl->preferred_stack_boundary,
4958         use crtl->preferred_stack_boundary or MAX_SUPPORTED_STACK_ALIGNMENT
4959         instead of PREFERRED_STACK_BOUNDARY.  Don't modify
4960         stack_pointer_delta in dynamic allocation, even when size
4961         is constant.
4962         (probe_stack_range, anti_adjust_stack_and_probe): Use CONST_INT_P
4963         macro.
4964         * print-rtl.c (print_rtx): Handle
4965         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
4966         * config/alpha/alpha.h (NONSTRICT_REG_OK_FP_BASE_P): Use
4967         LAST_VIRTUAL_POINTER_REGISTER instead of LAST_VIRTUAL_REGISTER.
4968         * config/frv/frv.c (frv_emit_movsi): Likewise.
4969         * config/arm/arm.c (thumb1_legitimate_address_p): Likewise.
4970         * config/rs6000/rs6000.c (virtual_stack_registers_memory_p):
4971         Likewise.
4972
4973         Revert:
4974         2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
4975
4976         PR middle-end/45234
4977         * calls.c (expand_call): Make sure that all variable sized
4978         adjustments are multiple of preferred stack boundary after
4979         stack alignment.
4980
4981 2010-09-24  Iain Sandoe  <iains@gcc.gnu.org>
4982             Dominique Dhumieres  <dominiq@lps.ens.fr>
4983
4984         PR bootstrap/45751
4985         * gcc/config/darwin-driver.c (darwin_default_min_version):
4986         Adjust size passed to memcpy in two places.
4987
4988 2010-09-24  Richard Guenther  <rguenther@suse.de>
4989
4990         * c-decl.c (pop_scope): Always set file-scope DECL_CONTEXT.
4991         Make sure to not call set_type_context with error_mark_node.
4992         * langhooks.c (lhd_set_decl_assembler_name): Use DECL_FILE_SCOPE_P.
4993
4994 2010-09-24  Richard Guenther  <rguenther@suse.de>
4995
4996         * Makefile.in (OBJS-onestep): Remove.
4997         (ALL_HOST_BACKEND_OBJS): Remove libbackend.o.
4998         (libbackend.a): Remove onestep support.
4999         (libbackend.o): Remove.
5000         * configure.ac (--enable-intermodule): Remove.
5001         * configure: Regenerate.
5002
5003 2010-09-24  Bernd Schmidt  <bernds@codesourcery.com>
5004
5005         * cfgcleanup.c (flow_find_head_matching_sequence): Terminate when
5006         reaching the end of a block if it occurs at a DEBUG_INSN.
5007
5008 2010-09-09  Tristan Gingold  <gingold@adacore.com>
5009
5010         PR target/44242
5011         * config/vms/vms-crt0-64.c: Removed.
5012         * config/vms/vms-crt0.c: Removed.
5013         * config/vms/vms-psxcrt0-64.c: Removed.
5014         * config/vms/vms-psxcrt0.c: Removed.
5015         * config/vms/vms-ucrt0.c: New file.
5016         * config/vms/t-vms64: Removed.
5017         * config/vms/t-vms (VMS_EXTRA_PARTS): Uncomment it.  Remove DECC.
5018         Use $(GCC_FOR_TARGET) to build pcrt0.o and vcrt0.o
5019         * config.gcc (alpha-dec-vms): Use t-vms.
5020
5021 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
5022
5023         * doc/invoke.texi (-fno-nil-receivers): Tidied up line to remove
5024         underfull hbox in DVI output.
5025         (-fobjc-class-cxx-cdtors): Same change.
5026         (-fobjc-exceptions): Tidied up documentation.  Explain what the
5027         option does, but moved the (lenghty) description of the exception
5028         syntax into objc.texi.
5029         (-fobjc-gc): Explain that the option is not useful with the GNU
5030         runtime.
5031         (-fzero-link): Explain that the GNU runtime always works in
5032         "zero-link" mode.
5033         * doc/objc.texi: All sections: simplified @node declarations
5034         removing specification of next, previous, up node.
5035         (Objective-C): Updated introduction.
5036         (Garbage Collection): Updated.  The bohem-gc library is now
5037         included in gcc itself.  Mention that this section only applies to
5038         the GNU Objective-C runtime.
5039         (compatibility_alias): Small tidy up.
5040         (Exceptions): New section mostly containing text previously in the
5041         description of the -fobjc-exception command-line option.
5042         (Synchronization): Same.
5043
5044 2010-09-24  Uros Bizjak  <ubizjak@gmail.com>
5045
5046         * config/i386/i386.md (ix86_code_end): Move the initialization of
5047         xops array near the consumer.  Use AX_REG and SP_REG instead of
5048         numerical constants.
5049
5050 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
5051
5052         * c-typeck.c (convert_arguments): Use warning 'too many arguments to
5053         method [methodname]' for an Objective-C method instead of the less
5054         satisfactory 'too many arguments to function' (with no method name).
5055
5056 2010-09-23  Eric Botcazou  <ebotcazou@adacore.com>
5057
5058         * tree-flow.h (execute_update_addresses_taken): Remove parameter.
5059         * tree-ssa.c (maybe_optimize_var): Tweak comment and dump messages.
5060         (execute_update_addresses_taken): Remove parameter.  Execute the
5061         optimization unconditionally.
5062         * passes.c (execute_function_todo): Call execute_update_addresses_taken
5063         unconditionally if TODO_rebuild_alias is set, else only when optimizing
5064         if TODO_update_address_taken is set.
5065
5066 2010-09-23  Anatoly Sokolov  <aesok@post.ru>
5067
5068         * config/arm/arm.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
5069         * config/arm/arm-protos.h (arm_output_addr_const_extra): Remove.
5070         * config/arm/arm.c (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
5071         (arm_output_addr_const_extra): Make static.
5072
5073 2010-09-23  Uros Bizjak  <ubizjak@gmail.com>
5074
5075         * config/i386/i386.md (UNSPECV_NOPS): Rename from UNSPEC_NOPS and
5076         define as unspec_volatile.
5077         ("nops"): Define as unspec_volatile. Use fputs to write to
5078         asm_out_file directly.  Output NOPs on separate lines using while loop.
5079         * config/i386/i386.c (ix86_code_end): Use fputs to write to
5080         asm_out_file directly.  Output NOPs on separate lines using while loop.
5081
5082 2010-09-23  Richard Guenther  <rguenther@suse.de>
5083
5084         PR tree-optimization/45565
5085         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
5086         Make sure to adjust the fndecl before replacing the stmt.
5087
5088 2010-09-23  Richard Guenther  <rguenther@suse.de>
5089
5090         PR middle-end/45750
5091         * gimplify.c (gimplify_expr): Properly pass on GS_ERROR when
5092         gimplifying MEM_REF.
5093
5094 2010-09-23  Alan Modra  <amodra@gmail.com>
5095
5096         * config/rs6000/rs6000.c (toc_relative_ok): Delete.
5097         (rs6000_emit_move): Use SYMBOL_REF_LOCAL_P instead.
5098
5099 2010-09-23  Bernd Schmidt  <bernds@codesourcery.com>
5100
5101         PR rtl-optimization/44374
5102         * basic-block.h (enum bb_flags): Add BB_MODIFIED.
5103         * df-core.c (df_set_bb_dirty): Set it.
5104         * ifcvt.c (find_memory): Remove function.
5105         (dead_or_predicable): Use can_move_insns_across.
5106         * df.h (can_move_insns_across): Declare function.
5107         * cfgcleanup.c (block_was_dirty): New static variable.
5108         (try_crossjump_bb, try_forward_edges): Test BB_MODIFIED flag rather
5109         than df_get_bb_dirty.
5110         (try_head_merge_bb): New static function.
5111         (try_optimize_cfg): Call it.  Call df_analyze if block_was_dirty
5112         is set.
5113         * df-problems.c: Include "target.h"
5114         (df_simulate_find_uses): New static function.
5115         (MEMREF_NORMAL, MEMREF_VOLATILE): New macros.
5116         (find_memory, find_memory_store): New static functions.
5117         (can_move_insns_across): New function.
5118         * Makefile.in (df-problems.o): Update dependencies.
5119
5120 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
5121
5122         PR java/44095
5123         * config/sparc/linux.h (ASM_SPEC): Pass -K PIC if -findirect-dispatch
5124         is specified and the suffix of the file isn't ".c".
5125         * config/sparc/linux64.h (ASM_SPEC): Likewise.
5126
5127 2010-09-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5128
5129         * doc/contrib.texi (Contributors): Allow URL to wrap in PDF output.
5130         * doc/cppopts.texi: Fix markup of index entry.
5131         * doc/extend.texi (Constructing Calls): Fix markup of
5132         __builtin_va_arg_pack and __builtin_va_arg_pack_len definition.
5133         (Conditionals, C++ Comments, Pragmas, Unnamed Fields, Thread-Local)
5134         (Vague Linkage, C++ Attributes): Fix markup of index entries and
5135         keywords.
5136         * doc/invoke.texi (Option Summary): Fix spacing.  Rewrap to
5137         avoid long lines.
5138         (C Dialect Options, C++ Dialect Options, Warning Options)
5139         (Debugging Options, Spec Files, Darwin Options)
5140         (i386 and x86-64 Options, MIPS Options)
5141         (RS/6000 and PowerPC Options, Code Gen Options): Fix markup of
5142         index entries, avoid abbreviations, allow URLs to wrap, avoid
5143         long lines, avoid overlong pages from long @itemx lists.
5144         * doc/objc.texi (Garbage Collection): Allow URLs to wrap.
5145         * doc/standards.texi (Standards): Likewise.
5146         * doc/trouble.texi (Incompatibilities): Fix markup of index entry.
5147
5148 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
5149
5150         * opts-common.c (prune_options): Make static.  Work with decoded
5151         options.
5152         (decode_cmdline_options_to_array): Call prune_options.  Don't
5153         resize option array here.
5154         * opts.h (prune_options): Remove prototype.
5155         * gcc.c (process_command): Take decoded options; don't call
5156         decode_cmdline_options_to_array here.  Use decoded options for argv[0].
5157         (main): Call decode_cmdline_options_to_array here instead of
5158         prune_options.  Update call to process_command.
5159         * config/darwin-driver.c: Include opts.h.
5160         (darwin_default_min_version): Work with decoded options.  Don't
5161         handle -b or -V here.
5162         * config/darwin.h (darwin_default_min_version): Update prototype.
5163         (GCC_DRIVER_HOST_INITIALIZATION): Update call to
5164         darwin_default_min_version.
5165         * config/i386/cygwin.h (mingw_scan): Update prototype.
5166         (GCC_DRIVER_HOST_INITIALIZATION): Update call to mingw_scan.
5167         * config/i386/cygwin1.c: Include opts.h.
5168         (mingw_scan): Work with decoded options.
5169         * config/i386/t-cygwin (cygwin1.o): Update dependencies.
5170         * config/t-darwin (darwin-driver.o): Update dependencies.
5171
5172 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
5173
5174         * common.opt (-assemble, -compile, -coverage, -debug, -dump,
5175         -dump=, -dumpbase, -dumpdir, -entry, -entry=, -extra-warnings,
5176         -for-assembler, -for-assembler=, -for-linker, -for-linker=,
5177         -force-link, -force-link=, -language, -language=,
5178         -library-directory, -library-directory=, -no-canonical-prefixes,
5179         -no-standard-libraries, -no-warnings, -optimize, -output,
5180         -output=, -pass-exit-codes, -pedantic, -pedantic-errors, -pie,
5181         -pipe, -prefix, -prefix=, -preprocess, -print-file-name,
5182         -print-file-name=, -print-libgcc-file-name,
5183         -print-multi-directory, -print-multi-lib,
5184         -print-multi-os-directory, -print-prog-name, -print-prog-name=,
5185         -print-search-dirs, -print-sysroot, -print-sysroot-headers-suffix,
5186         -profile, -save-temps, -shared, -specs, -specs=, -static,
5187         -symbolic, -time, -verbose, -param=, -sysroot, coverage, e, u,
5188         symbolic): New.
5189         (fhelp, fhelp=, ftarget-help, fversion): Make into aliases.
5190         * gcc.c (A Short Introduction to Adding a Command-Line Option):
5191         Remove comment.
5192         (cc1_options): Correct specs for passing down --help,
5193         --target-help and --help=*.  Add spec for passing down --version.
5194         (struct option_map, option_map, target_option_translations,
5195         translate_options): Remove.
5196         (driver_handle_option): Handle OPT__version, OPT__help, OPT__help_
5197         and OPT__target_help instead of OPT_fversion, OPT_fhelp,
5198         OPT_fhelp_ and OPT_ftarget_help.
5199         (process_command): Don't call translate_options.  Call
5200         decode_cmdline_options_to_array before checking for
5201         -no-canonical-prefixes using decoded options.
5202         * opts-common.c (tm.h): Update comment on #include.
5203         (find_opt): Allow abbreviations of long options.
5204         (struct option_map, option_map): New.
5205         (decode_cmdline_option): Use them instead of hardcoding -Wno, -fno
5206         and -mno handling.
5207         (target_option_translations): New.
5208         (decode_cmdline_options_to_array): Handle
5209         TARGET_OPTION_TRANSLATE_TABLE in driver.
5210         * opts.c (common_handle_option): Don't handle OPT_fhelp,
5211         OPT_ftarget_help, OPT_fhelp_ or OPT_fversion.
5212
5213 2010-09-22  Richard Guenther  <rguenther@suse.de>
5214
5215         * tree-inline.c (optimize_inline_calls): Schedule cleanups
5216         only if we inlined something.  Block compaction and conditional
5217         folding are done by cfg cleanup.  Schedule update-address-taken.
5218         (tree_function_versioning): Remove redundant call to number_blocks.
5219         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Conditional
5220         folding is done by cfg cleanup.
5221         * passes.c (init_optimization_passes): Remove update-address-taken
5222         pass after IPA inlining.
5223
5224 2010-09-22  Chung-Lin Tang  <cltang@codesourcery.com>
5225
5226         * postreload.c (move2add_note_store): Add reg_symbol_ref[] checks
5227         to update conditions. Fix reg_mode[] check.
5228
5229 2010-09-22  Hariharan Sandanagobalane  <hariharan@picochip.com>
5230
5231         * config/picochip/picochip.md (movhicc): Use expand to check whether
5232         movhicc is available and split it after reload.
5233
5234 2010-09-22  Richard Guenther  <rguenther@suse.de>
5235
5236         * tree-ssanames.c (release_dead_ssa_names): Do not remove
5237         callee edges here.
5238         * passes.c (init_optimization_passes): Remove early CFG cleanup.
5239         * tree-optimize.c (execute_cleanup_cfg_pre_ipa): Remove.
5240         (pass_cleanup_cfg): Likewise.
5241         (execute_fixup_cfg): Cleanup.
5242         * tree-pass.h (pass_cleanup_cfg): Remove.
5243
5244 2010-09-22  Martin Jambor  <mjambor@suse.cz>
5245
5246         * gimple-fold.c (fold_gimple_call): New parameter inplace, do not fold
5247         builtins if it is true.
5248         (fold_stmt_1): Call, fold_gimple_call always, pass inplace as a
5249         parameter.
5250
5251 2010-09-22  Martin Jambor  <mjambor@suse.cz>
5252
5253         * tree-sra.c (struct access): New field grp_no_warning.
5254         (create_access_replacement): Set TREE_NO_WARNING according to
5255          grp_no_warning.
5256         (create_artificial_child_access): Use build_ref_for_model and set
5257         grp_no_warning if build_user_friendly_ref_for_offset fails.
5258         (propagate_subaccesses_across_link): Likewise.
5259
5260 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
5261
5262         PR target/35664
5263         * config/sparc/constraints.md ('e'): Return NO_REGS if !TARGET_FPU.
5264         ('f'): Likewise.
5265
5266 2010-09-22  Tristan Gingold  <gingold@adacore.com>
5267
5268         * config/alpha/alpha.c (alpha_use_linkage): Initialize target field.
5269
5270 2010-09-22  Uros Bizjak  <ubizjak@gmail.com>
5271
5272         * config/i386/i386.h (MAX_STRINGOP_ALGS): Fix typo in the name.
5273         * config/i386/i386.c (decide_alg): Update for rename.
5274
5275 2010-09-22  Jakub Jelinek  <jakub@redhat.com>
5276
5277         PR rtl-optimization/45739
5278         * simplify-rtx.c (simplify_binary_operation_1): Optimize even
5279         vector mode | CONST0_RTX (mode) and ^ CONST0_RTX (mode).
5280
5281 2010-09-21  Anatoly Sokolov  <aesok@post.ru>
5282
5283         * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): Remove macros.
5284         * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
5285         Remove.
5286         * config/rs6000/rs6000.c (rs6000_output_addr_const_extra): Make static.
5287         (TTARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
5288
5289 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
5290
5291         PR objc/23710
5292         * c-parser.c (c_parser_objc_method_definition): Check the return
5293         value of objc_start_method_definition and if false is returned,
5294         parse the method definition but emit no code.
5295
5296 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
5297
5298         PR objc/25965
5299         * c-decl.c (detect_field_duplicates): If compiling Objective-C,
5300         call objc_get_interface_ivars ().
5301
5302 2010-09-21  Kai Tietz  <kai.tietz@onevision.com>
5303
5304         PR target/45694
5305         * config/i386/i386.c (ix86_expand_prologue): Save r10 in case that
5306         static chain-register is used for 64-bit.
5307
5308 2010-09-21  Richard Guenther  <rguenther@suse.de>
5309
5310         * dwarf2out.c (is_cu_die): New function.
5311         (add_pubtype): Use it.
5312         (gen_subprogram_die): Likewise.
5313         (gen_struct_or_union_type_die): Likewise.
5314         (dwarf2out_finish): Likewise.
5315         (comp_unit_die): Rename to ...
5316         (single_comp_unit_die): ... this.
5317         (comp_unit_die): New function lazily constructing and
5318         returning single_comp_unit_die.
5319         (is_cxx, is_fortran, is_ada, debug_dwarf, break_out_comdat_types,
5320         base_type_die, subrange_type_die, modified_type_die,
5321         lower_bound_default, add_bound_info, add_prototyped_attribute,
5322         dwarf2out_vms_debug_main_pointer, scope_die_for, retry_incomplete_types,
5323         dwarf2out_abstract_function, gen_type_die_with_usage, get_context_die,
5324         force_decl_die, gen_namespace_die, dwarf2out_decl,
5325         dwarf2out_start_source_file, dwarf2out_end_source_file,
5326         prune_unused_types, dwarf2out_finish): Use it.
5327         (gen_compile_unit_die): For GNU GIMPLE derive DW_AT_language from
5328         the global list of translation-unit decls.
5329         (dwarf2out_init): Do not create single_comp_unit_die here.
5330         (force_decl_die): Handle TRANSLATION_UNIT_DECL.
5331
5332 2010-09-21  Richard Guenther  <rguenther@suse.de>
5333
5334         * dwarf2out.c (dwarf2out_decl): Do not always generate a DIE
5335         for bool for C++.
5336
5337 2010-09-21  Bernd Schmidt  <bernds@codesourcery.com>
5338
5339         * config/arm/iterators.md (qhs_extenddi_op): New mode_attr.
5340         (qhs_extenddi_cstr): Likewise.
5341         * config/arm/arm.md (zero_extend<mode>di2, extend<mode>di2): Use
5342         them for the source operand.
5343
5344 2010-09-21  Uros Bizjak  <ubizjak@gmail.com>
5345
5346         * config/i386/i386.c (ix86_split_ashl): Rename single_width variable
5347         to half_width.  Use GET_MODE_BITSIZE to calculate mode size.
5348         (ix86_split_ashr): Ditto.
5349         (ix86_split_lshr): Ditto.
5350
5351 2010-09-21  Richard Guenther  <rguenther@suse.de>
5352
5353         PR tree-optimization/45580
5354         * tree-ssa-propagate.c (substitute_and_fold): Always replace
5355         regular uses.
5356         * gimple-fold.c (gimple_fold_obj_type_ref): For a BINFO without
5357         virtuals fold the call into a regular indirect one.
5358
5359 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
5360
5361         PR rtl-optimization/42775
5362         * cfgrtl.c (rest_of_pass_free_cfg): Recompute notes if delay slot
5363         scheduling is enabled.
5364
5365 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
5366
5367         PR rtl-optimization/45728
5368         * expr.c (expand_expr_real_1): If op0 isn't REG or MEM, try
5369         gen_lowpart_common first and if that fails, force_reg first
5370         before calling gen_lowpart.
5371
5372         PR middle-end/45678
5373         * cfgexpand.c (expand_one_stack_var_at): Use
5374         crtl->max_used_stack_slot_alignment as max_align, instead
5375         of maximum of that and PREFERRED_STACK_BOUNDARY.
5376         Don't call update_stack_alignment.
5377
5378 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
5379
5380         * langhooks.h (struct lang_hooks_for_types): Remove hash_types field.
5381         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): Delete.
5382         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_HASH_TYPES.
5383         * system.h (LANG_HOOKS_HASH_TYPES): Poison.
5384         * tree.c (type_hash_canon): Do not test lang_hooks.types.hash_types.
5385         (build_nonstandard_integer_type): Likewise.
5386         (build_range_type_1): New function, built from...
5387         (build_range_type): ...this.  Call build_range_type_1.
5388         (build_nonshared_range_type): New function.
5389         (build_array_type_1): New function, built from...
5390         (build_array_type: ...this.  Call build_array_type_1.
5391         (build_nonshared_array_type): New function.
5392         * tree.h (build_nonshared_range_type): Declare.
5393         (build_nonshared_array_type): Likewise.
5394
5395 2010-09-20  Anatoly Sokolov  <aesok@post.ru>
5396
5397         * config/arm/arm.h (CLASS_LIKELY_SPILLED_P): Remove.
5398         * config/arm/arm.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
5399         (arm_class_likely_spilled_p): New function.
5400
5401 2010-09-20  Uros Bizjak  <ubizjak@gmail.com>
5402
5403         * config/i386/i386.c (ix86_expand_ashl_const): Rewrite using
5404         indirect functions.
5405         (ix86_split_ashl): Ditto.
5406         (ix86_split_ashr): Ditto.
5407         (ix86_split_lshr): Ditto.
5408         (ix86_adjust_counter): Ditto.
5409
5410 2010-09-20  Nicola Pero  <nicola.pero@meta-innovation.com>
5411
5412         * c-family/c-common.h (constant_string_class): Documented with
5413         comment identical to the one already in c-common.c.
5414
5415 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
5416
5417         * dwarf2out.c (any_cfis_emitted): New static variable.
5418         (add_fde_cfi): Set it.
5419         (dwarf2out_frame_debug): Clear it before processing,
5420         if it is set afterwards, flush any queued reg saves.
5421
5422         PR debug/45124
5423         * dwarf2out.c (add_accessibility_attribute): Assume
5424         DW_ACCESS_private as the default for dwarf_version > 2
5425         and DW_TAG_class_type parent.
5426         (gen_inheritance_die): Assume DW_ACCESS_public as the default
5427         for dwarf_version > 2 and parent other than DW_TAG_class_type.
5428
5429 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
5430
5431         PR target/45726
5432         * arm.md (arm_movt): Only enable on machines with MOVT.
5433
5434 2010-09-20  Jie Zhang  <jie@codesourcery.com>
5435
5436         * config/arm/arm.c (arm_address_offset_is_imm): New.
5437         (arm_early_store_addr_dep): New.
5438         (arm_early_load_addr_dep): New.
5439         * config/arm/arm-protos.h (arm_early_store_addr_dep): Declare.
5440         (arm_early_load_addr_dep): Declare.
5441         (arm_address_offset_is_imm): Declare.
5442         * config/arm/cortex-m4.md: New file.
5443         * config/arm/cortex-m4-fpu.md: New file.
5444         * config/arm/arm.md: Include cortex-m4.md and cortex-m4-fpu.md.
5445         (attr generic_sched): Exclude cortexm4.
5446         (attr generic_vfp): Exclude cortexm4.
5447
5448 2010-09-20  Richard Guenther  <rguenther@suse.de>
5449
5450         PR middle-end/45704
5451         * gimplify.c (gimplify_modify_expr_rhs): Preserve volatileness.
5452
5453 2010-09-20  Jan Hubicka  <jh@suse.cz>
5454
5455         PR tree-optimize/45605
5456         * cgraph.h (const_value_known_p): Declare.
5457         (varpool_decide_const_value_known): Remove.
5458         * tree-ssa-ccp.c (get_base_constructor): Use it.
5459         * lto-cgraph.c (compute_ltrans_boundary): Likewise.
5460         * expr.c (string_constant): Likewise.
5461         * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
5462         * ipa.c (ipa_discover_readonly_nonaddressable_var,
5463         function_and_variable_visibility): Likewise.
5464         * gimplify.c (gimplify_call_expr): Likewise.
5465         * gimple-fold.c (get_symbol_constant_value): Likewise.
5466         * varpool.c (varpool_decide_const_value_known): Replace by...
5467         (const_value_known_p): ... this one; handle other kinds of DECLs
5468         too and work for automatic vars.
5469         (varpool_finalize_decl): Use const_value_known_p.
5470
5471 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
5472
5473         PR target/45726
5474         * arm.md (arm_movtas_ze): Only enable on machine with MOVT.
5475
5476 2010-09-20  Richard Guenther  <rguenther@suse.de>
5477
5478         PR tree-optimization/45705
5479         * tree-ssa-dom.c (optimize_stmt): Perform redundant store elimination.
5480
5481 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
5482
5483         PR rtl-optimization/45695
5484         * combine.c (try_combine): When splitting a two set pattern,
5485         make sure the pattern which will be put into i2 doesn't use REGs
5486         or MEMs set by insns in between i2 and i3.
5487
5488 2010-09-19  Jan Hubicka  <jh@suse.cz>
5489
5490         PR lto/44246
5491         * lto-cgraph.c (input_cgraph_1, input_varpool_1): Avoid
5492         processing same node twice.
5493
5494 2010-09-19  Anatoly Sokolov  <aesok@post.ru>
5495
5496         * config/bfin/bfin.h (CLASS_LIKELY_SPILLED_P): Remove.
5497         * config/bfin/bfin.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
5498         (bfin_class_likely_spilled_p): New function
5499
5500 2010-09-19  Ira Rosen  <irar@il.ibm.com>
5501
5502         PR tree-optimization/45714
5503         * tree-vect-stmts.c (vect_transform_stmt): Use a dummy statement
5504         created in vectorizable_call instead of the original statement in
5505         def stmt updates.
5506
5507 2010-09-19  Uros Bizjak  <ubizjak@gmail.com>
5508
5509         * config/i386/i386-protos.h (split_double_mode): New prototype.
5510         (split_di, split_ti): Remove prototypes.
5511         * config/i386/i386.c (split_double_mode): New function.
5512         (split_di, split_ti): Remove.
5513         (ix86_expand_branch): Use split_double_mode.
5514         (ix86_split_to_parts): Ditto.
5515         (ix86_split_ashl): Ditto.
5516         (ix86_split_ashr): Ditto.
5517         (ix86_split_lshr): Ditto.
5518         (ix86_force_to_memory): Ditto.
5519         * config/i386/i386.md: Use split_double_mode in double-mode splitters.
5520
5521 2010-09-18  Jan Hubicka  <jh@suse.cz>
5522
5523         PR tree-optimization/45453
5524         * cgraphunit.c (cgraph_finalize_function): Consider comdat & external
5525         virtual functions are reachable.
5526         * ipa-inline.c (cgraph_clone_inlined_nodes): Likewise.
5527         * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
5528         * ipa-prop.c (ipa_modify_formal_parameters): Clear DECL_VIRTUAL_P
5529         when modifying function.
5530
5531 2010-09-18  Jan Hubicka  <jh@suse.cz>
5532
5533         PR tree-optimization/45605
5534         * cgraphunit.c (cgraph_analyze_functions): Allocate bitmap obstack.
5535         * gimple-fold.c (static_object_in_other_unit_p): New function.
5536         (canonicalize_constructor_val): Use it.
5537         (get_symbol_constant_value): Be reaqdy for canonicalize_constructor_val
5538         returning NULL.
5539         (gimple_fold_obj_type_ref_known_binfo): Use
5540         static_object_in_other_unit_p.
5541
5542 2010-09-18  Richard Guenther  <rguenther@suse.de>
5543
5544         PR tree-optimization/45709
5545         * tree-inline.c (copy_phis_for_bb): Delay commit of edge
5546         insertions until after all PHI nodes of the block are processed.
5547
5548 2010-09-18  Tijl Coosemans  <tijl@coosemans.org>
5549
5550         * config/i386/freebsd.h (SUBTARGET32_DEFAULT_CPU): Add.
5551
5552 2010-09-18  Kai Tietz  <kai.tietz@onevision.com>
5553
5554         * config.gcc (*-w64-mingw*): Correct typo about t-dfprules.
5555
5556 2010-09-18  Richard Guenther  <rguenther@suse.de>
5557
5558         PR tree-optimization/45709
5559         * tree-inline.c (copy_phis_for_bb): Fixup new_edge when we splitted it.
5560
5561 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
5562
5563         * graphite-dependences.c (dot_deps): Add DEBUG_FUNCTION.
5564         (dot_deps_stmt): Same.
5565         * graphite-poly.c (dot_lst): Same.
5566         * graphite-scop-detection.c (dot_all_scops): Same.
5567         (dot_scop): Same.
5568
5569 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
5570
5571         Revert:
5572         2009-12-16  Ben Elliston  <bje@au.ibm.com>
5573
5574         * tree-data-ref.c (dot_rdg_1): Added back.
5575         (dot_rdg): Same.  Added "#if 0" around system call.
5576
5577 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
5578             Richard Henderson  <rth@redhat.com>
5579
5580         * config/i386/i386.c (initial_ix86_tune_features): Add
5581         X86_TUNE_PAD_SHORT_FUNCTION.
5582         (ix86_code_end): Pad with 8 NOPs for TARGET_PAD_SHORT_FUNCTION.
5583         (ix86_count_insn): New.
5584         (ix86_pad_short_function): Likewise.
5585         (ix86_reorg): Support TARGET_PAD_SHORT_FUNCTION.
5586
5587         * config/i386/i386.h (ix86_tune_indices): Add
5588         X86_TUNE_PAD_SHORT_FUNCTION.
5589         (TARGET_PAD_SHORT_FUNCTION): New.
5590
5591         * config/i386/i386.md (UNSPEC_NOPS): New.
5592         (nops): Likewise.
5593
5594 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
5595
5596         PR middle-end/45234
5597         * calls.c (expand_call): Make sure that all variable sized
5598         adjustments are multiple of preferred stack boundary after
5599         stack alignment.
5600
5601 2010-09-17  DJ Delorie  <dj@redhat.com>
5602
5603         * config/rx/rx.c (rx_print_operand): If __builtin_rx_setpsw() is
5604         passed an invalid value, print an error instead of ICEing.
5605         (valid_psw_flag): New.
5606         (rx_expand_builtin): Call it for setpsw/clrpsw.
5607         (rx_expand_builtin_mvtipl): Pass an integer to IN_RANGE, not an RTX.
5608
5609         * config/rx/rx.md (bitclr): Don't mark the output as early-clobber.
5610         (bitclr_in_memory): Likewise.
5611         (clrspw, setpsw, mvfc, mvtc, mvtipl): Make volatile.
5612
5613 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
5614
5615         PR middle-end/45678
5616         * cfgexpand.c (update_stack_alignment): New.
5617         (get_decl_align_unit): Use it.
5618         (expand_one_stack_var_at): Call update_stack_alignment.
5619
5620 2010-09-17  Richard Guenther  <rguenther@suse.de>
5621
5622         * lto-streamer-in.c (lto_input_ts_translation_unit_decl_tree_pointers):
5623         Properly copy the read string.
5624
5625 2010-09-17  Joseph Myers  <joseph@codesourcery.com>
5626
5627         * doc/options.texi (Variable): Document.
5628         * optc-gen.awk, opth-gen.awk: Handle Variable records.  Don't
5629         generate target_flags declarations explicitly.  Don't define
5630         VarExists variables for the driver.
5631         * common.opt (target_flags): New Variable record.
5632         (flag_dump_unnumbered, flag_dump_unnumbered_links,
5633         flag_var_tracking, flag_var_tracking_assignments,
5634         flag_var_tracking_assignments_toggle): Don't mark variables with
5635         VarExists.
5636         * config/i386/i386.c (ix86_isa_flags): Don't define here.
5637         * config/i386/i386.opt (ix86_isa_flags): Define here.
5638         * config/mcore/mcore.c (mcore_stack_increment): Don't define here.
5639         * config/mcore/mcore.opt (mcore_stack_increment): Don't mark with
5640         VarExists.
5641         * flags.h (flag_dump_unnumbered, flag_var_tracking): Remove.
5642         * print-rtl.c (flag_dump_unnumbered, flag_dump_unnumbered_links):
5643         Only define for generator programs.
5644         * rtlanal.c (target_flags): Remove.
5645         * toplev.c (flag_var_tracking, flag_var_tracking_assignments,
5646         flag_var_tracking_assignments_toggle): Remove.
5647
5648 2010-09-17  Michael Matz  <matz@suse.de>
5649
5650         PR tree-optimization/43432
5651         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
5652         Accept backwards consecutive accesses.
5653         (vect_create_data_ref_ptr): If step is negative generate
5654         decreasing IVs.
5655         * tree-vect-stmts.c (vectorizable_store): Reject negative steps.
5656         (perm_mask_for_reverse, reverse_vec_elements): New functions.
5657         (vectorizable_load): Handle loads with negative steps when easily
5658         possible.
5659
5660 2010-09-03  Jan Hubicka  <jh@suse.cz>
5661
5662         * lto-cgraph.c (compute_ltrans_boundary): Use const_value_known.
5663
5664 2010-09-03  Naveen H.S  <naveen.S@kpitcummins.com>
5665
5666         * config/v850/v850.c (v850_function_value_regno_p): Make static.
5667         Adjust comments. Declare.
5668         (TARGET_FUNCTION_VALUE_REGNO_P): Define.
5669         * config/v850/v850.h (FUNCTION_VALUE_REGNO_P): Delete.
5670
5671 2010-09-17  Richard Guenther  <rguenther@suse.de>
5672
5673         * common.opt (combine): Remove.
5674         * gcc.c (default_compilers): Remove specs testing combine.
5675         The C compilers no longer can combine.
5676         (option_map): Remove -combine.
5677         (display_help): Remove -combine.
5678         (driver_handle_option): Remove OPT_combine handling.
5679         (compile_input_file_p): Remove.
5680         (do_spec): Remove code concerning combine.
5681         (main): Likewise.
5682         * doc/invoke.texi: Remove traces of -combine.
5683         * lto-wrapper.c (run_gcc): Do not pass -combine to the compiler driver.
5684
5685 2010-09-17  Richard Guenther  <rguenther@suse.de>
5686
5687         PR middle-end/45678
5688         * builtins.c (fold_builtin_memory_op): Always properly adjust
5689         alignment of memory accesses.
5690
5691 2010-09-16  Jan Hubicka  <jh@suse.cz>
5692
5693         * lto-cgraph.c (input_overwrite_node): Do not set DECL_EXTERNAL when
5694         processing clone.
5695
5696 2010-09-16  H.J. Lu  <hongjiu.lu@intel.com>
5697
5698         * config/i386/i386-protos.h (ix86_split_idivmod): New prototype.
5699
5700         * config/i386/i386.c (predict_jump): Add prototype.
5701         (flag_opts): Add -m8bit-idiv.
5702         (ix86_split_idivmod): New.
5703
5704         * config/i386/i386.md (UNSPEC_DIV_ALREADY_SPLIT): New.
5705         Add 2 splitters for SI/DI mode divide.
5706         (divmod<mode>4_1): New pattern.
5707         (udivmod<mode>4_1): Likewise.
5708         (testdi_ccno_1): Likewise.
5709
5710         * config/i386/i386.opt (m8bit-idiv): New.
5711
5712         * doc/invoke.texi: Document -m8bit-idiv.
5713
5714 2010-09-16  Reza Yazdani  <reza.yazdani@amd.com>
5715
5716         PR bootstrap/45680
5717         * config/i386/i386.c (min_insn_size): Moved out of the
5718         ASM_OUTPUT_MAX_SKIP_PAD ifdef.
5719
5720 2010-09-16  Jan Hubicka  <jh@suse.cz>
5721
5722         * lto-cgraph.c (lto_output_node): Fix handling of clones.
5723         * ipa.c (cgraph_remove_unreachabloe_nodes): Fix handling of
5724         unreachable clones with reachable clones.
5725         * tree-inline.c (copy_bb): Fix sanity checking when producing
5726         unreachable clone.
5727
5728 2010-09-16  Anatoly Sokolov  <aesok@post.ru>
5729
5730         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Remove.
5731         (TARGET_MEMORY_MOVE_COST): Define.
5732         (m32r_function_arg): Annotate argument 'type' with ATTRIBUTE_UNUSED.
5733
5734 2010-09-16  Alexander Monakov  <amonakov@ispras.ru>
5735
5736         * sel-sched.c (move_cond_jump): Use tidy_control_flow instead of
5737         maybe_tidy_empty_bb.
5738
5739         Revert:
5740         2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
5741         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
5742
5743 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
5744
5745         * target.def (target_option.optimization): New hook.
5746         * doc/tm.texi.in (OPTIMIZATION_OPTIONS): Change to
5747         TARGET_OPTION_OPTIMIZATION hook.
5748         * doc/tm.texi: Regenerate.
5749         * hooks.c (hook_void_int_int): New.
5750         * hooks.h (hook_void_int_int): Declare.
5751         * opts.c: Don't include tm_p.h.
5752         (decode_options): Use targetm.target_option.optimization instead
5753         of OPTIMIZATION_OPTIONS.
5754         * system.h (OPTIMIZATION_OPTIONS): Poison.
5755         * config/arm/arm-protos.h (arm_optimization_options): Remove.
5756         * config/arm/arm.c (TARGET_OPTION_OPTIMIZATION): Define.
5757         (arm_optimization_options): Rename to arm_option_optimization.
5758         Make static.
5759         * config/arm/arm.h (OPTIMIZATION_OPTIONS): Remove.
5760         * config/cris/cris.c (TARGET_OPTION_OPTIMIZATION): Define.
5761         (cris_option_optimization): New.
5762         * config/cris/cris.h (OPTIMIZATION_OPTIONS): Remove.
5763         * config/crx/crx.c (TARGET_OPTION_OPTIMIZATION): Define.
5764         (crx_option_optimization): New.
5765         * config/crx/crx.h (OPTIMIZATION_OPTIONS): Remove.
5766         * config/frv/frv-protos.h (frv_optimization_options): Remove.
5767         * config/frv/frv.c (TARGET_OPTION_OPTIMIZATION): Define.
5768         (frv_optimization_options): Rename to frv_option_optimization.
5769         Make static.
5770         * config/frv/frv.h (OPTIMIZATION_OPTIONS): Remove.
5771         * config/h8300/h8300.c (h8300_option_optimization): New.
5772         (TARGET_OPTION_OPTIMIZATION): Define.
5773         * config/h8300/h8300.h (OPTIMIZATION_OPTIONS): Remove.
5774         * config/i386/i386-protos.h (optimization_options): Remove.
5775         * config/i386/i386.c (optimization_options): Rename to
5776         ix86_option_optimization.  Make static.
5777         (TARGET_OPTION_OPTIMIZATION): Define.
5778         * config/i386/i386.h (OPTIMIZATION_OPTIONS): Remove.
5779         * config/ia64/ia64-protos.h (ia64_optimization_options): Remove.
5780         * config/ia64/ia64.c (TARGET_OPTION_OPTIMIZATION): Define.
5781         (ia64_optimization_options): Rename to ia64_option_optimization.
5782         Make static.  Call SUBTARGET_OPTIMIZATION_OPTIONS.
5783         * config/ia64/ia64.h (OPTIMIZATION_OPTIONS): Remove.  Remove
5784         commented-out definition.
5785         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
5786         instead of OPTIMIZATION_OPTIONS.
5787         * config/m32r/m32r.c (TARGET_OPTION_OPTIMIZATION): Define.
5788         (m32r_option_optimization): New.
5789         * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove.
5790         * config/m68hc11/m68hc11-protos.h (m68hc11_optimization_options):
5791         Remove.
5792         * config/mcore/mcore.c (TARGET_OPTION_OPTIMIZATION): Define.
5793         (mcore_option_optimization): New.
5794         * config/mcore/mcore.h (OPTIMIZATION_OPTIONS): Remove.
5795         * config/mep/mep-protos.h (mep_optimization_options): Remove.
5796         * config/mep/mep.c (TARGET_OPTION_OPTIMIZATION): Define.
5797         (mep_optimization_options): Rename to mep_option_optimization.
5798         Make static.  Take unused level and size parameters.
5799         * config/mep/mep.h (OPTIMIZATION_OPTIONS): Remove.
5800         * config/mmix/mmix.c (TARGET_OPTION_OPTIMIZATION): Define.
5801         (mmix_option_optimization): New.
5802         * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove.
5803         * config/pdp11/pdp11.c (TARGET_OPTION_OPTIMIZATION): Define.
5804         (pdp11_option_optimization): New.
5805         * config/pdp11/pdp11.h (OPTIMIZATION_OPTIONS): Remove.
5806         * config/rs6000/rs6000-protos.h (optimization_options): Remove.
5807         * config/rs6000/rs6000.c (TARGET_OPTION_OPTIMIZATION): Define.
5808         (optimization_options): Rename to rs6000_option_optimization.
5809         Make static.
5810         * config/rs6000/rs6000.h (OPTIMIZATION_OPTIONS): Remove.
5811         * config/rx/rx-protos.h (rx_set_optimization_options): Remove.
5812         * config/rx/rx.c (rx_set_optimization_options): Rename to
5813         rx_option_optimization.  Make static.  Take unused level and size
5814         parameters.
5815         (TARGET_OPTION_OPTIMIZATION): Define.
5816         * config/rx/rx.h (OPTIMIZATION_OPTIONS): Remove.
5817         * config/s390/s390-protos.h (optimization_options): Remove.
5818         * config/s390/s390.c (optimization_options): Rename to
5819         s390_option_optimization.  Make static.  Don't mark size parameter
5820         unused.
5821         (TARGET_OPTION_OPTIMIZATION): Define.
5822         * config/s390/s390.h (OPTIMIZATION_OPTIONS): Remove.
5823         * config/sh/sh-protos.h (sh_optimization_options): Remove.
5824         * config/sh/sh.c (TARGET_OPTION_OPTIMIZATION): Define.
5825         (sh_optimization_options): Rename to sh_option_optimization.  Make
5826         static.  Don't mark parameters unused.
5827         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Remove.
5828         * config/spu/spu-protos.h (spu_optimization_options): Remove.
5829         * config/spu/spu.c (TARGET_OPTION_OPTIMIZATION): Define.
5830         (spu_optimization_options): Rename to spu_option_optimization.
5831         Make static.
5832         * config/spu/spu.h (OPTIMIZATION_OPTIONS): Remove.
5833         * config/v850/v850.c (TARGET_OPTION_OPTIMIZATION): Define.
5834         (v850_option_optimization): New.
5835         * config/v850/v850.h (OPTIMIZATION_OPTIONS): Remove.
5836         * config/xtensa/xtensa.c (TARGET_OPTION_OPTIMIZATION): Define.
5837         (xtensa_option_optimization): New.
5838         * config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Remove.
5839
5840 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
5841
5842         * doc/tm.texi.in (OVERRIDE_OPTIONS): Remove documentation.
5843         (C_COMMON_OVERRIDE_OPTIONS): Don't refer to OVERRIDE_OPTIONS.
5844         * doc/tm.texi: Regenerate.
5845         * system.h (OVERRIDE_OPTIONS): Poison.
5846         * target.def (override): Default to hook_void_void.
5847         * targhooks.c (default_target_option_override): Remove.
5848         * genmodes.c, machmode.def: Update comments mentioning
5849         OVERRIDE_OPTIONS.
5850         * config/alpha/alpha-modes.def: Update comment mentioning
5851         alpha_override_options.
5852         * config/alpha/alpha-protos.h (override_options): Remove.
5853         * config/alpha/alpha.c (override_options): Rename to
5854         alpha_option_override.  Call SUBTARGET_OVERRIDE_OPTIONS.  Make static.
5855         (TARGET_OPTION_OVERRIDE): Define.
5856         * config/alpha/alpha.h (OVERRIDE_OPTIONS): Remove.
5857         * config/alpha/vms.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead
5858         of OVERRIDE_OPTIONS.
5859         * config/arc/arc-protos.h (arc_init): Remove.
5860         * config/arc/arc.c (TARGET_OPTION_OVERRIDE): Define.
5861         (arc_init): Rename to arc_option_override.  Make static.
5862         * config/arc/arc.h (ARC_EXTENSION_CPU): Correct comment.
5863         (OVERRIDE_OPTIONS): Remove.
5864         * config/arm/arm-protos.h (arm_override_options): Remove.
5865         * config/arm/arm.c (TARGET_OPTION_OVERRIDE): Define.
5866         (arm_override_options): Rename to arm_option_override.  Make
5867         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
5868         * config/arm/arm.h (OVERRIDE_OPTIONS): Remove.
5869         * config/arm/arm.md: Update comment referring to arm_override_options.
5870         * config/arm/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
5871         instead of OVERRIDE_OPTIONS.
5872         * config/avr/avr-protos.h (avr_override_options): Remove.
5873         * config/avr/avr.c (TARGET_OPTION_OVERRIDE): Define.
5874         (avr_override_options): Rename to avr_option_override.  Make static.
5875         * config/avr/avr.h (OVERRIDE_OPTIONS): Remove.
5876         * config/bfin/bfin-protos.h (override_options): Remove (twice).
5877         * config/bfin/bfin.c (override_options): Rename to
5878         bfin_option_override.  Make static.
5879         (TARGET_OPTION_OVERRIDE): Define.
5880         * config/bfin/bfin.h (OVERRIDE_OPTIONS): Remove.
5881         * config/cris/cris-protos.h (cris_override_options): Remove.
5882         * config/cris/cris.c (TARGET_OPTION_OVERRIDE): Define.
5883         (cris_override_options): Rename to cris_option_override.  Make static.
5884         * config/cris/cris.h (OVERRIDE_OPTIONS): Remove.
5885         * config/frv/frv-protos.h (frv_override_options): Remove.
5886         * config/frv/frv.c (TARGET_OPTION_OVERRIDE): Define.
5887         (frv_override_options): Rename to frv_option_override.  Make static.
5888         * config/frv/frv.h (OVERRIDE_OPTIONS): Remove.
5889         * config/h8300/h8300-protos.h (h8300_init_once): Remove.
5890         * config/h8300/h8300.c (h8300_init_once): Rename to
5891         h8300_option_override.  Make static.
5892         (TARGET_OPTION_OVERRIDE): Define.
5893         * config/h8300/h8300.h (OVERRIDE_OPTIONS): Remove.
5894         * config/i386/i386-protos.h (override_options): Remove.
5895         * config/i386/i386.c (override_options): Rename to
5896         ix86_option_override_internal.  Make static.  Comments referring
5897         to this function and callers changed.
5898         (ix86_option_override): New.
5899         (TARGET_OPTION_OVERRIDE): Define.
5900         * config/i386/i386.h (OVERRIDE_OPTION): Remove.
5901         * config/i386/linux64.h (DEFAULT_PCC_STRUCT_RETURN): Update comment.
5902         * config/ia64/ia64.c (ia64_file_start): Update comment referring
5903         to ia64_override_options.
5904         * config/iq2000/iq2000-protos.h (override_options): Remove.
5905         * config/iq2000/iq2000.c (TARGET_OPTION_OVERRIDE): Define.
5906         (override_options): Rename to iq2000_option_override.  Make static.
5907         * config/iq2000/iq2000.h (OVERRIDE_OPTIONS): Remove.
5908         * config/lm32/lm32-protos.h (lm32_override_options): Remove.
5909         * config/lm32/lm32.c (TARGET_OPTION_OVERRIDE): Define.
5910         (lm32_override_options): Rename to lm32_option_override.  Make static.
5911         * config/lm32/lm32.h (OVERRIDE_OPTIONS): Remove.
5912         * config/m32r/m32r.c (TARGET_OPTION_OVERRIDE): Define.
5913         (m32r_option_override): New.
5914         (m32r_init): Update comment.
5915         * config/m32r/m32r.h (OVERRIDE_OPTIONS): Remove.
5916         * config/m68hc11/m68hc11-protos.h (m68hc11_override_options): Remove.
5917         * config/m68hc11/m68hc11.c (TARGET_OPTION_OVERRIDE): Define.
5918         (m68hc11_override_options): Rename to m68hc11_option_override.
5919         Make static.  Return void.
5920         * config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove.
5921         * config/m68k/m68k-protos.h (override_options): Remove.
5922         * config/m68k/m68k.c (TARGET_OPTION_OVERRIDE): Define.
5923         (override_options): Rename to m68k_option_override.  Make static.
5924         * config/m68k/m68k.h (OVERRIDE_OPTIONS): Remove.
5925         * config/mcore/mcore-protos.h (mcore_override_options): Remove.
5926         * config/mcore/mcore.c (TARGET_OPTION_OVERRIDE): Define.
5927         (mcore_override_options): Rename to mcore_option_override.  Make
5928         static.
5929         * config/mcore/mcore.h (OVERRIDE_OPTIONS): Remove.
5930         * config/mep/mep-protos.h (mep_override_options): Remove.
5931         * config/mep/mep.c (TARGET_OPTION_OVERRIDE): Define.
5932         (mep_override_options): Rename to mep_option_override.  Make static.
5933         * config/mep/mep.h (OVERRIDE_OPTIONS): Remove.
5934         * config/mmix/mmix-protos.h (mmix_override_options): Remove.
5935         * config/mmix/mmix.c (TARGET_OPTION_OVERRIDE): Define.
5936         (mmix_override_options): Rename to mmix_option_override.  Make static.
5937         * config/mmix/mmix.h (OVERRIDE_OPTIONS): Remove.
5938         * config/mn10300/mn10300-protos.h (mn10300_override_options): Remove.
5939         * config/mn10300/mn10300.c (TARGET_OPTION_OVERRIDE): Define.
5940         (mn10300_override_options): Rename to mn10300_option_override.
5941         Make static.
5942         * config/mn10300/mn10300.h (OVERRIDE_OPTIONS): Remove.
5943         * config/moxie/moxie-protos.h (moxie_override_options): Remove.
5944         * config/moxie/moxie.c (moxie_override_options): Rename to
5945         moxie_option_override.  Make static.
5946         (TARGET_OPTION_OVERRIDE): Define.
5947         * config/moxie/moxie.h (OVERRIDE_OPTIONS): Remove.
5948         * config/picochip/picochip-protos.h (picochip_override_options):
5949         Remove.  Update comment referring to picochip_override_options.
5950         * config/picochip/picochip.c (TARGET_OPTION_OVERRIDE): Define.
5951         (picochip_override_options): Rename to picochip_option_override.
5952         Make static.  Update comment and definition of
5953         TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE.
5954         * config/picochip/picochip.h (OVERRIDE_OPTIONS): Remove.
5955         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
5956         * config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
5957         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
5958         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
5959         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
5960         * config/rs6000/linux64.h (OPTION_TARGET_CPU_DEFAULT): Define
5961         instead of OVERRIDE_OPTIONS.
5962         * config/rs6000/rs6000-modes.def: Update comment referring to
5963         rs6000_override_options.
5964         * config/rs6000/rs6000-protos.h (rs6000_override_options): Remove.
5965         * config/rs6000/rs6000.c (TARGET_OPTION_OVERRIDE): Define.
5966         (rs6000_override_options): Rename to
5967         rs6000_option_override_internal.  Make static.  Commented
5968         referring to rs6000_override_options and OVERRIDE_OPTIONS updated.
5969         (rs6000_option_override): New.
5970         * config/rs6000/rs6000.h (OPTION_TARGET_CPU_DEFAULT): Define
5971         instead of OVERRIDE_OPTIONS.
5972         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
5973         * config/s390/s390-protos.h (override_options): Remove.
5974         * config/s390/s390.c (override_options): Rename to
5975         s390_option_override.  Make static.
5976         (TARGET_OPTION_OVERRIDE): Define.
5977         * config/s390/s390.h (OVERRIDE_OPTIONS): Remove.
5978         * config/score/score-protos.h (score_override_options): Remove.
5979         * config/score/score.c (TARGET_OPTION_OVERRIDE): Define.
5980         (score_override_options): Rename to score_option_override.  Make
5981         static.
5982         * config/score/score.h (OVERRIDE_OPTIONS): Remove.
5983         Update comment referring to override_options.
5984         * config/score/score3.c (score3_override_options): Rename to
5985         score3_option_override.
5986         * config/score/score3.h (score3_override_options): Rename to
5987         score3_option_override.
5988         * config/score/score7.c (score7_override_options): Rename to
5989         score7_option_override.
5990         * config/score/score7.h (score7_override_options): Rename to
5991         score7_option_override.
5992         * config/sh/sh.c: Update comments referring to OVERRIDE_OPTIONS.
5993         * config/sparc/sparc.c (TARGET_OPTION_OVERRIDE): Define.
5994         (sparc_override_options): Rename to sparc_option_override.  Make
5995         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
5996         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Remove.
5997         * config/sparc/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
5998         instead of OVERRIDE_OPTIONS.
5999         * config/spu/spu-protos.h (spu_override_options): Remove.
6000         * config/spu/spu.c (TARGET_OPTION_OVERRIDE): Define.
6001         (spu_override_options): Rename to spu_option_override.  Make
6002         static.
6003         * config/spu/spu.h (OVERRIDE_OPTIONS): Remove.
6004         * config/vax/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead of
6005         OVERRIDE_OPTIONS.
6006         * config/vax/vax-protos.h (override_options): Remove.
6007         * config/vax/vax.c (TARGET_OPTION_OVERRIDE): Define.
6008         (override_options): Rename to vax_option_override.  Make static.
6009         Call SUBTARGET_OVERRIDE_OPTIONS.
6010         * config/vax/vax.h (OVERRIDE_OPTIONS): Remove.
6011         * config/vxworks.c: Update comment referring to OVERRIDE_OPTIONS.
6012         * config/vxworks.h: Update comment referring to OVERRIDE_OPTIONS.
6013         * config/xtensa/xtensa-protos.h (override_options): Remove.
6014         * config/xtensa/xtensa.c (TARGET_OPTION_OVERRIDE): Define.
6015         (override_options): Rename to xtensa_option_override.  Make static.
6016         * config/xtensa/xtensa.h (OVERRIDE_OPTIONS): Remove.
6017
6018 2010-09-16  Richard Guenther  <rguenther@suse.de>
6019
6020         PR tree-optimization/45623
6021         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Adjust.
6022         (get_constraint_for_component_ref): If computing a constraint
6023         for the rhs handle type punning through unions.
6024         (get_constraint_for_address_of): Adjust.
6025         (get_constraint_for_1): Likewise.
6026         (get_constraint_for): Likewise.
6027         (get_constraint_for_rhs): New function.
6028         (do_structure_copy): Adjust.
6029         (make_constraint_to): Likewise.
6030         (handle_const_call): Likewise.
6031         (find_func_aliases): Likewise.
6032         (process_ipa_clobber): Likewise.
6033         (create_variable_info_for): Likewise.
6034
6035 2010-09-16  Ira Rosen  <irar@il.ibm.com>
6036
6037         * tree-vectorizer.c: Fix documentation.
6038         * tree-vectorizer.h (vinfo_for_stmt): Add documentation.
6039         (set_vinfo_for_stmt, get_earlier_stmt, get_later_stmt,
6040         is_pattern_stmt_p, is_loop_header_bb_p,
6041         stmt_vinfo_set_inside_of_loop_cost,
6042         stmt_vinfo_set_outside_of_loop_cost, vect_pow2, aligned_access_p,
6043         known_alignment_for_access_p): Likewise.
6044         * tree-vect-loop.c: Fix documentation.
6045         (vect_get_cost): Start function name from new line.
6046         * tree-vect-data-refs.c: Fix documentation.
6047         * tree-vect_stmts.c: Likewise.
6048         (vect_create_vectorized_promotion_stmts): Always free vec_tmp.
6049         (vectorizable_store): Free vec_oprnds if allocated.
6050         (vectorizable_condition): Initialize several variables to avoid
6051         warnings.
6052         * tree-vect-slp.c: Fix documentation.
6053
6054 2010-09-16  Richard Guenther  <rguenther@suse.de>
6055
6056         * tree.c (tree_node_structure_for_code): TRANSLATION_UNIT_DECL
6057         is TS_TRANSLATION_UNIT_DECL.
6058         (initialize_tree_contains_struct): Adjust.
6059         (all_translation_units): New global vector.
6060         (build_translation_unit_decl): New function.
6061         * tree.h (TRANSLATION_UNIT_LANGUAGE): New macro.
6062         (struct tree_translation_unit_decl): New.
6063         (all_translation_units): Declare.
6064         (union tree_node): Add translation_unit_decl member.
6065         (build_translation_unit_decl): Declare.
6066         * treestruct.def (TS_TRANSLATION_UNIT_DECL): New.
6067         * lto-streamer-out.c (pack_ts_translation_unit_decl_value_fields):
6068         New function.
6069         (pack_value_fields): Call it.
6070         (lto_output_tree_ref): Handle references to TRANSLATION_UNIT_DECL.
6071         (lto_output_ts_translation_unit_decl_tree_pointers): New function.
6072         (lto_output_tree_pointers): Call it.
6073         * lto-streamer-in.c (lto_input_tree_ref): Handle references
6074         to TRANSLATION_UNIT_DECL.
6075         (unpack_ts_translation_unit_decl_value_fields): New function.
6076         (unpack_value_fields): Call it.
6077         (lto_input_ts_translation_unit_decl_tree_pointers): New function.
6078         (lto_input_tree_pointers): Call it.
6079         * lto-streamer.c (check_handled_ts_structures): Adjust.
6080         * lto-streamer.h (enum LTO_tags): Add LTO_translation_unit_decl_ref.
6081         * c-decl.c (all_translation_units): Remove.
6082         (pop_scope): Use build_translation_unit_decl.
6083         (collect_all_refs): Adjust.
6084         (for_each_global_decl): Likewise.
6085         (c_write_global_declarations): Likewise.
6086
6087 2010-09-16  Jakub Jelinek  <jakub@redhat.com>
6088
6089         PR bootstrap/45686
6090         * fold-const.c (fold_checksum_tree): Change slot from const void **
6091         to void **, use CONST_CAST_TREE to store into *slot.
6092
6093 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
6094
6095         * config/i386/i386.md: Remove unneeded empty conditions and
6096         preparation statements from expanders.
6097         * config/i386/mmx.md: Ditto.
6098         * config/i386/sse.md: Ditto.
6099
6100 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
6101
6102         * config/i386/i386.h (PUSH_ROUNDING): Redefine using UNITS_PER_WORD.
6103
6104 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
6105
6106         PR rtl-optimization/45593
6107         * reorg.c (relax_delay_slots): Use emit_copy_of_insn_after to re-emit
6108         insns that were in delay slots as stand-alone insns.
6109
6110 2010-09-15  Ian Lance Taylor  <iant@google.com>
6111
6112         * incpath.c (remove_duplicates): If name is not a directory, issue
6113         a warning rather than an error.
6114
6115 2010-09-15  Martin Jambor  <mjambor@suse.cz>
6116
6117         PR middle-end/45644
6118         * tree-sra.c (create_access): Check for bit-fields directly.
6119
6120 2010-09-15  Jakub Jelinek  <jakub@redhat.com>
6121
6122         PR tree-optimization/45633
6123         * tree-cfg.c (verify_gimple_assign_binary): Allow
6124         MINUS_EXPR with lhs and rhs1 pointer vector and
6125         rhs2 sizetype vector.
6126         * expr.c (expand_expr_real_2) <case PLUS_EXPR>: For pointer
6127         or vector pointer use TER to optimize pointer subtraction.
6128
6129 2010-09-15  Jie Zhang  <jie@codesourcery.com>
6130
6131         * config/arm/vfp.md (cmpsf_trap_vfp): Change type from
6132         fcmpd to fcmps.
6133
6134 2010-09-15  Ian Lance Taylor  <iant@google.com>
6135
6136         * config/i386/i386.md (truncxf<mode>2): Fix indentation.
6137
6138 2010-09-15  Ian Lance Taylor  <iant@google.com>
6139
6140         * function.c (get_arg_pointer_save_area): Set
6141         arg_pointer_save_area_init to true.
6142
6143 2010-09-15  Martin Jambor  <mjambor@suse.cz>
6144
6145         * tree-sra.c (generate_subtree_copies): Updated comment.
6146         (handle_unscalarized_data_in_subtree): Removed parameter lhs which is
6147         obtained from the statement iterator instead.
6148         (load_assign_lhs_subreplacements): Removed parameters lhs and
6149         right_offset, which is obtained from top_racc instead.  Parameter lacc
6150         is now expected to be the root of the processed tree rather than root's
6151         first child.  Updated all callers.
6152
6153 2010-09-15  Joseph Myers  <joseph@codesourcery.com>
6154
6155         * config/pdp11/pdp11.c (register_move_cost): Rename to
6156         pdp11_register_move_cost.
6157         * config/pdp11/pdp11-protos.h (register_move_cost): Rename to
6158         pdp11_register_move_cost.
6159         * config/pdp11/pdp11.h (REGISTER_MOVE_COST): Call
6160         pdp11_register_move_cost instead of register_move_cost.
6161
6162 2010-09-15  Tejas Belagod  <tejas.belagod@arm.com>
6163
6164         * config/arm/neon.md (vec_pack_trunc_<mode>): Instruction
6165         pattern for vmovn. Expansion in case of non
6166         -mvectorize-with-neon-quad.
6167         (neon_vec_pack_trunc_<mode>): Instruction pattern for vmovn for
6168         non- -mvectorize-with-neon-quad case.
6169         (move_lo_quad_<mode>): New expansion to vmov into low part.
6170         (move_hi_quad_<mode>): New expansion to vmov into high part.
6171         (move_lo_quad_v4si): Refactor to move_lo_quad_<mode> expansion.
6172         (move_lo_quad_v4sf): Likewise.
6173         (move_lo_quad_v8hi): Likewise.
6174         (neon_move_lo_quad_<mode>): Instruction pattern for vmov into
6175         low part.
6176         (neon_move_hi_quad_<mode>): Instruction pattern for vmov into
6177         high part.
6178         * config/arm/iterators.md (ANY128): New mode iterator.
6179         (V_narrow_pack): New mode attribute.
6180         (V_HALF): Add attribute.
6181         (V_DOUBLE): Add attribute.
6182         (V_mode_nunits): Add attribute.
6183
6184 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
6185
6186         * config/alpha/alpha.c (alpha_expand_prologue): If stack checking
6187         is enabled, probe up to frame_size + STACK_CHECK_PROTECT bytes.
6188
6189 2010-09-15  Olivier Hainque  <hainque@adacore.com>
6190             Jose Ruiz  <ruiz@adacore.com>
6191
6192         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Define.
6193         * config/alpha/osf5-unwind.h: New file.
6194
6195 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
6196
6197         PR bootstrap/45672
6198         * config/mips/mips.c (mips_units_per_simd_word): Correct return type.
6199         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
6200         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
6201
6202 2010-09-15  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
6203
6204         * c-lang.h (struct lang_type): Add variable_size GTY option.
6205
6206 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
6207
6208         PR bootstrap/45672
6209         * config/rs6000/rs6000.c (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
6210
6211 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
6212
6213         * config/i386/i386.c (ix86_lea_for_add_ok): Return false if
6214         result isn't used in memory address.
6215
6216 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
6217
6218         * defaults.h (UNITS_PER_SIMD_WORD): Removed.
6219         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Likewise.
6220         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
6221         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
6222         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
6223         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
6224
6225         * target.def: Add units_per_simd_word to vectorize.
6226
6227         * targhooks.c (default_units_per_simd_word): New.
6228         * targhooks.h (default_units_per_simd_word): Likewise.
6229         * config/arm/arm.c (arm_units_per_simd_word): Likewise.
6230         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
6231         * config/mips/mips.c (mips_units_per_simd_word): Likewise.
6232         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
6233         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
6234         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
6235         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
6236         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
6237
6238         * tree-vect-loop.c: Replace UNITS_PER_SIMD_WORD with
6239         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD in comments.
6240
6241         * tree-vect-stmts.c: Don't include "tm_p.h".
6242         (get_vectype_for_scalar_type): Replace UNITS_PER_SIMD_WORD
6243         with targetm.vectorize.units_per_simd_word.
6244
6245         * system.h (UNITS_PER_SIMD_WORD): Poisoned.
6246
6247         * config/i386/i386-protos.h (ix86_units_per_simd_word): Removed.
6248
6249         * config/i386/i386.c (ix86_units_per_simd_word): Make it static.
6250         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
6251
6252         * doc/tm.texi.in: Remove UNITS_PER_SIMD_WORD.  Add
6253         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD.
6254
6255         * doc/tm.texi: Regenerated.
6256
6257 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
6258
6259         * tree-vect-stmts.c: Include "tm_p.h".
6260
6261         * config/i386/i386-protos.h (ix86_units_per_simd_word): Moved
6262         out of RTX_CODE.
6263
6264 2010-09-14  Martin Jambor  <mjambor@suse.cz>
6265
6266         * tree-sra.c (build_ref_for_offset): Loc made a parameter.  Set the
6267         location of generated statement.  Changed all callers.
6268         (build_ref_for_model): New parameter loc which used to set location of
6269         all generated expressions.  Changed all callers.
6270         (generate_subtree_copies): Likewise.
6271         (init_subtree_with_zero): Likewise.
6272         (sra_modify_expr): Set locations of all generated statements and
6273         expressions to the location the original statement.
6274         (handle_unscalarized_data_in_subtree): Likewise.
6275         (load_assign_lhs_subreplacements): Likewise.
6276         (sra_modify_constructor_assign): Likewise.
6277         (sra_modify_assign): Likewise.
6278
6279 2010-09-14  Eric Botcazou  <ebotcazou@adacore.com>
6280
6281         PR target/45277
6282         PR target/45363
6283         PR target/45407
6284         * doc/install.texi (sparc*-*-*): New section.
6285         (sparc-sun-solaris2*): Mention MPC alongside GMP and MPFR.
6286
6287 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
6288
6289         PR middle-end/45567
6290         * builtins.c (expand_builtin_interclass_mathfn, expand_builtin_cexpi,
6291         expand_builtin_powi): Remove subtarget argument, pass NULL_RTX instead.
6292         (expand_builtin): Adjust caller.
6293         (expand_builtin_unop): Only use subtarget if it has the right mode.
6294
6295 2010-09-14  Tristan Gingold  <gingold@adacore.com>
6296
6297         * configure.ac (plugins): Fix typos.
6298         * configure: Regenerate.
6299
6300 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
6301
6302         PR debug/45660
6303         * dwarf2out.c (gen_decl_die): Call gen_type_die for origin before
6304         gen_type_die for function/method return type.
6305
6306 2010-09-14  Ira Rosen  <irar@il.ibm.com>
6307
6308         PR tree-optimization/45470
6309         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
6310         can throw an exception.
6311         * tree-vect-stmts.c (vectorizable_call): Likewise.
6312
6313 2010-09-14  DJ Delorie  <dj@redhat.com>
6314
6315         PR target/44749
6316         * config/mep/mep-protos.h (mep_save_register_info,
6317         mep_reinit_regs, mep_init_regs): Declare.
6318
6319         * config/mep/mep.c: Move all target definitions to the end of the
6320         file to avoid the need for duplicate declarations.
6321         (mep_save_register_info, mep_reinit_regs, mep_init_regs): New.
6322         (mep_reorg_erepeat): Remove unused variables.
6323         (mep_expand_builtin): Likewise.
6324
6325         * config/mep/mep-pragma.c: Don't include rtl.h.
6326         (INVALID_REGNUM): New.
6327         (mep_pragma_coprocessor_which): Call mep-specific rtl-layer bridge
6328         functions.
6329         (mep_pragma_coprocessor_subclass): Rename "class" to "rclass".
6330         Avoid enum/integer math.
6331
6332 2010-09-13  Joseph Myers  <joseph@codesourcery.com>
6333
6334         PR target/44749
6335         * config/mep/t-mep (GTM_H): Add insn-constants.h.
6336         * config/mep/mep.c (mep_conditional_register_usage): Take no
6337         parameters.
6338         * config/mep/mep-protos.h (mep_conditional_register_usage): Update
6339         prototype.
6340         * config/mep/mep-pragma.c (CONDITIONAL_REGISTER_USAGE): Update
6341         call to mep_conditional_register_usage.
6342
6343 2010-09-13  Eric Botcazou  <ebotcazou@adacore.com>
6344
6345         PR debug/43937
6346         * varasm.c (output_constant_def_contents): Set TREE_ASM_WRITTEN on
6347         the DECL as well.
6348
6349 2010-09-13  Jakub Jelinek  <jakub@redhat.com>
6350
6351         PR rtl-optimization/45617
6352         * combine.c (simplify_comparison): Optimize (X >> N) {>,>=,<,<=} C
6353         even if low N bits of X aren't known to be zero.
6354
6355 2010-09-13  H.J. Lu  <hongjiu.lu@intel.com>
6356
6357         * config/i386/i386-protos.h (ix86_units_per_simd_word): New.
6358
6359         * config/i386/i386.c (initial_ix86_tune_features): Add
6360         X86_TUNE_VECTORIZE_DOUBLE.
6361         (ix86_units_per_simd_word): New.
6362
6363         * config/i386/i386.h (ix86_tune_indices): Add
6364         X86_TUNE_VECTORIZE_DOUBLE.
6365         (TARGET_VECTORIZE_DOUBLE): New.
6366         (UNITS_PER_SIMD_WORD): Defined with ix86_units_per_simd_word.
6367
6368 2010-09-13  Pat Haugen  <pthaugen@us.ibm.com>
6369
6370         * tree-ssa-ter.c (temp_expr_table_d): Add call_cnt field.
6371         (new_temp_expr_table): Allocate call_cnt vector.
6372         (free_temp_expr_table): Free it.
6373         (process_replaceable): Add call_cnt parm and set in vector.
6374         (find_replaceable_in_bb): Skip replacement if def/use span a call.
6375         (debug_ter): Dump call_cnt value, remove stderr uses.
6376
6377 2010-09-13  Jan Hubicka  <jh@suse.cz>
6378
6379         * tree.c (build_zero_cst): New.
6380         * tree.h (build_zero_cst): Declare.
6381         * tree-ssa-ccp.c (get_constant_value): Accept general operands.
6382         (get_base_constructor): Break out from ...
6383         (fold_const_aggregate_ref): Here; handle empty constructors.
6384
6385 2010-09-13  Marcus Shawcroft  <marcus.shawcroft@arm.com>
6386
6387         * config/arm/arm.md: (define_attr "conds"): Update comment.
6388         * config/arm/sync.md (arm_sync_compare_and_swapsi): Change
6389         conds attribute to clob.
6390         (arm_sync_compare_and_swapsi): Likewise.
6391         (arm_sync_compare_and_swap<mode>): Likewise.
6392         (arm_sync_lock_test_and_setsi): Likewise.
6393         (arm_sync_lock_test_and_set<mode>): Likewise.
6394         (arm_sync_new_<sync_optab>si): Likewise.
6395         (arm_sync_new_nandsi): Likewise.
6396         (arm_sync_new_<sync_optab><mode>): Likewise.
6397         (arm_sync_new_nand<mode>): Likewise.
6398         (arm_sync_old_<sync_optab>si): Likewise.
6399         (arm_sync_old_nandsi): Likewise.
6400         (arm_sync_old_<sync_optab><mode>): Likewise.
6401         (arm_sync_old_nand<mode>): Likewise.
6402
6403 2010-09-13  Olivier Hainque  <hainque@adacore.com>
6404
6405         * fwprop.c (forward_propagate_and_simplify): Only attach a
6406         REG_EQUAL note to an insn if the destination is a register.
6407         * gcse.c (try_replace_reg): Likewise.
6408
6409 2010-09-13  Richard Guenther  <rguenther@suse.de>
6410
6411         PR tree-optimization/45611
6412         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Fix typo.
6413         (copy_ref_info): Likewise.
6414
6415 2010-09-13  Alexandre Oliva  <aoliva@redhat.com>
6416
6417         PR debug/45604
6418         PR debug/45419
6419         PR debug/45408
6420         * tree-pretty-print.c (dump_generic_node): Disregard top-level
6421         types of MEM_REF pointer types to the same type.
6422
6423 2010-09-13  Hans-Peter Nilsson  <hp@axis.com>
6424
6425         PR rtl-optimization/41087
6426         * ifcvt.c (noce_get_condition): Don't allow conditions with
6427         side-effects.
6428
6429 2010-09-12  Anatoly Sokolov  <aesok@post.ru>
6430
6431         * config/frv/frv.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
6432         * config/frv/frv-protos.h (frv_register_move_cost): Remove.
6433         * config/frv/frv.c (frv_register_move_cost): Make static. Change
6434         arguments type to reg_class_t. Add mode argument.
6435         (frv_memory_move_cost): New.
6436         (TARGET_REGISTER_MOVE_COSTS, TARGET_MEMORY_MOVE_COSTS): Define.
6437
6438 2010-09-12  Bernd Schmidt  <bernds@codesourcery.com>
6439
6440         * config/arm/arm.md (arm_ashldi3_1bit, arm_ashrdi3_1bit,
6441         arm_lshrdi3_1bit): Put earlyclobber on the right alternative.
6442
6443 2010-09-10  Jan Hubicka  <jh@suse.cz>
6444
6445         * tree-ssa-ccp.c (fold_const_aggregate_ref): Do not check STATIC flag.
6446
6447 2010-09-10  Richard Guenther  <rguenther@suse.de>
6448
6449         * tree.c (make_vector_type): Do not set TYPE_DEBUG_REPRESENTATION_TYPE.
6450         * tree.h (TYPE_DEBUG_REPRESENTATION_TYPE): Remove.
6451         * lto-streamer-out.c (lto_output_ts_type_tree_pointers): Do
6452         not stream TYPE_DEBUG_REPRESENTATION_TYPE.
6453         * lto-streamer-in.c (lto_input_ts_type_tree_pointers): Likewise.
6454
6455 2010-09-10  Richard Guenther  <rguenther@suse.de>
6456
6457         * dwarf2out.c (gen_array_type_die): Output DW_TAG_subrange_type
6458         for VECTOR_TYPEs using TYPE_VECTOR_SUBPARTS.
6459         * dbxout.c (dbxout_type): Manually deal with VECTOR_TYPE
6460         using TYPE_VECTOR_SUBPARTS, not TYPE_DEBUG_REPRESENTATION_TYPE.
6461
6462 2010-09-10  H.J. Lu  <hongjiu.lu@intel.com>
6463
6464         PR middle-end/45634
6465         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result
6466         of string folding is of integral type.
6467
6468 2010-09-10  Ryan Mansfield  <rmansfield@qnx.com>
6469
6470         * doc/invoke.texi (-x): Fix typo.
6471
6472 2010-09-10  Richard Guenther  <rguenther@suse.de>
6473
6474         PR debug/44115
6475         * tree.c (free_lang_data_in_decl): Do not clear DECL_DEBUG_EXPR.
6476         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
6477         Output DECL_DEBUG_EXPR.
6478         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
6479         Input DECL_DEBUG_EXPR.
6480
6481 2010-09-10  Richard Guenther  <rguenther@suse.de>
6482
6483         * tree.c (type_hash_eq): For ARRAY_TYPEs also compare TYPE_SIZE.
6484         (build_index_type): Implement in terms of build_range_type.
6485         (build_range_type): Do not allow NULL_TREE type, improve
6486         hashing to cover more cases.  Set TYPE_STRUCTURAL_EQUALITY_P
6487         if we didn't hash.
6488         * c-decl.c (grokdeclarator): When modifying TYPE_SIZE manually
6489         create a distinct copy of the type.
6490
6491 2010-09-10  Kai Tietz  <kai.tietz@onevision.com>
6492
6493         * configure: Regenerated.
6494         * config.gcc: Add for x86_64 and i?86 mingw t-dfprule.
6495
6496 2010-09-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6497
6498         * config/arm/neon-schedgen.ml (allCores): Add support for Cortex-A9.
6499         * config/arm/cortex-a9-neon.md: New and partially generated.
6500         * config/arm/cortex-a9.md (cortex_a9_dp): Adjust for Neon.
6501
6502 2010-09-10  Richard Guenther  <rguenther@suse.de>
6503
6504         * tree.h (build_index_2_type): Remove.
6505         * tree.c (build_index_2_type): Remove.
6506
6507 2010-09-10  Jakub Jelinek  <jakub@redhat.com>
6508
6509         PR bootstrap/45630
6510         * dwarf2out.c (get_ref_die_offset_label): Use %ld instead of
6511         HOST_WIDE_INT_PRINT_DEC to print ref->die_offset.
6512         (implicit_ptr_descriptor): Return NULL if dwarf_strict.
6513
6514 2010-09-10  Martin Jambor  <mjambor@suse.cz>
6515
6516         PR tree-optimization/44972
6517         * tree-sra.c: Include toplev.h.
6518         (build_ref_for_offset): Entirely reimplemented.
6519         (build_ref_for_model): New function.
6520         (build_user_friendly_ref_for_offset): New function.
6521         (analyze_access_subtree): Removed build_ref_for_offset check.
6522         (propagate_subaccesses_across_link): Likewise.
6523         (create_artificial_child_access): Use
6524         build_user_friendly_ref_for_offset.
6525         (propagate_subaccesses_across_link): Likewise.
6526         (ref_expr_for_all_replacements_p): Removed.
6527         (generate_subtree_copies): Updated comment.  Use build_ref_for_model.
6528         (sra_modify_expr): Use build_ref_for_model.
6529         (load_assign_lhs_subreplacements): Likewise.
6530         (sra_modify_assign): Removed ref_expr_for_all_replacements_p checks,
6531         checks for return values of build_ref_for_offset.
6532         * ipa-cp.c (ipcp_lattice_from_jfunc): No need to check return value of
6533         build_ref_for_offset.
6534         * ipa-prop.h: Include gimple.h
6535         * ipa-prop.c (ipa_compute_jump_functions): Update to look for MEM_REFs.
6536         (ipa_analyze_indirect_call_uses): Update comment.
6537         * Makefile.in (tree-sra.o): Add $(GIMPLE_H) to dependencies.
6538         (IPA_PROP_H): Likewise.
6539
6540 2010-09-10  Martin Jambor  <mjambor@suse.cz>
6541
6542         PR tree-optimization/44972
6543         * ipa-prop.c (ipa_modify_call_arguments): Build MEM_REF instead of
6544         calling build_ref_for_offset.
6545
6546 2010-09-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6547
6548         * config/arm/bpabi.h (BE8_LINK_SPEC): Handle Cortex-a15.
6549         * config/arm/arm-cores.def (cortex-a15): New core. Treat it as a v7-a.
6550         * config/arm/arm-tune.md: Regenerate.
6551         * doc/invoke.texi (ARM Options): Document it.
6552
6553 2010-09-09  Reza Yazdani  <reza.yazdani@amd.com>
6554
6555         * config/i386/i386.c: Include sched-int.h.
6556         (TARGET_SCHED_DISPATCH): Defined.
6557         (TARGET_SCHED_DISPATCH_DO): Defined.
6558         (DISPATCH_WINDOW_SIZE): Defined.
6559         (MAX_DISPATCH_WINDOWS): Defined.
6560         (MAX_INSN): Defined.
6561         (MAX_IMM): Defined.
6562         (MAX_IMM_SIZE): Defined.
6563         (MAX_IMM_32): Defined.
6564         (MAX_IMM_64): Defined.
6565         (MAX_LOAD): Defined.
6566         (MAX_STORE): Defined.
6567         (BIG): Defined.
6568         (dispatch_group): New.
6569         (num_allowable_groups): New.
6570         (group_name): New.
6571         (sched_insn_info_s): New.
6572         (dispatch_windows_s): New.
6573         (imm_info_s): New.
6574         (dispatch_window_list): New.
6575         (dispatch_window_list1): New.
6576         (get_mem_group): New.
6577         (is_cmp): New.
6578         (dispatch_violation): New.
6579         (is_branch): New.
6580         (is_prefetch): New.
6581         (init_window): New.
6582         (allocate_window): New.
6583         (init_dispatch_sched): New.
6584         (is_end_basic_block): New.
6585         (process_end_window): New.
6586         (allocate_next_window): New.
6587         (find_constant_1): New.
6588         (find_constant): New.
6589         (get_num_immediates): New.
6590         (has_immediate): New.
6591         (get_insn_path): New.
6592         (get_insn_group): New.
6593         (count_num_restricted): New.
6594         (fits_dispatch_window): New.
6595         (add_insn_window): New.
6596         (add_to_dispatch_window): New.
6597         (debug_dispatch_window_file): New.
6598         (debug_dispatch_window): New.
6599         (debug_insn_dispatch_info_file): New.
6600         (debug_ready_dispatch): New.
6601         (do_dispatch): New.
6602         (has_dispatch): New.
6603         * config/i386/i386.h (debug_ready_dispatch): Declared.
6604         (debug_dispatch_window): Declared.
6605         * config/i386/i386.opt (mdispatch-scheduler): New flag.
6606         * doc/tm.texi.in (TARGET_SCHED_DISPATCH): New.
6607         (TARGET_SCHED_DISPATCH_DO): New.
6608         * doc/tm.texi: Regererated.
6609         * haifa-sched.c (choose_ready): Call targetm.sched.dispatch and
6610         ready_remove_first_dispatch
6611         (schedule_block): Call targetm.sched.dispatch and
6612         targetm.sched.dispatch_do.
6613         (sched_init): Call targetm.sched.dispatch and
6614         targetm.sched.dispatch_do.
6615         (ready_remove_first_dispatch): New.
6616         (number_in_ready): New.
6617         (get_ready_element): New.
6618         * hooks.c (hook_bool_rtx_int_false): New.
6619         (hook_void_rtx_int): New.
6620         * hooks.h (hook_bool_rtx_int_false): Declared.
6621         (hook_void_rtx_int): Declared.
6622         * sched-int.h (IS_DISPATCH_ON): Defined.
6623         (IS_CMP): Defined.
6624         (DISPATCH_VIOLATION): Defined.
6625         (FITS_DISPATCH_WINDOW): Defined.
6626         (DISPATCH_INIT): Defined.
6627         (ADD_TO_DISPATCH_WINDOW): Defined.
6628         (get_ready_element): Declared.
6629         (number_in_ready): Declared.
6630         * target.def (dispatch): Defined.
6631         (dispatch_do): Defined.
6632
6633 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
6634
6635         PR middle-end/45312
6636         * reload1.c (merge_assigned_reloads): Remove.
6637         (reload_as_needed): Don't call it.
6638
6639 2010-09-09  Anatoly Sokolov  <aesok@post.ru>
6640
6641         * config/m32r/m32r.c (m32r_mode_dependent_address_p): New functions.
6642         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
6643         * config/m32r/m32r.h: (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
6644
6645 2010-09-09  Matthias Klose  <doko@ubuntu.com>
6646
6647         PR bootstrap/43847
6648         * configure.ac (--enable-plugin): Enhance for cross builds.
6649         * configure: Regenerate.
6650
6651 2010-09-09  Jan Hubicka  <jh@suse.cz>
6652
6653         PR tree-optimization/45598
6654         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result of
6655         string folding is of integral type.
6656
6657 2010-09-09  Nathan Sidwell  <nathan@codesourcery.com>
6658
6659         * configure.ac (gnu_indirect_function): New test.
6660         * configure: Rebuilt.
6661         * config.in (HAVE_GAS_INDIRECT_FUNCTION): New.
6662         * defaults.h (IFUNC_ASM_TYPE): Provide default.
6663
6664         * doc/extend.texi (Function Attributes): Document ifunc.
6665         * varasm.c (do_assemble_alias): Deal with ifuncs too.
6666
6667 2010-09-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
6668
6669         * config/picochip/picochip.c (picochip_reorg): Check for note_p for
6670         epilogue instruction move.
6671
6672 2010-09-09  Jan Hubicka  <jh@suse.cz>
6673
6674         * collect2.c (maybe_run_lto_and_relink): Rewrite code producing ld
6675         command line to allow more partitions than input files.
6676
6677 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
6678
6679         PR middle-end/44554
6680         * ira.c (ira): Switch off sharing spill slots if setjmp is called.
6681
6682 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
6683
6684         PR middle-end/40386
6685         * ira.c (pseudo_for_reload_consideration_p): Don't use
6686         flag_ira_share_spill_slots.
6687
6688 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6689
6690         * config/s390/s390.c (legitimate_reload_constant_p): Accept floating-
6691         point zero operands that fit into a single GPR.
6692         (s390_preferred_reload_class): Ensure we only return general-purpose
6693         register classes.
6694         * config/s390/s390.md ("*mov<mode>_64dfp"): Use lghi to load
6695         floating-point zero operands into GPRs.
6696         ("*mov<mode>_64"): Likewise.
6697         ("mov<mode>"): Likewise using lhi.
6698
6699 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6700
6701         * config/s390/s390.c (s390_symref_operand_p): Return false for
6702         literal pool references.
6703         (s390_check_qrst_address): Update caller.
6704
6705 2010-09-09  Uros Bizjak  <ubizjak@gmail.com>
6706
6707         * config/i386/predicates.md (ext_register_operand): Check that
6708         SUBREG_REG is really a register before looking for REGNO.
6709         (reg_not_xmm0_operand): Handle SUBREGs correctly.
6710         (nonimm_not_xmm0_operand): Call reg_not_xmm0_operand.
6711
6712 2010-09-09  Jakub Jelinek  <jakub@redhat.com>
6713
6714         * rtl.def (DEBUG_IMPLICIT_PTR): New rtl code.
6715         * rtl.h (DEBUG_IMPLICIT_PTR_DECL): Define.
6716         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle DEBUG_IMPLICIT_PTR.
6717         * print-rtl.c (print_rtx): Likewise.
6718         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
6719         * cfgexpand.c (expand_debug_expr): Generate DEBUG_IMPLICIT_PTR
6720         for ADDR_EXPR with non-addressable object.
6721         * dwarf2out.c (enum dw_val_class): Add dw_val_class_decl_ref.
6722         (struct dw_val_struct): Add v.val_decl_ref.
6723         (dwarf_stack_op_name, output_loc_operands, output_loc_operands_raw):
6724         Handle DW_OP_GNU_implicit_pointer.
6725         (size_of_loc_descr): Likewise.  Fix up DW_OP_call_ref size.
6726         (get_ref_die_offset_label): New function.
6727         (implicit_ptr_descriptor): New function.
6728         (mem_loc_descriptor): Handle DEBUG_IMPLICIT_PTR.
6729         (loc_descriptor): Likewise.
6730         (gen_variable_die): Put even definitions into decl_die_table.
6731         (resolve_addr_in_expr): Resolve still unresolved
6732         DW_OP_GNU_implicit_pointer operands, if it can't be resolved
6733         return false.
6734         (dwarf2out_finish): Call output_location_lists after outputting
6735         .debug_info and .debug_abbrev instead of before.
6736
6737 2010-09-09  Roland McGrath  <roland@redhat.com>
6738
6739         * dwarf2out.c (DWARF_REF_SIZE): Define.
6740         (size_of_loc_descr): Use it for DW_OP_call_ref.
6741
6742 2010-09-09  Alan Modra  <amodra@gmail.com>
6743
6744         * doc/invoke.text: Reinstate mcmodel=medium.
6745         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
6746         CMODEL_MEDIUM as default.
6747         * config/rs6000/rs6000.h (enum rs6000_cmodel): Add CMODEL_MEDIUM.
6748         * config/rs6000/rs6000.c (rs6000_handle_option): Add mcmodel=medium.
6749         (toc_relative_ok, offsettable_ok_by_alignment): New functions.
6750         (rs6000_emit_move): Reinstate mcmodel=medium optimization.
6751
6752 2010-09-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6753
6754         PR target/45250
6755         * config/pa/pa.md (nonlocal_goto): Restore hard frame pointer using
6756         hard_frame_pointer_rtx instead of virtual_stack_vars_rtx.
6757         (builtin_longjmp): Likewise.
6758         (allocate_stack): Use hard_frame_pointer_rtx instead of
6759         frame_pointer_rtx.
6760         * config/pa/pa-protos.h (pa_initial_elimination_offset): Declare.
6761         * config/pa/pa.c (pa_internal_arg_pointer): Declare.
6762         (pa_can_eliminate): Likewise.
6763         (TARGET_INTERNAL_ARG_POINTER): Define.
6764         (TARGET_CAN_ELIMINATE): Define.
6765         (hppa_expand_prologue): Use hard frame pointer instead of soft frame
6766         pointer.
6767         (hppa_expand_epilogue, pa_eh_return_handler_rtx): Likewise.
6768         (pa_internal_arg_pointer, pa_can_eliminate,
6769         pa_initial_elimination_offset): New.
6770         * config/pa/pa.h (FRAME_POINTER_REGNUM): Set to new general register.
6771         (HARD_FRAME_POINTER_REGNUM): Set to register three.
6772         (INITIAL_FRAME_POINTER_OFFSET): Delete.
6773         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET, DWARF_FRAME_REGISTERS):
6774         Define.
6775         (DWARF_ALT_FRAME_RETURN_COLUMN, REGNO_OK_FOR_INDEX_P,
6776         REGNO_OK_FOR_BASE_P): Update to include soft frame pointer.
6777         * config/pa/pa32-regs.h (FIRST_PSEUDO_REGISTER): Increase by one.
6778         (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER,
6779         REG_CLASS_CONTENTS, REGNO_REG_CLASS, REGISTER_NAMES): Update to include
6780         new soft frame pointer.
6781         * config/pa/pa64-regs.h: Likewise.
6782
6783 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
6784
6785         * config/i386/i386.h (EH_RETURN_DATA_REGNO) Use DX_REG instead of
6786         numerical constant.
6787         (EH_RETURN_STACKADJ_RTX): Use CX_REG insted of numerical constant.
6788
6789 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
6790
6791         PR debug/45531
6792         * cfglayout.c (fixup_reorder_chain): Skip debug insns.
6793
6794 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
6795
6796         PR debug/45419
6797         PR debug/45408
6798         * tree-pretty-print.c (dump_generic_node): Disregard top-level
6799         qualifiers in otherwise equal MEM_REF pointer types.
6800         * fold-const.c (operand_equal_p): Compare pointer type of MEM_REFs.
6801         * tree.c (iterative_hash_expr): Hash the pointer type of MEM_REFs.
6802
6803 2010-09-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6804
6805         PR target/44392
6806         * config/arm/arm.md (bswapsi2): Handle condition correctly
6807         for armv6 and optimize_size.
6808
6809 2010-09-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
6810
6811         PR other/18555
6812         * doc/cppopts.texi (-isysroot): Document Darwin behaviour.
6813
6814 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
6815
6816         * config/i386/i386-protos.h (ix86_can_use_return_insn_p,
6817         symbolic_reference_mentioned_p, ix86_expand_movmem, ix86_expand_setmem,
6818         ix86_expand_strlen, legitimate_pic_address_disp_p,
6819         ix86_binary_operator_ok, ix86_unary_operator_ok, ix86_match_ccmode,
6820         ix86_expand_int_movcc, ix86_expand_fp_movcc, ix86_expand_int_addcc,
6821         ix86_check_movabs, ix86_secondary_memory_needed): Change function
6822         prototype to bool.
6823         * config/i386/i386.c (return_in_memory_32, return_in_memory_64,
6824         return_in_memory_ms_64, ix86_check_movabs,
6825         symbolic_reference_mentioned_p, ix86_can_use_return_insn_p,
6826         legitimate_pic_address_disp_p, ix86_binary_operator_ok,
6827         ix86_unary_operator_ok, ix86_match_ccmode, ix86_expand_int_movcc,
6828         ix86_expand_fp_movcc, ix86_expand_int_addcc, ix86_expand_movmem,
6829         ix86_expand_setmem, ix86_expand_strlen, inline_secondary_memory_needed,
6830         ix86_secondary_memory_needed): Change to bool.  Return
6831         "true" and "false" values.
6832         * config/i386/i386.md: Return "true" and "false" values.
6833
6834 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6835
6836         * doc/sourcebuild.texi (Effective-Target Keywords): Document
6837         run_expensive_tests.
6838
6839 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6840
6841         * toplev.c (output_stack_usage): Use lbasename instead of basename.
6842
6843 2010-09-08  Martin Jambor  <mjambor@suse.cz>
6844
6845         PR other/45443
6846         * doc/invoke.texi: Add -fipa-cp-clone to list of switches turned on
6847         at -O3.
6848
6849 2010-09-08  Richard Guenther  <rguenther@suse.de>
6850
6851         * gimple.c (gimple_types, type_hash_cache): Move to GC memory.
6852         (visit): Adjust.
6853         (iterative_hash_gimple_type): Likewise.
6854         (gimple_type_hash): Likewise.
6855         (gimple_register_type): Likewise.
6856         (print_gimple_types_stats): Likewise.
6857         (free_gimple_type_tables): Likewise.
6858
6859 2010-09-08  Michael Matz  <matz@suse.de>
6860
6861         PR tree-optimization/43430
6862         * tree-vect-stmts.c (vectorizable_condition): Support multiple
6863         copies for conditional statements if it's not part of a reduction.
6864
6865 2010-09-08  Michael Matz  <matz@suse.de>
6866
6867         PR tree-optimization/33244
6868         * tree-ssa-sink.c (statement_sink_location): Don't sink into
6869         empty loop latches.
6870
6871 2010-09-08  Richard Guenther  <rguenther@suse.de>
6872
6873         PR tree-optimization/45578
6874         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr):
6875         Be more careful when transfering alignment information to
6876         the new induction variable.
6877         (copy_ref_info): Likewise.
6878
6879 2010-09-08  Richard Guenther  <rguenther@suse.de>
6880
6881         * tree.h (TYPE_ORIG_SIZE_TYPE): Remove.
6882         * c-typeck.c (comptypes_internal): Remove TYPE_ORIG_SIZE_TYPE checks.
6883
6884 2010-09-08  Arnaud Charlet  <charlet@adacore.com>
6885
6886         * c-tree.h, c-decl.c (build_enumerator): Add location parameter.
6887         * c-parser.c (c_parser_enum_specifier): Adjust call to build_enumerator.
6888
6889 2010-09-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
6890
6891         PR doc/45587
6892         * doc/md.texi: Fixed modes on several standard pattern names.
6893
6894 2010-09-08  Mingjie Xing  <mingjie.xing@gmail.com>
6895
6896         * config/mips/loongson.md (loongson_psll<V_suffix>): Rename to...
6897         (ashl<mode>3): ...this.
6898         (loongson_psra<V_suffix>): Rename to...
6899         (ashr<mode>3): ...this.
6900         (loongson_psrl<V_suffix>): Rename to...
6901         (lshr<mode>3): ...this.
6902         * config/mips/mips.c (CODE_FOR_loongson_psllh): Define.
6903         (CODE_FOR_loongson_psllw): Define.
6904         (CODE_FOR_loongson_psrlh): Define.
6905         (CODE_FOR_loongson_psrlw): Define.
6906         (CODE_FOR_loongson_psrah): Define.
6907         (CODE_FOR_loongson_psraw): Define.
6908
6909 2010-09-07  Richard Henderson  <rth@redhat.com>
6910
6911         * tree-vect-data-refs.c: Include tm_p.h.
6912         * Makefile.in (tree-vect-data-refs.o): Update deps.
6913         * config/i386/i386-protos.h (ix86_cfun_abi, ix86_function_type_abi):
6914         Move delarations outside #ifdef RTX_CODE.
6915
6916 2010-09-07  Richard Henderson  <rth@redhat.com>
6917
6918         * final.c (rest_of_handle_final): Unconditionally do
6919         output_function_exception_table before assemble_end_function.
6920
6921 2010-09-07  Jan Hubicka  <jh@suse.cz>
6922
6923         * tree-inline.c (tree_inlinable_function_p): Do not test
6924         DECL_REPLACEABLE_P.
6925         * ipa-inline.c (cgraph_default_inline_p, update_caller_keys,
6926         update_callee_keys, cgraph_decide_inlining): Test function availability.
6927         * cif-code.def (OVERWRITABLE): New code.
6928
6929 2010-09-07  H.J. Lu  <hjl.tools@gmail.com>
6930             Jack Howarth  <howarth@bromo.med.uc.edu>
6931
6932         PR target/36502
6933         PR target/42313
6934         PR target/44651
6935         * config/i386/darwin.h (STACK_BOUNDARY): Redefine as 128 for
6936         profiling or 64-bit MS_ABI and as BITS_PER_WORD otherwise.
6937         (PREFERRED_STACK_BOUNDARY): Replace STACK_BOUNDARY with 128 in
6938         MAX macro.
6939
6940 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
6941
6942         * unwind-dw2-fde-glibc.c: Include <elf.h> for DT_CONFIG.
6943         Include <link.h> only if USE_PT_GNU_EH_FRAME is defined.
6944
6945 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
6946
6947         * config.gcc: Don't append t-android for Android targets.
6948
6949         * config/t-android: Removed.
6950
6951 2010-09-07  Richard Henderson  <rth@redhat.com>
6952
6953         * target.def (TARGET_ASM_EMIT_EXCEPT_PERSONALITY): New hook.
6954         * doc/tm.texi.in: Add doc marker.
6955         * doc/tm.texi: Rebuild.
6956         * except.c (switch_to_exception_section): Always build.
6957         (output_one_function_exception_table): Move section switch,
6958         personality output, and label output ...
6959         (output_function_exception_table): ... here.  Use the new
6960         personality hook.
6961
6962         * config/ia64/ia64.c (ia64_asm_emit_except_personality,
6963         ia64_asm_init_sections, TARGET_ASM_EMIT_EXCEPT_PERSONALITY,
6964         TARGET_ASM_INIT_SECTIONS): New.
6965         (ia64_asm_unwind_emit): Rename from process_for_unwind_directive,
6966         make static.
6967         (TARGET_ASM_UNWIND_EMIT): Update to match.
6968         * config/ia64/ia64-protos.h (process_for_unwind_directive): Remove.
6969
6970         * config/arm/arm.c (arm_asm_emit_except_personality): New.
6971         (arm_asm_init_sections): New.
6972         (TARGET_ASM_EMIT_EXCEPT_PERSONALITY, TARGET_ASM_INIT_SECTIONS): New.
6973
6974 2010-09-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6975
6976         * config/arm/arm.md: Remove unused variable.
6977
6978 2010-09-07  Anatoly Sokolov  <aesok@post.ru>
6979
6980         * config/m32r/m32r.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
6981         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Define.
6982         (m32r_memory_move_cost): New function.
6983
6984 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
6985
6986         * config.gcc: Append t-android for Android targets.
6987
6988         * config/t-android: New.
6989
6990 2010-09-07  Richard Henderson  <rth@redhat.com>
6991
6992         * target.def (unwind_emit_before_insn): New hook.
6993         * doc/tm.texi.in: Add @hook marker for it.
6994         * doc/tm.texi: Rebuild.
6995         * final.c (final_scan_insn): Respect unwind_emit_before_insn.
6996
6997 2010-09-07  Martin Jambor  <mjambor@suse.cz>
6998
6999         PR fortran/43665
7000         * ipa-cp.c (ipcp_versionable_function_p): Return false if there
7001         are any type attributes.
7002
7003 2010-09-07  Jan Hubicka  <jh@suse.cz>
7004
7005         * tree-ssa-ccp.c (fold_const_aggregate_ref): Fix handling of
7006         array_ref_low_bound in string access folding.
7007
7008 2010-09-07  Uros Bizjak  <ubizjak@gmail.com>
7009
7010         PR target/45206
7011         * config/i386/i386.c (ix86_expand_epilogue): Mark SP as valid after
7012         eh_return fixup sequence.
7013
7014 2010-09-07  Jan Hubicka  <jh@suse.cz>
7015
7016         * gimple-fold.c (maybe_fold_reference): Verify that operand is
7017         gimple_min_invariant.
7018
7019 2010-09-07  Richard Guenther  <rguenther@suse.de>
7020
7021         PR middle-end/45569
7022         * tree-eh.c (operation_could_trap_helper_p): Neither COMPLEX_EXPR
7023         nor CONSTRUCTOR can trap.
7024         * tree-complex.c (update_complex_assignment): Update EH info.
7025
7026 2010-09-07  Richard Guenther  <rguenther@suse.de>
7027
7028         PR middle-end/45569
7029         * tree-cfg.c (build_gimple_cfg): Remove redundant stmt verification.
7030         * passes.c (execute_function_todo): Do not verify anything if
7031         we saw errors.
7032
7033 2010-09-07  Richard Guenther  <rguenther@suse.de>
7034
7035         * tree-pretty-print.c (dump_generic_node): Dump void types as void.
7036
7037 2010-09-07  Bernd Schmidt  <bernds@codesourcery.com>
7038
7039         PR target/43137
7040         * config/arm/iterators.md (qhs_zextenddi_cond, qhs_sextenddi_cond):
7041         New define_mode_attrs.
7042         * config/arm/arm.md (zero_extendsidi2, arm_zero_extendsidi2,
7043         arm_exxtendsidi2, arm_extendsidi2): Delete patterns.
7044         (zero_extend<mode>di2, extend<mode>di2 and related splits): New.
7045         (thumb1_zero_extendhisi2): Remove code to handle LABEL_REFs.
7046         Remove pool_range attribute.
7047         (arm_zero_extendhisi2, arm_zero_extendhisi2_v6, arm_zero_extendqisi2,
7048         arm_zero_extendqisi2_v6, thumb1_zero_extendqisi2_v6): Remove
7049         pool_range and neg_pool_range attributes.
7050         * config/arm/thumb2.md (thumb2_zero_extendsidi2,
7051         thumb2_zero_extendhidi2, thumb2_zero_extendqidi2, thumb2_extendsidi2,
7052         thumb2_extendhidi2, thumb2_extendqidi2): Delete.
7053
7054 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
7055
7056         * config/i386/linux-unwind.h (x86_fallback_frame_state): Properly
7057         check glibc.
7058
7059 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
7060
7061         PR target/22152
7062         * config/i386/mmx.md (*mov<mode>_internal_rex64,
7063         *mov<mode>_internal_avx, *mov<mode>_internal,
7064         *movv2sf_internal_rex64_avx, *movv2sf_internal_rex64,
7065         *movv2sf_internal_avx, *movv2sf_internal): Split out !y-!y alternative.
7066
7067 2010-09-06  Mark Mitchell  <mark@codesourcery.com>
7068
7069         * c-typeck.c (do_warn_double_promotion): Remove.
7070         * doc/invoke.texi (-Wdouble-promotion): Note available for C++ and
7071         Objective-C++ too.
7072
7073 2010-09-06  Anatoly Sokolov  <aesok@post.ru>
7074
7075         * config/frv/frv.h (CLASS_LIKELY_SPILLED_P): Remove.
7076         * config/frv/frv-protos.h (frv_class_likely_spilled_p): Remove.
7077         * config/frv/frv.c (frv_class_likely_spilled_p): Make static. Change
7078         argument type to reg_class_t. Change result type to bool.
7079         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
7080
7081 2010-09-06  Nicola Pero  <nicola.pero@meta-innovation.com>
7082
7083         PR libobjc/19850
7084         * gthr-posix.h (__gthread_objc_thread_detach): Use
7085         _objc_thread_attribs when detaching a thread.
7086         * gthr-posix95.h (__gthread_objc_thread_detach): Same change.
7087
7088 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
7089
7090         PR target/45524
7091         * configure.ac (enable_decimal_float): Set to $default_decimal_float.
7092         * configure: Regenerated.
7093
7094 2010-09-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7095
7096         * combine.c (try_combine): Set subst_low_luid to i0.
7097
7098 2010-09-06  Richard Guenther  <rguenther@suse.de>
7099
7100         * tree.def (MISALIGNED_INDIRECT_REF): Remove.
7101         * tree.h (INDIRECT_REF_P): Only check for INDIRECT_REF.
7102         (build_aligned_type): Declare.
7103         * tree.c (check_qualified_type): Also compare TYPE_ALIGN.
7104         (check_aligned_type): New function.
7105         (build_aligned_type): Likewise.
7106         * expr.c (expand_assignment): Handle misaligned stores via
7107         TARGET_MEM_REF and MEM_REF using movmisalign_optab.
7108         (expand_expr_real_1): Likewise.
7109         (safe_from_p): Remove MISALIGNED_INDIRECT_REF handling.
7110         * tree-vect-stmts.c (vectorizable_store): Do not build
7111         MISALIGNED_INDIRECT_REF but initialize alignment information.
7112         (vectorizable_load): Likewise.
7113         * builtins.c (get_object_alignment): Remove MISALIGNED_INDIRECT_REF
7114         handling.
7115         * cfgexpand.c (expand_debug_expr): Likewise.
7116         * dwarf2out.c (loc_list_from_tree): Likewise.
7117         * fold-const.c (maybe_lvalue_p): Likewise.
7118         (operand_equal_p): Likewise.
7119         (build_fold_addr_expr_with_type_loc): Likewise.
7120         * gimplify.c (gimplify_addr_expr): Likewise.
7121         (gimplify_expr): Likewise.
7122         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
7123         (verify_gimple_assign_single): Likewise.
7124         * tree-dump.c (dequeue_and_dump): Likewise.
7125         (tree_could_trap_p): Likewise.
7126         * tree-predcom.c (ref_at_iteration): Likewise.
7127         * tree-pretty-print.c (dump_generic_node): Likewise.
7128         (op_code_prio): Likewise.
7129         (op_symbol_code): Likewise.
7130         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
7131         * tree-ssa-loop-im.c (for_each_index): Likewise.
7132         (gen_lsm_tmp_name): Likewise.
7133         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
7134         (find_interesting_uses_address): Likewise.
7135         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
7136         * tree-ssa-operands.c (get_expr_operands): Likewise.
7137         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
7138         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
7139         (ao_ref_init_from_vn_reference): Likewise.
7140         * tree.c (staticp): Likewise.
7141         (build1_stat): Likewise.
7142         (reference_alias_ptr_type): Likewise.
7143         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
7144         * config/rs6000/rs6000.c (rs6000_check_sdmode): Remove
7145         MISALIGNED_INDIRECT_REF handling.
7146
7147 2010-09-06  Richard Guenther  <rguenther@suse.de>
7148
7149         PR tree-optimization/45534
7150         * tree-ssa-address.c (create_mem_ref_raw): Add verify parameter.
7151         (create_mem_ref): Do verify the created TARGET_MEM_REF is valid
7152         on the target.
7153         (maybe_fold_tmr): Do not verify the created TARGET_MEM_REF is
7154         valid on the target.
7155
7156 2010-09-06  Andreas Schwab  <schwab@redhat.com>
7157
7158         * configure.ac: Quote argument of AC_MSG_WARN.
7159         * configure: Regenerate.
7160
7161 2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
7162
7163         * sel-sched.c (move_cond_jump): Correct arguments to
7164         maybe_tidy_empty_bb.
7165         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
7166
7167 2010-09-06  Andrey Belevantsev  <abel@ispras.ru>
7168
7169         PR rtl-optimization/44919
7170         * sel-sched.c (move_cond_jump): Remove assert, check that
7171         the several blocks case can only happen with mutually exclusive
7172         insns instead.  Rewrite the movement code to support moving through
7173         several basic blocks.
7174
7175 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
7176
7177         * config/i386/i386.md (iptrsize): New mode attribute.
7178         (tp_seg): Ditto.
7179         (*load_tp_<mode>): Macroize insn from *load_tp_{si,di} using P
7180         mode iterator.
7181         (*add_tp_<mode>): Ditto from *add_tp_{si,di}.
7182         (stack_protect_set_<mode>): Ditto from stack_protect_set_{si,di}.
7183         (stack_protect_test_<mode>): Ditto from stack_protect_test_{si,di}.
7184         (stack_tls_protect_set_<mode>): Ditto from
7185         stack_tls_protect_set_{si,di}.  Use %@ to output segment register
7186         of thread base pointer load.
7187         (stack_tls_protect_test_<mode>): Ditto from
7188         stack_tls_protect_test_{si,di}.  Use %@ to output segment register
7189         of thread base pointer load.
7190         (stack_protect_set): Rewrite using indirect functions.
7191         (stack_protect_test): Ditto.
7192         * config/i386/i386.c (ix86_print_operand_punct_valid): Add '@'.
7193         (ix86_print_operand): Handle '@'.
7194
7195 2010-09-05  Giuseppe Scrivano  <gscrivano@gnu.org>
7196
7197         * tree-tailcall.c (process_assignment): Handle NEGATE_EXPR and
7198         MINUS_EXPR.
7199
7200 2010-09-05  Mark Mitchell  <mark@codesourcery.com>
7201
7202         * doc/invoke.texi: Document -Wdouble-promotion.
7203         * c-typeck.c (convert_arguments): Check for implicit conversions
7204         from float to double.
7205         (do_warn_double_promotion): New function.
7206         (build_conditional_expr): Use it.
7207         (build_binary_op): Likewise.
7208
7209 2010-09-05  Richard Guenther  <rguenther@suse.de>
7210
7211         PR tree-optimization/45535
7212         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
7213         handle TMR_INDEX2.  Make sure TMR_INDEX is not NULL before
7214         dereferencing it.
7215         (indirect_refs_may_alias_p): Likewise.
7216
7217 2010-09-05  Naveen H.S  <naveen.S@kpitcummins.com>
7218
7219         * config/sh/sh.c (sh_option_override): Make static.
7220         Adjust comments.  Declare.
7221         (sh_function_value_regno_p): Likewise.
7222         (sh_register_move_cost): Modify the arguments, make static.
7223         Adjust comments.  Declare.
7224         (TARGET_OPTION_OVERRIDE, TARGET_REGISTER_MOVE_COST
7225         TARGET_FUNCTION_VALUE_REGNO_P): Define.
7226         * config/sh/sh.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P
7227         REGISTER_MOVE_COST): Delete.
7228         * config/sh/sh-protos.h (sh_override_options): Delete.
7229         (sh_register_move_cost): Delete.
7230         (sh_function_value_regno_p): Delete.
7231
7232 2010-09-04  Anatoly Sokolov  <aesok@post.ru>
7233
7234         * config/m32r/m32r.c (m32r_function_value, m32r_libcall_value,
7235         m32r_function_value_regno_p): New functions.
7236         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
7237         TARGET_FUNCTION_VALUE_REGNO_P): Declare.
7238         * config/m32r/m32r.h: (FUNCTION_VALUE, LIBCALL_VALUE,
7239         FUNCTION_VALUE_REGNO_P): Remove.
7240
7241 2010-09-04  Jan Hubicka  <jh@suse.cz>
7242
7243         * gimple-fold.c (maybe_fold_reference): Use fold_const_aggregate_ref.
7244         * tree-ssa-ccp.c (fold_const_aggregate_ref): Use
7245         fold_read_from_constant_string.
7246
7247         * gimple.h (canonicalize_constructor_val): Declare.
7248         * gimple-fold.c (canonicalize_constructor_val): New function.
7249         (get_symbol_constant_value):Use it.
7250         * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
7251
7252 2010-09-04  Jan Hubicka  <jh@suse.cz>
7253
7254         * tree-switch-conversion.c (build_one_array): Set constructor to be
7255         static.
7256         * varpool.c (varpool_finalize_decl): Compute const_value_known.
7257
7258 2010-09-04  Richard Guenther  <rguenther@suse.de>
7259
7260         PR bootstrap/45519
7261         * tree-flow.h (force_gimple_operand_1): Declare.
7262         (force_gimple_operand_gsi_1): Likewise.
7263         * gimplify.c (force_gimple_operand_1): New worker taking a
7264         gimple predicate for ...
7265         (force_gimple_operand): ... which now wraps it.
7266         (force_gimple_operand_gsi_1, force_gimple_operand_gsi): Likewise.
7267         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Revert
7268         last change.
7269         * tree-ssa-address.c (gimplify_mem_ref_parts): Use
7270         force_gimple_operand_gsi_1 with is_gimple_mem_ref_addr.
7271         (create_mem_ref): Likewise.
7272
7273 2010-09-04  Uros Bizjak  <ubizjak@gmail.com>
7274
7275         * config/i386/predicates.md (sse_reg_operand): New predicate.
7276         * config/i386/i386.md (TFmode push splitter): Use sse_reg_operand
7277         predicate for operand 1.
7278         (XFmode push splitter): Use fp_register_operand predicate
7279         for operand 1.
7280         (*dummy_extendsfdf2, *dummy_extendsfxf2): Remove disabled patterns.
7281         (SF-DF float_extend push splitter): Add reload_completed insn
7282         predicate.
7283         ({SF,DF}-XF float_extend_push splitter): Macroize splitter using
7284         MODEF mode macro.  Add reload_completed insn predicate.
7285
7286 2010-09-04  Paolo Bonzini  <bonzini@gnu.org>
7287
7288         * df.h (enum df_ref_class): Remove DF_REF_EXTRACT.
7289         (struct df_extract_ref): Remove.
7290         (union df_ref_d): Remove extract_ref member.
7291         (df_ref_create): Remove last three arguments.
7292         (DF_REF_LOC): Remove DF_REF_EXTRACT case.
7293         * df-scan.c (df_ref_record): Remove last three arguments, do not
7294         pass them to df_ref_create_structure.
7295         (df_uses_record): Remove first and last three arguments.  Replace
7296         first argument with DF_REF_REGULAR, adjust calls to remove the
7297         width, offset and mode.  Always call recursively on the second
7298         and third argument of ZERO_EXTRACT and SIGN_EXTRACT.
7299         (df_ref_create_structure): Remove first argument.
7300         (struct df_scan_problem_data): Remove ref_extract_pool.
7301         (df_scan_free_internal): Do not free it.
7302         (df_scan_alloc): Do not allocate it.
7303         (df_ref_create): Remove last three arguments, do not pass them to
7304         df_ref_create_structure.
7305         (df_free_ref): Remove DF_REF_EXTRACT case.
7306         (df_notes_rescan): Adjust call to df_uses_record.
7307         (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
7308         Remove DF_REF_EXTRACT case.
7309         (df_def_record_1): Do not special case class for a ZERO_EXTRACT lhs.
7310         Adjust calls to df_ref_record, using DF_REF_REGULAR for all REG
7311         and SUBREG definitions.
7312         (df_get_conditional_uses): Remove references to width/offset/mode,
7313         adjust call to df_ref_create_structure.
7314         (df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
7315         df_entry_block_defs_collect, df_exit_block_uses_collect): Adjust
7316         calls to df_uses_record and df_ref_record.
7317         * fwprop.c (update_df): Remove references to width/offset/mode,
7318         adjust call to df_ref_create.
7319
7320 2010-09-03  Jan Hubicka  <jh@suse.cz>
7321
7322         * ipa.c (build_cdtor): Take VECtor as argument; fix array walk.
7323         (build_cdtor_fns): Update use of build_cdtor.
7324
7325 2010-09-03  Joseph Myers  <joseph@codesourcery.com>
7326
7327         * doc/options.texi (SeparateAlias): Document.
7328         * opt-functions.awk (switch_flags): Handle SeparateAlias.
7329         * opth-gen.awk: Generate enumeration names for options marked
7330         SeparateAlias, but not for those marked Ignore.
7331         * opts-common.c (generate_canonical_option): Don't output separate
7332         argument for options marked CL_SEPARATE_ALIAS.
7333         (decode_cmdline_option): Handle CL_SEPARATE_ALIAS.
7334         * opts.h (CL_SEPARATE_ALIAS): New.
7335         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
7336         CL_COMMON): Adjust definitions.
7337         * config/i386/darwin.opt, config/mips/sde.opt: New.
7338         * common.opt (fdump-final-insns): New.
7339         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
7340         i386/darwin.opt.
7341         (mips*-sde-elf*): Add mips/sde.opt.
7342         * config/mips/sde.h (DRIVER_SELF_SPECS): Don't handle
7343         -mno-data-in-code and -mcode-xonly here.
7344         * defaults.h (DEFAULT_SWITCH_TAKES_ARG): Add 'd'.
7345         * gcc.c (option_map): Add "j" to --dump entry.
7346         (translate_options): Don't translate -d to -foutput-class-dir= here.
7347
7348 2010-09-03  Sebastian Pop  <sebastian.pop@amd.com>
7349
7350         * tree-data-ref.c (dr_may_alias_p): Replace !DR_IS_READ with
7351         DR_IS_WRITE.
7352         (compute_all_dependences): Same.
7353         (create_rdg_edge_for_ddr): Same.
7354         * tree-data-ref.h (DR_IS_WRITE): New.
7355         (ddr_is_anti_dependent): Replace !DR_IS_READ with DR_IS_WRITE.
7356         * tree-if-conv.c (write_memrefs_written_at_least_once): Same.
7357         (write_memrefs_written_at_least_once): Same.
7358         * tree-predcom.c (suitable_component_p): Same.
7359         (determine_roots_comp): Same.
7360         (execute_load_motion): Same.
7361         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Same.
7362         (vect_enhance_data_refs_alignment): Same.
7363         (vect_analyze_group_access): Same.
7364
7365 2010-09-03  Joern Rennecke  <joern.rennecke@embecosm.com>
7366
7367         PR testsuite/42843
7368         * Makefile.in (PLUGINCC): Define in terms of @CC@ / @CXX@
7369         (PLUGINCFLAGS): Define in terms of @CFLAGS@ / @CXXFLAGS@
7370
7371 2010-09-03  Marcin Baczynski  <marbacz@gmail.com>
7372
7373         * dwarf2out.c (file scope): Remove #if0'd code.
7374         (gen_subprogram_die): Same.
7375
7376 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
7377
7378         PR middle-end/45484
7379         * dwarf2out.c (flush_queued_reg_saves): Rename to...
7380         (dwarf2out_flush_queued_reg_saves): ... this.  No longer static.
7381         (dwarf2out_frame_debug_expr, dwarf2out_frame_debug): Adjust callers.
7382         * dwarf2out.h (dwarf2out_flush_queued_reg_saves): New prototype.
7383         * config/i386/i386.c (output_set_got): Call it.
7384
7385 2010-09-03  Michael Matz  <matz@suse.de>
7386
7387         PR middle-end/45415
7388         * tree-sra.c (sra_modify_assign): If we modify the statement,
7389         say so.
7390
7391         * tree-ssa.c (verify_ssa): Check number of operands and links
7392         per statement to agree.
7393
7394 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
7395             Iain Sandoe  <iains@gcc.gnu.org>
7396
7397         PR target/45476
7398         * config/i386/t-darwin (LIB2FUNCS_EXCLUDE): New.
7399         * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE,
7400         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
7401
7402 2010-09-03  Richard Guenther  <rguenther@suse.de>
7403
7404         * lto-streamer-out.c (output_function): Output function
7405         start and end loci.
7406         * lto-streamer-in.c (input_function): Input function start
7407         and end loci.
7408
7409 2010-09-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7410
7411         * configure.ac: Use the GCC_AC_ENABLE_DECIMAL_FLOAT macro.
7412         * Makefile.in: Add aclocal.m4 dependency to dfp.m4.
7413         * configure: Regenerate.
7414         * aclocal.m4: Regenerate.
7415
7416 2010-09-03  Jan Hubicka  <jh@suse.cz>
7417
7418         PR lto/44812
7419         * lto-cgraph.c (intput_node, input_varpool_node): Set DECL_EXTERNAL
7420         on functions/variables in other partition.
7421
7422 2010-09-03  Jan Hubicka  <jh@suse.cz>
7423
7424         * cgraph.h (struct varpool_node): Add const_value_known.
7425         (varpool_decide_const_value_known): Declare.
7426         * tree-ssa-ccp.c (fold_const_aggregate_ref): Update initializer folding.
7427         * lto-cgraph.c (lto_output_varpool_node): Store const_value_known.
7428         (input_varpool_node): Restore const_value_known.
7429         * tree-ssa-loop-ivcanon (constant_after_peeling): Check varpool for
7430         initializer folding.
7431         * ipa.c (ipa_discover_readonly_nonaddressable_var,
7432         function_and_variable_visibility): Compute const_value_known.
7433         * gimple-fold.c (get_symbol_constant_value): Use varpool for
7434         initializer folding.
7435         * varpool.c (varpool_decide_const_value_known): New function.
7436
7437 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
7438
7439         * config/i386/i386.md: Remove empty preparation statements
7440         from splitters.
7441
7442 2010-09-03  Jan Hubicka  <jh@suse.cz>
7443
7444         * passes.c (rest_of_decl_compilation): Do not add local vars into
7445         varpool.
7446         * varpool.c (varpool_get_node, varpool_node): Sanity check that only
7447         static or extern vars are in varpool.
7448         (varpool_finalize_decl): Sanity check that only static vars are
7449         finalized.
7450
7451 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
7452
7453         PR debug/45500
7454         * dwarf2out.c (rtl_for_decl_init): Give up for all generic vectors,
7455         not just generic vectors with BLKmode.
7456
7457 2010-09-03  Richard Guenther  <rguenther@suse.de>
7458
7459         * tree.def (TARGET_MEM_REF): Merge TMR_SYMBOL and TMR_BASE.
7460         Move TMR_OFFSET to second operand.  Add TMR_INDEX2.
7461         * tree.h (TMR_SYMBOL): Remove.
7462         (TMR_BASE, TMR_OFFSET): Adjust.
7463         (TMR_INDEX2): New.
7464         * alias.c (ao_ref_from_mem): Use TMR_BASE.
7465         * builtins.c (get_object_alignment): Merge TMR_BASE and
7466         TMR_SYMBOL handling.
7467         * cfgexpand.c (expand_debug_expr): Use TMR_BASE.
7468         * gimple.c (get_base_address): Merge MEM_REF and TARGET_MEM_REF
7469         handling.  Also allow TARGET_MEM_REF as base address.
7470         (walk_stmt_load_store_addr_ops): TMR_BASE is always non-NULL.
7471         * gimplify.c (gimplify_expr): Gimplify TMR_BASE like MEM_REF
7472         base.  Gimplify TMR_INDEX2.
7473         * tree-cfg.c (verify_types_in_gimple_reference): Adjust.
7474         * tree-dfa.c (get_ref_base_and_extent): Likewise.
7475         (get_addr_base_and_unit_offset): Likewise.
7476         * tree-eh.c (tree_could_trap_p): Likewise.
7477         * tree-pretty-print.c (dump_generic_node): Likewise.
7478         * tree-ssa-address.c (tree_mem_ref_addr): Simplify.  Handle TMR_INDEX2.
7479         (create_mem_ref_raw): Merge symbol and base.  Move 2ndary
7480         base to index2.
7481         (get_address_description): Reconstruct addres description
7482         from merged TMR_BASE and TMR_INDEX2.
7483         (maybe_fold_tmr): Fold propagated addresses.
7484         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Merge
7485         MEM_REF and TARGET_MEM_REF paths.
7486         (indirect_refs_may_alias_p): Likewise.
7487         * tree-ssa-live.c (mark_all_vars_used_1): Handle TMR_INDEX2
7488         instead of TMR_SYMBOL.
7489         * tree-ssa-operands.c (get_tmr_operands): Simplify.
7490         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Adjust
7491         according to changes ...
7492         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): ... here.
7493         Split TARGET_MEM_REF into two fields plus the base.
7494         * tree.c (mem_ref_offset): Simplify.
7495         * tree-ssa-loop-im.c (for_each_index): Handle TMR_INDEX2.
7496         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
7497         Strip NOPs when folding MEM_REF addresses.
7498         * tree-ssa-sink.c (is_hidden_global_store): Handle TARGET_MEM_REF.
7499         * gimple-fold.c (maybe_fold_reference): Fold TARGET_MEM_REF here ...
7500         (fold_gimple_assign): ... not here.
7501
7502 2010-09-03  Mingjie Xing  <mingjie.xing@gmail.com>
7503
7504         * config/mips/mips.h (SHIFT_COUNT_TRUNCATED): Change the definition.
7505         * config/mips/mips.c (mips_shift_truncation_mask): New function.
7506         (TARGET_SHIFT_TRUNCATION_MASK): Define.
7507
7508 2010-09-02  Richard Henderson  <rth@redhat.com>
7509
7510         * configure.ac (gcc_cv_as_cfi_advance_working): Use objdump
7511         instead of readelf in the test.
7512         (gcc_cv_as_cfi_sections_directive): Check for correct relocation
7513         in the .debug_frame section for coff targets.
7514         * configure: Rebuild.
7515
7516 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
7517
7518         * config/m32c/m32c.h (CLASS_LIKELY_SPILLED_P): Remove.
7519         * config/m32c/m32c-protos.h (m32c_class_likely_spilled_p): Remove.
7520         * config/m32c/m32c.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
7521         (m32c_class_likely_spilled_p): Make static. Change argument type to
7522         reg_class_t. Change result type to bool.
7523
7524 2010-09-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
7525
7526         * config/rs6000/rs6000.opt (-mfriz): New switch to control whether
7527         to convert (double)(long) into a single FRIZ instruction or not
7528         when -ffast-math is used.
7529
7530         * config/rs6000/vsx.md (VSX_DF): New iterator for DF/V2DF modes.
7531         (vsx_float_fix_<mode>2): Optimize (double)(long) into X{S,V}RDPIZ
7532         or FRIZ instruction if -ffast-math.
7533         * config/rs6000/rs6000.md (friz): Ditto.
7534
7535         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mfriz.
7536
7537 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
7538
7539         * opth-gen.awk (quote, comma): Remove unused variables.
7540
7541 2010-09-02  Ryan Mansfield  <rmansfield@qnx.com>
7542
7543         * arm.c (arm_override_options): Correct fall-back code to use
7544         SUBTARGET_CPU_DEFAULT.
7545
7546 2010-09-02  Julian Brown  <julian@codesourcery.com>
7547
7548         * config/arm/neon.md (UNSPEC_VCLE, UNSPEC_VCLT): New constants for
7549         unspecs.
7550         (vcond<mode>, vcondu<mode>): New expanders.
7551         (neon_vceq<mode>, neon_vcge<mode>, neon_vcgt<mode>): Support
7552         comparisons with zero.
7553         (neon_vcle<mode>, neon_vclt<mode>): New patterns.
7554         * config/arm/constraints.md (Dz): New constraint.
7555
7556 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
7557
7558         * target.def (class_likely_spilled_p): New hook.
7559         * doc/tm.texi.in (TARGET_CLASS_LIKELY_SPILLED_P): Document.
7560         * doc/tm.texi: Regenerate.
7561         * targhooks.c (default_class_likely_spilled_p): New function.
7562         * targhooks.h (default_class_likely_spilled_p): Declare.
7563         * regs.h (CLASS_LIKELY_SPILLED_P): Remove.
7564         * combine.c (cant_combine_insn_p, likely_spilled_retval_p): Use
7565         TARGET_CLASS_LIKELY_SPILLED_P target hook. Use HARD_REGISTER_P macro.
7566         Use fixed_reg_set instead of fixed_regs.
7567         * cse.c (hash_rtx_cb): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
7568         * calls.c (avoid_likely_spilled_reg): Ditto.
7569         * ira-conflicts.c (ira_build_conflicts): Ditto.
7570         * ira.c (update_equiv_regs): Ditto.
7571         * mode-switching.c (create_pre_exit): Ditto.
7572         * regmove.c (find_matches): Ditto.
7573         (regclass_compatible_p): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
7574         * reload.c (SMALL_REGISTER_CLASS_P): Remove macro.
7575         (small_register_class_p): New inline function.
7576         (push_secondary_reload, find_reusable_reload, find_reloads): Use
7577         small_register_class_p instead of SMALL_REGISTER_CLASS_P.
7578
7579         * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Remove.
7580         * config/i386/i386.c (ix86_class_likely_spilled_p): New.
7581         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
7582
7583 2010-09-02  Richard Guenther  <rguenther@suse.de>
7584
7585         PR tree-optimization/44937
7586         PR tree-optimization/45412
7587         * ipa-split.c (split_function): Properly remove PHI nodes.
7588
7589 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
7590
7591         * opts.h (struct cl_option): Add warn_message field.
7592         (struct cl_decoded_option): Add warn_message field.
7593         * doc/options.texi (Ignore, Warn): Document.
7594         * opt-functions.awk (needs_state_p): Don't consider aliases or
7595         ignored options to need state saved.
7596         * optc-gen.awk: Handle Warn and Ignore.
7597         * opth-gen.awk: Output OPT_SPECIAL_ignore.
7598         * opts-common.c (decode_cmdline_option): Set warn_message field.
7599         Handle ignored options.
7600         (decode_cmdline_options_to_array, generate_option,
7601         generate_option_input_file): Set warn_message field.
7602         (read_cmdline_option): Generate warnings from warn_message field.
7603         Handle ignored options.
7604         * common.opt (Wunreachable-code, fargument-alias,
7605         fargument-noalias, fargument-noalias-global,
7606         fargument-noalias-anything, fcse-skip-blocks, fforce-addr,
7607         floop-optimize, frerun-loop-opt, fsched2-use-traces, fsee,
7608         fstrength-reduce, ftree-store-ccp, ftree-store-copy-prop,
7609         ftree-salias): Mark Ignore.
7610         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -mcpu,
7611         -mintel-syntax and -mno-intel-syntax here.
7612         * config/i386/i386.opt (mcpu=, mintel-syntax): Define as aliases
7613         using Warn.
7614         * opts.c (common_handle_option): Don't handle options marked as
7615         ignored.
7616         (enable_warning_as_error): Handle ignored options.
7617
7618 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
7619
7620         PR driver/44076
7621         * opts.h (struct cl_option): Add alias_arg, neg_alias_arg and
7622         alias_target fields.
7623         * opt-functions.awk (opt_sanitized_name): Don't handle
7624         finline-limit=, Wlarger-than= and ftemplate-depth= specially.
7625         * optc-gen.awk: Generate alias fields.
7626         * opth-gen.awk: Explicitly give values for OPT_* enum constants.
7627         Don't generate such constants for aliases.
7628         * opts-common.c (generate_canonical_option): New.
7629         (decode_cmdline_option): Handle aliases.  Use
7630         generate_canonical_option for known options instead of copying the
7631         input option text.
7632         * doc/options.texi (Alias): Document.
7633         * common.opt (W, Wlarger-than-, aux-info=, finline-limit-,
7634         fstack-check, specs): Mark as aliases.
7635         * gcc.c (driver_handle_option): Canonicalize -L options to joined
7636         arguments.
7637         (driver_handle_option): Don't handle OPT_specs.
7638         * opts.c (common_handle_option): Don't handle options marked as
7639         aliases.
7640         (enable_warning_as_error): Handle aliases.
7641         * stor-layout.c (layout_decl): Use OPT_Wlarger_than_ instead of
7642         OPT_Wlarger_than_eq.
7643         * tree-optimize.c (tree_rest_of_compilation): Use
7644         OPT_Wlarger_than_ instead of OPT_Wlarger_than_eq.
7645
7646 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
7647
7648         * config/i386/i386.md (nonmemory_operand): New mode attribute.
7649         (push memory peephole2): Macroize peepholes using SWI mode iterator.
7650         (move immediate to memory peephole2): Macroize peepholes using
7651         SWI124 mode iterator.
7652         (non-pairable NOT peephole2): Macroize peepholes using SWI124
7653         mode iterator.
7654         (simple lea add peephole2): Macroize peepholes using SWI48
7655         mode iterator.
7656         (simple lea mult peephole2): Ditto.
7657         (imul by 3,5,9 to lea peephole2): Ditto.
7658         (mov $-1, reg peephole2): Macroize peepholes using SWI248
7659         mode iterator.
7660         (imul $32bit_imm,mem,reg peephole2): Ditto.
7661         (imul $8/16bit_imm,regmem,reg peephole2): Ditto.
7662
7663 2010-09-02  Ian Bolton  <ian.bolton@arm.com>
7664
7665         * tree-ssa-loop-prefetch.c: Fix comment at head of file.
7666
7667 2010-09-02  Olivier Hainque  <hainque@adacore.com>
7668
7669         PR middle-end/44763
7670         * ira-color.c (SORTGT): New macro, helper for qsort callbacks.
7671         (allocno_priority_compare_func): Use it instead of a straight
7672         difference computation over priorities.
7673
7674 2010-09-02  Andi Kleen  <ak@linux.intel.com>
7675
7676         * opts.c (common_handle_option): Fix OPT_fwhopr/fwhopr_ handling.
7677
7678 2010-09-02  Ira Rosen  <irar@il.ibm.com>
7679
7680         * tree-vectorizer.h (get_later_stmt): New function.
7681         (vect_analyze_data_ref_dependences): Add argument.
7682         * tree-vect-loop.c (vect_analyze_loop): Update call to
7683         vect_analyze_data_ref_dependences.
7684         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block):
7685         New function.
7686         (vect_analyze_data_ref_dependence): Add argument for basic block
7687         dependencies. Check dependencies in basic block vectorization.
7688         (vect_analyze_data_ref_dependences): Add argument and update call to
7689         vect_analyze_data_ref_dependences.
7690         * tree-vect-slp.c (vect_find_last_store_in_slp_instance): New.
7691         (vect_bb_vectorizable_with_dependencies): New.
7692         (vect_slp_analyze_bb): Check dependencies in basic block.
7693         (vect_schedule_slp_instance): Insert stores before the last store in
7694         SLP instance.
7695
7696 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
7697
7698         PR target/45476
7699         * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE,
7700         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
7701
7702 2010-09-01  Jakub Jelinek  <jakub@redhat.com>
7703
7704         PR middle-end/45458
7705         * bb-reorder.c (add_labels_and_missing_jumps): Treat
7706         bbs ending with throwing insns like blocks ending with a call.
7707         (fix_up_fall_thru_edges): Likewise.
7708
7709 2010-09-01  Nathan Froyd  <froydnj@codesourcery.com>
7710
7711         * config/m32c/m32c-protos.h (m32c_function_arg): Delete.
7712         (m32c_function_arg_advance): Delete.
7713         * config/m32c/m32c.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7714         * config/m32c/m32c.c (m32c_function_arg): Make static.  Adjust
7715         comments.  Take a const_tree and a bool.  Declare.
7716         (m32c_function_arg_advance): Likewise.
7717         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7718
7719 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
7720
7721         PR target/45476
7722         * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE,
7723         LIBGCC2_TF_CEXT, TF_SIZE): Move from ...
7724         * config/i386/mingw32.h: ... here.
7725
7726 2010-09-01  Andi Kleen  <ak@linux.intel.com>
7727
7728         PR lto/45475
7729         * lto-streamer-in.c (lto_input_ts_target_option): Add.
7730         (lto_input_tree_pointers): Call lto_input_ts_target_option.
7731         * lto-streamer-out (lto_output_ts_target_option): Add.
7732         (lto_output_tree_pointers): Call lto_output_ts_target_option.
7733
7734 2010-09-01  Kai Tietz  <kai.tietz@onevision.com>
7735
7736         PR/target 45452
7737         * config/i386/cygwin.h: Change order of specified import libraries.
7738         * config/i386/mingw32.h: Likewise.
7739         * config/i386/t-cygwin: Likewise.
7740         * config/i386/t-mingw32: Likewise.
7741         * config/i386/t-mingw-w32: Likewise.
7742         * config/i386/t-mingw-w64: Likewise.
7743
7744 2010-09-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7745
7746         * config/arm/neon-schedgen.ml (core): New type.
7747         (allCores): List of supported cores.
7748         (availability_table): Add supported cores.
7749         (collate_bypasses): Accept core as a parameter.
7750         (worst_case_latencies_and_bypasses): Accept core as a parameter.
7751         (emit_insn_reservations): Accept core as a parameter.  Use tuneStr
7752         and coreStr to get tune attribute and prefix for functional units.
7753         (emit_bypasses): Accept core name and use it.
7754         (calculate_per_core_availability_table): New.
7755         (filter_core): New.
7756         (calculate_core_availability_table): New.
7757         (main): Use calculate_core_availablity_table.
7758         * config/arm/cortex-a8-neon.md: Update copyright year.
7759         Regenerated from ml file and merged in.
7760         (neon_mrrc, neon_mrc): Rename to cortex_a8_neon_mrrc and
7761         cortex_a8_neon_mrc.
7762
7763 2010-09-01  Ian Bolton  <ian.bolton@arm.com>
7764
7765         * Makefile.in (tree-switch-conversion.o): Update dependencies.
7766
7767 2010-09-01  Richard Guenther  <rguenther@suse.de>
7768
7769         * alias.c (ao_ref_from_mem): Adjust.
7770         * builtins.c (get_object_alignment): Likewise.
7771         * cfgexpand.c (expand_debug_expr): Likewise.
7772         * gimple.c (get_base_address): Likewise.
7773         * tree-dfa.c (get_ref_base_and_extent): Likewise.
7774         (get_addr_base_and_unit_offset): Likewise.  Fix for
7775         both TMR_SYMBOL and TMR_BASE being set.
7776         * tree-eh.c (tree_could_trap_p): Likewise.
7777         * gimplify.c (gimplify_expr): Do not attempt to gimplify
7778         TMR_SYMBOL.  Always gimplify TMR_BASE.
7779         * tree-cfg.c (verify_types_in_gimple_reference): Verify
7780         TMR_BASE if there is a TMR_SYMBOL.
7781         * tree-pretty-print.c (dump_generic_node): Adjust.
7782         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
7783         (tree_mem_ref_addr): Likewise.
7784         (create_mem_ref_raw): Likewise.
7785         (move_fixed_address_to_symbol): Likewise.
7786         (create_mem_ref): Likewise.
7787         (dump_mem_address): Likewise.
7788         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Adjust.
7789         Fix for both TMR_SYMBOL and TMR_BASE being set.
7790         (indirect_refs_may_alias_p): Likewise.
7791         * tree-ssa-operands.c (get_tmr_operands): Adjust.
7792         * tree.def (TARGET_MEM_REF): Adjust documentation.
7793
7794 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
7795
7796         * config/i386/i386.h (enum ix86_tune_indices) <X86_TUNE_SINGLE_POP>:
7797         Rename from X86_TUNE_ADD_ESP_4.
7798         <IX86_TUNE_DOUBLE_POP>: Rename from X86_TUNE_ADD_ESP_8.
7799         <IX86_TUNE_SINGLE_PUSH>: Rename from X86_TUNE_SUB_ESP_4.
7800         <IX86_TUNE_DOUBLE_PUSH>: Rename from X86_TUNE_SUB_ESP_8.
7801         (TARGET_SINGLE_POP): Rename from TARGET_ADD_ESP_4.
7802         (TARGET_DOUBLE_POP): Rename from TARGET_ADD_ESP_8.
7803         (TARGET_SINGLE_PUSH): Rename from TARGET_SUB_ESP_4.
7804         (TARGET_DOUBLE_POP): Rename from TARGET_SUB_ESP_8.
7805         * config/i386/i386.c (initial_ix86_tune_features)
7806         <X86_TUNE_SINGLE_POP>: Invert members.
7807         <X86_TUNE_DOUBLE_POP>: Ditto.
7808         <X86_TUNE_SINGLE_PUSH>: Ditto.
7809         <X86_TUNE_DOUBLE_PUSH>: Ditto.
7810         * config/i386/i386.md (*pop<mode>1): Rename from pop<mode>1.
7811         No longer exported.
7812         (push peephole2 patterns): Macroize peepholes using P mode iterator.
7813         Adjust for renamed TARGET_{SINGLE,DOUBLE}_PUSH defines.
7814         (pop peephole2 patterns): Macroize peepholes using P mode iterator.
7815         Adjust for renamed TARGET_{SINGLE,DOUBLE}_POP defines.
7816
7817 2010-09-01  Eric Botcazou  <ebotcazou@adacore.com>
7818
7819         * gimplify.c (gimplify_init_constructor): Do not create a temporary for
7820         a volatile LHS if the constructor has only one element.
7821
7822 2010-09-01  Mikael Pettersson  <mikpe@it.uu.se>
7823
7824         PR bootstrap/45321
7825         * tree.c (stdarg_p): Make fntype parameter const.
7826         * tree.h (stdarg_p): Likewise.
7827         (function_args_iterator): Remove unused fntype field.
7828         (function_args_iter_init): Do not initialize fntype
7829         field.  Make fntype parameter const.
7830
7831 2010-09-01  Richard Guenther  <rguenther@suse.de>
7832
7833         * tree-vrp.c (adjust_range_with_scev): Use number of iteration
7834         estimate.
7835         (vrp_visit_phi_node): Delay using SCEV till we balloon the range.
7836         (execute_vrp): Compute number of iteration estimates.
7837         * cfgloop.h (estimate_numbers_of_iterations_loop): Adjust prototype.
7838         * tree-flow.h (estimate_numbers_of_iterations): Likewise.
7839         * tree-data-ref.c (estimated_loop_iterations): Adjust.
7840         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
7841         Infer loop bounds from undefined behavior based on a new parameter.
7842         (estimate_numbers_of_iterations): Likewise.
7843         (scev_probably_wraps_p): Adjust.
7844         * tree-ssa-loop.c (tree_ssa_loop_bounds): Likewise.
7845
7846 2010-09-01  Nick Clifton  <nickc@redhat.com>
7847
7848         * config/stormy16/stormy16.c: Use REG_P, MEM_P and CONST_INT_P
7849         where appropriate.
7850         (xstormy16_legitimate_address_p): Use true and false instead of 1
7851         and 0.
7852         (xstormy16_expand_prologue): Delete unused local variable 'insn'.
7853         (xstormy16_function_arg): Use FIRST_ARGUMENT_REGNUM in place of
7854         magic constant 2.
7855         (xstormy16_expand_call): Fix comment at start of function.
7856
7857 2010-09-01  Nick Clifton  <nickc@redhat.com>
7858
7859         * config/rx/rx.c (rx_expand_prologue): Do not adjust frame size
7860         when pushing accumulator register.
7861         (rx_get_stack_layout): Always save call clobbered registers inside
7862         interrupt handlers.
7863         * config/rx/rx-modes.def: Fix descriptive comment at start of file.
7864
7865 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
7866
7867         * config.gcc (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Add
7868         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
7869
7870         * libgcc-std.ver (GCC_4.6.0): Define version.
7871
7872 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
7873
7874         * tree-nested.c (convert_all_function_calls): Iterate until after the
7875         sum of static chains in the nest doesn't change.
7876
7877 2010-08-31  Anatoly Sokolov  <aesok@post.ru>
7878
7879         * config/m32c/m32c.c (classes_intersect): Remove.
7880         (m32c_preferred_reload_class, m32c_secondary_reload_class): Use
7881         reg_classes_intersect_p instead of classes_intersect.
7882         (class_can_hold_mode): Change arguments type from enum reg_class to
7883         reg_class_t.  Use reg_class_contents instead of class_contents.
7884         (m32c_register_move_cost): Make static. Change arguments type from
7885         enum reg_class to reg_class_t. Use reg_classes_intersect_p instead of
7886         classes_intersect. Use reg_class_contents instead of class_contents.
7887         (m32c_memory_move_cost): Make static. Change arguments type from
7888         enum reg_class to reg_class_t.
7889         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
7890         * config/m32c/m32c.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
7891         * config/m32c/m32c-protos.h (m32c_register_move_cost,
7892         m32c_memory_move_cost): Remove.
7893
7894 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
7895
7896         * config/arm/arm-protos.h (arm_function_arg_advance): Delete.
7897         (arm_function_arg): Delete.
7898         (arm_needs_doubleword_align): Take a const_tree.
7899         * config/arm/arm.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7900         * config/arm/arm.c (aapcs_select_call_coproc): Take a const_tree.
7901         (aapcs_layout_arg, arm_needs_doubleword_align): Likewise.
7902         (arm_function_arg): Make static.  Take a const_tree and a bool.
7903         (arm_function_arg_advance): Likewise.
7904         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7905
7906 2010-08-31  Andi Kleen  <ak@linux.intel.com>
7907
7908         * common.opt (fwhopr=): Update for -fwhopr=jobserver
7909         * doc/invoke.texi (fwhopr): Document -fwhopr=jobserver.
7910         * lto-wrapper.c (run_gcc): Add jobserver mode.
7911         * opts.c (common_handle_option): Fix OPT_fwhopr for non numeric
7912         argument.
7913
7914 2010-08-31  Uros Bizjak  <ubizjak@gmail.com>
7915
7916         * config/i386/i386.md (popdi1): Rewrite using POST_INC memory operand.
7917         (popsi1): Ditto.
7918         (*popdi1_epilogue): Ditto.
7919         (*popsi1_epilogue): Ditto.
7920         (popsi, popdi peephole2 patterns): Update peepholes for changed
7921         pop{si,di}1 and *pop{si,di}1_epilogue patterns.
7922
7923         (pop<mode>1): Macroize insn from pop{si,di}1 using P code iterator.
7924         (*pop<mode>1_epilogue): Ditto from *pop{si,di}1_epilogue.
7925
7926         * config/i386/i386.c (*ix86_gen_pop1): Remove indirect function.
7927         (override_options): Do not initialize removed ix86_gen_pop1.
7928         (gen_pop): New static function.
7929         (ix86_expand_prologue): Use gen_pop instead of ix86_gen_pop1.
7930         (release_scratch_register_on_entry): Ditto.
7931         (ix86_restore_reg_using_pop): Ditto.
7932         (ix86_expand_epilogue): Ditto.
7933
7934 2010-08-31  Jakub Jelinek  <jakub@redhat.com>
7935
7936         PR middle-end/45461
7937         * builtins.c (dummy_object): Return a MEM_REF instead of INDIRECT_REF.
7938
7939 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
7940
7941         * config/fr30/fr30.c (fr30_move_double): Delete `dregno' and extra
7942         semicolons.
7943
7944 2010-08-31  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
7945
7946         * doc/extend.texi: Fix documentation of the return value of
7947         __builtin_choose_expr.
7948
7949 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
7950
7951         * config/v850/v850-protos.h (function_arg): Delete.
7952         * config/v850/v850.h (FUNCTION_ARG): Delete.
7953         (FUNCTION_ARG_ADVANCE): Move code to...
7954         * config/v850/v850.c (v850_function_arg_advance): ...here.
7955         (v850_function_arg): Make static.  Take a const_tree and a bool.
7956         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7957
7958 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
7959
7960         * config/m32r/m32r.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move
7961         these...
7962         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
7963         ...and these...
7964         * config/m32r/m32r.c (m32r_function_arg, m32r_function_arg_advance):
7965         ..to here..
7966         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
7967         ...and here.
7968         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7969
7970 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
7971
7972         * config/rx/rx-protos.h (rx_function_arg, rx_function_arg_size):
7973         Delete.
7974         * config/rx/rx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7975         * config/rx/rx.c (rx_function_arg_size): Make static.
7976         (rx_function_arg): Likewise.
7977         (rx_function_arg_advance): New function.
7978         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7979
7980 2010-08-31  John Tytgat  <John.Tytgat@aaug.net>
7981
7982         * config/arm/arm.c (arm_override_options): Remove superfluous test.
7983         Fix indentation.
7984
7985 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
7986
7987         * dwarf2out.c (gen_decl_die) <CONST_DECL>: Do not skip in Ada.
7988         (dwarf2out_decl) <CONST_DECL>: Likewise.
7989
7990 2010-08-30  Eric Botcazou  <ebotcazou@adacore.com>
7991
7992         Stack usage support
7993         * common.opt (-fstack-usage): New option.
7994         * doc/invoke.texi (Debugging options): Document it.
7995         * builtins.c (expand_builtin_apply): Pass TRUE as 4th argument to
7996         allocate_dynamic_stack_space.
7997         (expand_builtin_alloca): Add 4th bool parameter CANNOT_ACCUMULATE
7998         and propagate it to allocate_dynamic_stack_space.
7999         (expand_builtin) <BUILT_IN_ALLOCA>: Adjust for above change.
8000         * calls.c (initialize_argument_information): Pass TRUE as 4th
8001         argument to allocate_dynamic_stack_space.
8002         (expand_call): Set current_function_has_unbounded_dynamic_stack_size
8003         to 1 when pushing a variable-sized argument onto the stack.  Pass
8004         TRUE as 4th argument to allocate_dynamic_stack_space.
8005         Update current_function_pushed_stack_size.
8006         (emit_library_call_value_1): Likewise.
8007         * explow.c (allocate_dynamic_stack_space): Add 4th bool parameter
8008         CANNOT_ACCUMULATE.  If flag_stack_usage, look into the size and
8009         attempt to find an upper bound.  Remove redundant code for the
8010         SETJMP_VIA_SAVE_AREA case.
8011         * expr.h (allocate_dynamic_stack_space): Add 4th bool parameter.
8012         * function.h (struct stack_usage): New structure.
8013         (current_function_static_stack_size): New macro.
8014         (current_function_dynamic_stack_size): Likewise.
8015         (current_function_pushed_stack_size): Likewise.
8016         (current_function_dynamic_alloc_count): Likewise.
8017         (current_function_has_unbounded_dynamic_stack_size): Likewise.
8018         (current_function_allocates_dynamic_stack_space): Likewise.
8019         (struct function): Add new field 'su'.
8020         * function.c (instantiate_virtual_regs): If SETJMP_VIA_SAVE_AREA,
8021         add the value of the dynamic offset to the dynamic stack usage.
8022         (gimplify_parameters): Set ALLOCA_FOR_VAR_P on call to BUILT_IN_ALLOCA
8023         for variable-sized objects.
8024         (prepare_function_start): Allocate cfun->su if flag_stack_usage.
8025         (rest_of_handle_thread_prologue_and_epilogue): Call output_stack_usage.
8026         * gimplify.c (gimplify_decl_expr): Set ALLOCA_FOR_VAR_P on call to
8027         BUILT_IN_ALLOCA for variable-sized objects.
8028         * output.h (output_stack_usage): Declare.
8029         * toplev.c (stack_usage_file): New file pointer.
8030         (output_stack_usage): New function.
8031         (open_auxiliary_file): Likewise.
8032         (lang_dependent_init): Open file if flag_stack_usage is set.
8033         (finalize): Close file if stack_usage_file is not null.
8034         * tree.h (ALLOCA_FOR_VAR_P): New macro.
8035         * config/alpha/alpha.c (compute_frame_size): New function.
8036         (alpha_expand_prologue): Use it.
8037         (alpha_start_function): Likewise.
8038         (alpha_expand_epilogue): Likewise.  Set stack usage info.
8039         * config/i386/i386.c (ix86_expand_prologue): Likewise.
8040         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
8041         * config/mips/mips.c (mips_expand_prologue): Likewise.
8042         * config/pa/pa.c (hppa_expand_prologue): Likewise.
8043         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
8044         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
8045
8046 2010-08-30  Zdenek Dvorak  <ook@ucw.cz>
8047
8048         PR tree-optimization/45427
8049         * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Rewritten.
8050         Handle the case that the exit is never taken correctly.
8051         (number_of_iterations_ne): Pass exit_must_be_taken to
8052         number_of_iterations_ne_max.
8053
8054 2010-08-30  Catherine Moore  <clm@codesourcery.com>
8055
8056         * config/mips/mips.h (BASE_DRIVER_SELF_SPECS):
8057         Infer -mdspr2 for the the 74K.
8058
8059 2010-08-30  Jakub Jelinek  <jakub@redhat.com>
8060
8061         PR debug/45419
8062         * tree-ssa-live.c (dump_enumerated_decls): Clear the whole wi variable.
8063
8064         PR middle-end/45423
8065         * gimplify.c (goa_stabilize_expr): Handle TRUTH_NOT_EXPR
8066         and TRUTH_{AND,OR,XOR}_EXPR.
8067         * c-parser.c (c_parser_omp_atomic): Handle boolean
8068         {PRE,POST}_{INC,DEC}REMENT.
8069
8070 2010-08-30  Nathan Froyd  <froydnj@codesourcery.com>
8071
8072         * config/xtensa/xtensa-protos.h (function_arg_advance): Delete.
8073         (function_arg): Delete.
8074         * config/xtensa/xtensa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8075         (FUNCTION_INCOMING_ARG): Delete.
8076         * config/xtensa/xtensa.c (function_arg_advance): Rename to...
8077         (xtensa_function_arg_advance): ...this.  Make static. Take a const_tree
8078         and a bool.
8079         (function_arg): Rename to...
8080         (xtensa_function_arg_1): ...this.  Make static.  Take a const_tree and
8081         a bool.
8082         (xtensa_function_arg, xtensa_function_incoming_arg): Nex functions.
8083         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8084         (TARGET_FUNCTION_INCOMING_ARG): Define.
8085
8086 2010-08-30  Richard Guenther  <rguenther@suse.de>
8087
8088         PR tree-optimization/21602
8089         * builtins.c (fold_builtin_memory_op): Fold memmove to memcpy
8090         using points-to information.
8091
8092 2010-08-30  H.J. Lu  <hongjiu.lu@intel.com>
8093
8094         * config/linux.h (TARGET_HAS_SINCOS): Replace | with ||.
8095
8096 2010-08-30  Richard Guenther  <rguenther@suse.de>
8097
8098         PR tree-optimization/45449
8099         * tree-ssa-live.c (remove_unused_locals): Also remove address-taken
8100         variables.
8101
8102 2010-08-30  Joseph Myers  <joseph@codesourcery.com>
8103
8104         * opts.h (CL_ERR_NEGATIVE): Define.
8105         * opts.c (unknown_option_callback): Don't postpone warnings for
8106         options marked with CL_ERR_NEGATIVE.
8107         * opts-common.c (decode_cmdline_option): Set CL_ERR_NEGATIVE error
8108         for negative versions of CL_REJECT_NEGATIVE options.
8109
8110 2010-08-30  Uros Bizjak  <ubizjak@gmail.com>
8111
8112         * config/i386/i386.md (zero_extendsidi2_1): Rename from
8113         zero_extendsidi2_32.
8114         (zero_extend<mode>di2): Macroize insn from zero_extend{qi,hi}di2
8115         using SWI12 mode iterator.
8116         (zero_extendhisi2_and): Merge insn pattern and corresponding spliter
8117         to define_insn_and_split pattern.
8118         (zero_extendqi<mode>2): Macroize expander from zero_extendqi{hi,si}2
8119         using SWI24 mode iterator.
8120         (*zero_extendqi<mode>2_and): Macroize insn from
8121         *zero_extendqi{hi,si}2_and using SWI24 mode iterator.
8122         (*zero_extendqi<mode>2_movzbl_and): Macroize insn from
8123         *zero_extendqihi2_movzbw_and and *zero_extendqisi2_movzbl_and using
8124         SWI24 mode iterator.
8125         (*zero_extendqi<mode>2_movzbl): Ditto from
8126         *zero_extendqi{hi,si}2_movzbl.
8127         (extendsidi2_1): Rename from extendsidi2_32.
8128         (extend<mode>di2): Macroize insn from extend{qi,hi}di2 using
8129         SWI12 mode iterator.
8130
8131 2010-08-29  Eric Botcazou  <ebotcazou@adacore.com>
8132
8133         * config/ia64/ia64.h (HARD_REGNO_NREGS): Return 1 for CCImode in
8134         general purpose registers.
8135         (HARD_REGNO_MODE_OK): Accept CCImode in general purpose registers.
8136         * config/ia64/ia64.md (*movcci): Change to named pattern.  Deal
8137         with general purpose registers and memory operands.  Add associated
8138         CCImode post-reload splitter.
8139         * config/ia64/div.md: Change BImode to CCImode throughout.
8140
8141 2010-08-28  Eric Botcazou  <ebotcazou@adacore.com>
8142
8143         * config/ia64/ia64.md (cstorebi4): Fix thinko.
8144
8145 2010-08-28  Hariharan Sandanagobalane  <hariharan@picochip.com>
8146
8147         * config/picochip/picochip.c (reorder_var_tracking_notes): This
8148         function was dropping debug insns which caused PR45299.
8149
8150 2010-08-28  Uros Bizjak  <ubizjak@gmail.com>
8151
8152         * config/i386/sse.md (extsuffix): New code attribute.
8153         (sse4_1_<code>v8qiv8hi2): Macroize insn from sse4_1_extendv8qiv8hi2
8154         and sse4_1_zero_extendv8qiv8hi2 using any_extend code iterator.
8155         (sse4_1_<code>v4qiv4si2): Ditto from sse4_1_extendv4qiv4si2
8156         and sse4_1_zero_extendv4qiv4si2.
8157         (sse4_1_<code>v2qiv2di2): Ditto from sse4_1_extendv2qiv2di2
8158         and sse4_1_zero_extendv2qiv2di2.
8159         (sse4_1_<code>v4hiv4si2): Ditto from sse4_1_extendv4hiv4si2
8160         and sse4_1_zero_extendv4hiv4si2.
8161         (sse4_1_<code>v2hiv2di2): Ditto from sse4_1_extendv2hiv2di2
8162         and sse4_1_zero_extendv2hiv2di2.
8163         (sse4_1_extendv2siv2di2): Ditto from sse4_1_extendv2siv2di2
8164         and sse4_1_zero_extendv2siv2di2
8165
8166         (<s>mulv8hi3_highpart): Macroize expander from {u,s}mulv8hi3_highpart
8167         using any_extend code iterator.
8168         (*avx_<s>mulv8hi3_highpart): Macroize insn from
8169         *avx_{u,s}mulv8hi3_highpart using any_extend code iterator.
8170         (*<s>mulv8hi3_highpart): Ditto from *{u,s}mulv8hi3_highpart.
8171
8172         * config/i386/i386.c (ix86_expand_sse4_unpack): Update for renamed
8173         gen_sse4_1_sign_extend* functions.
8174         (struct builtin_description bdesc_args): Ditto.
8175
8176 2010-08-27  Xinliang David Li  <davidxl@google.com>
8177
8178         PR/45422
8179         * tree-ssa-loop-ivopts.c (iv_ca_get_num_inv_exprs): Remove.
8180         (iv_ca_set_no_cp): Update used inv expr count.
8181         (iv_ca_set_cp): Ditto.
8182         (iv_ca_new): Initialize new member.
8183         (iv_ca_free): Free memory.
8184
8185 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
8186
8187         * config/sh/sh-protos.h (sh_function_arg): Delete.
8188         (sh_function_arg_advance): Delete.
8189         * config/sh/sh.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8190         (PASS_IN_REG_P): Eliminate cast.
8191         * config/sh/sh.c (sh_function_arg_advance): Make static.  Take a
8192         const_tree and a bool.
8193         (sh_function_arg): Likewise.
8194         (sh_output_mi_thunk): Call sh_function_arg_advance) and
8195         sh_function_arg.
8196         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8197
8198 2010-08-27  Naveen H.S  <naveen.S@kpitcummins.com>
8199             Kaz Kojima  <kkojima@gcc.gnu.org>
8200
8201         * config/sh/sh.c (push_regs): Emit movml for interrupt handler
8202         when possible.
8203         (sh_expand_epilogue): Likewise.
8204         * config/sh/sh.md (movml_push_banked): New insn.
8205         (movml_pop_banked): Likewise.
8206
8207 2010-08-28  Bernd Schmidt  <bernds@codesourcery.com>
8208
8209         * genautomata.c (gen_regexp_repeat, gen_regexp_allof,
8210         gen_regexp_oneof, gen_regexp_sequence): Use the string found
8211         in vector element 0 rather than the original string when there's
8212         only one element.
8213         (gen_regexp): Remove extra semicolon.
8214
8215         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp, movsf_vfp,
8216         thumb2_movsf_vfp): Set attribute "insn".
8217         * config/arm/arm.md (arm_ashrdi3_1bit, arm_lshrdi3_1bit, not_shiftsi,
8218         not_shiftsi_compare0, not_shiftsi_compare0_scratch, arm_one_cmplsi2,
8219         thumb1_one_cmplsi2, notsi_compare0, notsi_compare0_scratch,
8220         arm_zero_extendsidi2, arm_extendsidi2, thumb1_movdi_insn,
8221         arm_movsi_insn, movhi_insn_arch4, movhi_bytes, arm_movqi_insn,
8222         thumb1_movqi_insn arm32_movhf, thumb1_movhf, arm_movsf_soft_insn,
8223         thumb1_movsf_insn, thumb_movdf_insn, mov_scc, mov_negscc, mov_notscc,
8224         movsicc_insn, movsfcc_soft_insn, and_scc, cond_move, if_move_not,
8225         if_not_move, if_shift_move, if_move_shift, if_shift_shift,
8226         if_not_arith, if_arith_not, cond_move_not): Likewise.
8227
8228 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
8229
8230         * config/rs6000/rs6000-protos.h (rs6000_address_for_fpconvert):
8231         New declaration.
8232         (rs6000_allocate_stack_temp): Ditto.
8233         (rs6000_expand_convert_si_to_sfdf): Ditto.
8234
8235         * config/rs6000/rs6000.c (rs6000_override_options): Adjust long
8236         line.  Update the options set if power6 or power7 server/embedded
8237         type options are used.  If we give a warning for no vsx under
8238         -mcpu=power7 -mno-altivec, mark -mvsx as an explicit option.
8239         (rs6000_allocate_stack_temp): New function to allocate a stack
8240         tempoary and adjust the address so it meets either REG+OFFSET or
8241         REG+REG addressing requirements.
8242         (rs6000_address_for_fpconvert): Adjust REG+OFFSET addresses so
8243         that they can be used with the LFIWAX/LFIWZX instrucitons.
8244         (rs6000_expand_convert_si_to_sfdf): New helper funciton for
8245         converting signed/unsigned SImode to either SFmode/DFmode.
8246
8247         * config/rs6000/rs6000.h (TARGET_FCFID): New macros to determine
8248         whether certain instructions can be generated.
8249         (TARGET_FCTIDZ): Ditto.
8250         (TARGET_STFIWX): Ditto.
8251         (TARGET_LFIWAX): Ditto.
8252         (TARGET_LFIWZX): Ditto.
8253         (TARGET_FCFIDS): Ditto.
8254         (TARGET_FCFIDU): Ditto.
8255         (TARGET_FCFIDUS): Ditto.
8256         (TARGET_FCTIDUZ): Ditto.
8257         (TARGET_FCTIWUZ): Ditto.
8258
8259         * config/rs6000/rs6000.md (UNSPEC_FCTIW): New unspec constants.
8260         (UNSPEC_FCTID): Ditto.
8261         (UNSPEC_LFIWAX): Ditto.
8262         (UNSPEC_LFIWZX): Ditto.
8263         (UNSPEC_FCTIWUZ): Ditto.
8264         (rreg): Use correct constraints.
8265         (SI_CONVERT_FP): New mode attribute for floating point conversion
8266         tests.
8267         (E500_CONVERT): Ditto.
8268         (lfiwax): New insns for converting from integer to floating point
8269         utilizing newer instructions.  Attempt to optimize conversions
8270         that come from memory so that we don't load the value into a GPR,
8271         spill it to the stack and reload it into a FPR.
8272         (floatsi<mode>2_lfiwax): Ditto.
8273         (floatsi<mode>2_lfiwax_mem): Ditto.
8274         (floatsi<mode>2_lfiwax_mem2): Ditto.
8275         (lfiwzx): Ditto.
8276         (floatunssi<mode>2_lfiwzx): Ditto.
8277         (floatunssi<mode>2_lfiwzx_mem): Ditto.
8278         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
8279         (floatdidf2_mem): Ditto.
8280         (floatunsdidf2_fcfidu): Ditto.
8281         (floatunsdidf2_mem): Ditto.
8282         (floatunsdisf2): Ditto.
8283         (floatunsdisf2_fcfidus): Ditto.
8284         (floatunsdisf2_mem): Ditto.
8285         (floatsidf2): Add support for LFIWAX/LFIWZX/FCFIDS/FCFIDU/FCFIDUS.
8286         Use FCFID on 32-bit hosts that support it.
8287         (floatsidf2_internal): Ditto.
8288         (floatunssisf2): Ditto.
8289         (floatunssidf2): Ditto.
8290         (floatunssidf2_internal): Ditto.
8291         (floatsisf2): Ditto.
8292         (floatdidf2): Ditto.
8293         (floatdidf2_fpr): Ditto.
8294         (floatunsdidf2): Ditto.
8295         (floatdisf2): Ditto.
8296         (floatdisf2_fcfids): Ditto.
8297         (floatdisf2_internal1): Ditto.
8298         (fixuns_truncsfsi2): Delete, merge into common pattern for both
8299         SF/DF.  Add power7 support.
8300         (fix_truncsfsi2): Ditto.
8301         (fixuns_truncdfsi2): Ditto.
8302         (fixuns_truncdfdi2): Ditto.
8303         (fix_truncdfsi2): Ditto.
8304         (fix_truncdfsi2_internal): Ditto.
8305         (fix_truncdfsi2_internal_gfxopt): Ditto.
8306         (fix_truncdfsi2_mfpgpr): Ditto.
8307         (fctiwz): Ditto.
8308         (btruncdf2): Ditto.
8309         (btruncdf2_fpr): Ditto.
8310         (btructsf2): Ditto.
8311         (ceildf2): Ditto.
8312         (ceildf2_fpr): Ditto.
8313         (ceilsf2): Ditto.
8314         (floordf2): Ditto.
8315         (floordf2_fpr): Ditto.
8316         (floorsf2): Ditto.
8317         (rounddf2): Ditto.
8318         (rounddf2_fpr): Ditto.
8319         (roundsf2): Ditto.
8320         (fix_trunc<mode>si2): Combine SF/DF conversion into one insn.
8321         (fix_trunc<mode>di2): Ditto.
8322         (fixuns_trunc<mode>si2): Ditto.
8323         (fixuns_trunc<mode>di2): Ditto.
8324         (fctiwz_<mode>): Ditto.
8325         (btrunc<mode>2): Ditto.
8326         (btrunc<mode>2_fpr): Ditto.
8327         (ceil<mode>2): Ditto.
8328         (ceil<mode>2_fpr): Ditto.
8329         (floor<mode>2): Ditto.
8330         (float<mode>2_fpr): Ditto.
8331         (round<mode>2): Ditto.
8332         (round<mode>2_fpr): Ditto.
8333         (fix_trunc<mode>si2_stfiwx): New insn for machines with STFIWX.
8334         (fixuns_trunc<mode>si2_stfiwx): Ditto.
8335         (fix_truncdfsi2_internal): Ditto.
8336         (fix_trunc<mode>si2_mem): Combiner pattern to eliminate storing
8337         converted value on stack, loaded into GPR, and then stored into
8338         the final destination.
8339         (fix_trunc<mode>di2_fctidz): New pattern for targets supporting
8340         FCTIDZ.
8341         (lrint<mode>di2): New insn, provide the lrint builtin functions.
8342         (ftruncdf2): Delete, unused.
8343         (fix_trunctfsi2_internal): Use gen_fctiwz_df, not gen_fctiwz.
8344
8345         * config/rs6000/vsx.md (toplevel): Update copyright year.
8346         (VSr2): Use "ws" contraint for DFmode, not "!r#r".
8347         (VSr3): Ditto.
8348
8349 2010-08-27  Basile Starynkevitch  <basile@starynkevitch.net>
8350             Jeremie Salvucci  <jeremie.salvucci@free.fr>
8351
8352         * gengtype.c (output_type_enum): Test the right union member.
8353
8354 2010-08-27  Uros Bizjak  <ubizjak@gmail.com>
8355
8356         PR target/41484
8357         * config/i386/sse.md (sse4_1_extendv8qiv8hi2): Also accept memory
8358         operands for operand 1.
8359         (sse4_1_extendv4qiv4si2): Ditto.
8360         (sse4_1_extendv2qiv2di2): Ditto.
8361         (sse4_1_extendv4hiv4si2): Ditto.
8362         (sse4_1_extendv2hiv2di2): Ditto.
8363         (sse4_1_extendv2siv2di2): Ditto.
8364         (sse4_1_zero_extendv8qiv8hi2): Ditto.
8365         (sse4_1_zero_extendv4qiv4si2): Ditto.
8366         (sse4_1_zero_extendv2qiv2di2): Ditto.
8367         (sse4_1_zero_extendv4hiv4si2): Ditto.
8368         (sse4_1_zero_extendv2hiv2di2): Ditto.
8369         (sse4_1_zero_extendv2siv2di2): Ditto.
8370         (*sse4_1_extendv8qiv8hi2): Remove insn pattern.
8371         (*sse4_1_extendv4qiv4si2): Ditto.
8372         (*sse4_1_extendv2qiv2di2): Ditto.
8373         (*sse4_1_extendv4hiv4si2): Ditto.
8374         (*sse4_1_extendv2hiv2di2): Ditto.
8375         (*sse4_1_extendv2siv2di2): Ditto.
8376         (*sse4_1_zero_extendv8qiv8hi2): Ditto.
8377         (*sse4_1_zero_extendv4qiv4si2): Ditto.
8378         (*sse4_1_zero_extendv2qiv2di2): Ditto.
8379         (*sse4_1_zero_extendv4hiv4si2): Ditto.
8380         (*sse4_1_zero_extendv2hiv2di2): Ditto.
8381         (*sse4_1_zero_extendv2siv2di2): Ditto.
8382
8383 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
8384
8385         * config/mips/mips-protos.h (mips_function_arg_advance): Delete
8386         (mips_function_arg): Delete.
8387         (mips_function_arg_boundary): Take a const_tree.
8388         * config/mips/mips.c (mips_function_arg_boundary): Likewise.
8389         (mips_arg_info): Likewise.
8390         (mips_setup_incoming_varargs): Call mips_function_arg_advance
8391         instead of FUNCTION_ARG_ADVANCE.
8392         (mips_function_arg_advance): Adjust prototype.  Make static.
8393         (mips_function_arg): Likewise.
8394         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8395         * config/mips/mips.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
8396
8397 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
8398
8399         * config/rs6000/rs6000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8400         * config/rs6000/rs6000-protos.h (function_arg_advance): Delete.
8401         (function_arg): Delete.
8402         (function_arg_boundary): Take a const_tree.
8403         * config/rs6000/rs6000.c (function_arg_boundary): Likewise.
8404         (rs6000_spe_function_arg): Likewise.
8405         (rs6000_parm_start): Likewise.
8406         (rs6000_arg_size): Likewise.
8407         (rs6000_darwin64_record_arg_advance_recurse): Likewise.
8408         (rs6000_darwin64_record_arg): Likewise.  Take a bool instead of an int.
8409         (rs6000_mixed_function_arg): Likewise.
8410         (function_arg): Rename to...
8411         (rs6000_function_arg): ...this.
8412         (function_arg_advance): Rename to...
8413         (rs6000_function_arg_advance_1): ...this
8414         (rs6000_function_arg_advance): New function.  Call it.
8415         (setup_incoming_varargs): Call rs6000_function_arg_advance_1.
8416         (rs6000_return_in_memory): Adjust call to rs6000_darwin64_record_arg.
8417         (rs6000_function_value): Likewise.
8418         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8419
8420 2010-08-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
8421
8422         * config/arm/arm.md (enabled): Test the value of arch_enabled
8423         rather than just using it.
8424
8425 2010-08-27  Olivier Hainque  <hainque@adacore.com>
8426             Eric Botcazou  <ebotcazou@adacore.com>
8427
8428         * dse.c (group_info.base_mem, get_group_info): Use BLKmode to
8429         cover all the possible offsets from this base.
8430         (scan_reads_nospill): Pass base_mem's mode to canon_true_dependence.
8431
8432 2010-08-26  Jakub Jelinek  <jakub@redhat.com>
8433
8434         PR tree-optimization/44485
8435         * calls.c (flags_from_decl_or_type): For const or pure
8436         noreturn functions return ECF_LOOPING_CONST_OR_PURE|ECF_NORETURN
8437         together with ECF_CONST resp. ECF_PURE.
8438         * builtins.c (expand_builtin): Use flags_from_decl_or_type
8439         instead of querying flags directly.
8440         * tree-ssa-loop-niter.c (finite_loop_p): Likewise.
8441         * tree-ssa-dce.c (find_obviously_necessary_stmts): Likewise.
8442
8443 2010-08-26  Richard Guenther  <rguenther@suse.de>
8444
8445         PR tree-optimization/45255
8446         * tree.c (decl_address_invariant_p): DECL_DLLIMPORT_P statics
8447         and externals are also invariant.
8448
8449 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
8450
8451         PR rtl-optimization/44858
8452         * combine.c (try_combine): If recog_for_combine added CLOBBERs to
8453         newi2pat, make sure they don't affect newpat.
8454
8455         PR rtl-optimization/45400
8456         * combine.c (simplify_shift_const_1) <case SUBREG>: Only use
8457         SUBREG_REG if both modes are of MODE_INT class.
8458
8459 2010-08-25  Julian Brown  <julian@codesourcery.com>
8460
8461         * config/arm/arm.c (arm_issue_rate): Return 2 for Cortex-A5.
8462         * config/arm/arm.md (generic_sched): No for Cortex-A5.
8463         (generic_vfp): Likewise.
8464         (cortex-a5.md): Include.
8465         * config/arm/cortex-a5.md: New.
8466
8467 2010-08-25  Richard Guenther  <rguenther@suse.de>
8468
8469         * alias.c (get_alias_set): Assign a single alias-set to all pointers.
8470         * gimple.c (gimple_get_alias_set): Remove special handling
8471         for pointers.
8472
8473 2010-08-25  Bernd Schmidt  <bernds@codesourcery.com>
8474
8475         PR middle-end/45355
8476         * combine.c (try_combine): Use reg_overlap_mentioned_p rather than
8477         dead_or_set_p when computing i0_feeds_i2_n.
8478
8479         * combine.c (find_split_point): Undo canonicalization of multiply-add
8480         to (minus x (mult)) when it seems likely that this will increase the
8481         chances of a split.
8482
8483 2010-08-25  Richard Guenther  <rguenther@suse.de>
8484
8485         PR lto/44562
8486         * lto-streamer.c (lto_record_common_node): Do not mess with
8487         TYPE_CANONICAL when not in lto.
8488         * gimple.c (gimple_register_type): Likewise.
8489
8490 2010-08-25  Richard Guenther  <rguenther@suse.de>
8491
8492         PR tree-optimization/45316
8493         * tree-ssa-pre.c (eliminate): Properly clean EH info.
8494
8495 2010-08-25  Richard Guenther  <rguenther@suse.de>
8496
8497         PR tree-optimization/45393
8498         * tree-ssa-math-opts.c (execute_cse_sincos_1): Properly transfer
8499         and clean EH info.  Avoid SSA update.
8500         (execute_cse_sincos): Cleanup the CFG if it has changed.
8501
8502 2010-08-25  Richard Guenther  <rguenther@suse.de>
8503
8504         PR middle-end/45379
8505         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle
8506         TARGET_MEM_REF in alignment computation.
8507
8508 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
8509
8510         PR tree-optimization/45059
8511         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Strip useless
8512         type conversions from newop{1,2}.  Assert t is a comparison and
8513         newop{1,2} after the stripping are gimple vals.
8514
8515 2010-08-25  Tejas Belagod  <tejas.belagod@arm.com>
8516
8517         * config/arm/iterators.md (VU, SE, V_widen_l): New.
8518         (V_unpack, US): New.
8519         * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Expansion for vmovl.
8520         (vec_unpack<US>_lo_<mode>): Likewise.
8521         (neon_vec_unpack<US>_hi_<mode>): Instruction pattern for vmovl.
8522         (neon_vec_unpack<US>_lo_<mode>): Likewise.
8523         (vec_widen_<US>mult_lo_<mode>): Expansion for vmull.
8524         (vec_widen_<US>mult_hi_<mode>): Likewise.
8525         (neon_vec_<US>mult_lo_<mode>"): Instruction pattern for vmull.
8526         (neon_vec_<US>mult_hi_<mode>"): Likewise.
8527         (neon_unpack<US>_<mode>): Widening move intermediate step for
8528         vectorizing without -mvectorize-with-neon-quad.
8529         (neon_vec_<US>mult_<mode>): Widening multiply intermediate step
8530         for vectorizing without -mvectorize-with-neon-quad.
8531         * config/arm/predicates.md (vect_par_constant_high): Check for
8532         high-half lanes of a vector.
8533         (vect_par_constant_low): Check for low-half lanes of a vector.
8534
8535 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
8536
8537         * tree-if-conv.c (struct ifc_dr): New.
8538         (IFC_DR): New.
8539         (DR_WRITTEN_AT_LEAST_ONCE): New.
8540         (DR_RW_UNCONDITIONALLY): New.
8541         (memref_read_or_written_unconditionally): Use the cached values
8542         when possible.
8543         (write_memref_written_at_least_once): Same.
8544         (if_convertible_loop_p): Initialize and free DR->aux fields.
8545
8546 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
8547
8548         * gimple.c (gimple_could_trap_p_1): Not static anymore.
8549         Pass an extra bool parameter include_mem.
8550         (gimple_could_trap_p): Adjust call to gimple_could_trap_p_1.
8551         (gimple_assign_rhs_could_trap_p): Same.
8552         * gimple.h (gimple_could_trap_p_1): Declared.
8553         * tree-data-ref.h (same_data_refs_base_objects): New.
8554         (same_data_refs): New.
8555         * tree-if-conv.c (memrefs_read_or_written_unconditionally): New.
8556         (write_memrefs_written_at_least_once): New.
8557         (ifcvt_memrefs_wont_trap): New.
8558         (operations_could_trap): New.
8559         (ifcvt_could_trap_p): New.
8560         (if_convertible_gimple_assign_stmt_p): Call ifcvt_could_trap_p.
8561         Gets a vector of data refs.
8562         (if_convertible_stmt_p): Same.
8563         (if_convertible_loop_p_1): New.
8564         (if_convertible_loop_p): Call if_convertible_loop_p_1.
8565
8566 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
8567
8568         * common.opt (ftree-loop-if-convert-stores): New flag.
8569         * doc/invoke.texi (ftree-loop-if-convert-stores): Documented.
8570         * tree-if-conv.c (ifc_temp_var): Pass an extra parameter GSI.  Insert
8571         the created statement before GSI.
8572         (if_convertible_phi_p): Allow virtual phi nodes when
8573         flag_loop_if_convert_stores is set.
8574         (if_convertible_gimple_assign_stmt_p): Allow memory reads and writes
8575         Do not handle types that do not match is_gimple_reg_type.
8576         Remove loop and bb parameters.  Call gimple_could_trap_p instead of
8577         when flag_loop_if_convert_stores is set, as LHS can contain
8578         memory refs.
8579         (if_convertible_stmt_p): Remove loop and bb parameters.  Update calls
8580         to if_convertible_gimple_assign_stmt_p.
8581         (if_convertible_loop_p): Update call to if_convertible_stmt_p.
8582         (replace_phi_with_cond_gimple_assign_stmt): Renamed
8583         predicate_scalar_phi.  Do not handle virtual phi nodes.
8584         (ifconvert_phi_nodes): Renamed predicate_all_scalar_phis.
8585         Call predicate_scalar_phi.
8586         (insert_gimplified_predicates): Insert the gimplified predicate of a BB
8587         just after the labels for flag_loop_if_convert_stores, otherwise
8588         insert the predicate in the end of the BB.
8589         (predicate_mem_writes): New.
8590         (combine_blocks): Call predicate_all_scalar_phis.  When
8591         flag_loop_if_convert_stores is set, call predicate_mem_writes.
8592         (tree_if_conversion): Call mark_sym_for_renaming when
8593         flag_loop_if_convert_stores is set.
8594         (main_tree_if_conversion): Return TODO_update_ssa_only_virtuals when
8595         flag_loop_if_convert_stores is set.
8596
8597 2010-08-24  Anatoly Sokolov  <aesok@post.ru>
8598
8599         * config/pa/pa.c (hppa_register_move_cost, pa_libcall_value,
8600         pa_function_value_regno_p, pa_print_operand_punct_valid_p): New.
8601         (pa_function_value): Make static.
8602         (override_options): Rename to...
8603         (pa_option_override): ...this. Make static.
8604         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_REGISTER_MOVE_COST,
8605         TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P,
8606         TARGET_OPTION_OVERRIDE): Define.
8607         * config/pa/pa.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P,
8608         LIBCALL_VALUE, REGISTER_MOVE_COST, PRINT_OPERAND_PUNCT_VALID_P):
8609         Remove.
8610         * config/pa/pa-protos.h (override_options): Remove.
8611
8612 2010-08-24  Richard Guenther  <rguenther@suse.de>
8613
8614         PR middle-end/45379
8615         * tree-ssa-address.c (create_mem_ref_raw): Drop to MEM_REF
8616         if addr->index is NULL or zero.
8617         * tree-ssa-alias.c (indirect_refs_may_alias_p): Handle
8618         TARGET_MEM_REF more properly.
8619         (indirect_ref_may_alias_decl_p): Likewise.
8620         * emit-rtl.c (set_mem_attributes_minus_bitpos): Keep TARGET_MEM_REFs.
8621         * alias.c (ao_ref_from_mem): Handle TARGET_MEM_REF more properly.
8622
8623 2010-08-23  Anatoly Sokolov  <aesok@post.ru>
8624
8625         * config/m32c/m32c.c (m32c_function_value_regno_p): Make static.
8626         (m32c_override_options): Rename to...
8627         (m32c_option_override): ...this. Make static.
8628         (TARGET_FUNCTION_VALUE_REGNO_P, TARGET_OPTION_OVERRIDE): Define.
8629         * config/m32c/m32c.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P):
8630         Remove.
8631         * config/m32c/m32c-protos.h (m32c_override_options,
8632         m32c_function_value_regno_p): Remove.
8633
8634 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
8635
8636         * tree-ssa-loop-prefetch.c (gather_memory_references_ref) :
8637         Fix a typo in a previous commit.
8638
8639 2010-08-23  Kai Tietz  <kai.tietz@onevision.com>
8640
8641         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost):
8642         Pre-initialize innerloop_iters to one.
8643
8644 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
8645
8646         * tree-flow.h (may_be_nonaddressable_p): New definition. Make the
8647         existing static function global.
8648
8649         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): This function
8650         is changed to global.
8651
8652         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Call
8653         may_be_nonaddressable_p on base, and don't collect this reference
8654         if the address of the base could not be taken.
8655
8656 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
8657
8658         * config/rs6000/rs6000.opt (-mveclibabi=mass): New option to
8659         enable the compiler to autovectorize mathmetical functions for
8660         power7 using the Mathematical Acceleration Subsystem library.
8661
8662         * config/rs6000/rs6000.c (rs6000_veclib_handler): New variable to
8663         handle which vector math library we have.
8664         (rs6000_override_options): Add -mveclibabi=mass support.
8665         (rs6000_builtin_vectorized_libmass): New function to handle auto
8666         vectorizing math functions that are in the MASS library.
8667         (rs6000_builtin_vectorized_function): Call it.
8668
8669         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
8670         -mveclibabi=mass.
8671
8672 2010-08-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8673
8674         PR boehm-gc/34544
8675         * gthr-posix.h (__gthread_active_init): Delete.
8676         (__gthread_active_p): Do activity check here.
8677         Don't include errno.h on hppa-hpux.  Update comment.
8678         * gthr-posix95.h (__gthread_active_init): Delete.
8679         (__gthread_active_p): Do activity check here.
8680         Don't include errno.h on hppa-hpux.  Update comment.
8681         * config.gcc (hppa[12]*-*-hpux11*): Define extra_parts.
8682         * config/pa/pa64-hpux.h (LIB_SPEC): When -static is specified, only
8683         add -lpthread when -mt or -pthread is specified.
8684         * config/pa/pa-hpux11.h (LIB_SPEC): likewise.
8685         (LINK_GCC_C_SEQUENCE_SPEC): Define.
8686         * config/pa/t-pa-hpux11 (LIBGCCSTUB_OBJS): Define.
8687         (stublib.c, pthread_default_stacksize_np-stub.o,
8688         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o,
8689         $(T)libgcc_stub.a): Add methods.
8690         * config/pa/t-pa64 (LIBGCCSTUB_OBJS): Add pthread stubs.
8691         (stublib.c, pthread_default_stacksize_np-stub.o,
8692         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o): Add methods.
8693         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
8694         pthread_mutex_unlock): New stubs.
8695
8696 2010-08-22  Joseph Myers  <joseph@codesourcery.com>
8697
8698         * Makefile.in (gccspec.o, cppspec.o): Update dependencies.
8699         * common.opt (L, nodefaultlibs, nostdlib, pg, static): New
8700         options.
8701         * config/avr/avr.h (LIBSTDCXX): Remove initial "-l".
8702         * config/freebsd.h (MATH_LIBRARY_PROFILE): Remove initial "-l".
8703         * config/i386/djgpp.h (LIBSTDCXX): Remove initial "-l".
8704         * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove initial "-l".
8705         * config/s390/tpf.h (MATH_LIBRARY, LIBSTDCXX): Remove initial
8706         "-l".
8707         * cppspec.c: Include opts.h.
8708         (lang_specific_driver): Use cl_decoded_option structures.
8709         * doc/tm.texi.in (MATH_LIBRARY): Update documentation.
8710         * doc/tm.texi: Regenerate.
8711         * gcc.c (translate_options): Translate -d to -foutput-class-dir=.
8712         (driver_handle_option): Allow driver options needing no special
8713         processing.
8714         (process_command): Decode options before call to
8715         lang_specific_driver.  Pass decoded options to
8716         lang_specific_driver.
8717         * gcc.h (lang_specific_driver): Update prototype.
8718         * gccspec.c: Include opts.h.
8719         (lang_specific_driver): Use cl_decoded_option structures.
8720         * opts-common.c (option_ok_for_language, generate_option,
8721         generate_option_input_file): New.
8722         (decode_cmdline_option): Use option_ok_for_language.
8723         (decode_cmdline_options_to_array): Use generate_option_input_file.
8724         (handle_generated_option): Use generate_option.
8725         * opts.h (generate_option, generate_option_input_file): Declare.
8726
8727 2010-08-22  Anatoly Sokolov  <aesok@post.ru>
8728
8729         * config/mips/mips.c (mips_override_options): Rename to...
8730         (mips_option_override): ...this. Make static.
8731         (TARGET_OPTION_OVERRIDE): Define.
8732         (mips_in_small_data_p): Update comment.
8733         * config/mips/mips.h (OVERRIDE_OPTIONS): Remove.
8734         (FIXED_REGISTERS): Update comment.
8735         * config/mips/mips-protos.h (mips_override_options): Remove.
8736
8737 2010-08-21  Olivier Hainque  <hainque@adacore.com>
8738
8739         * config/rs6000/vxworks.h (TARGET_OS_CPP_BUILTINS): Define __PPC__.
8740
8741 2010-08-21  Olivier Hainque  <hainque@adacore.com>
8742
8743         * config/rs6000/vxworks.h (PREFERRED_STACK_BOUNDARY,
8744         ABI_STACK_BOUNDARY): Ensure STACK_BOUNDARY is honored despite EABI.
8745
8746 2010-08-20  Jan Hubicka  <jh@suse.cz>
8747
8748         * tree-pass.h (pass_ipa_cdtor_merge): New function.
8749         * cgraphunit.c (static_ctors, static_dtors): Move to ipa.c; make
8750         heap allocated.
8751         (record_cdtor_fn): Move to ipa.c; do not test for
8752         have_ctors_dtors.
8753         (build_cdtor): Move to ipa.c; add code avoiding construction
8754         when target have ctors/dtors and there is only one ctor/dtor at given
8755         priority.
8756         (compare_ctor, compare_dtor): Move to ipa.c; use DECL_UID to stabilize
8757         sort; reverse order of constructors.
8758         (cgraph_build_cdtor_fns): Move to ipa.c; rename to build_cdtor_fns.
8759         (cgraph_finalize_function): Do not call record_cdtor_fn.
8760         (cgraph_finalize_compilation_unit): Do not call cgraph_build_cdtor_fns.
8761         (cgraph_build_static_cdtor): Move to ipa.c.
8762         * ipa.c: Include target.h and tree-iterator.h.
8763         (cgraph_build_static_cdtor, static_ctors, static_dtors,
8764         record_cdtor_fn, build_cdtor, compare_ctor, compare_dtor,
8765         build_cdtor_fns, ipa_cdtor_merge, gate_ipa_cdtor_merge,
8766         pass_ipa_cdtor_merge): New.
8767         * passes.c (init_optimization_passes): Enqueue pass_ipa_cdtor_merge.
8768         * ipa-prop.c (update_indirect_edges_after_inlining): Avoid out of
8769         bounds access.
8770
8771 2010-08-20  Jan Hubicka  <jh@suse.cz>
8772
8773         PR c++/45307
8774         PR c++/17736
8775         * cgraph.h (cgraph_only_called_directly_p,
8776         cgraph_can_remove_if_no_direct_calls_and_refs_p): Handle
8777         static cdtors.
8778         * cgraphunit.c (cgraph_decide_is_function_needed): Static cdtors
8779         are not needed.
8780         (cgraph_finalize_function): Static cdtors are reachable.
8781         (cgraph_mark_functions_to_output): Use cgraph_only_called_directly_p.
8782
8783 2010-08-20  Jan Hubicka  <jh@suse.cz>
8784
8785         * lto-cgraph.c (lto_output_edge): Use gimple_has_body_p instead of
8786         flag_wpa.
8787         * lto-streamer-out.c (lto_output): Likewise.
8788         * passes.c (ipa_write_optimization_summaries): Initialize statement
8789         uids.
8790
8791 2010-08-20  Olivier Hainque  <hainque@adacore.com>
8792
8793         * tree.h (alias_diag_flags): New enum.
8794         (alias_pair): Add an 'emitted_diags' field.
8795         * varasm.c (finish_aliases_1): Honor and update p->emitted_diags.
8796         (assemble_alias): Initialize emitted_diags of new pairs.
8797
8798 2010-08-20  Eric Botcazou  <ebotcazou@adacore.com>
8799
8800         * config/rs6000/aix.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
8801         * config/rs6000/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
8802         * config/rs6000/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
8803         (STACK_CHECK_PROTECT): Define.
8804         * config/rs6000/rs6000.c (rs6000_emit_probe_stack_range): New function.
8805         (output_probe_stack_range): Likewise.
8806         (rs6000_emit_prologue): Invoke rs6000_emit_probe_stack_range if static
8807         builtin stack checking is enabled.
8808         * config/rs6000/rs6000-protos.h (output_probe_stack_range): Declare.
8809         * config/rs6000/rs6000.md (UNSPECV_PROBE_STACK_RANGE): New constant.
8810         (probe_stack_range): New insn.
8811
8812 2010-08-20  H.J. Lu  <hongjiu.lu@intel.com>
8813
8814         PR target/45336
8815         * config/i386/emmintrin.h (_mm_extract_epi16): Cast to unsigned
8816         short first.
8817
8818         * config/i386/smmintrin.h (_mm_extract_epi8): Cast to unsigned
8819         char first.
8820
8821 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
8822
8823         PR target/45336
8824         * config/i386/sse.md (*sse4_1_pextrb): Add SWI48 mode iterator
8825         to cover zero extension into 64-bit register.
8826         (*sse2_pextrw): Likewise.
8827         (*sse4_1_pextrd_zext): New insn.
8828
8829 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
8830
8831         revert r163410, partially revert r163267.
8832         * config/rs6000/darwin.h (LIB_SPEC): Remove.
8833         * config/darwin.h (REAL_LIBGCC_SPEC): Link lgcc for all
8834         Darwin versions.
8835
8836 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
8837
8838         PR middle-end/44974
8839         * builtins.c (expand_builtin): Don't optimize away
8840         calls to DECL_LOOPING_CONST_OR_PURE_P builtins.
8841
8842 2010-08-20  Uros Bizjak  <ubizjak@gmail.com>
8843
8844         * config/i386/i386.md (ashift %rsp splitter): Remove splitter.
8845         (pro_epilogue_adjust_stack_di_2): Use "l" constraint for
8846         alternative 1 of operand 2.
8847
8848 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
8849             Paolo Bonzini  <bonzini@gnu.org>
8850
8851         * simplify-rtx.c (simplify_unary_operation_1): Optimize
8852         (sign_extend (zero_extend (...)) and
8853         ({sign,zero}_extend (lshiftrt (ashift X (const_int I)) (const_int I))).
8854
8855 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
8856
8857         PR rtl-optimization/45353
8858         * sel-sched-ir.c (sel_bb_head): Return NULL even if next_nonnote_insn
8859         after bb_note is a BARRIER.
8860
8861 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
8862
8863         * config/rs6000/darwin.h (LIB_SPEC): New. Provide saveFP/restFP by
8864         linking libgcc.a.
8865
8866 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
8867             Michael Matz  <matz@suse.de>
8868
8869         * tree-ssa-address.c (tree_mem_ref_addr): Convert offset to sizetype.
8870
8871 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
8872
8873         * ggc-common.c (ggc_mark_root_tab): New function, split out from...
8874         (ggc_mark_roots): ...here.
8875
8876 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
8877
8878         * vec.h (FOR_EACH_VEC_ELT): Define.
8879         * c-decl.c: Use it.
8880         * cfgloop.c: Likewise.
8881         * cfgloopmanip.c: Likewise.
8882         * cgraph.c: Likewise.
8883         * cgraphunit.c: Likewise.
8884         * combine.c: Likewise.
8885         * config/bfin/bfin.c: Likewise.
8886         * config/mips/mips.c: Likewise.
8887         * config/rs6000/rs6000.c: Likewise.
8888         * dbxout.c: Likewise.
8889         * df-scan.c: Likewise.
8890         * dominance.c: Likewise.
8891         * dse.c: Likewise.
8892         * dwarf2out.c: Likewise.
8893         * except.c: Likewise.
8894         * expr.c: Likewise.
8895         * function.c: Likewise.
8896         * gcse.c: Likewise.
8897         * genattr.c: Likewise.
8898         * ggc-common.c: Likewise.
8899         * gimplify.c: Likewise.
8900         * graphite-blocking.c: Likewise.
8901         * graphite-clast-to-gimple.c: Likewise.
8902         * graphite-dependences.c: Likewise.
8903         * graphite-interchange.c: Likewise.
8904         * graphite-poly.c: Likewise.
8905         * graphite-scop-detection.c: Likewise.
8906         * graphite-sese-to-poly.c: Likewise.
8907         * graphite.c: Likewise.
8908         * haifa-sched.c: Likewise.
8909         * ifcvt.c: Likewise.
8910         * implicit-zee.c: Likewise.
8911         * ipa-prop.c: Likewise.
8912         * ipa-struct-reorg.c: Likewise.
8913         * ipa.c: Likewise.
8914         * ira-build.c: Likewise.
8915         * ira-color.c: Likewise.
8916         * ira-emit.c: Likewise.
8917         * lambda-code.c: Likewise.
8918         * loop-invariant.c: Likewise.
8919         * loop-unroll.c: Likewise.
8920         * lower-subreg.c: Likewise.
8921         * lto-cgraph.c: Likewise.
8922         * lto-opts.c: Likewise.
8923         * lto-streamer-in.c: Likewise.
8924         * lto-streamer-out.c: Likewise.
8925         * lto-streamer.c: Likewise.
8926         * lto-symtab.c: Likewise.
8927         * matrix-reorg.c: Likewise.
8928         * opts.c: Likewise.
8929         * predict.c: Likewise.
8930         * print-tree.c: Likewise.
8931         * sdbout.c: Likewise.
8932         * sel-sched-dump.c: Likewise.
8933         * sel-sched-ir.c: Likewise.
8934         * sel-sched.c: Likewise.
8935         * sese.c: Likewise.
8936         * stor-layout.c: Likewise.
8937         * tree-cfg.c: Likewise.
8938         * tree-cfgcleanup.c: Likewise.
8939         * tree-chrec.c: Likewise.
8940         * tree-data-ref.c: Likewise.
8941         * tree-emutls.c: Likewise.
8942         * tree-inline.c: Likewise.
8943         * tree-into-ssa.c: Likewise.
8944         * tree-loop-distribution.c: Likewise.
8945         * tree-loop-linear.c: Likewise.
8946         * tree-mudflap.c: Likewise.
8947         * tree-outof-ssa.c: Likewise.
8948         * tree-parloops.c: Likewise.
8949         * tree-predcom.c: Likewise.
8950         * tree-pretty-print.c: Likewise.
8951         * tree-scalar-evolution.c: Likewise.
8952         * tree-ssa-live.c: Likewise.
8953         * tree-ssa-loop-im.c: Likewise.
8954         * tree-ssa-loop-ivcanon.c: Likewise.
8955         * tree-ssa-loop-ivopts.c: Likewise.
8956         * tree-ssa-loop-manip.c: Likewise.
8957         * tree-ssa-loop-niter.c: Likewise.
8958         * tree-ssa-loop-prefetch.c: Likewise.
8959         * tree-ssa-phiprop.c: Likewise.
8960         * tree-ssa-pre.c: Likewise.
8961         * tree-ssa-reassoc.c: Likewise.
8962         * tree-ssa-sccvn.c: Likewise.
8963         * tree-ssa-structalias.c: Likewise.
8964         * tree-ssa.c: Likewise.
8965         * tree-vect-data-refs.c: Likewise.
8966         * tree-vect-loop-manip.c: Likewise.
8967         * tree-vect-loop.c: Likewise.
8968         * tree-vect-patterns.c: Likewise.
8969         * tree-vect-slp.c: Likewise.
8970         * tree-vect-stmts.c: Likewise.
8971         * tree-vrp.c: Likewise.
8972         * tree.c: Likewise.
8973         * value-prof.c: Likewise.
8974         * var-tracking.c: Likewise.
8975         * varasm.c: Likewise.
8976         * vmsdbgout.c: Likewise.
8977
8978 2010-08-19  Nathan Sidwell  <nathan@codesourcery.com>
8979             Richard Guenther  <richard.guenther@gmail.com>
8980
8981         * gimplify.c (gimplify_modify_expr): When assigning to volatiles,
8982         copy the src value and return a copy.
8983         * doc/extend.texi (Volatiles): Move from C++ to C and expand.
8984         (C++ Volatiles): Adjust to describe C++ semantics only.
8985
8986 2010-08-20  Joseph Myers  <joseph@codesourcery.com>
8987
8988         * doc/tm.texi.in (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Document to
8989         be zero or nonzero.
8990         * doc/tm.texi: Regenerate.
8991         * defaults.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define.
8992         * df-scan.c (df_get_exit_block_use_set), reginfo.c
8993         (init_reg_sets_1), rtlanal.c (rtx_unstable_p, rtx_varies_p):
8994         Handle new PIC_OFFSET_TABLE_REG_CALL_CLOBBERED semantics.
8995         * config/ia64/ia64.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define
8996         to 1.
8997
8998 2010-08-20  Olivier Hainque  <hainque@adacore.com>
8999
9000         * config/sparc/sparc.c (sparc_asm_function_epilogue): Don't output
9001         an extra nop past a sibling call at the very end.
9002
9003 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
9004
9005         PR bootstrap/45350
9006         * combine.c (try_combine): Initialize i1_is_used and i2_is_used.  Fix
9007         a comment.
9008
9009 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
9010
9011         * target.def (function_arg, function_incoming_arg): Remove const
9012         qualifier on CUMULATIVE_ARGS parameter.
9013         * targhooks.h (default_function_arg, default_function_incoming_arg):
9014         Likewise.
9015         * targhooks.c (default_function_arg, default_function_incoming_arg):
9016         Likewise.
9017         * config/i386/i386.c (ix86_function_arg): Likewise.
9018
9019 2010-08-19  Jakub Jelinek  <jakub@redhat.com>
9020
9021         PR target/45336
9022         * simplify-rtx.c (simplify_unary_operation_1): Optimize nested
9023         SIGN_EXTENDs or ZERO_EXTENDs.
9024
9025 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
9026
9027         PR target/42172
9028         * combine.c (combine_validate_cost): New arg I0.  All callers changed.
9029         Take its cost into account if nonnull.
9030         (insn_a_feeds_b): New static function.
9031         (combine_instructions): Look for four-insn combinations.
9032         (can_combine_p): New args PRED2, SUCC2.  All callers changed.  Take
9033         them into account when computing all_adjacent and looking for other
9034         uses.
9035         (combinable_i3pat): New args I0DEST, I0_NOT_IN_SRC.  All callers
9036         changed.  Treat them like I1DEST and I1_NOT_IN_SRC.
9037         (try_combine): New arg I0.  Handle four-insn combinations.
9038         (distribute_notes): New arg ELIM_I0.  All callers changed.  Treat it
9039         like ELIM_I1.
9040
9041 2010-08-19  Jason Merrill  <jason@redhat.com>
9042
9043         PR c++/45307
9044         * gimplify.c (gimplify_init_constructor): Just return GS_UNHANDLED
9045         if ctor is empty.
9046         (gimplify_modify_expr_rhs): Adjust.
9047
9048 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
9049
9050         * cfgloop.c (get_loop_body_in_bfs_order): Avoid redundant call to
9051         bitmap_bit_p.
9052         * config/bfin/bifn.c (bfin_discover_loop): Likewise.
9053         * dominance.c (iterate_fix_dominators): Likewise.
9054         * dse.c (set_usage_bits): Likewise.
9055         (set_position_unneeded, record_store): Likewise.
9056         * gimple-fold.c (get_maxval_strlen): Likewise.
9057         * haifa-sched.c (fix_inter_tick, fix_recovery_deps): Likewise.
9058         * ipa-inline.c (update_caller_keys): Likewise.
9059         * ipa-split.c (verify_non_ssa_vars): Likewise.
9060         * ipa-type-escape.c (mark_type, close_type_seen): Likewise.
9061         (close_type_exposed_parameter, close_type_full_escape): Likewise.
9062         (close_addressof_down): Likewise.
9063         * ira-color.c (assign_hard_reg, push_allocno_to_stack): Likewise.
9064         (setup_allocno_left_conflicts_size): Likewise.
9065         (ira_reassign_conflict_allocnos): Likewise.
9066         (ira_reassign_pseudos): Likewise.
9067         * ira-emit.c (change_loop): Likewise.
9068         * loop-invariant.c (mark_regno_live, mark_regno_death): Likewise.
9069         * lto-streamer-out.c (write_symbol): Likewise.
9070         * predict.c (expr_expected_value_1): Likewise.
9071         * regstat.c (regstat_bb_compute_ri): Likewise.
9072         * sel-sched.c (create_block_for_bookkeeping): Likewise.
9073         (track_scheduled_insns_and_blocks, sel_sched_region_1): Likewise.
9074         * stmt.c (expand_case): Likewise.
9075         * tree-eh.c (emit_eh_dispatch): Likewise.
9076         * tree-into-ssa.c (prune_unused_phi_nodes): Likewise.
9077         * tree-loop-distribution.c (make_nodes_having_upstream_mem_writes):
9078         Likewise.
9079         (rdg_flag_vertex, rdg_flag_loop_exits): Likewise.
9080         (rdg_build_components): Likewise.
9081         * tree-object-size.c (collect_object_sizes_for): Likewise.
9082         * tree-sra.c (convert_callers): Likewise.
9083         * tree-ssa-coalesce.c (live_track_add_partition): Likewise.
9084         * tree-ssa-live.c (mark_all_vars_used_1): Likewise.
9085         * tree-ssa-pre.c (bitmap_set_replace_value): Likewise.
9086
9087 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
9088
9089         * config/i386/i386.md (*lea_1): Use P mode iterator.
9090         (lea add splitter): Also handle DImode operands.
9091         (DImode lea add splitter): Use x86_64_immediate_operand for operand 2
9092         predicate.  Do not use ix86_lea_for_add_ok.
9093         (zext DImode lea add splitter): Use ix86_lea_for_add_ok.
9094         (lea ashift splitter): Also handle DImode operands.
9095         (DImode lea ashift splitter): Remove splitter.
9096
9097 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
9098
9099         * config/i386/i386.md (*add<SWI:mode>3_cconly_overflow): Do not use
9100         ix86_binary_operator_ok.
9101
9102 2010-08-19  Andrey Belevantsev  <abel@ispras.ru>
9103
9104         PR rtl-optimization/44691
9105         * sel-sched.c (count_occurrences_1): Also punt when SUBREG_REG
9106         is not a register.
9107
9108 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
9109
9110         PR target/45070
9111         * config/arm/arm.c (arm_output_epilogue): Ensure that return
9112          value of size 1-3 is handled correctly.
9113
9114 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
9115
9116         * tree-switch-conversion.c (gen_inbound_check): Ensure that the
9117         type for the conditional has wide enough range.
9118
9119 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
9120
9121         PR target/45327
9122         * config/i386/i386.md (<any_or:code><SWI:mode>_3): Do not use
9123         ix86_binary_operator_ok.
9124
9125 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
9126
9127         * config/i386/i386.md (*add<mode>_1) <TYPE_LEA>: Split insn to lea.
9128         <default>:  Swap operands 1 and 2 for alternative 2 to use existing
9129         code to output insn mnemonic.  Fix comment.
9130         (*addsi_1_zext): Add r-r-0 alternative 1.
9131         <TYPE_LEA>: Split insn to lea.
9132         <default>: Handle alternative 1.
9133         (*addhi_1_lea): Add r-r-0 alternative 2.  Use cond RTX instead of
9134         multi-level if_then_else RTX to set "type" attribute.
9135         <default>: Handle alternative 2.
9136         (*addqi_1_lea): Add q-q-0 alternative 2 and r-r-0 alternative 4.
9137         Use cond RTX instead of multi-level if_then_else RTX to set
9138         "type" attribute.
9139         <default>: Handle alternatives 2 and 4.
9140         (lea splitters): Update calls to ix86_lea_for_add_ok.
9141
9142         * config/i386/i386.c (ix86_lea_for_add_ok): Remove unused "code"
9143         argument.
9144         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Update prototype.
9145
9146 2010-08-18  Richard Guenther  <rguenther@suse.de>
9147
9148         * tree-ssa-uninit.c (find_uninit_use): Disregard debug stmts,
9149         use operand helpers.
9150
9151 2010-08-18  Paolo Bonzini  <bonzini@gnu.org>
9152
9153         PR middle-end/45292
9154         * optabs.c (expand_bool_compare_and_swap): Expand pending
9155         pops before trying the optab.
9156
9157 2010-08-18  Yao Qi  <yao@codesourcery.com>
9158
9159         PR target/45094
9160         * config/arm/arm.c (output_move_double): Fix typo generating
9161         instructions ('ldr'->'str').
9162
9163 2010-08-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
9164
9165         PR rtl-optimization/42575
9166         * optabs.c (expand_doubleword_mult): Generate new pseudos to shorten
9167         live ranges.
9168
9169 2010-08-18  Marcus Shawcroft  <marcus.shawcroft@arm.com>
9170
9171         * config/arm/arm-protos.h (arm_expand_sync): New.
9172         (arm_output_memory_barrier, arm_output_sync_insn): New.
9173         (arm_sync_loop_insns): New.
9174         * config/arm/arm.c (FL_ARCH7): New.
9175         (FL_FOR_ARCH7): Include FL_ARCH7.
9176         (arm_arch7): New.
9177         (arm_print_operand): Support %C markup.
9178         (arm_legitimize_sync_memory): New.
9179         (arm_emit, arm_insn_count, arm_count, arm_output_asm_insn): New.
9180         (arm_process_output_memory_barrier, arm_output_memory_barrier): New.
9181         (arm_ldrex_suffix, arm_output_ldrex, arm_output_strex): New.
9182         (arm_output_op2, arm_output_op3, arm_output_sync_loop): New.
9183         (arm_get_sync_operand, FETCH_SYNC_OPERAND): New.
9184         (arm_process_output_sync_insn, arm_output_sync_insn): New.
9185         (arm_sync_loop_insns,arm_call_generator, arm_expand_sync): New.
9186         * config/arm/arm.h (struct arm_sync_generator): New.
9187         (TARGET_HAVE_DMB, TARGET_HAVE_DMB_MCR): New.
9188         (TARGET_HAVE_MEMORY_BARRIER): New.
9189         (TARGET_HAVE_LDREX, TARGET_HAVE_LDREXBHD): New.
9190         * config/arm/arm.md: Include sync.md.
9191         (UNSPEC_MEMORY_BARRIER): New.
9192         (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK): New.
9193         (VUNSPEC_SYNC_OP):New.
9194         (VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): New.
9195         (sync_result, sync_memory, sync_required_value): New attributes.
9196         (sync_new_value, sync_t1, sync_t2): Likewise.
9197         (sync_release_barrier, sync_op): Likewise.
9198         (length): Add logic to length attribute defintion to call
9199         arm_sync_loop_insns when appropriate.
9200         * config/arm/sync.md: New file.
9201
9202 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
9203
9204         * tree.h (host_integerp): Add ATTRIBUTE_PURE when not
9205         ENABLE_TREE_CHECKING.
9206         (tree_low_cst): Add inline version for !ENABLE_TREE_CHECKING
9207         and GCC >= 4.3.
9208
9209 2010-08-17  H.J. Lu  <hongjiu.lu@intel.com>
9210
9211         * config/i386/i386.c (ix86_lea_for_add_ok): For !TARGET_OPT_AGU
9212         or optimizing for size, always avoid lea if possible.
9213
9214         * config/i386/i386.md (*add<mode>_1): Always avoid lea if possible.
9215
9216 2010-08-17  Iain Sandoe  <iains@gcc.gnu.org>
9217
9218         * unwind-dw2-fde-darwin.c (_darwin10_Unwind_FindEnclosingFunction):
9219         Dunmmy function with NULL return unless the target is
9220         OSX >= 10.6 (Darwin10).
9221
9222 2010-08-17  Jack Howarth  <howarth@bromo.med.uc.edu>
9223
9224         * gcc.c (spec_function): Add remove-outfile.
9225         (remove_outfile_spec_function): New function.
9226         * config/darwin.h (LINK_SPEC): Add removal of -ldl, -lm and -lpthread.
9227         * invoke.texi (replace-outfile): Document.
9228
9229 2010-08-17  Uros Bizjak  <ubizjak@gmail.com>
9230
9231         PR target/45296
9232         * reginfo.c (globalize_reg): Reject stack registers.
9233
9234 2010-08-17  Richard Guenther  <rguenther@suse.de>
9235
9236         * tree-ssa-dom.c (struct edge_info): Use a VEC for the
9237         list of conditional equivalences.
9238         (free_all_edge_infos): Adjust.
9239         (record_equivalences_from_incoming_edge): Likewise.
9240         (record_cond): Likewise.
9241         (build_and_record_new_cond): Likewise.
9242         (record_conditions): Likewise.
9243         (dom_opt_leave_block): Likewise.
9244
9245 2010-08-17  Kai Tietz  <kai.tietz@onevision.com>
9246
9247         * doc/invoke.texi (ms-extension): Add documentation.
9248
9249 2010-08-17  Richard Guenther  <rguenther@suse.de>
9250
9251         * fold-const.c (fold_comparison): Strip nops inside POINTER_PLUS_EXPR.
9252
9253 2010-08-17  Shujing Zhao  <pearly.zhao@oracle.com>
9254
9255         PR c/40563
9256         * c-decl.c (diagnose_uninitialized_cst_member): New function.
9257         (finish_decl): Use it to issue a -Wc++-compat warning about
9258         uninitialized const field in struct or union.
9259
9260         (finish_struct): Use strip_array_types.
9261
9262 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
9263
9264         * function.c (block_fragments_nreverse, blocks_nreverse_all): New
9265         functions.
9266         (reorder_blocks): Use blocks_nreverse_all instead of blocks_nreverse.
9267         (reorder_blocks_1): Assert BLOCK_FRAGMENT_ORIGIN is NULL.  Don't
9268         call block_nreverse here.
9269         (blocks_nreverse): Rename decl temporary to block.
9270
9271 2010-08-16  Bernd Schmidt  <bernds@codesourcery.com>
9272
9273         * config/arm/thumb2.md (thumb2_notsi_shiftsi,
9274         thumbsi_notsi_shiftsi_compare0, thumb2_not_shiftsi_compare0_scratch,
9275         thumb2_cmpsi_shiftsi, thumb2_cmpsi_shiftsi_swp, thumb2_arith_shiftsi,
9276         thumb2_arith_shiftsi splitter, thumb2_arith_shiftsi_compare0,
9277         thumb2_arith_shiftsi_compare0_scratch, thumb2_sub_shiftsi,
9278         thumb2_sub_shiftsi_compare0, thumb2_sub_shiftsi_compare0_scratch,
9279         thumb2_iorsi3): Delete.
9280         (orsi_notsi_si): No longer a named pattern.
9281         (orsi_not_shiftsi_si): Renamed from thumb_orsi_not_shiftsi_si.
9282         * config/arm/predicates.md (shift_amount_operand): New.
9283         (mult_operator): New.
9284         * config/arm/arm.md (attr arch, attr arch_enabled, attr insn_enabled,
9285         attr enabled): New.
9286         (iorsi3_insn): Renamed from arm_iorsi3.  Handle a new alternative if
9287         arch matches t2.
9288         (not_shiftsi): Renamed from arm_notsi_shiftsi.  Handle Thumb2 variant.
9289         (not_shiftsi_compare0): Likewise, renamed from
9290         arm_notsi_shiftsi_compare0.
9291         (not_shiftsi_compare0_scratch): Likweise, renamed from
9292         arm_notsi_shiftsi_compare0_scratch.
9293         (cmpsi_shiftsi): Likewise, renamed from arm_cmpsi_shiftsi.
9294         (cmpsi_shiftsi_swp): Likewise, renamed from arm_cmpsi_shiftsi_swp.
9295         (arith_shiftsi): Handle Thumb2 variant.  Set insn_enabled attribute
9296         so that the register alternative is disabled when the shift_operator
9297         is MULT.  Use "M" as the constraint for constants.
9298         (arith_shiftsi splitter): Enable for TARGET_32BIT.
9299         (arith_shiftsi_compare0): Handle Thumb2 variant.  Use "M" as the
9300         constraint for constants.
9301         (arith_shiftsi_compare0_scratch): Likewise.
9302         (sub_shiftsi, sub_shiftsi_compare0, sub_shiftsi_compare0_scratch):
9303         Handle Thumb2 alternative.
9304
9305 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
9306
9307         * doc/options.texi (NoDriverArg): Document.
9308         * gcc.c (cpp_unique_options): Generate -MD and -MMD instead of
9309         -MDX and -MMDX.
9310         * opt-functions.awk (switch_flags): Handle NoDriverArg.
9311         * opts-common.c (decode_cmdline_option): Ignore CL_SEPARATE
9312         marking for CL_NO_DRIVER_ARG options when in the driver.
9313         * opts.h (CL_NO_DRIVER_ARG): Define.
9314         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
9315         CL_COMMON): Update values.
9316
9317 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
9318
9319         * common.opt: Add driver options.
9320         (auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
9321         * doc/options.texi (Driver, RejectDriver): Document.
9322         * gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
9323         print_prog_name, print_multi_directory, print_sysroot,
9324         print_multi_os_directory, print_multi_lib,
9325         print_sysroot_headers_suffix, report_times, combine_flag,
9326         use_pipes, wrapper_string): Remove.
9327         (save_switch, driver_unknown_option_callback,
9328         driver_wrong_lang_callback, driver_post_handling_callback,
9329         driver_handle_option): New.
9330         (spec_lang, last_language_n_infiles): Make file-scope static
9331         instead of local to process_command.
9332         (process_command): Use decode_cmdline_options_to_array and
9333         read_cmdline_option for option processing.  Compute have_c in
9334         prescan of decoded options.
9335         * opt-functions.awk (switch_flags): Handle Driver and
9336         RejectDriver.
9337         (var_type, var_type_struct): Handle Separate options as generating
9338         const char * variables.
9339         * opts-common.c (decode_cmdline_option): Expect CL_COMMON and
9340         CL_TARGET to be passed by caller if required.
9341         (decode_cmdline_options_to_array): Update comment.
9342         * opts.c (complain_wrong_lang): Handle options only valid for the
9343         driver.
9344         (decode_options): Update call to decode_cmdline_options_to_array.
9345         (print_filtered_help): Ignore driver-only options.
9346         (print_specific_help): Ignore CL_DRIVER.
9347         (common_handle_option): Don't call print_specific_help for CL_DRIVER.
9348         * opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
9349         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
9350         Update values.
9351
9352 2010-08-16  Richard Guenther  <rguenther@suse.de>
9353
9354         * tree-cfg.c (verify_types_in_gimple_reference): Verify
9355         TARGET_MEM_REF a bit.
9356         * tree-ssa-address.c (addr_for_mem_ref): Adjust.
9357         (create_mem_ref_raw): Always create TMR_OFFSET, store the
9358         alias pointer type via it.
9359         (copy_mem_ref_info): Adjust.
9360         (maybe_fold_tmr): Likewise.
9361         * tree.c (mem_ref_offset): Also handle TARGET_MEM_REF.
9362         (reference_alias_ptr_type): Likewise.
9363         * tree.def (TARGET_MEM_REF): Remove TMR_ORIGINAL operand,
9364         adjust documentation of TMR_OFFSET operand.
9365         * alias.c (get_alias_set): Do not look at TMR_ORIGINAL but
9366         use the alias pointer type.
9367         * expr.c (expand_expr_real_1): Do not use TMR_ORIGINAL to
9368         initialize mem attrs but the TMR itself.
9369         * tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REF
9370         similar to MEM_REF.
9371         * tree-pretty-print.c (dump_generic_node): Do not dump TMR_ORIGINAL.
9372         * tree-ssa-loop-ivopts.c (idx_remove_ssa_names): Remove.
9373         (unshare_and_remove_ssa_names): Likewise.
9374         (copy_ref_info): Adjust.
9375         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Simplify
9376         TARGET_MEM_REF case.
9377         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Do not look
9378         at TMR_ORIGINAL.
9379         * tree.h (TMR_ORIGINAL): Remove.
9380         * gimple.c (get_base_address): For TARGET_MEM_REF with a
9381         symbol return that.
9382         * tree-dfa.c (get_ref_base_and_extent): Handle TARGET_MEM_REF
9383         with a symbol.
9384         (get_addr_base_and_unit_offset): Likewise.
9385         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Handle
9386         TARGET_MEM_REFs.
9387         (indirect_ref_may_alias_decl_p): Likewise.
9388         (refs_may_alias_p_1): Do not bail out for TARGET_MEM_REFs.
9389
9390 2010-08-15  Uros Bizjak  <ubizjak@gmail.com>
9391
9392         * doc/invoke.texi (-fomit-frame-pointer): Document that starting
9393         with GCC version 4.6, the default setting (when not optimizing
9394         for size) for 32-bit Linux x86 and 32-bit Darwin x86 targets has
9395         been changed to -fomit-frame-pointer.
9396
9397 2010-08-15  Iain Sandoe  <iains@gcc.gnu.org>
9398
9399         * config/darwin.h (REAL_LIBGCC_SPEC): Remove libgcc_s.10.5 stub for
9400         Darwin10.  Do not link libgcc.a for Darwin >= 9.
9401
9402 2010-08-15  Gerald Pfeifer  <gerald@pfeifer.com>
9403
9404         * doc/invoke.texi (Warning Options): Fix terminology and markup
9405         in the description of how unknown warning options are handled.
9406
9407 2010-08-15  Ira Rosen  <irar@il.ibm.com>
9408
9409         * tree-vect-data-refs.c (vect_setup_realignment): Support realignment
9410         in basic blocks.
9411         (vect_supportable_dr_alignment): Check alignment for basic blocks.
9412         * tree-vect-slp.c (vect_build_slp_tree): Allow different codes for
9413         data references.
9414         (vect_bb_vectorization_profitable_p): New function.
9415         (vect_slp_analyze_bb): Call vect_bb_vectorization_profitable_p() to
9416         check if it's worthwhile to vectorize the basic block.
9417
9418 2010-08-14  Anatoly Sokolov  <aesok@post.ru>
9419
9420         * reload.h (register_move_cost, memory_move_secondary_cost,
9421         secondary_reload_class): Adjust prototype.
9422         * rtl.h (reg_class_subset_p): Adjust prototype.
9423         * reload.c (secondary_reload_class): Change arguments type from
9424         enum reg_class to reg_class_t. Change result type to reg_class_t.
9425         * reginfo.c (register_move_cost, reg_class_subset_p): Change
9426         arguments type from enum reg_class to reg_class_t.
9427         (memory_move_secondary_cost): Change arguments type from
9428         enum reg_class to reg_class_t. Change type of saved_flags to
9429         reg_class_t.
9430
9431         * config/mips/mips.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
9432         Remove macros.
9433         (mips_cost): Remove.
9434         (struct mips_rtx_cost_data): Moved to mips.c.
9435         * config/mips/mips-protos.h (mips_register_move_cost): Remove.
9436         * config/mips/mips.c (struct mips_rtx_cost_data): Moved from mips.h.
9437         (mips_cost): Make static.
9438         (mips_canonicalize_move_class): Change argument type to reg_class_t.
9439         Change result type to reg_class_t.
9440         (mips_move_to_gpr_cost, mips_move_from_gpr_cost): Change arguments
9441         type from enum reg_class to reg_class_t.
9442         (mips_register_move_cost): Make static. Change arguments
9443         type from enum reg_class to reg_class_t.
9444         (mips_memory_move_cost): New function.
9445         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
9446
9447 2010-08-14  Richard Sandiford  <rdsandiford@googlemail.com>
9448
9449         PR rtl-optimization/43358
9450         * ira-lives.c (process_single_reg_class_operands): Adjust the costs
9451         of a single hard register, using simplify_subreg_regno to decide
9452         what that register should be.
9453
9454 2010-08-14  Mingjie Xing  <mingjie.xing@gmail.com>
9455
9456         * config/mips/mips.c (CODE_FOR_loongson_pmullh): Define.
9457         * config/mips/loongson.md (UNSPEC_LOONGSON_PMULL): Delete.
9458         (loongson_pmull<V_suffix>): Rename to...
9459         (mul<mode>3): ...this and use MULT instead of an UNSPEC.
9460
9461 2010-08-13  Jack Howarth  <howarth@bromo.med.uc.edu>
9462
9463         * configure.ac: Enable -fomit-frame-pointer on darwin
9464         which support dwarf2.
9465         * config/i386/i386.c (override_options): Same.
9466
9467 2010-08-13  Jie Zhang  <jie@codesourcery.com>
9468
9469         * config/arm/arm.md (cstoredf4): Only valid when !TARGET_VFP_SINGLE.
9470
9471 2010-08-12  Joseph Myers  <joseph@codesourcery.com>
9472
9473         * gcc.c (cpp_unique_options): Generate -MDX and -MMDX from -MD and
9474         -MMD.
9475
9476 2010-08-12  Changpeng Fang  <changpeng.fang@amd.com>
9477
9478         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Give
9479         up dot_prod pattern searching if a stmt is outside the loop.
9480
9481 2010-08-12  H.J. Lu  <hongjiu.lu@intel.com>
9482             Uros Bizjak  <ubizjak@gmail.com>
9483
9484         * config.gcc: Handle --enable-frame-pointer.
9485
9486         * configure.ac: Add --enable-frame-pointer.
9487         * configure: Regenerated.
9488
9489         * config/i386/i386.c (USE_IX86_FRAME_POINTER): Default to 0.
9490         (override_options): If not configured with --enable-frame-pointer,
9491         enable -fomit-frame-pointer (but not for TARGET_MACHO or when
9492         optimizing for size), -fasynchronous-unwind-tables and
9493         -maccumulate-outgoing-args by default.
9494
9495 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
9496
9497         * builtins.c (fold_builtin_memory_op): Avoid -Wsign-compare warning.
9498
9499         PR middle-end/45262
9500         * fold-const.c (make_range) <case NEGATE_EXPR>: Punt if
9501         -a overflows.  Normalize the range.
9502
9503 2010-08-12  Richard Guenther  <rguenther@suse.de>
9504
9505         PR tree-optimization/45232
9506         * tree-ssa-reassoc.c (can_reassociate_p): Disable re-association
9507         for types with undefined overflow.
9508         (reassociate_bb): Allow re-associating of bit and min/max
9509         operations for types with undefined overflow.
9510         * tree-ssa-forwprop.c (associate_plusminus): New function.
9511         (tree_ssa_forward_propagate_single_use_vars): Call it.
9512
9513 2010-08-12  Richard Guenther  <rguenther@suse.de>
9514
9515         * tree-flow.h (struct ptr_info_def): Add align and misalign fields.
9516         * tree-ssa-alias.c (get_ptr_info): Move ...
9517         * tree-ssanames.c (get_ptr_info): ... here.  Initialize
9518         align and misalign fields conservatively.
9519         * tree-ssa-ccp.c (ccp_finalize): From partially constant pointers
9520         derive alignment information.
9521         (evaluate_stmt): Derive alignment information from memory
9522         allocation functions.
9523         * tree.h (get_pointer_alignment): Make unsigned.
9524         * builtins.c (get_object_alignment): Use alignment information we
9525         have computed for pointers.
9526         (get_pointer_alignment): Likewise.  Make conservative, return
9527         and unsigned value.
9528         (expand_builtin_strlen): Adjust.
9529         (expand_builtin_memcmp): Likewise.
9530         (expand_builtin_strcmp): Likewise.
9531         (expand_builtin_strncmp): Likewise.
9532         (get_builtin_sync_mem): Use at least mode alignment.
9533         (fold_builtin_memset): Adjust.
9534         (fold_builtin_memory_op): Likewise.
9535         * gimple-pretty-print.c (dump_gimple_phi): Alongside alias
9536         information also dump pointer alignment knowledge.
9537         (dump_gimple_stmt): Likewise.
9538
9539 2010-08-12  Uros Bizjak  <ubizjak@gmail.com>
9540
9541         * config/i386/i386.c (LONG_TYPE_SIZE): Remove.
9542         (EMPTY_FIELD_BOUNDARY): Remove.
9543         * config/i386/i386-interix.h (PCC_BITFIELD_TYPE_MATTERS): Remove.
9544
9545 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
9546
9547         PR debug/45259
9548         * caller-save.c (save_call_clobbered_regs): Only swap notes with
9549         DEBUG_INSNs if n_regs_saved.
9550
9551 2010-08-12  Wei Guozhi  <carrot@google.com>
9552
9553         PR target/44999
9554         * config/arm/arm.md (andsi3): Change to zero extension if possible.
9555         * config/arm/thumb2.md (thumb2_zero_extendqisi2_v6): Change the name.
9556
9557 2010-08-11  Vladimir Makarov  <vmakarov@redhat.com>
9558
9559         * ira-int.h (ira_remove_allocno_copy_from_list): Remove.
9560
9561         * ira-build.c (ira_remove_allocno_copy_from_list): Remove.
9562
9563 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
9564
9565         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add back
9566         the case removed in the previous patch, when the only phi argument
9567         is defined in the same loop as the phi node itself.  Handle it
9568         separately from the invariant case by both propagating it outside
9569         the region and replacing the phi node with an assign.
9570
9571 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
9572
9573         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): The only
9574         constant phi nodes with one argument are is_gimple_min_invariant
9575         and SSA_NAME_IS_DEFAULT_DEF.
9576
9577 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
9578
9579         * graphite-cloog-util.c (oppose_constraint):
9580         Extend loop counter's value range (CLOOG_ORG).
9581         (cloog_matrix_to_ppl_constraint): Same.
9582         (new_Constraint_System_from_Cloog_matrix): Same.
9583         * graphite-cloog-compat.h (matrix_num_type): New.
9584
9585 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
9586
9587         * graphite.c (graphite_initialize): Do not initialize
9588         CLooG and initialize the Parma Polyhedra Library
9589         manually when using CLOOG_ORG.
9590         (graphite_finalize): Do not finalize CLooG and finalize
9591         the Parma Polyhedra Library manually when using CLOOG_ORG.
9592         * graphite-cloog-compat.h (cloog_initialize): Hide function
9593         when using CLOOG_ORG.
9594         (cloog_finalize): Same.
9595
9596 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
9597
9598         * graphite-clast-to-gimple.c (free_scattering): Change
9599         CloogDomainList/CloogDomain to CloogScatteringList/CloogScattering
9600         (CLOOG_ORG).
9601         (build_cloog_prog): Same.
9602         * graphite-cloog-compat.h (cloog_domain): Removed.
9603         (cloog_scattering): New.
9604         (cloog_set_domain): Removed.
9605         (cloog_set_scattering): New.
9606         (cloog_next_domain): Removed.
9607         (cloog_next_scattering): New.
9608         (cloog_set_next_domain): Removed.
9609         (cloog_set_next_scattering): New.
9610         (CloogScatteringList): New.
9611         (CloogScattering): New.
9612         (cloog_scattering_free): New.
9613         (new_Cloog_Scattering_from_ppl_Polyhedron): New.
9614         * graphite-cloog-util.c (new_Cloog_Scattering_from_ppl_Polyhedron):
9615         New.
9616
9617 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
9618
9619         * graphite-clast-to-gimple.c (build_cloog_prog): Extend with
9620         CloogState.
9621         (set_cloog_options): Same.
9622         (print_clast_stmt): Same.
9623         (scop_to_clast): Same.
9624         (print_generated_program): Same.
9625         (gloog): Same.
9626         * graphite-clast-to-gimple.h: Include graphite-cloog-util.h.
9627         (scop_to_clast): Extend with CloogState.
9628         * graphite-cloog-util.c: Include graphite-cloog-compat.h
9629         (new_Cloog_Domain_from_ppl_Polyhedron):
9630         Extend with CloogState.  Use cloog_domain_from_cloog_matrix (CLOOG_ORG).
9631         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Extend with CloogState.
9632         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
9633         * graphite-cloog-util.h (build_cloog_prog): Same.
9634         * graphite-cloog-copat.h (build_cloog_prog): New.
9635         (CloogState): New.
9636         (cloog_state_malloc): New.
9637         (cloog_state_free): New.
9638         (cloog_loop_malloc): New.
9639         (cloog_options_malloc): New.
9640         (cloog_statement_alloc): New.
9641         (cloog_domain_from_cloog_matrix): New.
9642         (new_Cloog_Domain_from_ppl_Pointset_Powerset): New.
9643         (new_Cloog_Domain_from_ppl_Polyhedron): New.
9644
9645 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
9646
9647         * graphite-clast-to-gimple.c (clast_name_to_gcc): Parameter
9648         type of NAME now depends on used CLooG version.
9649         (clast_to_gcc_expression): Replace expr_* with clast_expr_*.
9650         (gcc_type_for_clast_expr): Same.
9651         (print_clast_stmt): Replace pprint with clast_pprint.
9652         * graphite-cloog-compat.h: Provide compatibility macros for
9653         CLooG Legacy.
9654         (clast_name_p): New.
9655         (clast_expr_term): New.
9656         (clast_expr_red): New.
9657         (clast_expr_bin): New.
9658         (clast_pprint): New.
9659
9660 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
9661
9662         * graphite-clast-to-gimple.c (set_cloog_options): Make CLooG options
9663         compatible to newer CLooG releases (CLOOG_ORG).
9664         (build_cloog_prog): Pass CloogOptions to more functions (CLOOG_ORG).
9665         (scop_to_clast): Pass CloogOptions to build_cloog_prog (CLOOG_ORG).
9666         * graphite-cloog-compat.h: Add compatibility macros for CLooG Legacy.
9667         (build_cloog_prog) : New.
9668         (cloog_program_extract_scalars): New.
9669         (cloog_program_scatter): New.
9670
9671 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
9672
9673         * graphite-clast-to-gimple.c: Include graphite-cloog-compat.h
9674         conditionally (CLOOG_ORG).
9675         * graphite-cloog-compat.h: New.  Include graphite-cloog-compat.h.
9676         (cloog_statement_usr): New.
9677         (cloog_domain): Same.
9678         (cloog_set_domain): Same.
9679         (cloog_next_domain): Same.
9680         (cloog_set_next_domain): Same.
9681         (cloog_program_nb_scattdims): Same.
9682         (cloog_program_set_nb_scattdims): Same.
9683         (cloog_program_names): Same.
9684         (cloog_program_set_names): Same.
9685         (cloog_program_set_context): Same.
9686         (cloog_program_set_loop): Same.
9687         (cloog_program_blocklist): Same.
9688         (cloog_program_set_blocklist): Same.
9689         (cloog_program_scaldims): Same.
9690         (cloog_program_set_scaldims): Same.
9691         (cloog_names_nb_parameters): Same.
9692         (cloog_names_set_nb_parameters): Same.
9693         (cloog_names_parameters): Same.
9694         (cloog_names_set_parameters): Same.
9695         (cloog_names_set_nb_iterators): Same.
9696         (cloog_names_set_iterators): Same.
9697         (cloog_names_set_nb_scattering): Same.
9698         (cloog_names_set_scattering): Same.
9699         (cloog_statement_set_usr): Same.
9700         (cloog_loop_set_next): Same.
9701         (cloog_loop_set_domain): Same.
9702         (cloog_loop_set_block): Same.
9703         (cloog_block_list_next): Same.
9704         (cloog_block_list_set_next):
9705         (cloog_block_list_set_block): Same.
9706
9707 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
9708
9709         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Returns
9710         a bool.
9711         (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
9712         (rewrite_commutative_reductions_out_of_ssa_loop): Same.
9713         (rewrite_cross_bb_scalar_deps_out_of_ssa): Call scev_reset_htab
9714         when something has been changed.
9715         (rewrite_commutative_reductions_out_of_ssa): Same.
9716
9717 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
9718
9719         * graphite-sese-to-poly.c (propagate_expr_outside_region): Also
9720         handle the case when def is in the sese region.
9721         (rewrite_close_phi_out_of_ssa): Call propagate_expr_outside_region
9722         for invariant expressions.
9723         (rewrite_cross_bb_phi_deps): Removed.
9724         (rewrite_cross_bb_scalar_deps): Also handle GIMPLE_PHI nodes.
9725         (rewrite_cross_bb_scalar_deps_out_of_ssa): Do not call
9726         rewrite_cross_bb_phi_deps.
9727
9728 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
9729
9730         * graphite-sese-to-poly.c
9731         (rewrite_commutative_reductions_out_of_ssa_loop): Call
9732         scev_analyzable_p only on is_gimple_reg
9733
9734 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
9735
9736         * graphite-sese-to-poly.c (propagate_expr_outside_region): New.
9737         (rewrite_close_phi_out_of_ssa): Propagate constant values or
9738         parametric expressions outside the scop region.
9739         (rewrite_cross_bb_scalar_deps): Same.
9740         * sese.c (rename_uses): Use NULL_TREE instead of NULL for trees.
9741
9742 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
9743
9744         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Use
9745         SSA_NAME_DEF_STMT only on SSA_NAMEs.
9746
9747 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
9748
9749         * tree-scalar-evolution.c (instantiate_scev_name): Do not
9750         instantiate default definitions.
9751
9752 2010-08-11  Vladimir Kargov  <kargov@gmail.com>
9753             Sebastian Pop  <sebastian.pop@amd.com>
9754
9755         * cfgloop.c (is_loop_exit): Renamed loop_exits_to_bb_p.
9756         (loop_exits_from_bb_p): New.
9757         * cfgloop.h (is_loop_exit): Renamed loop_exits_to_bb_p.
9758         (loop_exits_from_bb_p): Declared.
9759         * graphite-scop-detection.c (scopdet_basic_block_info): Call
9760         loop_exits_to_bb_p.
9761
9762 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
9763
9764         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add an
9765         extra parameter for the region.  Call scev_analyzable_p.
9766         (rewrite_reductions_out_of_ssa): Update call to
9767         rewrite_close_phi_out_of_ssa.
9768         (rewrite_cross_bb_phi_deps): Same.
9769         (rewrite_commutative_reductions_out_of_ssa_loop): Add an extra
9770         parameter for the region.  Call scev_analyzable_p.
9771         (rewrite_commutative_reductions_out_of_ssa): Update call to
9772         rewrite_commutative_reductions_out_of_ssa_loop.
9773
9774 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
9775
9776         * sese.c (rename_uses): Call unshare_expr before force_gimple_operand.
9777
9778 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
9779
9780         * graphite-sese-to-poly.c (reduction_phi_p): Do not rewrite out of
9781         SSA scalar phi nodes that can be scev_analyzable_p.
9782
9783 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
9784
9785         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Correctly
9786         handle SSA_NAME_IS_DEFAULT_DEF.
9787
9788 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
9789
9790         * sese.c (rename_uses): Handl unconditionally gimple_debug statements.
9791
9792 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
9793
9794         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Special
9795         case non close-phi nodes with one argument.
9796
9797 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
9798
9799         * sese.h (scev_analyzable_p): Scevs could be expressions without
9800         chrecs and still be scev_analyzable_p.
9801
9802 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
9803
9804         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
9805
9806 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
9807
9808         * cfgloop.c (alloc_loop): Remove initialization of loop->single_iv.
9809         * cfgloop.h (struct loop): Remove single_iv field.
9810         * graphite-sese-to-poly.c (graphite_loop_normal_form): Removed.
9811         (scop_canonicalize_loops): Removed.
9812         (scop_ivs_can_be_represented): Do not use loop->single_iv.  Iterate
9813         over all the loop phi nodes in loop->header.
9814         (build_poly_scop): Remove use of scop_canonicalize_loops.
9815
9816 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
9817
9818         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Also
9819         handle GIMPLE_CALL.
9820
9821 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
9822
9823         * tree-chrec.c (chrec_apply): Should only apply to the specified
9824         variable.  Also handle multivariate chains of recurrences that
9825         satisfy evolution_function_is_affine_p.  Also handle CASE_CONVERT.
9826
9827 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
9828
9829         * graphite-clast-to-gimple.c (debug_clast_name_index): Removed.
9830         (debug_clast_name_indexes_1): Removed.
9831         (debug_clast_name_indexes): Removed.
9832         (pbb_to_depth_to_oldiv): Removed.
9833         (build_iv_mapping): Replace the use of rename_map with iv_map.
9834         (translate_clast_user): Remove uses of rename_map.  Allocate and
9835         free iv_map.
9836         (translate_clast_for_loop): Remove uses of rename_map.
9837         (translate_clast_for): Same.
9838         (translate_clast_guard): Same.
9839         (translate_clast): Same.
9840         (gloog): Same.
9841         * graphite-clast-to-gimple.h (debug_clast_name_indexes): Removed.
9842         * graphite-sese-to-poly.c (scev_analyzable_p): Moved...
9843         * sese.c (set_rename): Now static.
9844         (rename_variables_in_stmt): Removed.
9845         (rename_uses): New.
9846         (is_parameter): Removed.
9847         (is_iv): Removed.
9848         (expand_scalar_variables_call): Removed.
9849         (expand_scalar_variables_ssa_name): Removed.
9850         (expand_scalar_variables_expr): Removed.
9851         (expand_scalar_variables_stmt): Removed.
9852         (expand_scalar_variables): Removed.
9853         (rename_variables): Removed.
9854         (remove_condition): Removed.
9855         (get_true_edge_from_guard_bb): Removed.
9856         (get_false_edge_from_guard_bb): Removed.
9857         (struct igp): Removed.
9858         (default_before_guard): Removed.
9859         (convert_for_phi_arg): Removed.
9860         (add_guard_exit_phis): Removed.
9861         (insert_guard_phis): Removed.
9862         (graphite_copy_stmts_from_block): Now also uses iv_map and a
9863         region.  Do not copy conditions.  Do not copy induction variables.
9864         Call rename_uses.
9865         (copy_bb_and_scalar_dependences): Allocate a local rename_map for
9866         the translated statement.  Use the iv_map for the induction
9867         variable renaming.
9868         * sese.h (copy_bb_and_scalar_dependences): Update declaration.
9869         (set_rename): Removed declaration.
9870         (scev_analyzable_p): ...here.
9871         * tree-chrec.c (chrec_apply_map): New.
9872         * tree-chrec.h (chrec_apply_map): Declared.
9873
9874 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
9875
9876         * graphite-clast-to-gimple.c (translate_clast_for_loop): Do not call
9877         insert_loop_close_phis.
9878         * sese.c (name_defined_in_loop_p): Removed.
9879         (expr_defined_in_loop_p): Removed.
9880         (alive_after_loop): Removed.
9881         (close_phi_not_yet_inserted_p): Removed.
9882         (struct alep): Removed.
9883         (add_loop_exit_phis): Removed.
9884         (insert_loop_close_phis): Removed.
9885
9886 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
9887
9888         * graphite-cloog-util.c
9889         (cloog_matrix_to_ppl_constraint): Fix flipped condition.
9890         * graphite-poly.c
9891         (psct_scattering_dim_for_loop_depth): Same.
9892
9893 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
9894
9895         * graphite-cloog-util.h: Added cloog.h.
9896         * graphite-blocking.c: Removed cloog.h.
9897         * graphite-dependences.c: Same.
9898         * graphite-interchange.c: Same.
9899         * graphite-poly.c: Same.
9900         * graphite-ppl.c: Same.
9901         * graphite-scop-detection.c: Same.
9902         * graphite-sese-to-poly.c:
9903         Removed cloog.h.
9904         Removed graphite-clast-to-gimple.h.
9905         (check_poly_representation): Removed (unused).
9906         * graphite-sese-to-poly.h
9907         (check_poly_representation): Removed (unused).
9908
9909 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
9910
9911         * Makefile.in (OBJS-common): Added graphite-cloog-util.o.
9912         (graphite-clast-to-gimple.o): Added graphite-cloog-util.h.
9913         (graphite-cloog-util.o): New.
9914         (graphite-ppl.o): Added graphite-cloog-util.h.
9915         * graphite-clast-to-gimple.c:
9916         Added graphite-cloog-util.h to include statements.
9917         * graphite-cloog-util.c: New.
9918         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.c.
9919         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
9920         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
9921         (new_C_Polyhedron_from_Cloog_Matrix): Same.
9922         (insert_constraint_into_matrix): Same.
9923         (ppl_Constrain_System_number_of_constraints): Same.
9924         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
9925         (oppose_constraint): Same.
9926         (cloog_matrix_to_ppl_constraint): Same.
9927         (new_Constraint_System_from_Cloog_Matrix): Same.
9928         * graphite-cloog-util.h: New.
9929         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.h.
9930         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
9931         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
9932         (new_C_Polyhedron_from_Cloog_Matrix): Same.
9933         (insert_constraint_into_matrix): Same.
9934         * graphite-ppl.c:
9935         Added graphite-cloog-util.h to include statements.
9936         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to graphite-cloog-util.c.
9937         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
9938         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
9939         (new_C_Polyhedron_from_Cloog_Matrix): Same.
9940         (insert_constraint_into_matrix): Same.
9941         (ppl_Constrain_System_number_of_constraints): Same.
9942         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
9943         (oppose_constraint): Same.
9944         (cloog_matrix_to_ppl_constraint): Same.
9945         (new_Constraint_System_from_Cloog_Matrix): Same.
9946         * graphite-ppl.h:
9947         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to
9948         graphite-cloog-util.h.
9949         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
9950         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
9951         (new_C_Polyhedron_from_Cloog_Matrix): Same.
9952         (insert_constraint_into_matrix): Same.
9953
9954 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
9955
9956         * graphite-clast-to-gimple.c
9957         (precision_for_value): Resolve value_* calls to matching mpz_* calls.
9958         (precision_for_interval): Same.
9959         (gcc_type_for_interval): Same.
9960         (compute_type_for_level): Same.
9961         * graphite-interchange.c
9962         (lst_interchange_profitable_p): Same.
9963         * graphite-poly.c
9964         (psct_scattering_dim_for_loop_depth): Same.
9965         * graphite-ppl.c
9966         (ppl_max_for_le_pointset): Same.
9967         (ppl_min_for_le_pointset): Same.
9968
9969 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
9970
9971         * graphite-sese-to-poly.c (rewrite_degenerate_phi): New.
9972         (rewrite_reductions_out_of_ssa): Call it for degenerate_phi_result.
9973
9974 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
9975
9976         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Call
9977         rewrite_close_phi_out_of_ssa.
9978
9979 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
9980
9981         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Remove dead code.
9982
9983 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
9984
9985         * graphite-clast-to-gimple.c (build_iv_mapping): Rename map with
9986         rename_map.
9987         * sese.c (debug_rename_map): Same.
9988         (get_rename): Same.
9989         (set_rename): Same.
9990         (rename_variables_in_stmt): Same.
9991         (expand_scalar_variables_call): Same.
9992         (expand_scalar_variables_ssa_name): Same.
9993         (expand_scalar_variables_expr): Same.
9994         (expand_scalar_variables_stmt): Same.
9995         (expand_scalar_variables): Same.
9996         (rename_variables): Same.
9997         (graphite_copy_stmts_from_block): Same.
9998         (copy_bb_and_scalar_dependences): Same.
9999
10000 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
10001
10002         * graphite-clast-to-gimple.c (copy_renames): Removed.
10003         (translate_clast_for): Do not call copy_renames.
10004         (translate_clast_guard): Same.
10005
10006 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
10007
10008         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Moved up.
10009         (rewrite_cross_bb_phi_deps): Split out of rewrite_cross_bb_scalar_deps.
10010         (rewrite_cross_bb_scalar_deps_out_of_ssa): Run rewrite_cross_bb_phi_deps
10011         before rewrite_cross_bb_scalar_deps.
10012
10013 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
10014
10015         * graphite-sese-to-poly.c (rewrite_commutative_reductions_out_of_ssa):
10016         Early return in when flag_associative_math is not set.
10017
10018 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
10019
10020         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Always insert out
10021         of SSA copies on edges except for loop->latch.
10022
10023 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
10024
10025         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps_out_of_ssa):
10026         Split out of rewrite_reductions_out_of_ssa.
10027         * graphite-sese-to-poly.h (rewrite_cross_bb_scalar_deps_out_of_ssa):
10028         Declared.
10029         * graphite.c (graphite_transform_loops): Call it.
10030
10031 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
10032
10033         * graphite.c (graphite_transform_loops): Add two more dbg_cnt calls.
10034
10035 2010-08-11  Alexander Monakov  <amonakov@ispras.ru>
10036
10037         * dbgcnt.def (graphite_scop): New counter.
10038         * graphite.c: Include dbgcnt.h.
10039         (graphite_transform_loops): Use new counter to limit transformations.
10040         * Makefile.in (graphite.o): Depend on DBGCNT_H.
10041
10042 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
10043
10044         * passes.c (init_optimization_passes): Add pass_graphite.
10045         Schedule a pass_copy_prop before pass_graphite_transforms.
10046         * timevar.def (TV_GRAPHITE): Declared.
10047         * tree-pass.h (pass_graphite): Declared.
10048         * tree-ssa-loop.c (pass_graphite): New.
10049
10050 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
10051
10052         * graphite-clast-to-gimple.c (gloog): Do not pass scops in parameter.
10053         Remove calls to rename_nb_iterations and rename_sese_parameters.
10054         * graphite-clast-to-gimple.h (gloog): Update declaration.
10055         * graphite.c (graphite_transform_loops): Update call to gloog.
10056         * sese.c (rename_variables_in_expr): Removed.
10057         (rename_nb_iterations): Removed.
10058         (rename_sese_parameters): Removed.
10059         * sese.h (rename_nb_iterations): Removed.
10060         (rename_sese_parameters): Removed.
10061
10062 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
10063
10064         * graphite-clast-to-gimple.c (gloog): Remove call to
10065         sese_adjust_liveout_phis.
10066         * graphite-sese-to-poly.c (scev_analyzable_p): When scev returns an
10067         SSA_NAME, allow it to be handled by rewrite_cross_bb_scalar_deps.
10068         (rewrite_cross_bb_scalar_deps): Handle GIMPLE_PHI nodes: call
10069         rewrite_phi_out_of_ssa.
10070         * sese.c (get_vdef_before_sese): Removed.
10071         (sese_adjust_vphi): Removed.
10072         (sese_adjust_liveout_phis): Removed.
10073         * sese.h (sese_adjust_liveout_phis): Removed.
10074
10075 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
10076
10077         * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Pass an extra
10078         argument for the place after which to insert the out of SSA copy.
10079         (rewrite_close_phi_out_of_ssa): Update calls to insert_out_of_ssa_copy.
10080         (rewrite_phi_out_of_ssa): Same.
10081         (rewrite_cross_bb_scalar_deps): Same.
10082         (insert_copyout): Removed.
10083         (insert_copyin): Removed.
10084         (translate_scalar_reduction_to_array): Call insert_out_of_ssa_copy and
10085         insert_out_of_ssa_copy_on_edge instead of insert_copyout and
10086         insert_copyin.
10087
10088 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
10089
10090         * graphite-sese-to-poly.c (build_scop_bbs): Not static anymore.
10091         (rewrite_reductions_out_of_ssa): Same.
10092         (rewrite_commutative_reductions_out_of_ssa): Same.
10093         (build_poly_scop): Do not call these functions.
10094         * graphite-sese-to-poly.h (build_poly_scop): Declared.
10095         (rewrite_reductions_out_of_ssa): Declared.
10096         (rewrite_commutative_reductions_out_of_ssa): Declared.
10097         * graphite.c (graphite_transform_loops): Call on every scop
10098         rewrite_commutative_reductions_out_of_ssa before calling
10099         rewrite_reductions_out_of_ssa and build_scop_bbs.
10100
10101 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
10102
10103         * graphite-dependences.c (dot_deps): Make system call to dotty run
10104         in background.
10105         (dot_deps_stmt): Same.
10106         * graphite-poly.c (dot_lst): Same.
10107
10108 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
10109
10110         * graphite-sese-to-poly.c (loop_entry_phi_arg): Renamed
10111         phi_arg_in_outermost_loop.
10112         (remove_simple_copy_phi): Call phi_arg_in_outermost_loop.
10113         (remove_invariant_phi): Same.
10114
10115 2010-08-11  Anatoly Sokolov  <aesok@post.ru>
10116
10117         * target.def (output_addr_const_extra): New hook.
10118         * doc/tm.texi.in (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Document.
10119         * doc/tm.texi: Regenerate.
10120         * targhooks.c (default_asm_output_addr_const_extra): New function.
10121         * targhooks.h (default_asm_output_addr_const_extra): Declare.
10122         * final.c (output_addr_const): Use TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA
10123         target hook.
10124
10125         * config/i386/i386.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
10126         * config/i386/i386-protos.h (output_addr_const_extra): Remove.
10127         * config/i386/i386.h (output_addr_const_extra): Rename to...
10128         (i386_asm_output_addr_const_extra): ...this. Make static.
10129         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
10130
10131 2010-08-11  Richard Henderson  <rth@redhat.com>
10132
10133         * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): New.
10134
10135 2010-08-11  Nick Clifton  <nickc@redhat.com>
10136
10137         * config/stormy16/stormy16-lib2.c (__cmpsi2): New function.
10138         * config/stormy16/stormy16-lib2-cmpsi2.c: New file.
10139         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
10140         stormy16-lib2-cmpsi.c.
10141
10142         * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Change to
10143         -O2.
10144
10145 2010-08-11  Joseph Myers  <joseph@codesourcery.com>
10146
10147         * opts.h (struct cl_option_handler_func): Make handler take
10148         cl_decoded_option structure as parameter, not individual elements.
10149         (struct cl_option_handlers): Make callbacks take cl_decoded_option
10150         structure as parameter, not individual elements.
10151         (handle_option): Take cl_decoded_option structure as parameter,
10152         not individual elements.
10153         (handle_generated_option): Declare.
10154         * opts-common.c (handle_option): Take cl_decoded_option structure
10155         as parameter, not individual elements.  Update calls to callback
10156         and handler functions.
10157         (handle_generated_option): New.
10158         (read_cmdline_option): Update calls to callback functions and
10159         handle_option.
10160         * opts.c (common_handle_option, complain_wrong_lang,
10161         unknown_option_callback, post_handling_callback,
10162         lang_handle_option, target_handle_option): Take cl_decoded_option
10163         structure as parameter, not individual elements.
10164         (lang_handle_option, target_handle_option, common_handle_option):
10165         Assert option has at most one argument.
10166         (enable_warning_as_error): Call handle_generated_option instead of
10167         handle_option.  Do not pass -Werror argument as argument of
10168         generated option.
10169
10170 2010-08-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10171
10172         * config/pa/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
10173         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
10174         (SUBWORD_BOOL_CAS): Likewise.
10175         (SUBWORD_SYNC_OP): Likewise.
10176         (SUBWORD_TEST_AND_SET): Likewise.
10177         (FETCH_AND_OP_WORD): Parenthesise INF_OP
10178         (SUBWORD_SYNC_OP): Likewise.
10179         (OP_AND_FETCH_WORD): Likewise.
10180
10181 2010-08-10  Xinliang David Li  <davidxl@google.com>
10182
10183         * tree-ssa-loop-ivopts.c (get_address_cost): Properly
10184         compute max/min offset in address.
10185
10186 2010-08-10  Vladimir Makarov  <vmakarov@redhat.com>
10187
10188         * ira-live.c: Include sbitmap.h.
10189         (remove_some_program_points_and_update_live_ranges): Use sbitmaps.
10190         Compress live ranges even more.
10191
10192 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
10193
10194         * coverage.c (ctr_labels): Delete.
10195
10196 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
10197
10198         PR bootstrap/45177
10199         * config/arm/arm.c (multiple_operation_profitable_p): Move xscale
10200         test here from arm_gen_load_multiple_1.
10201         (arm_gen_load_multiple_1, arm_gen_store_multiple_1): Use
10202         multiple_operation_profitable_p.
10203
10204 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
10205
10206         * tree-ssa-pre.c (init_pre): Call alloc_aux_for_blocks.
10207         (fini_pre): Call free_aux_for_blocks.  Delete unused bb variable.
10208
10209 2010-08-10  Richard Henderson  <rth@redhat.com>
10210
10211         * config/i386/i386.c (ix86_compute_frame_layout): Re-align stack
10212         after saving registers.  Assert that SSE registers are only saved
10213         with a sufficiently aligned frame.
10214         (ix86_emit_save_reg_using_mov): Assert realigned only with DRAP;
10215         remove stack_realign_fp handling.
10216         (ix86_expand_prologue): Save int registers before stack_realign_fp,
10217         and do not mark the stack alignment as frame related.
10218         (ix86_expand_epilogue): SP is now invalid with stack_realign_fp.
10219
10220         * dwarf2out.c (dwarf2out_frame_debug_expr): Flush queued register
10221         saves when re-aligning the stack.
10222
10223 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
10224
10225         * basic-block.h (alloc_aux_for_block, alloc_aux_for_edge): Delete.
10226         * cfg.c (alloc_aux_for_block, alloc_aux_for_edge): Make static.
10227         (alloc_aux_for_blocks, clear_aux_for_blocks): Use FOR_ALL_BB.
10228
10229 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
10230
10231         * dwarf2out.c (struct die_struct): Move die_tag to the end.
10232
10233 2010-08-09  Sofiane Naci  <sofiane.naci@arm.com>
10234
10235         * config/arm/iterators.md: New file.
10236         * config/arm/arm.md: Include iterators.md.
10237         (QHSI): Move to new file.
10238         (LTUGEU, cnb, optab, ior_xor): Likewise.
10239         * config/arm/iwmmxt.md (VMMX): Move to new file.
10240         (VSHFT, MMX_char): Likewise.
10241         * config/arm/neon.md (VD): Move to new file.
10242         (VDX, VDI, VQ, VQX, VQI, VQXMOV, VSTRUCT, VTAB, V_TAB_n, VW): Likewise.
10243         (VN, VDQ, VDQW, VDQIW, VCVTF, VCVTI, VMD, VMQ, VMDQ, VMDI): Likewise.
10244         (VMDQI, VX, VE, V64, V32, V_CVTTO, V_elem, V_ext): Likewise.
10245         (V_two_elem, V_three_elem, V_four_elem, V_req, V_widen): Likewise.
10246         (V_narrow, V_HALF, V_half,V_DOUBLE, V_double): Likewise.
10247         (V_double_width, V_cmp_result, V_if_elem, V_s_elem): Likewise.
10248         (V_u_elem, V_uf_sclr, V_sz_elem, VD_dup): Likewise.
10249         (V_PAIR, vqh_ops, vqhs_ops, VQH_mnem, VQH_sign, V_suf64): Likewise.
10250         (scalar_mul_constraint,Is_float_mode, Scalar_mul_8_16): Likewise.
10251         (Is_d_reg, V_mode_nunits): Likewise.
10252         * config/arm/vec-common.md (VALL): Move to new file.
10253         (VALLW, VINT, VINTW): Likewise.
10254
10255 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
10256
10257         PR middle-end/45182
10258         * combine.c (make_compound_operation): Don't try to convert
10259         shifts into multiplications for modes that aren't SCALAR_INT_MODE_P.
10260
10261 2010-08-10  Richard Guenther  <rguenther@suse.de>
10262
10263         * tree.h (get_object_alignment): Adjust prototype.
10264         * builtins.c (get_object_alignment): Return unsigned int,
10265         drop the align parameter.  Handle MEM_REF, MISALIGNED_INDIRECT_REF
10266         and TARGET_MEM_REF properly.
10267         (get_pointer_alignment): Adjust.
10268         * emit-rtl.c (get_mem_align_offset): Adjust comment.
10269         (set_mem_attributes_minus_bitpos): Adjust.
10270         * tree-ssa-ccp.c (get_value_from_alignment): Adjust.
10271
10272 2010-08-10  Richard Guenther  <rguenther@suse.de>
10273
10274         * tree-ssa-copy.c (set_copy_of_val): Use operand_equal_p.
10275         (copy_prop_visit_assignment): Simplify.
10276         (copy_prop_visit_stmt): Also visit assignments from
10277         constants.
10278         (copy_prop_visit_phi_node): Use operand_equal_p.
10279
10280 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
10281
10282         * ipa-split.c (find_split_points): Free stack.
10283
10284 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
10285
10286         * tree.h (tree_node_kind) [perm_list_kind,temp_list_kind]: Delete.
10287         * tree.c (tree_node_kind): Delete corresponding entries.
10288
10289 2010-08-09  H.J. Lu  <hongjiu.lu@intel.com>
10290
10291         * alias.c (may_alias_p): Remove unused ret.
10292
10293 2010-08-09  Bingfeng Mei  <bmei@broadcom.com>
10294
10295         * ddg.c (walk_mems_2): Moved from alias.c, use may_alias_p instead of
10296         alias_sets_conflict_p.
10297         (walk_mems_1): Moved from alias.c.
10298         (insns_may_alias_p): New function, originally insn_alias_sets_conflict_p
10299         in alias.c.
10300         (add_inter_loop_mem_dep): Use insns_may_alias_p now.
10301         * cse.c (cse_insn): New argument in calling nonoverlapping_memrefs_p.
10302         * alias.c (walk_mems_2): Moved to ddg.c.
10303         (walk_mems_1): Ditto.
10304         (insn_alias_sets_conflict_p): Renamed to insns_may_alias_p and moved
10305         to ddg.c.
10306         (nonoverlapping_memrefs_p): Add flag to guard offset-based memory
10307         disambiguation.
10308         *(may_alias_p): New function to check whether two memory expression
10309         may alias or not. Currently used in buidling inter-iteration memory
10310         dependence.
10311         *alias.h (nonoverlapping_memrefs_p): New flag as third argument.
10312         (insn_alias_sets_conflict_p): Removed
10313         *rtl.h (may_alias_p): New function prototype.
10314
10315 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
10316
10317         * tree.c (nreverse): Assert that we don't have a BLOCK.
10318
10319 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
10320
10321         * builtins.c (fold_builtin_next_arg): Use stdarg_p.
10322         * config/arm/arm.c (arm_get_pcs_model): Likewise.
10323         * config/avr/avr.c (init_cumulative_args): Likewise.
10324         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
10325         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
10326         * config/m68k/m68k.c (m68k_return_pops_args): Likewise.
10327         * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
10328         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
10329         * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
10330         * config/rs6000/rs6000.c (init_cumulative_args): Likewise.
10331         * dwarf2out.c (gen_subprogram_die): Likewise.
10332         * function.c (allocate_struct_function): Likewise.
10333         * c-aux-info.c (gen_formal_list_for_func_dec): Likewise.
10334         (deserves_ellipsis): Delete.
10335
10336 2010-08-09  Richard Guenther  <rguenther@suse.de>
10337
10338         * tree-ssa-copy.c (cached_last_copy_of): Remove.
10339         (valueize_val): New function.
10340         (get_last_copy_of): Remove.
10341         (set_copy_of_val): Simplify.
10342         (dump_copy_of): Likewise.
10343         (copy_prop_visit_cond_stmt): Use valueize_val.
10344         (copy_prop_visit_phi_node): Properly handle unvisited names.
10345         Drop code managing copy-of chains.
10346         (init_copy_prop): Adjust.
10347         (fini_copy_prop): Likewise.
10348         (execute_copy_prop): Remove obsolete comment.
10349
10350 2010-08-09  Richard Guenther  <rguenther@suse.de>
10351
10352         PR middle-end/44632
10353         * function.c (gimplify_parameters): Do not clear addressable
10354         bit of the original parameter.
10355
10356 2010-08-09  Richard Guenther  <rguenther@suse.de>
10357
10358         PR middle-end/45212
10359         * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust
10360         alignment from MEM_REF offset only if we took it from the
10361         base object.
10362
10363 2010-08-09  Eric Fisher  <joefoxreal@gmail.com>
10364
10365         * doc/sourcebuild.texi (vect_int_mult): Remove duplicate entry.
10366
10367 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
10368
10369         * c-tree.h (build_arg_info): Declare.
10370         * c-decl.c (build_arg_info): Define.
10371         (get_parm_info): Call it.  Delete initialization code.
10372         * c-parser.c (c_parser_parms_declarator): Likewise.
10373         (c_parser_parms_list_declaractor): Likewise.
10374
10375 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
10376
10377         * c-tree.h (c_arg_tag): Define.  Define a VEC containing it.
10378         (struct c_arg_info): Change type of tags field.
10379         * c-decl.c (grokdeclarator): Update for changed type of tags field.
10380         (get_parm_info): Likewise.
10381         (store_parm_decls_newstyle): Likewise.
10382
10383 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
10384
10385         * config/rs6000/rs6000.c (branch_island): Define.  Define a VEC of it.
10386         (branch_island_list): Delete.
10387         (branch_islands): Declare.
10388         (add_compiler_branch_island): Adjust for branch_islands instead of
10389         branch_island_list.
10390         (macho_branch_islands): Likewise.
10391         (no_previous_def): Likewise.
10392         (get_prev_label): Likewise.
10393
10394 2010-08-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10395
10396         PR boehm-gc/34544
10397         * gthr-posix.h (__gthread_start): Delete.
10398         (__gthread_active_init): Use pthread_default_stacksize_np instead of
10399         pthread_create to determine if hpux pthreads are active.
10400         * gthr-posix95.h (__gthread_start): Delete.
10401         (__gthread_active_init): Likewise use pthread_default_stacksize_np.
10402
10403 2010-08-08  Kai Tietz  <kai.tietz@onevision.com>
10404
10405         * config/i386/mingw32.h ((EXTRA_OS_CPP_BUILTINS): Define
10406         _WIN64 not expanded.
10407
10408 2010-08-07  Uros Bizjak  <ubizjak@gmail.com>
10409             H.J. Lu  <hongjiu.lu@intel.com>
10410
10411         PR target/45213
10412         * config/i386/i386.c (ix86_print_operand): Handle 'q' operand modifier
10413         to output 32bit SFmode immediate as 8 byte sign extended value.
10414
10415 2010-08-07  Marcus Shawcroft  <marcus.shawcroft@arm.com>
10416
10417         * config/arm/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
10418         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
10419         (SUBWORD_BOOL_CAS): Likewise.
10420         (SUBWORD_SYNC_OP): Likewise.
10421         (SUBWORD_TEST_AND_SET): Likewise.
10422         (FETCH_AND_OP_WORD): Parenthesise INF_OP
10423         (SUBWORD_SYNC_OP): Likewise.
10424         (OP_AND_FETCH_WORD): Likewise.
10425
10426 2010-08-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10427
10428         * config/arm/cortex-a9.md: Rewrite VFP Pipeline description.
10429         * config/arm/arm.c (arm_xscale_tune): Initialize sched_adjust_cost.
10430         (arm_fastmul_tune,arm_slowmul_tune, arm_9e_tune): Likewise.
10431         (arm_adjust_cost): Split into xscale_sched_adjust_cost and a
10432         generic part.
10433         (cortex_a9_sched_adjust_cost): New function.
10434         (xscale_sched_adjust_cost): New function.
10435         * config/arm/arm-protos.h (struct tune_params): New field
10436         sched_adjust_cost.
10437         * config/arm/arm-cores.def: Adjust costs for cortex-a9.
10438
10439 2010-08-06  Eric Botcazou  <ebotcazou@adacore.com>
10440
10441         PR target/44942
10442         * config/sparc/sparc.c (function_arg_advance): Always take into account
10443         the padding, if any.
10444
10445 2010-08-06  Richard Guenther  <rguenther@suse.de>
10446
10447         * tree-ssa-ccp.c (struct prop_value_d): Add mask member.
10448         (dump_lattice_value): Dump it.
10449         (get_default_value): Adjust.
10450         (get_constant_value): Likewise.
10451         (set_value_varying): Likewise.
10452         (set_lattice_value): Make sure to not go up the lattice
10453         with bitwise constant values.
10454         (get_value_for_expr): Handle ADDR_EXPRs.
10455         (value_to_double_int): New function.
10456         (get_value_from_alignment): Likewise.
10457         (do_dbg_cnt): Adjust.
10458         (ccp_lattice_meet): Handle partially constant values.
10459         (bit_value_unop_1): New function.
10460         (bit_value_binop_1): Likewise.
10461         (bit_value_unop): Likewise.
10462         (bit_value_binop): Likewise.
10463         (evaluate_stmt): Track partially constant values if
10464         flag_tree_bit_ccp is set.
10465         (ccp_fold_stmt): Dump if we folded a predicate.
10466         (ccp_visit_stmt): Adjust.
10467         * common.opt (ftree-bit-ccp): New flag.
10468         * doc/invoke.texi (ftree-bit-ccp): Document.
10469         * opts.c (decode_options): Enable bit-CCP at -O1.
10470
10471 2010-08-06  Alan Modra  <amodra@gmail.com>
10472
10473         * doc/invoke.texi (RS/6000 and PowerPC Options): Rewrite -mrelocatable
10474         and -mrelocatable-lib description.
10475
10476 2010-08-05  Bernd Schmidt  <bernds@codesourcery.com>
10477
10478         From Martin Thuresson  <martint@google.com>
10479         * postreload.c (reload_cse_simplify_operands): Use
10480         SET_REGNO_RAW instead of SET_REGNO.
10481         * caller-save.c (reg_save_code): Use SET_REGNO_RAW instead of
10482         SET_REGNO.
10483         * ira.c (setup_prohibited_mode_move_regs): Use SET_REGNO_RAW
10484         instead of SET_REGNO.
10485         * rtl.h (SET_REGNO_RAW): New macro.
10486
10487 2010-08-05  Eric Botcazou  <ebotcazou@adacore.com>
10488
10489         * rtlanal.c (nonzero_bits1): Use unsigned HOST_WIDE_INT in all mask
10490         computations.  Fix formatting issues.
10491         (num_sign_bit_copies1): Likewise.
10492         (canonicalize_condition): Likewise.
10493
10494 2010-08-05  Richard Henderson  <rth@redhat.com>
10495
10496         * toplev.h (ctz_hwi, clz_hwi, ffs_hwi): New.
10497         (floor_log2): Use clz_hwi.
10498         (exact_log2): Use ctz_hwi.
10499         * toplev.c (ctz_hwi, clz_hwi, ffs_hwi): New.
10500         * builtins.c (fold_builtin_bitop): Use them.
10501         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
10502         * combine.c (get_pos_from_mask): Use ctz_hwi.
10503         * double-int.c (double_int_ctz): Likewise.
10504         * explow.c (force_reg): Likewise.
10505         * tree.h (SET_DECL_OFFSET_ALIGN): Use ffs_hwi.
10506
10507 2010-08-05  Richard Henderson  <rth@redhat.com>
10508
10509         PR target/45189
10510         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Make sure
10511         the alignment constant is properly sign-extended.
10512
10513 2010-08-05  Richard Guenther  <rguenther@suse.de>
10514
10515         * expr.c (store_expr): Use emit_block_move only if both
10516         source and target are MEMs.  Use store_bit_field if only
10517         the target is a MEM.
10518
10519 2010-08-05  Richard Henderson  <rth@redhat.com>
10520
10521         PR debug/45188
10522         * dwarf2out.c (DWARF2_UNWIND_INFO): Provide default definition.
10523         (INCOMING_RETURN_ADDR_RTX): Likewise.
10524         (dwarf2out_do_frame): Remove conditional compilation.
10525         (dwarf2out_frame_init): Likewise.
10526
10527 2010-08-05  Nicolas Setton  <setton@adacore.com>
10528
10529         * gcov.c (flag_display_progress): New static variable.
10530         (main): Display progress info on standard output if requested.
10531         (options): Add -d/--display-progress.
10532         (print_usage): Print them.
10533         (process_args): Handle them.
10534         * doc/gcov.texi: Document them.
10535
10536 2010-08-05  Martin Jambor  <mjambor@suse.cz>
10537
10538         * ipa-cp.c (ipcp_discover_new_direct_edges): New function.
10539         (ipcp_insert_stage): Redirect only edges not flagged with
10540         indirect_inlining_edge.  Call ipcp_discover_new_direct_edges for all
10541         discovered constants.
10542
10543 2010-08-05  Martin Jambor  <mjambor@suse.cz>
10544
10545         * ipa-prop.h (enum ipa_lattice_type): Changed comments.
10546         (struct ipa_param_descriptor): New fields types and
10547         cannot_devirtualize.
10548         (ipa_param_cannot_devirtualize_p): New function.
10549         (ipa_param_types_vec_empty): Likewise.
10550         (ipa_make_edge_direct_to_target): Declare.
10551         * ipa-cp.c: Fixed first stage driver name in initial comment,
10552         described devirtualization there too.
10553         (ipcp_analyze_node): Call ipa_analyze_params_uses.
10554         (ipcp_print_all_lattices): Print devirtualization info.
10555         (ipa_set_param_cannot_devirtualize): New function.
10556         (ipcp_initialize_node_lattices): Set cannot_devirtualize when setting
10557         lattice to BOTTOM.
10558         (ipcp_init_stage): Merged into...
10559         (ipcp_generate_summary): ...its caller.
10560         (ipcp_change_tops_to_bottom): Also process type lists.
10561         (ipcp_add_param_type): New function.
10562         (ipcp_copy_types): Likewise.
10563         (ipcp_propagate_types): Likewise.
10564         (ipcp_propagate_stage): Also propagate types.
10565         (ipcp_need_redirect_p): Variable jump_func moved to its scope block.
10566         Also return true if propagated types require it.
10567         (ipcp_update_callgraph): Dump redirection info.
10568         (ipcp_process_devirtualization_opportunities): New function.
10569         (ipcp_const_param_count): Include known type information.
10570         (ipcp_insert_stage): Call ipcp_process_devirtualization_opportunities
10571         on new node.  Fixed formatting.
10572         * ipa-prop.c (make_edge_direct_to_target): Renamed to
10573         ipa_make_edge_direct_to_target and changed all callers.  Made
10574         externally visible.
10575         (ipa_node_duplication_hook): Duplicate types vector.
10576         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Also try to
10577         redirect outgoing calls for which we can't get a decl from the
10578         statement.  Check that we can get a decl from the call statement.
10579         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
10580         ipa_analyze_params_uses only when ipa-cp is disabled.
10581         * tree-inline.c (get_indirect_callee_fndecl): Removed.
10582         (expand_call_inline): Do not call get_indirect_callee_fndecl.
10583         * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): New parameter.
10584         * Makefile.in (ipa-cp.o): Add gimple.h to dependencies.
10585
10586 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
10587
10588         * expmed.c (expand_mult_const) <case alg_shift>: Expand shift into
10589         temporary. Emit move from temporary to accum, so REG_EQUAL note will
10590         be attached to this insn in correct mode.
10591
10592 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
10593
10594         * config/i386/i386.c (ix86_decompose_address): Check for SI_REG
10595         using REGNO of base_reg directly.
10596
10597 2010-08-05  Jie Zhang  <jie@codesourcery.com>
10598
10599         PR tree-optimization/45144
10600         * tree-sra.c (type_consists_of_records_p): Return false
10601         if the record contains bit-field.
10602
10603 2010-08-04  Richard Henderson  <rth@redhat.com>
10604
10605         * config/i386/i386.c (struct ix86_frame): Remove padding and
10606         to_allocate members.
10607         (ix86_compute_frame_layout): Don't store them.
10608         (ix86_can_use_return_insn_p): Use a more direct and more obviously
10609         correct condition for the position of the stack pointer.
10610         (ix86_expand_prologue): Compute remaining stack allocation based
10611         on the ultimate stack pointer offset.
10612         (ix86_expand_epilogue): Use more obvious expressions testing for
10613         the stack pointer already pointing to the saved registers.
10614
10615         * config/i386/i386.c (ix86_expand_epilogue): Eliminate code
10616         duplication deconstructing the frame pointer.  Simplify
10617         deallocation of the local stack frame.
10618
10619         * reg-notes.def (CFA_EXPRESSION): New.
10620         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
10621         (dwarf2out_frame_debug_cfa_expression): New.
10622         (dwarf2out_frame_debug_def_cfa): Handle simple MEMs.
10623
10624         * config/i386/i386.h (struct machine_frame_state): Add realigned flag.
10625         * config/i386/i386.c (ix86_expand_prologue): Set it.
10626         (ix86_expand_epilogue): Clear it.
10627         (ix86_emit_save_reg_using_mov): For registers saved in a realigned
10628         context, add REG_CFA_EXPRESSION notes.
10629
10630         * config/i386/i386.h (struct machine_frame_state): Rename from
10631         machine_cfa_state.  Add members tracking SP and FP regardless
10632         of the current CFA register.
10633         (ix86_cfa_state): Remove.
10634         * config/i386/i386.c (struct ix86_frame): Add reg_save_offset
10635         and sse_reg_save_offset members.
10636         (ix86_compute_frame_layout): Set them.
10637         (gen_push): Increment sp_offset too.
10638         (choose_baseaddr_len, choose_baseaddr): New.
10639         (ix86_emit_save_reg_using_mov): New.
10640         (ix86_emit_save_regs_using_mov): Use it.
10641         (ix86_emit_save_sse_regs_using_mov): Likewise.
10642         (ix86_add_cfa_restore_note): Take cfa_offset not red_offset argument;
10643         compare vs the saved red_zone_offset.
10644         (pro_epilogue_adjust_stack): Adjust sp_offset.
10645         (ix86_adjust_stack_and_probe): Likewise.
10646         (ix86_expand_prologue): Set up, use, and validate the new
10647         frame_state_info members.  Use gen_frame_mem.
10648         (ix86_emit_restore_regs_using_pop): Remove red_offset parameter.
10649         (ix86_emit_restore_reg_using_pop): Likewise.  Use and update the
10650         new frame_state_info members.
10651         (ix86_emit_leave): Likewise.
10652         (ix86_emit_restore_regs_using_mov): Likewise.  Don't check for
10653         out-of-range stack pointer offsets here.
10654         (ix86_emit_restore_sse_regs_using_mov): Likewise.
10655         (ix86_expand_epilogue): Use and validate the new frame_state_info
10656         members.  Break up and simplify the logic selecting the
10657         restore_regs_via_mov code path.  Ensure that there will be no
10658         out-of-range stack pointer offsets.
10659
10660         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Remove.
10661
10662         * config/i386/i386.c (ix86_function_ms_hook_prologue): Fix
10663         argument name to reflect the expected tree; fix indentation.
10664         (ix86_asm_output_function_label): Output the entire 32-bit
10665         ms_hook here as bytes ...
10666         (ix86_expand_prologue): ... not here as insns.  Attach the
10667         unwind info for the ms_hook to a blockage insn.
10668         (ix86_handle_fndecl_attribute): Don't check HAVE_AS_IX86_SWAP.
10669         (ix86_ms_bitfield_layout_p): Fix indentation.
10670         * config/i386/i386.md (UNSPECV_VSWAPMOV, vswapmov): Remove.
10671
10672         * config/i386/i386.c (ix86_using_red_zone): New.
10673         (ix86_compute_frame_layout, ix86_add_cfa_restore_note,
10674         ix86_expand_prologue, ix86_force_to_memory): Use it.
10675
10676         * config/i386/i386.c (ix86_expand_prologue): Simplify logic
10677         saving the int registers.
10678
10679         * dwarf2out.c: Remove most of the DWARF2_DEBUGGING_INFO
10680         and DWARF2_UNWIND_INFO conditional compilation.
10681
10682 2010-08-04  Richard Henderson  <rth@redhat.com>
10683
10684         PR debug/45171
10685         * dwarf2out.c (gen_typedef_die): Don't re-generate the die of
10686         an is_naming_typedef_decl.
10687
10688 2010-08-04  Bernd Schmidt  <bernds@codesourcery.com>
10689
10690         PR rtl-optimization/45162
10691         * df-problems.c (df_word_lr_bb_local_compute): Ignore DEBUG_INSNs.
10692         * dce.c (word_dce_process_block): Likewise.
10693
10694 2010-08-04  Steve Ellcey  <sje@cup.hp.com>
10695
10696         PR target/44583
10697         * config/ia64/constraints.md (Z): New.
10698         * config/ia64/predicates.md (fr_reg_or_signed_fp01_operand): New.
10699         (xfreg_or_signed_fp01_operand): New.
10700         * config/ia64/ia64.md (addsf3): Replace fr_reg_or_fp01_operand
10701         with fr_reg_or_signed_fp01_operand and constraint G with Z.
10702         (subsf3): Ditto.
10703         (*maddsf4): Ditto.
10704         (*msubsf4): Ditto.
10705         (adddf3): Ditto.
10706         (adddf3_trunc): Ditto.
10707         (subdf3): Ditto.
10708         (*subdf3_trunc): Ditto.
10709         (*madddf4): Ditto.
10710         (*madddf4_trunc): Ditto.
10711         (*msubdf4): Ditto.
10712         (*msubdf4_trunc): Ditto.
10713         (addxf3): Replace xfreg_or_fp01_operand with
10714         xfreg_or_signed_fp01_operand and constraint G with Z.
10715         (*addxf3_truncsf): Ditto.
10716         (*addxf3_truncdf): Ditto.
10717         (subxf3): Ditto.
10718         (*subxf3_truncsf): Ditto.
10719         (*subxf3_truncdf): Ditto.
10720         (*maddxf4): Ditto.
10721         (*maddxf4_truncsf): Ditto.
10722         (*maddxf4_truncdf): Ditto.
10723         (*msubxf4): Ditto.
10724         (*msubxf4_truncsf): Ditto.
10725         (*msubxf4_truncdf): Ditto.
10726
10727 2010-08-04  Richard Guenther  <rguenther@suse.de>
10728
10729         * alias.c (rtx_refs_may_alias_p): Do not resort to TBAA
10730         if either alias-set is zero.
10731
10732 2010-08-04  Richard Guenther  <rguenther@suse.de>
10733
10734         * tree-ssa-propagate.h (struct prop_value_d, prop_value_t): Move ...
10735         * tree-ssa-ccp.c: ... here.
10736         * tree-ssa-copy.c: ... and here.
10737         * tree-ssa-propagate.h (enum value_range_type, struct value_range_d,
10738         value_range_t): Move ...
10739         * tree-vrp.c: ... here.
10740         * tree-ssa-propagate.h (ssa_prop_get_value_fn): New typedef.
10741         (substitute_and_fold): Adjust prototype.
10742         * tree-ssa-propagate.c (replace_uses_in): Adjust.
10743         (replace_phi_args_in): Likewise.
10744         (substitute_and_fold): Take callback to query lattice instead
10745         of pointer to lattice.  Replace SSA name defs with lattice
10746         values first.
10747         * tree-ssa-ccp.c (ccp_finalize): Adjust.
10748         * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust.
10749         (get_value): New function.
10750         (fini_copy_prop): Adjust.
10751         * tree-vrp.c (vrp_finalize): Adjust.
10752
10753 2010-08-04  Richard Guenther  <rguenther@suse.de>
10754
10755         PR middle-end/45176
10756         * expr.c (expand_expr_real_1): Also preserve TARGET_MEM_REF
10757         points-to set for original MEM_REF.
10758
10759 2010-08-04  Richard Guenther  <rguenther@suse.de>
10760
10761         * tree-ssa-ccp.c (get_constant_value): New function.
10762         (get_rhs_assign_op_for_ccp): Remove.
10763         (valueize_op): New function.
10764         (ccp_fold): Use get_constant_value and valueize_op.
10765         (fold_const_aggregate_ref): Likewise.
10766         (ccp_fold_stmt): Likewise.
10767         (visit_assignment): Simplify.
10768
10769 2010-08-04  Richard Guenther  <rguenther@suse.de>
10770
10771         * Makefile.in (double-int.o): Add $(TOPLEV_H) dependency.
10772         * double-int.h (double_int_ctz): Declare.
10773         * double-int.c (double_int_ctz): New function.
10774
10775 2010-08-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
10776
10777         * config/picochip/picochip.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE):
10778         Define.
10779         picochip_expand_movmemhi : Expand movmem pattern.
10780         * config/picochip/picochip-protos.h (picochip_expand_movmemhi) :
10781         Declare.
10782         * config/picochip/picochip.md (movmemhi) : New pattern.
10783
10784 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
10785
10786         * config/i386/unix.h (GLOBAL_ASM_OPS): Add tabs around .globl.
10787
10788 2010-08-03  Bernd Schmidt  <bernds@codesourcery.com>
10789
10790         * simplify-rtx.c (simplify_binary_operation_1): Try to simplify away
10791         NEG as operand of a MULT by merging it with the other operand.
10792         * combine.c (make_compound_operation): Use trunc_int_for_mode when
10793         generating a MULT with constant.  Canonicalize PLUS and MINUS involving
10794         MULT.
10795         * config/arm/constraints.md (M): Examine only 32 bits of a
10796         HOST_WIDE_INT.
10797         * config/arm/predicates.md (power_of_two_operand): Likewise.
10798
10799 2010-08-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10800
10801         * config/spu/spu.c (spu_emit_branch_hint): Do not access NOTE_KIND of
10802         non-NOTE insns.
10803
10804 2010-08-03  Jan Hubicka  <jh@suse.cz>
10805
10806         * ipa-split.c (struct split_point): Add split_part_set_retval.
10807         (find_retval): Forward declare.
10808         (test_nonssa_use, mark_nonssa_use): Special case return by reference.
10809         (consider_split): Compute current->split_part_set_retval.
10810         (visit_bb): Do not look into return value.
10811         (split_function): Handle !split_part_set_retval
10812
10813 2010-08-03  Martin Jambor  <mjambor@suse.cz>
10814
10815         * tree-sra.c (completely_scalarize_record): New parameter REF, create
10816         its own access->expr intead of using build_ref_for_offset.
10817
10818 2010-08-03  Joseph Myers  <joseph@codesourcery.com>
10819
10820         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Define.
10821         * config/alpha/osf5.h (LIB_SPEC): Don't handle -a.
10822         * config/bfin/bfin.h (ASM_SPEC, LINK_SPEC): Don't pass -G* options.
10823         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Handle -iframework.
10824         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Define.
10825         * config/iq2000/iq2000.h (SWITCH_TAKES_ARG): Remove.
10826         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Define using
10827         DEFAULT_SWITCH_TAKES_ARG.
10828         * config/rx/rx.opt (-patch=): Remove option.
10829         * config/rx/rx.c (rx_handle_option): Don't handle OPT_patch_.
10830         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Handle -imultilib.
10831         * doc/invoke.texi (RX Options): Remove -patch=.
10832         * gcc.c (cc1_options): Pass -aux-info* instead of -a* options.
10833         (option_map): Remove --profile-blocks, --quiet and --silent.
10834
10835 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
10836
10837         * config/i386/i386.h (ix86_compare_op0, ix86_compare_op1): Remove.
10838         * config/i386/i386.c (ix86_compare_op0, ix86_compare_op1): Remove.
10839         (ix86_expand_branch): Add op0 and op1 arguments.  Do not access
10840         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
10841         Update calls to ix86_expand_compare and ix86_expand_branch.
10842         (ix86_expand_setcc): Add op0 and op1 arguments.  Update calls to
10843         ix86_expand_compare.
10844         (ix86_expand_compare): Add op0 and op1 arguments.  Do not access
10845         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
10846         Make static.
10847         (ix86_expand_carry_flag_compare): Do not set ix86_compare_op0
10848         and ix86_compare_op1.  Update calls to ix86_expand_compare.
10849         (ix86_expand_int_movcc): Ditto.
10850         (ix86_expand_fp_movcc): Ditto.  Update calls to ix86_expand_setcc.
10851         * config/i386/i386-protos.h (ix86_expand_branch): Update prototype.
10852         (ix86_expand_setcc): Ditto.
10853         (ix86_expand_compare): Remove prototype.
10854         * config/i386/i386.md (cbranch<SDWIM:mode>4): Do not set
10855         ix86_compare_op0 and ix86_compare_op1.  Update calls
10856         to ix86_expand_branch to directly pass operands[1] and operands[2].
10857         (cbranchxf4): Ditto.
10858         (cbranch<MODEF:mode>4): Ditto.
10859         (cbranchcc4): Ditto.
10860         (cstore<SWIM:mode>4): Do not set ix86_compare_op0 and ix86_compare_op1.
10861         Update calls to ix86_expand_setcc to directly pass operands[2] and
10862         operands[3].
10863         (cstorexf4): Ditto.
10864         (cstore<MODEF:mode>4): Ditto.
10865         (cstorecc4): Ditto.
10866
10867 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
10868
10869         PR target/45063
10870         * caller-save.c (save_call_clobbered_regs): Remove regs from
10871         hard_regs_saved when they are set.
10872
10873 2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
10874
10875         PR target/41089
10876         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
10877         as volatile.
10878
10879 2010-08-02  Sebastian Pop  <sebastian.pop@amd.com>
10880
10881         * common.opt (ftree-loop-distribute-patterns): New.
10882         * invoke.texi (-ftree-loop-distribute-patterns): Documented.
10883         * opts.c (decode_options): Enable flag_tree_loop_distribute_patterns
10884         at -O3.
10885         * tree-data-ref.c (stores_zero_from_loop): New.
10886         * tree-data-ref.h (stores_zero_from_loop): Declared.
10887         * tree-loop-distribution.c (tree_loop_distribution): Call
10888         stores_zero_from_loop.
10889         (tree_loop_distribution): Check flag_tree_loop_distribute_patterns.
10890
10891 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
10892
10893         * postreload.c (reload_cse_simplify_operands): Take attribute enabled
10894         into account.
10895
10896         * final.c (final_scan_insn): Call CC_STATUS_INIT unconditionally.
10897         * config/arm/arm.c (thumb1_code): New variable.
10898         (arm_override_options): Set it.
10899         (thumb1_final_prescan_insn): Keep track of condition code status.
10900         (arm_adjust_cost): For Thumb, try to keep cc-setting insns next to
10901         jumps that depend on them.
10902         * config/arm/arm.h (thumb1_code): Declare variable.
10903         (struct machine_function): Guard with #ifndef GENERATOR_FILE.  Add
10904         members thumb1_cc_insn, thumb1_cc_op0, thumb1_cc_op1 and
10905         thumb1_cc_mode.
10906         (CC_STATUS_INIT): New macro.
10907         * config/arm/constraints.md (Pd): New constraint.
10908         * config/arm/predicates.md (noov_comparison_operator): New predicate.
10909         * config/arm/arm.md (is_thumb1): New define_attr.
10910         (conds): Set default to "clob" when generating Thumb1 code.
10911         (thumb1_bicsi3): Renamed from bicsi3.  All uses changed.  Condition
10912         code are set.  Use two-operand assembly syntax.
10913         (thumb1_subsi3_insn): Condition codes are set.  Now a properly named
10914         pattern.
10915         (thumb1_andsi3_insn, thumb1_iorsi3_insn, thumb1_xorsi3_insn): Condition
10916         codes are set.  Use two-operand assembly syntax.
10917         (zero_extendhisi splitter): Remove constraints.
10918         (thumb1_movsi_insn, thumb1_movhi_insn, thumb1_movqi_insn, thumb1_movhf,
10919         thumb1_movsf_insn): Set conds attribute as appropriate.
10920         (cbranchsi4_insn): Use condition code status from struct
10921         machine_function to determine whether the comparison can be eliminated.
10922         Discourage the alternative using high registers.
10923         (movsi_cbranchsi4, andsi3_cbranch, orrsi3_cbranch_scratch,
10924         orrsi3_cbranch, xorsi3_cbranch_scratch, xorsi3_cbranch,
10925         bicsi3_cbranch_scratch, bicsi3_cbranch, subsi3_cbranch_scratch,
10926         subsi3_cbranch): Delete.
10927         (movsi_cbranchsi4 peepholes): Rewrite to generate a sequence of
10928         one subtract and one cbranch insn.
10929
10930         * config/arm/thumb2.md (thumb2_movdi, thumb2_movsf_soft_insn,
10931         thumb2_movdf_soft_insn): Delete patterns.
10932         * config/arm/arm.md (arm_pool_range, thumb2_pool_range,
10933         arm_neg_pool_range, thumb2_neg_pool_range): New attributes.
10934         (pool_range, neg_pool_range): Use them to define defaults.
10935         (movdi, arm_movsf_soft_insn, arm_movdf_soft_insn): Define them
10936         and allow for TARGET_32BIT.
10937
10938         PR target/40457
10939         * config/arm/arm.h (arm_regs_in_sequence): Declare.
10940         * config/arm/arm-protos.h (emit_ldm_seq, emit_stm_seq,
10941         load_multiple_sequence, store_multiple_sequence): Delete
10942         declarations.
10943         (arm_gen_load_multiple, arm_gen_store_multiple): Adjust
10944         declarations.
10945         * config/arm/ldmstm.md: New file.
10946         * config/arm/arm.c (arm_regs_in_sequence): New array.
10947         (load_multiple_sequence): Now static.  New args SAVED_ORDER,
10948         CHECK_REGS.  All callers changed.
10949         If SAVED_ORDER is nonnull, copy the computed order into it.
10950         If CHECK_REGS is false, don't sort REGS.  Handle Thumb mode.
10951         (store_multiple_sequence): Now static.  New args NOPS_TOTAL,
10952         SAVED_ORDER, REG_RTXS and CHECK_REGS.  All callers changed.
10953         If SAVED_ORDER is nonnull, copy the computed order into it.
10954         If CHECK_REGS is false, don't sort REGS.  Set up REG_RTXS just
10955         like REGS.  Handle Thumb mode.
10956         (arm_gen_load_multiple_1): New function, broken out of
10957         arm_gen_load_multiple.
10958         (arm_gen_store_multiple_1): New function, broken out of
10959         arm_gen_store_multiple.
10960         (arm_gen_multiple_op): New function, with code from
10961         arm_gen_load_multiple and arm_gen_store_multiple moved here.
10962         (arm_gen_load_multiple, arm_gen_store_multiple): Now just
10963         wrappers around arm_gen_multiple_op.  Remove argument UP, all callers
10964         changed.
10965         (gen_ldm_seq, gen_stm_seq, gen_const_stm_seq): New functions.
10966         * config/arm/predicates.md (commutative_binary_operator): New.
10967         (load_multiple_operation, store_multiple_operation): Handle more
10968         variants of these patterns with different starting offsets.  Handle
10969         Thumb-1.
10970         * config/arm/arm.md: Include "ldmstm.md".
10971         (ldmsi_postinc4, ldmsi_postinc4_thumb1, ldmsi_postinc3, ldmsi_postinc2,
10972         ldmsi4, ldmsi3, ldmsi2, stmsi_postinc4, stmsi_postinc4_thumb1,
10973         stmsi_postinc3, stmsi_postinc2, stmsi4, stmsi3, stmsi2 and related
10974         peepholes): Delete.
10975         * config/arm/ldmstm.md: New file.
10976         * config/arm/arm-ldmstm.ml: New file.
10977
10978         * config/arm/arm.c (arm_rtx_costs_1): Remove second clause from the
10979         if statement which adds extra costs to frame-related expressions.
10980
10981 2010-08-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10982
10983         * config/arm/arm.c (COSTS_N_INSNS): Remove definition.
10984
10985 2010-08-01  Uros Bizjak  <ubizjak@gmail.com>
10986
10987         PR target/45142
10988         * config/i386/sse.md (vec_set<mode>_0): Do not set mode attribute for
10989         alternative 2.
10990         (vec_set<mode>_0 splitter): Use SSEMODE4S mode iterator to also
10991         split V4SI operands.
10992
10993 2010-08-01  Anatoly Sokolov  <aesok@post.ru>
10994
10995         * config/mmix/mmix.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
10996         * config/mmix/mmix-protos.h (mmix_asm_output_source_filename): Remove.
10997         * config/mmix/mmix.c (mmix_asm_output_source_filename): Make static.
10998         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
10999
11000 2010-07-31  Kai Tietz  <kai.tietz@onevision.com>
11001
11002         * cppdefault.c (cpp_include_defaults): Move GCC_INCLUDE_DIR before
11003         LOCAL_INCLUDE_DIR.
11004
11005 2010-07-31  Richard Sandiford  <rdsandiford@googlemail.com>
11006
11007         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Fix type
11008         used in the call to optab_for_tree_code.  Fix the second
11009         is_widening_mult_p call.  Check that both unwidened operands
11010         have the same sign.
11011
11012 2010-07-31  John Tytgat  <John.Tytgat@aaug.net>
11013
11014         * config/arm/arm.c (arm_function_arg): Remove superfluous test.
11015
11016 2010-07-31  Anatoly Sokolov  <aesok@post.ru>
11017
11018         * config/spu/spu.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
11019
11020 2010-07-30  DJ Delorie  <dj@redhat.com>
11021
11022         * config/rx/predicates.md (rx_constshift_operand): New.
11023         * config/rx/rx.md (zs_cond): New.
11024         (cbranchsi4): Remove mode.
11025         (*cbranchsi4_<code>): Likewise.
11026         (*tstbranchsi4_<code>): New.
11027         (*tstbranchsi4r_<code>): New.
11028         (*tstbranchsi4m_eq): New.
11029         (*tstbranchsi4m_ne): New.
11030         (cbranchsf4): Remove mode.
11031         (*cbranchsf4_<code>): Likewise.
11032
11033 2010-07-30  Bernd Schmidt  <bernds@codesourcery.com>
11034
11035         * rtlanal.c (simplify_subreg_regno): Don't treat
11036         HARD_FRAME_POINTER_REGNUM specially.
11037
11038 2010-07-30  Joseph Myers  <joseph@codesourcery.com>
11039
11040         * common.opt (-G): Don't define option here.
11041         * config/g.opt: New.
11042         * config.gcc: Use g.opt for alpha, frv, ia64, lm32, m32r, mips,
11043         rs6000/powerpc and score targets.
11044         * opts.c (common_handle_option): Don't handle -G here.
11045         * config/alpha/alpha.c (alpha_handle_option): Handle -G.
11046         * config/frv/frv.c (frv_handle_option): Handle -G.
11047         * config/ia64/ia64.c (ia64_handle_option): Handle -G.
11048         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION): New.
11049         * config/m32r/m32r.c (m32r_handle_option): Handle -G.
11050         * config/mips/mips.c (mips_handle_option): Handle -G.
11051         * config/rs6000/rs6000.c (rs6000_handle_option) Handle -G.
11052         * config/score/score.c (score_handle_option): Handle -G.
11053
11054 2010-07-30  Anatoly Sokolov  <aesok@post.ru>
11055
11056         * config/mmix/mmix.c: Include basic-block.h.
11057
11058 2010-07-30  Jakub Jelinek  <jakub@redhat.com>
11059
11060         PR debug/45055
11061         PR rtl-optimization/45137
11062         * rtl.h (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn): New
11063         prototypes.
11064         * emit-rtl.c (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn):
11065         New functions.
11066         * combine.c (next_nonnote_nondebug_insn): Removed.
11067         * ifcvt.c (noce_process_if_block): Use prev_nonnote_nondebug_insn.
11068         * haifa-sched.c (queue_to_ready): Use next_nonnote_nondebug_insn.
11069         * sched-deps.c (sched_analyze_insn): Likewise.
11070         (fixup_sched_groups, deps_start_bb): Use prev_nonnote_nondebug_insn.
11071         * rtlanal.c (canonicalize_condition): Likewise.
11072         * postreload.c (reload_combine_recognize_pattern): Likewise.
11073         (reload_cse_move2add): Use next_nonnote_nondebug_insn.
11074
11075 2010-07-29  Uros Bizjak  <ubizjak@gmail.com>
11076
11077         * config/i386/i386.md (int_cond): Remove code iterator.
11078         (fp_cond): Ditto.
11079         (cbranch<mode>4): Use ordered_comparison_operator predicate
11080         for operator0.
11081         (cstore<mode>4): Ditto for operator1.
11082         (mov<SWIM:mode>cc and corresponding splitter): Ditto.
11083         (add<mode>cc): ditto.
11084
11085 2010-07-30  Richard Guenther  <rguenther@suse.de>
11086
11087         PR middle-end/45141
11088         * expr.c (expand_expr_real_1): Check for not handled base address.
11089
11090 2010-07-30  Richard Guenther  <rguenther@suse.de>
11091
11092         * ipa-prop.c (ipa_modify_formal_parameters): Use
11093         build_distinct_type_copy.
11094
11095 2010-07-30  Anthony Green  <green@moxielogic.com>
11096
11097         * config/moxie/rtems.h: New file.
11098         * config.gcc: Add moxie-rtems support.
11099
11100 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
11101
11102         * dce.c (run_word_dce): Take flag_dce into account.  Clear and restore
11103         df flags as in run_fast_df_dce.
11104
11105 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
11106
11107         Revert:
11108         2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
11109
11110         * rtl.def (NOTE): Swap operands 4 and 5.
11111         * rtl.h (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK,
11112         NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_KIND):
11113         Adjust accordingly.
11114         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of NOTEs.
11115
11116 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
11117
11118         PR debug/45110
11119         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_object_pointer.
11120         (gen_formal_types_die): Add DW_AT_object_pointer in methods.
11121         (gen_subprogram_die): Likewise.  Remove it when removing declaration's
11122         formal parameters.
11123         (gen_decl_die): Change return type to dw_die_ref, return what
11124         gen_formal_parameter_die returned.
11125
11126 2010-07-29  Martin Jambor  <mjambor@suse.cz>
11127
11128         * dbgcnt.def (eipa_sra): New counter.
11129         * tree-sra.c (ipa_early_sra_gate): Also check eipa_sra debug counter.
11130
11131 2010-07-29  Xinliang David Li  <davidxl@google.com>
11132
11133         PR bootstrap/45119
11134         * tree-ssa-loop-ivopts.c (get_address_cost): Revert change
11135         in revision 162652.
11136
11137 2010-07-29  Richard Guenther  <rguenther@suse.de>
11138
11139         * timevar.def (TV_TREE_STORE_COPY_PROP): Remove.
11140         (TV_TREE_STORE_CCP): Likewise.
11141         (TV_TREE_REDPHI): Likewise.
11142
11143 2010-07-29  Richard Guenther  <rguenther@suse.de>
11144
11145         * double-int.h (double_int_and_not): New function.
11146         * combine.c (try_combine): Use it.
11147         * tree-vrp.c (simplify_bit_ops_using_ranges): Likewise.
11148
11149 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
11150
11151         PR rtl-optimization/42575
11152         * dce.c (word_dce_process_block): Renamed from byte_dce_process_block.
11153         Argument AU removed.  All callers changed.  Ignore artificial refs.
11154         Use return value of df_word_lr_simulate_defs to decide whether an insn
11155         is necessary.
11156         (fast_dce): Rename arg to WORD_LEVEL.
11157         (run_word_dce): Renamed from rest_of_handle_fast_byte_dce.  No longer
11158         static.
11159         (pass_fast_rtl_byte_dce): Delete.
11160         * dce.h (run_word_dce): Declare.
11161         * df-core.c (df_print_word_regset): Renamed from df_print_byteregset.
11162         All callers changed.  Simplify code to only deal with two-word regs.
11163         * df.h (DF_WORD_LR): Renamed from DF_BYTE_LR.
11164         (DF_WORD_LR_BB_INFO): Renamed from DF_BYTE_LR_BB_INFO.
11165         (DF_WORD_LR_IN): Renamed from DF_BYTE_LR_IN.
11166         (DF_WORD_LR_OUT): Renamed from DF_BYTE_LR_OUT.
11167         (struct df_word_lr_bb_info): Renamed from df_byte_lr_bb_info.
11168         (df_word_lr_mark_ref): Declare.
11169         (df_word_lr_add_problem, df_word_lr_mark_ref, df_word_lr_simulate_defs,
11170         df_word_lr_simulate_uses): Declare or rename from byte variants.
11171         (df_byte_lr_simulate_artificial_refs_at_top,
11172         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
11173         df_byte_lr_get_regno_len, df_compute_accessed_bytes): Delete
11174         declarations.
11175         (df_word_lr_get_bb_info): Rename from df_byte_lr_get_bb_info.
11176         (enum df_mm): Delete.
11177         * df-byte-scan.c: Delete file.
11178         * df-problems.c (df_word_lr_problem_data): Renamed from
11179         df_byte_lr_problem_data, all members deleted except for
11180         WORD_LR_BITMAPS, which is renamed from BYTE_LR_BITMAPS.  Uses changed.
11181         (df_word_lr_expand_bitmap, df_byte_lr_simulate_artificial_refs_at_top,
11182         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
11183         df_byte_lr_get_regno_len, df_byte_lr_check_regs,
11184         df_byte_lr_confluence_0): Delete functions.
11185         (df_word_lr_free_bb_info): Renamed from df_byte_lr_free_bb_info; all
11186         callers changed.
11187         (df_word_lr_alloc): Renamed from df_byte_lr_alloc; all callers changed.
11188         Don't initialize members that were deleted, don't try to discover data
11189         about registers.  Ignore hard regs.
11190         (df_word_lr_reset): Renamed from df_byte_lr_reset; all callers changed.
11191         (df_word_lr_mark_ref): New function.
11192         (df_word_lr_bb_local_compute): Renamed from
11193         df_byte_bb_lr_local_compute; all callers changed.  Use
11194         df_word_lr_mark_ref.  Assert that artificial refs don't include
11195         pseudos.  Ignore hard registers.
11196         (df_word_lr_local_compute): Renamed from df_byte_lr_local_compute.
11197         Assert that exit block uses don't contain pseudos.
11198         (df_word_lr_init): Renamed from df_byte_lr_init; all callers changed.
11199         (df_word_lr_confluence_n): Renamed from df_byte_lr_confluence_n; all
11200         callers changed.  Ignore hard regs.
11201         (df_word_lr_transfer_function): Renamed from
11202         df_byte_lr_transfer_function; all callers changed.
11203         (df_word_lr_free): Renamed from df_byte_lr_free; all callers changed.
11204         (df_word_lr_top_dump): Renamed from df_byte_lr_top_dump; all callers
11205         changed.
11206         (df_word_lr_bottom_dump): Renamed from df_byte_lr_bottom_dump; all
11207         callers changed.
11208         (problem_WORD_LR): Renamed from problem_BYTE_LR; uses changed;
11209         confluence operator 0 set to NULL.
11210         (df_word_lr_add_problem): Renamed from df_byte_lr_add_problem; all
11211         callers changed.
11212         (df_word_lr_simulate_defs): Renamed from df_byte_lr_simulate_defs.
11213         Return bool, true if bitmap changed or insn otherwise necessary.
11214         All callers changed.  Simplify using df_word_lr_mark_ref.
11215         (df_word_lr_simulate_uses): Renamed from df_byte_lr_simulate_uses;
11216         all callers changed.  Simplify using df_word_lr_mark_ref.
11217         * lower-subreg.c: Include "dce.h"
11218         (decompose_multiword_subregs): Call run_word_dce if df available.
11219         * Makefile.in (lower-subreg.o): Adjust dependencies.
11220         (df-byte-scan.o): Delete.
11221         * timevar.def (TV_DF_WORD_LR): Renamed from TV_DF_BYTE_LR.
11222
11223 2010-07-29  Richard Guenther  <rguenther@suse.de>
11224
11225         * tree.c (build_vector): Assert that the vector constant
11226         has enough elements.
11227         (build_vector_from_ctor): Pad with trailing zeros.
11228
11229 2010-07-29  Richard Guenther  <rguenther@suse.de>
11230
11231         PR tree-optimization/45120
11232         * tree-ssa-structalias.c (get_constraint_for_component_ref):
11233         Handle offset in DEREFs properly.
11234         (get_constraint_for_1): Handle MEM_REF offset properly.
11235
11236 2010-07-29  Richard Guenther  <rguenther@suse.de>
11237
11238         PR middle-end/45034
11239         * convert.c (convert_to_integer): Always use an unsigned
11240         type for narrowed negate and bitwise not.
11241
11242 2010-07-29  Ira Rosen  <irar@il.ibm.com>
11243
11244         * tree-vect-loop.c (vect_create_epilog_for_reduction): Switch
11245         to outer loop when creating reduction epilogue for double reduction,
11246         and switch back to the inner loop when updating the phi nodes.
11247         Update uses of outer loop exit phi nodes in double reduction (instead
11248         of uses of reduction).
11249
11250 2010-07-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
11251
11252         * config/rs6000/rs6000.c (rs6000_rtx_costs): Update costs for
11253         popcount on power7 and parity on power6 systems.
11254         (rs6000_emit_popcount): Rename gen_popcntwsi2 to gen_popcntddi2.
11255         (rs6000_emit_parity): Add support for power6 prtyd/prtyw
11256         instructions.
11257
11258         * config/rs6000/rs6000.md (UNSPEC_COPYSIGN): New unspec.
11259         (UNSPEC_PARITY): Ditto.
11260         (SFDF): New iterator for SF/DF.
11261         (rreg2): New mode attribute for floating register constraint.
11262         (TARGET_FLOAT): New mode attribute for whether single/double float
11263         is supported.
11264         (popcntd<mode>2): Combine popcntwsi2 and popcntddi2 into one
11265         pattern.
11266         (parity<mode>2_cmpb): New insn for parity on power6 and newer
11267         machines.
11268         (copysign<mode>3): Combine copysignsf3, copysigndf3 into one
11269         pattern.  Add support for fcpsgn instruction added in power6.
11270         (copysignsf3): Delete.
11271         (copysigndf3): Delete.
11272         (copysign<mode>3_fcpsgn): New insn to generate fcpsgn.  Use UNSPEC
11273         instead of if_then_else in RTL to avoid problems with -0.
11274
11275         * config/rs6000/vsx.md (vsx_copysign<mode>3): Use UNSPEC instead
11276         of if_then_else to mirror scalar code.
11277         (vsx_copysignsf3): Delete, use copysign<mode>3_fcpsgn in
11278         rs6000.md.
11279
11280         * config/rs6000/vector.md (vector_copysign<mode>3): Use UNSPEC
11281         instead of if_then_else.
11282
11283 2010-07-28  Xinliang David Li  <davidxl@google.com>
11284
11285         * tree-ssa-loop-ivopts.c (avg_loop_niter): New function.
11286         (dump_cand): Dump var_before/after.
11287         (htab_inv_expr_eq): New function.
11288         (htab_inv_expr_hash): New function.
11289         (tree_ssa_iv_optimize_init): Support pseudo invariants.
11290         (add_candidate_1): consider base type precision.
11291         (set_use_iv_cost): New parameter.
11292         (adjust_setup_cost): Use profile information.
11293         (get_address_cost): Do not hard code width in computing address
11294         offset limits.
11295         (compare_aff_trees): New function.
11296         (get_loop_invariant_expr_id): New function.
11297         (get_computation_cost_at): New parameter and use profile information.
11298         (get_computation_cost): New parameter.
11299         (determine_use_iv_cost_generic): Pass new parameter.
11300         (determine_use_iv_cost_address): Ditto.
11301         (determine_use_iv_cost_condition): Ditto.
11302         (autoinc_possible_for_pair): Ditto.
11303         (determine_use_iv_costs): More dumps.
11304         (iv_ca_get_num_inv_exprs): New function.
11305         (iv_ca_recount_cost): Consider loop invariants in register pressure
11306         cost.
11307         (iv_ca_add_use): New parameter.
11308         (iv_ca_dump): Better dumping.
11309         (iv_ca_extend): New parameter.
11310         (try_add_cand_for): Attempt to get better partial solution.
11311         (try_improve_iv_set): Pass new parameter to iv_ca_extend.
11312         (create_new-ivs): More dumps.
11313         (rewrite_use_compare): Ditto.
11314         (free_loop_data): More cleanup.
11315         (treee_ssa_iv_optimize_finalize): Ditto.
11316
11317 2010-07-28  Kai Tietz  <kai.tietz@onevision.com>
11318
11319         * config/i386/i386.h (MCOUNT_NAME_BEFORE_PROLOGUE): New.
11320         * config/i386/i386.c (ix86_profile_before_prologue): New.
11321         (override_options): Add special handling for -mfentry.
11322         (ix86_function_regparm): Likewise.
11323         (ix86_function_sseregparm): Likewise.
11324         (ix86_frame_pointer_required): Likewise.
11325         (ix86_expand_prologue): Check for ms_hook_prologue.
11326         (x86_function_profiler): Adjust mcount output.
11327         (TARGET_PROFILE_BEFORE_PROLOGUE): Define hook.
11328         * config/i386/i386.opt (mfentry): New.
11329         * doc/invoke.texi (mfentry): Add documentation.
11330         * doc/tm.texi: Regenerated..
11331         * doc/tm.texi.in (TARGET_PROFILE_BEFORE_PROLOGUE): New.
11332         * final.c (final_start_function): Replace macro
11333         PROFILE_BEFORE_PROLOGUE by target hook.
11334         * function.c (thread_prologue_and_epilogue_insns): Likewise.
11335         * target.def (profile_before_prologue): New hook.
11336         * targhooks.c (default_profile_before_prologue): New.
11337         * targhooks.h (default_profile_before_prologue): New.
11338
11339 2010-07-28  Jakub Jelinek  <jakub@redhat.com>
11340
11341         PR debug/45105
11342         * gcse.c (hoist_code): Use FOR_BB_INSNS macro.
11343
11344         PR debug/45103
11345         * dwarf2out.c (dwarf2out_var_location): Always consider
11346         NOTE_DURING_CALL_P notes, even when not followed by real instructions.
11347
11348 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
11349
11350         PR rtl-optimization/45107
11351         * gcse.c (hash_scan_set): Use max_distance for gcse-las.
11352
11353 2010-07-28  Richard Guenther  <rguenther@suse.de>
11354
11355         * tree-ssa-ccp.c: Remove comment regarding STORE-CCP.
11356         (set_lattice_value): Do not query an old default value.
11357         (get_value_for_expr): New function.  Properly canonicalize
11358         float values.
11359         (ccp_visit_phi_node): Use it.
11360
11361 2010-07-28  Chung-Lin Tang  <cltang@codesourcery.com>
11362
11363         * config/arm/arm.c (arm_pcs_default): Remove static.
11364         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_PCS or
11365         __ARM_PCS_VFP to indicate soft/hard-float calling convention.
11366         (arm_pcs_default): Declare.
11367
11368 2010-07-28  Iain Sandoe  <iains@gcc.gnu.org>
11369
11370         * config/rs6000/rs6000.c (rs6000_override_options):
11371         Use TARGET_MACHO inline, move darwin_one_byte_bool from here...
11372         ... to darwin_rs6000_override_options.
11373         (rs6000_return_in_memory): Update preceding comment for darwin
11374         64 bit ABI.  Use TARGET_MACHO inline.
11375         (rs6000_darwin64_struct_check_p): New.
11376         (function_arg_advance): Use rs6000_darwin64_struct_check_p.
11377         (function_arg): Likewise.
11378         (rs6000_arg_partial_bytes): Likewise.
11379         (rs6000_function_value): Likewise.
11380
11381 2010-07-28  Andi Kleen  <ak@linux.intel.com>
11382
11383         * lto-opts.c (lto_file_read_options): Add loop over all inputs.
11384
11385 2010-07-28  Richard Guenther  <rguenther@suse.de>
11386
11387         PR middle-end/44903
11388         * builtins.c (fold_builtin_memory_op): On STRICT_ALIGNMENT
11389         targets try harder to not generate unaligned accesses.
11390
11391 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
11392
11393         PR rtl-optimization/45101
11394         * gcse.c (hash_scan_set): Fix argument ordering of insert_expr_in_table
11395         for gcse-las.
11396
11397 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
11398
11399         PR tree-optimization/44885
11400         * tree-sra.c (find_param_candidates): Skip pointer types to arrays
11401         with non-aliased component.
11402
11403 2010-07-28  Joseph Myers  <joseph@codesourcery.com>
11404
11405         * config/darwin-driver.c (SWITCH_TAKES_ARG,
11406         WORD_SWITCH_TAKES_ARG): Remove.
11407         * cppspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
11408         * defaults.h (DEFAULT_SWITCH_TAKES_ARG,
11409         DEFAULT_WORD_SWITCH_TAKES_ARG): Move from gcc.h.
11410         (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move default
11411         definitions from gcc.c.
11412         * gcc.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move to
11413         defaults.h.
11414         * gcc.h (DEFAULT_SWITCH_TAKES_ARG, DEFAULT_WORD_SWITCH_TAKES_ARG):
11415         Move to defaults.h.
11416         * opts-common.c: Include tm.h.
11417         (decode_cmdline_option): Use SWITCH_TAKES_ARG and
11418         WORD_SWITCH_TAKES_ARG to count arguments to unknown options.
11419         Handle more than one argument.  Set canonical_option_num_elements.
11420         (decode_cmdline_options_to_array): Set
11421         canonical_option_num_elements and trailing elements of
11422         canonical_option.
11423         * opts.h (struct cl_decoded_option): Allow four elements in
11424         canonical_option.  Add field canonical_option_num_elements.
11425         * Makefile.in (opts-common.o): Update dependencies.
11426
11427 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
11428
11429         PR middle-end/44790
11430         PR middle-end/44993
11431         * expr.c (expand_expr_real_1) <MEM_REF>: Revert latest change.  Make
11432         sure the base has address_mode before adding the offset.
11433
11434 2010-07-27  Xinliang David Li  <davidxl@google.com>
11435
11436         * tree-flow.h (create_mem_ref): Add one new parameter.
11437         * tree-ssa-address.c (create_mem_ref): New parameter.
11438         (addr_to_parts): Ditto.
11439         (move_variant_to_index): New function.
11440         * tree-ssa-loop-ivopts.c (rewrite_use_address): Pass new argument.
11441
11442 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
11443
11444         * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, NOTE): Swap operands
11445         4 and 5.
11446         * rtl.h (PATTERN, INSN_LOCATOR, NOTE_DATA, NOTE_DELETED_LABEL_NAME,
11447         NOTE_BLOCK, NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION,
11448         NOTE_KIND, LABEL_NUSES, LABEL_REFS): Adjust accordingly.
11449         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of
11450         CODE_LABELs and NOTEs.
11451         * caller-save.c (init_caller_save): Fix up gen_rtx_INSN call.
11452         * combine.c (try_combine): Likewise.
11453         * ira.c (setup_prohibited_mode_move_regs): Likewise.
11454         * print-rtl.c (print_rtx): Start REG_NOTES on a new line.
11455
11456 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
11457
11458         * coretypes.h (struct cl_option_handlers): Declare.
11459         * hooks.c (hook_int_size_t_constcharptr_int_0): Remove.
11460         * hooks.h (hook_int_size_t_constcharptr_int_0): Remove.
11461         * langhooks-def.h (lhd_handle_option): Declare.
11462         (LANG_HOOKS_HANDLE_OPTION): Use lhd_handle_option.
11463         * langhooks.c (lhd_handle_option): New.
11464         * langhooks.h (struct lang_hooks): Update prototype and return
11465         value type of handle_option hook.
11466         * optc-gen.awk: Generate target_flags_explicit definition for the
11467         driver.
11468         * opts-common.c: Include diagnostic.h.
11469         (handle_option): Move from opts.c.  Update prototype and return
11470         value type.  Use handlers structure.
11471         (read_cmdline_option): Move from opts.c.  Update prototype.  Use
11472         handlers structure.
11473         (set_option): Move from opts.c.
11474         * opts.c (common_handle_option): Update prototype and return value
11475         type.  Update calls to handle_option and enable_warning_as_error.
11476         (unknown_option_callback, post_handling_callback,
11477         lang_handle_option, target_handle_option): New.
11478         (handle_option, read_cmdline_option): Move to opts-common.c.
11479         (read_cmdline_options): Update prototype.  Update call to
11480         read_cmdline_option.
11481         (decode_options): Initialize and use handlers structure.
11482         (set_option): Move to opts-common.c.
11483         (enable_warning_as_error): Update prototype.  Update call to
11484         handle_option.
11485         * opts.h (struct cl_option_handler_func, struct
11486         cl_option_handlers): New.
11487         (handle_option, enable_warning_as_error): Update prototypes.
11488         (read_cmdline_option): Declare.
11489         * Makefile.in (opts-common.o): Update dependencies.
11490
11491 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
11492
11493         * config/arm/arm.c (params.h): Include.
11494         (arm_override_options): Tune gcse-unrestricted-cost.
11495         * config/arm/t-arm (arm.o): Define dependencies.
11496
11497 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
11498
11499         PR target/42495
11500         PR middle-end/42574
11501         * basic-block.h (get_dominated_to_depth): Declare.
11502         * dominance.c (get_dominated_to_depth): New function, use
11503         get_all_dominated_blocks as a base.
11504         (get_all_dominated_blocks): Use get_dominated_to_depth.
11505
11506         * gcse.c (occr_t, VEC (occr_t, heap)): Define.
11507         (hoist_exprs): Remove.
11508         (alloc_code_hoist_mem, free_code_hoist_mem): Update.
11509         (compute_code_hoist_vbeinout): Add debug print outs.
11510         (hoist_code): Partially rewrite, simplify.  Use get_dominated_to_depth.
11511
11512         * params.def (PARAM_MAX_HOIST_DEPTH): New parameter to avoid
11513         quadratic behavior.
11514         * params.h (MAX_HOIST_DEPTH): New macro.
11515         * doc/invoke.texi (max-hoist-depth): Document.
11516
11517 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
11518
11519         PR rtl-optimization/40956
11520         * config/arm/arm.c (thumb1_size_rtx_costs): Fix cost of simple
11521         constants.
11522
11523 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
11524
11525         PR target/42495
11526         PR middle-end/42574
11527         * config/arm/arm.c (legitimize_pic_address): Use
11528         gen_calculate_pic_address pattern to emit calculation of PIC address.
11529         (will_be_in_index_register): New function.
11530         (arm_legitimate_address_outer_p, thumb2_legitimate_address_p,)
11531         (thumb1_legitimate_address_p): Use it provided !strict_p.
11532         * config/arm/arm.md (calculate_pic_address): New expand and split.
11533
11534 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
11535
11536         PR target/42495
11537         PR middle-end/42574
11538         * config/arm/arm.c (thumb1_size_rtx_costs): Add cost for "J" constants.
11539         * config/arm/arm.md (define_split "J", define_split "K"): Make
11540         IRA/reload friendly.
11541
11542 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
11543
11544         * gcse.c (insert_insn_end_basic_block): Update signature, remove
11545         unused checks.
11546         (pre_edge_insert, hoist_code): Update.
11547
11548 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
11549
11550         PR target/42495
11551         PR middle-end/42574
11552         * gcse.c (hoist_expr_reaches_here_p): Remove excessive check.
11553
11554 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
11555
11556         * gcse.c (hoist_code): Generate new pseudo for every new set insn.
11557
11558 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
11559
11560         PR rtl-optimization/40956
11561         PR target/42495
11562         PR middle-end/42574
11563         * gcse.c (compute_code_hoist_vbeinout): Consider more expressions
11564         for hoisting.
11565         (hoist_code): Count occurences in current block too.
11566
11567 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
11568
11569         * gcse.c (struct expr:max_distance): New field.
11570         (doing_code_hoisting_p): New static variable.
11571         (want_to_gcse_p): Change signature.  Allow constrained hoisting of
11572         simple expressions, don't change behavior for PRE.  Set max_distance.
11573         (insert_expr_in_table): Set new max_distance field.
11574         (hash_scan_set): Update.
11575         (hoist_expr_reaches_here_p): Stop search after max_distance
11576         instructions.
11577         (find_occr_in_bb): New static function.  Use it in ...
11578         (hoist_code): Calculate sizes of basic block before any changes are
11579         done.  Pass max_distance to hoist_expr_reaches_here_p.
11580         (one_code_hoisting_pass): Set doing_code_hoisting_p.
11581
11582         * params.def (PARAM_GCSE_COST_DISTANCE_RATIO,)
11583         (PARAM_GCSE_UNRESTRICTED_COST): New parameters.
11584         * params.h (GCSE_COST_DISTANCE_RATIO, GCSE_UNRESTRICTED_COST): New
11585         macros.
11586         * doc/invoke.texi (gcse-cost-distance-ratio, gcse-unrestricted-cost):
11587         Document.
11588
11589 2010-07-27  Jeff Law  <law@redhat.com>
11590             Maxim Kuvyrkov  <maxim@codesourcery.com>
11591
11592         * gcse.c (compute_transpout, transpout): Remove, move logic
11593         to prune_expressions.
11594         (compute_pre_data): Move pruning of trapping expressions ...
11595         (prune_expressions): ... here.  New static function.
11596         (compute_code_hoist_data): Use it.
11597         (alloc_code_hoist_mem, free_code_hoist_mem, hoist_code): Update.
11598
11599 2010-07-27  Xinliang David Li  <davidxl@google.com>
11600
11601         * tree-ssa-loop-ivopts.c (adjust_iv_update_pos): New function.
11602         (rewrite_use_address): Adjust iv update position when needed.
11603
11604 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
11605
11606         * dbgcnt.def (hoist_insn): New debug counter.
11607         * gcse.c (hoist_code): Use it.
11608
11609 2010-07-27  Xinliang David Li  <davidxl@google.com>
11610
11611         * tree-ssa-loop-ivopts.c (niter_for_exit): New parameter.
11612         (niter_for_single_dom_exit): Passes additional parameter.
11613         (iv_period): Fix comments.
11614         (may_eliminate_iv): Handles multiple exit loops properly.
11615         (free_tree_niter_desc): New function.
11616         (free_loop_data): Frees up loop iteration descriptors.
11617
11618 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
11619
11620         PR target/44542
11621         * cfgexpand.c (expand_one_stack_var_at): Limit align to maximum
11622         of max_used_stack_slot_alignment and PREFERRED_STACK_BOUNDARY
11623         instead of MAX_SUPPORTED_STACK_ALIGNMENT.
11624         (expand_one_var): Don't consider DECL_ALIGN for variables for
11625         which expand_one_stack_var_at has been already called.
11626
11627         PR testsuite/44701
11628         * doc/md.texi: Clarify m and es constraints on PowerPC and m and S
11629         constraints on IA-64.
11630
11631 2010-07-27  Jie Zhang  <jie@codesourcery.com>
11632
11633         PR target/44290
11634         Revert:
11635         2010-07-23  Jie Zhang  <jie@codesourcery.com>
11636
11637         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
11638         false if ! tree_versionable_function_p.
11639
11640 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
11641
11642         * dwarf2out.c (add_data_member_location_attribute): Use
11643         add_AT_unsigned instead of add_AT_int if offset is non-negative.
11644
11645 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
11646
11647         * postreload.c (try_replace_in_use): New static function.
11648         (reload_combine_recognize_const_pattern): Use it here.  Allow
11649         substituting into a final add insn, and substituting into a memory
11650         reference in an insn that sets the reg.
11651
11652 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
11653
11654         * common.opt (o): Add MissingArgError.
11655         * doc/options.texi (MissingArgError): Document.
11656         * hooks.c (hook_bool_constcharptr_size_t_false): Remove.
11657         * hooks.h (hook_bool_constcharptr_size_t_false): Remove.
11658         * langhooks-def.h (LANG_HOOKS_MISSING_ARGUMENT): Remove.
11659         (LANG_HOOKS_INITIALIZER): Remove missing_argument hook initializer.
11660         * langhooks.h (struct lang_hooks): Remove missing_argument.
11661         * optc-gen.awk: Handle MissingArgError and output new structure
11662         field initializers.
11663         * opts.c (read_cmdline_option): Use missing_argument_error field
11664         instead of missing_argument langhook.
11665         * opts.h (struct cl_option): Add missing_argument_error field.
11666         * system.h (LANG_HOOKS_MISSING_ARGUMENT): Poison.
11667
11668 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
11669
11670         PR target/29090
11671         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Special-case the
11672         Darwin64 ABI, for zero-sized objects.
11673
11674 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
11675
11676         PR target/35491
11677         PR target/29090
11678
11679         Merge from Apple local 4.2.1.
11680         2005-05-11  Stan Shebs  <shebs@apple.com>
11681         Fix 64-bit varargs for Darwin (Radar 4028089).
11682         * config/rs6000/rs6000.h (rs6000_args): New field floats_in_gpr.
11683         * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
11684         Add argument, add case for 8-byte register half-filled with a float.
11685         (rs6000_darwin64_record_arg_advance_recurse): Detect and handle
11686         single-precision floats specially.
11687
11688 2010-07-27  Ira Rosen  <irar@il.ibm.com>
11689
11690         PR tree-optimization/44152
11691         * tree-vect-slp.c (vect_build_slp_tree): Collect nodes with
11692         complex numbers for further check.
11693         (vect_supported_load_permutation_p): Check nodes with
11694         complex numbers.
11695
11696 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
11697
11698         * langhooks-def.h (lhd_init_options, LANG_HOOKS_OPTION_LANG_MASK,
11699         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): New.
11700         (LANG_HOOKS_INIT_OPTIONS): Update default definition.
11701         (LANG_HOOKS_INITIALIZER): Add new hooks.
11702         * langhooks.c (lhd_init_options, lhd_complain_wrong_lang_p): New.
11703         * langhooks.h (struct lang_hooks): Add new hooks option_lang_mask
11704         and complain_wrong_lang_p.  Update init_options prototype.
11705         * c-objc-common.c (c_initialize_diagnostics): First call
11706         c_common_initialize_diagnostics.
11707         * c-objc-common.h (LANG_HOOKS_OPTION_LANG_MASK,
11708         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): Define.
11709         * coretypes.h (struct cl_option, struct cl_decoded_option): Declare.
11710         * hooks.c (hook_uint_uint_constcharptrptr_0): Remove.
11711         (hook_uint_void_0): New.
11712         * hooks.h (hook_uint_uint_constcharptrptr_0): Remove.
11713         (hook_uint_void_0): New.
11714         * opts-common.c (decode_cmdline_option,
11715         decode_cmdline_options_to_array): Also fill in canonical_option field.
11716         * opts.c (complain_wrong_lang): Use langhook to determine whether
11717         to complain instead of special-casing LTO.
11718         (decode_options): Separate lang_mask determination with
11719         option_lang_mask hook from call of init_options hook.
11720         * opts.h (struct cl_decoded_option): Add canonical_option.
11721
11722 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
11723
11724         PR tree-optimization/45083
11725         * tree-inline.c (add_local_variables): Also remap DECL_DEBUG_EXPR.
11726
11727 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
11728
11729         * postreload.c (reload_combine_recognize_const_pattern): Move test
11730         for limiting the insn movement to the right scope.
11731
11732         PR rtl-optimization/45051
11733         * reload1.c (delete_output_reload): Use refers_to_regno_p rather
11734         than reg_mentioned_p.
11735
11736 2010-07-26  Richard Henderson  <rth@redhat.com>
11737
11738         PR target/44132
11739         * tree-emutls.c: New file.
11740         * Makefile.in (OBJS-common): Add it.
11741         * tree-pass.h (pass_ipa_lower_emutls): Declare.
11742         * passes.c (init_optimization_passes): Add it.
11743
11744         * dwarf2out.c (loc_list_from_tree): If emutls.debug_form_tls_address,
11745         pull the control variable from DECL_VALUE_EXPR, not emutls_decl.
11746         * expr.c (emutls_var_address): Delete.
11747         (expand_expr_addr_expr_1, expand_expr_real_1): Don't use it.
11748         * output.h (SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL): Delete.
11749         (emutls_finish): Delete.
11750         * toplev.c (compile_file): Don't call it.
11751         * tree.h (emutls_decl): Delete.
11752         * varasm.c (emutls_htab, DECL_EMUTLS_VAR_P): Delete.
11753         (emutls_finish, emutls_finalize_control_var): Delete.
11754         (emutls_object_type): Move to tree-emutls.c.
11755         (EMUTLS_SEPARATOR, prefix_name, get_emutls_object_name,
11756         default_emutls_var_fields, get_emutls_object_type,
11757         get_emutls_init_templ_addr, emutls_decl, emutls_common_1
11758         default_emutls_var_init): Likewise.
11759         (get_variable_section): Don't special case emutls.
11760         (assemble_variable, do_assemble_alias, categorize_decl_for_section,
11761         default_elf_select_section, default_unique_section,
11762         default_encode_section_info): Likewise.
11763         * varpool.c (decide_is_variable_needed): Likewise.
11764         * gimple-iterator.c (update_call_edge_frequencies): New
11765         (gsi_insert_on_edge_immediate): Use it.
11766         (gsi_insert_seq_on_edge_immediate): Likewise.
11767         (gsi_commit_one_edge_insert): Likewise.
11768
11769         * config/i386/i386.c (x86_64_elf_select_section): Don't handle
11770         SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL.
11771         (x86_64_elf_unique_section): Likewise.
11772
11773 2010-07-26  Jan Hubicka  <jh@suse.cz>
11774
11775         * lto-streamer.h (struct lto_file_decl_data): Mark resolutions with
11776         GTY((skip)).
11777
11778 2010-07-26  Anatoly Sokolov  <aesok@post.ru>
11779
11780         * target.def (output_source_filename): New hook.
11781         * doc/tm.texi.in (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Document.
11782         * doc/tm.texi: Regenerate.
11783         * toplev.c (output_file_directive) Remove function.
11784         * toplev.h (output_file_directive) Remove.
11785         * output.h (default_asm_output_source_filename,
11786         output_file_directive): Declare.
11787         * varasm.h (default_asm_output_source_filename,
11788         output_file_directive): New functions.
11789
11790         * config/mips/mips.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
11791         * config/mips/mips-protos.h (mips_output_filename): Remove.
11792         * config/mips/mips.c (mips_output_filename): Make Static.
11793         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
11794
11795 2010-07-26  Richard Guenther  <rguenther@suse.de>
11796
11797         PR tree-optimization/43784
11798         * tree-nrv.c (dest_safe_for_nrv_p): It's not safe to NRV
11799         if the destination is used by the call.
11800
11801 2010-07-26  Richard Guenther  <rguenther@suse.de>
11802
11803         PR middle-end/45073
11804         * gimple-fold.c (gimplify_and_update_call_from_tree): Conditionalize
11805         SSA updating on being in SSA form.
11806
11807 2010-07-26  Richard Guenther  <rguenther@suse.de>
11808
11809         PR middle-end/45056
11810         * gimple-fold.c (fold_stmt_1): Also fold references in debug stmts.
11811
11812 2010-07-26  Richard Guenther  <rguenther@suse.de>
11813
11814         PR tree-optimization/45071
11815         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Always
11816         adjust op->opcode.
11817
11818 2010-07-26  Naveen.H.S  <naveen.S@kpitcummins.com>
11819
11820         * config/v850/lib1funcs.asm (save_r2_r31, return_r2_r31,
11821         save_r20_r31, return_r20_r31, save_r21_r31, return_r21_r31,
11822         save_r22_r31, return_r22_r31, save_r23_r31, return_r23_r31,
11823         save_r24_r31, return_r24_r31, save_r25_r31, return_r25_r31,
11824         save_r26_r31, return_r26_r31, save_r27_r31, return_r27_r31,
11825         save_r28_r31, return_r28_r31, save_r29_r31, return_r29_r31,
11826         save_r31, return_r31, save_interrupt, return_interrupt,
11827         save_all_interrupt, return_all_interrupt, L_save_r2_r31,
11828         L_return_interrupt, callt_return_interrupt, L_restore_all_interrupt,
11829         L_save_##START##_r31c, L_callt_save_r31c): Updated as per the
11830         new ABI requirements.
11831         (save_r6_r9, L_callt_save_r6_r9): Remove.
11832         * config/v850/predicates.md (even_reg_operand, disp23_operand,
11833         const_float_1_operand const_float_0_operand): New Predicates.
11834         (pattern_is_ok_for_prepare, pattern_is_ok_for_prologue,
11835         pattern_is_ok_for_epilogue): Update as per the ABI requirements.
11836         * config/v850/t-v850: Update multilibs for new target variants.
11837         (save_varargs, callt_save_varargs, callt_save_r6_r9): Remove.
11838         * config/v850/t-v850e: Likewise.
11839         * config/v850/v850.c (v850_issue_rate): New.
11840         (v850_strict_argument_naming): New.
11841         (function_arg): Modify to generate a different ABI.
11842         (print_operand): Update case 'z' to support float modes.
11843         (output_move_single): Modify to generate appropriate and better
11844         assembly.
11845         (v850_float_z_comparison_operator, v850_select_cc_mode,
11846         v850_float_nz_comparison_operator,  v850_gen_float_compare,
11847         v850_gen_compare): New functions to support comparison of float values.
11848         (ep_memory_offset): Add support for V850E2 targets.
11849         (INTERRUPT_FIXED_NUM, INTERRUPT_ALL_SAVE_NUM): Update.
11850         (INTERRUPT_REGPARM_NUM): Remove.
11851         (compute_register_save_size): Add extra case to save/restore long call.
11852         (use_prolog_function): New function to support prologue.
11853         (expand_prologue): Add support for V850E2 targets and modified
11854         as per the current ABI requirements.
11855         (expand_epilogue): Likewise.
11856         (construct_restore_jr): Modify based on TARGET_LONG_CALLS.
11857         (construct_save_jarl): Likewise.
11858         (construct_dispose_instruction): Update as per the current ABI
11859         requirements.
11860         (construct_prepare_instruction): Likewise.
11861         * config/v850/v850.h (TARGET_CPU_DEFAULT): Add target predefines.
11862         (TARGET_CPU_v850e2, TARGET_CPU_v850e2v3): Define
11863         (CPP_SPEC): Updated to support v850e2 targets.
11864         (STRICT_ALIGNMENT): Modified.
11865         (FIRST_PSEUDO_REGISTER): Updated to add even registers.
11866         (FIXED_REGISTERS): Likewise.
11867         (CALL_USED_REGISTERS): Likewise.
11868         (CONDITIONAL_REGISTER_USAGE): Updated.
11869         (HARD_REGNO_MODE_OK): Updated.
11870         (reg_class): Updated to add even registers.
11871         (REG_CLASS_NAMES): Likewise.
11872         (REG_CLASS_CONTENTS): Likewise.
11873         (REGNO_REG_CLASS): Updated for CC registers.
11874         (REG_CLASS_FROM_LETTER): Added support for even registers.
11875         (REGNO_OK_FOR_BASE_P): Updated for CC registers.
11876         (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM, LINK_POINTER_REGNUM,
11877         ARG_POINTER_REGNUM): Updated.
11878         (FUNCTION_ARG_ADVANCE): Define.
11879         (REG_PARM_STACK_SPACE): Update as per the current ABI requirements.
11880         (OUTGOING_REG_PARM_STACK_SPACE): Remove.
11881         (EXTRA_CONSTRAINT): Add new constraint 'W' for 23-bit displacement.
11882         (GO_IF_LEGITIMATE_ADDRESS): Updated.
11883         (SELECT_CC_MODE): Define.
11884         (REGISTER_NAMES): Updated to add psw and fcc registers.
11885         (ADDITIONAL_REGISTER_NAMES): Updated.
11886         (ASM_OUTPUT_ADDR_DIFF_ELT): Updated to support new targets.
11887         (JUMP_TABLES_IN_TEXT_SECTION): Updated.
11888         * config/v850/v850.md (define_constants): Define new constants.
11889         (type): Update store,bit1,macc,div,fpu and single attributes.
11890         (cpu): New attribute.
11891         (cc): Add set_z attribute.
11892         (unsign23byte_load, sign23byte_load, unsign23hword_load,
11893         sign23hword_load, 23word_load, 23byte_store, 23hword_store,
11894         23word_store): New instructions for 23-bit displacement load and store.
11895         (movqi_internal, movhi_internal): Update the attributes.
11896         (movsi, movsi_internal_v850e): Updated to support v850e2 targets.
11897         (movsi_internal_v850e, movsi_internal, movsf_internal): Update
11898         the attributes.
11899         (v850_tst1): Modified using CC_REGNUM.
11900         (tstsi): Remove.
11901         (cmpsi): Modified as define_expand from define_insn.
11902         (cmpsi_insn, cmpsf, cmpdf): New instructions.
11903         (addsi3, subsi3, negsi2, divmodsi4, udivmodsi4, divmodhi4,
11904         udivmodhi4, v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3,
11905         v850_set1_1, v850_set1_3, iorsi3, v850_not1_1, v850_not1_3, xorsi3,
11906         one_cmplsi2): Clobber the CC_REGNUM register.
11907         (v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3, v850_set1_1,
11908         v850_set1_2, v850_set1_3, iorsi3, v850_not1_1, v850_not1_2,
11909         v850_not1_3, xorsi3, one_cmplsi2): Update the attributes accordingly.
11910         (setf_insn, set_z_insn, set_nz_insn): New instructions for
11911         v850e2v3 target.
11912         (movsicc_normal_cc, movsicc_reversed_cc): New instructions.
11913         (movsicc, movsicc_normal, movsicc_reversed): Add support for V850E2
11914         targets.
11915         (sasf_1, sasf_2): Remove.
11916         (sasf): New instruction.
11917         (rotlhi3, rotlhi3_8, rotlsi3, rotlsi3_16): Update to support V850E2
11918         targets. CC_REGNUM register is clobbered and attributes are
11919         updated.
11920         (branch_z_normal, branch_z_invert, branch_nz_normal,
11921         branch_nz_invert): New branch related instructions.
11922         (jump): Updated the attributes.
11923         (switch): Update to support new targets. CC_REGNUM register is
11924         clobbered and attributes are updated.
11925         (call_internal_short, call_internal_long, call_value_internal_short,
11926         call_value_internal_long): Updated the attributes.
11927         (zero_extendhisi2, zero_extendqisi2): CC_REGNUM register is
11928         clobbered and attributes are updated.
11929         (extendhisi_insn, extendhisi2, extendqisi_insn, extendqisi2):
11930         Update to support new targets. CC_REGNUM register is clobbered.
11931         (ashlsi3_v850e2, lshrsi3_v850e2, ashrsi3_v850e2): New shift
11932         instructions.
11933         (lshrsi3, ashrsi3): CC_REGNUM register is clobbered and attributes
11934         are updated.
11935         (ffssi2, addsf3, adddf3, subsf3, subdf3, mulsf3, muldf3, divsf3,
11936         divdf3, minsf3, mindf3, maxsf3, maxdf3, abssf2, absdf2, negsf2,
11937         negdf2, sqrtsf2, sqrtdf2, truncsfsi2, truncdfsi2, floatsisf2,
11938         floatsidf2, extendsfdf2, extenddfsf2, recipsf2, recipdf2,
11939         rsqrtsf2, rsqrtdf2, maddsf4, msubsf4, nmaddsf4, nmsubsf4,
11940         cmpsf_le_insn, cmpsf_lt_insn, cmpsf_ge_insn, cmpsf_gt_insn,
11941         cmpsf_eq_insn, cmpsf_ne_insn, cmpdf_le_insn, cmpdf_lt_insn,
11942         cmpdf_ge_insn, cmpdf_gt_insn, cmpdf_eq_insn, cmpdf_ne_insn, trfsr,
11943         movsfcc, movdfcc, movsfcc_z_insn, movsfcc_nz_insn, movdfcc_z_insn,
11944         movdfcc_nz_insn, movedfcc_z_zero, movedfcc_nz_zero): New floating
11945         point instructions defined for V850e2v3 target.
11946         (callt_save_interrupt, callt_return_interrupt, return_interrupt):
11947         Add support for V850E2 targets and CC_REGNUM register is clobbered.
11948         (callt_save_all_interrupt, callt_restore_all_interrupt): Add
11949         support for new targets.
11950         * config/v850/v850-modes.def: New file.
11951         * config/v850/v850.opt(mstrict-align): Remove.
11952         (mno-strict-align, mjump-tables-in-data-section, mv850e2,
11953         mv850e2v3): New command line options for V850.
11954         * config.gcc: Update the newly added files.
11955         * doc/invoke.texi: Update the newly added command line options for
11956         V850 target.
11957
11958 2010-07-26  Richard Guenther  <rguenther@suse.de>
11959
11960         PR tree-optimization/45052
11961         * ipa-pure-const.c (check_stmt): Check volatileness.
11962
11963 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
11964
11965         PR target/44707
11966         * config/sparc/sparc-protos.h (sparc_legitimize_reload_address): New.
11967         * config/sparc/sparc.c: Include reload.h.
11968         (legitimize_tls_address): Rename into...
11969         (sparc_legitimize_tls_address): ...this.
11970         (legitimize_pic_address): Rename into...
11971         (sparc_legitimize_pic_address): ...this.
11972         (sparc_expand_move): Adjust to above renaming.
11973         (sparc_tls_referenced_p): Likewise.
11974         (sparc_legitimize_tls_address): Likewise.
11975         (sparc_legitimize_pic_address): Likewise.
11976         (sparc_legitimize_address): Likewise.
11977         (sparc_output_mi_thunk): Likewise.
11978         (sparc_legitimize_reload_address): New global function.  Recognize
11979         (lo_sum (high ...) ...) patterns generated by earlier passes.
11980         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Use above function.
11981
11982 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
11983
11984         PR target/44484
11985         * config/sparc/predicates.md (memory_reg_operand): Delete.
11986         * config/sparc/sync.md (sync_compare_and_swap): Minor tweaks.
11987         (*sync_compare_and_swap): Encode the address form in the pattern.
11988         (*sync_compare_and_swapdi_v8plus): Likewise.
11989
11990 2010-07-24  Gerald Pfeifer  <gerald@pfeifer.com>
11991
11992         * doc/install.texi (Specific, *-*-freebsd*): Adjust to recent changes.
11993         Streamline paragraph on compatibility with the system compiler.
11994
11995 2010-07-24  Steven Bosscher  <steven@gcc.gnu.org>
11996
11997         PR middle-end/45035
11998         * alias.c (true_dependence_1): Fix thinko in merge of old
11999         true_dependence and canon_true_dependence.
12000
12001 2010-07-23  Jan Hubicka  <jh@suse.cz>
12002
12003         * lto-streamer-out.c (write_symbol): Fix visibilities of external
12004         references.
12005
12006 2010-07-23  Le-Chun Wu  <lcwu@google.com>
12007
12008         * omega.c (omega_eliminate_redundant): Remove a self-assign statement.
12009         * tree-ssa-ccp.c (ccp_lattice_meet): Remove a self-assign statement
12010         and an unnecessary assignment.
12011         * dbxout.c (DEBUGGER_ARG_OFFSET): Change OFFSET to OFFSET+0 to avoid
12012         self-assign warning.
12013         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Remove
12014         unnecessary self-init.
12015
12016 2010-07-23  Richard Guenther  <rguenther@suse.de>
12017
12018         PR lto/43071
12019         * gcc.c (LINK_COMMAND_SPEC): Filter out -fcompare-debug
12020         for -flto and -fwhopr.
12021
12022 2010-07-23  Kai Tietz  <kai.tietz@onevision.com>
12023
12024         PR target/41943
12025         * Makefile.in (USER_H_INC_NEXT_PRE, USER_H_INC_NEXT_POST): New.
12026         (stmp-int-hdrs): Prefix/postfix headers by include_next.
12027         * config.gcc (user_headers_inc_next_pre): New.
12028         (user_headers_inc_next_post): Likewise.
12029         (*-w64-mingw*): Use for float.h post-fixing, and for
12030         stddef.h/stdarg.h pre-fixing by include_next.
12031         * configure.ac (user_headers_inc_next_post): New.
12032         (user_headers_inc_next_pre): New.
12033         * configure: Regenerated.
12034
12035 2010-07-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12036
12037         * configure.ac: Don't disable TLS on Solaris 8/9 by default
12038         Set tga_func for Solaris 2/x86 resp. SPARC.
12039         Remove duplicate parts of sparc*-sun-solaris2.* TLS check.
12040         (LIB_THREAD_LDFLAGS_SPEC): Define.
12041         (LIB_TLS_SPEC): Define.  Check for required Sun ld version.
12042         * configure: Regenerate.
12043         * config.in: Regenerate.
12044         * config/sol2.h (LIB_SPEC): Use LIB_THREAD_LDFLAGS_SPEC with
12045         -pthread, -threads, LIB_TLS_SPEC with -pthread.
12046         * doc/install.texi (Specific, *-*-solaris2*): Document use of
12047         alternate thread libraries on Solaris 8.
12048         Document TLS patch requirements.
12049         * doc/sourcebuild.texi (Add Options): Sort alphabetically.
12050         Document tls.
12051
12052         PR target/18788
12053         * config/sol2.h (LIB_SPEC): Link with thread libraries even with
12054         -shared.
12055
12056 2010-07-23  Jakub Jelinek  <jakub@redhat.com>
12057
12058         * tree.h (struct tree_base): Add nameless_flag bitfield.
12059         (TYPE_NAMELESS, DECL_NAMELESS): Define.
12060         * omp-low.c (create_omp_child_function, scan_omp_parallel,
12061         scan_omp_task, lower_omp_taskreg): Set DECL_NAMELESS and/or
12062         DECL_ARTIFICIAL where needed.
12063         * dwarf2out.c (dwarf2_name): Return NULL if DECL_NAMELESS.
12064         (type_tag): Return NULL if TYPE_NAMELESS or if TYPE_DECL
12065         has DECL_NAMELESS set.
12066
12067 2010-07-23  Martin Jambor  <mjambor@suse.cz>
12068
12069         PR tree-optimization/44915
12070         * ipa-cp.c (cgraph_gate_cp): Also check that optimize is true.
12071         * ipa-inline.c (cgraph_mark_inline_edge): Likewise.
12072         (analyze_function): Likewise.
12073
12074 2010-07-23  Martin Jambor  <mjambor@suse.cz>
12075
12076         PR tree-optimization/44914
12077         * tree-sra.c (sra_modify_function_body): Return true if CFG was
12078         changed, add purging dead eh edges.
12079         (ipa_sra_modify_function_body): Return true if CFG was changed,
12080         simplify purging dead eh edges.
12081         (modify_function): Return true if CFG was changed.
12082         (perform_intra_sra): Add TODO_cleanup_cfg to the return value if CFG
12083         was changed.
12084         (ipa_early_sra): Likewise.
12085
12086 2010-07-23  Jie Zhang  <jie@codesourcery.com>
12087
12088         PR target/44290
12089         * attribs.c (decl_attributes): Insert "noinline" and "noclone"
12090         if "naked".
12091         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
12092         false if ! tree_versionable_function_p.
12093
12094 2010-07-23  Nathan Froyd  <froydnj@codesourcery.com>
12095
12096         * builtins.def (BUILT_IN_ARGS_INFO): Remove.
12097         * ipa-pure-const.c (special_builtlin_state): Remove
12098         BUILT_IN_ARGS_INFO case.
12099         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
12100         * builtins.c (expand_builtin): Likewise.
12101         (expand_builtin_args_info): Remove.
12102         * doc/tm.texi (__builtin_args_info): Remove.
12103         (__builtin_next_arg): Adjust to not refer to __builtin_args_info.
12104         * doc/tm.text.in: Likewise.
12105
12106 2010-07-23  Richard Guenther  <rguenther@suse.de>
12107
12108         * lto-symtab.c (lto_symtab_merge): Use gtc_mode enum values.
12109         (lto_symtab_merge_decls_2): Likewise.
12110         * tree-ssa.c (useless_type_conversion_p): Likewise.
12111         * lto-streamer-in.c (input_gimple_stmt): Likewise.
12112         * gimple.c (gtc_visited2, gtc_ob2): Remove.
12113         (struct type_pair_d): Make same_p an array indexed by mode.
12114         Update comment.
12115         (lookup_type_pair): Update initialization.
12116         (struct sccs): Adjust same_p type.
12117         (gimple_types_compatible_p_1, gtc_visit, gimple_types_compatible_p):
12118         Adjust.
12119         (print_gimple_types_stats): Likewise.
12120         * gimple.h (enum gtc_mode): New.
12121         (gimple_types_compatible_p): Adjust prototype.
12122
12123 2010-07-23  Daniel Jacobowitz  <dan@codesourcery.com>
12124
12125         * dwarf2out.c (dwarf2out_frame_debug): Check for queued saves
12126         again after processing insn.
12127
12128 2010-07-23  Jie Zhang  <jie@codesourcery.com>
12129
12130         * tree-sra.c (ipa_sra_preliminary_function_checks): Dump
12131         proper words when !tree_versionable_function_p.
12132
12133 2010-07-23  Richard Guenther  <rguenther@suse.de>
12134
12135         PR tree-optimization/45037
12136         * tree-ssa-loop-ivopts.c (copy_ref_info): Handle NULL base.
12137
12138 2010-07-23  Jie Zhang  <jie@codesourcery.com>
12139
12140         * doc/extend.texi: Remove IP2K from the description of naked attribute.
12141         Add MCORE instead.
12142
12143 2010-07-10  Andi Kleen  <ak@linux.intel.com>
12144
12145         PR lto/44992
12146         * lto-opts.c (lto_write_options): Add NULL file_data argument to
12147         lto_get_section_name.
12148         * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
12149         * lto-streamer-out.c (produce_asm): Likewise.
12150         (copy_function): Likewise.
12151         (produce_symtab): Likewise.
12152         (produce_asm_for_decls): Likewise.
12153         * lto-streamer.c (lto_get_section_name): Add file_data argument.
12154         Rewrite to add random postfix to LTO sections.
12155         * lto-streamer.h (lto_file_decl_data): Add next, id, resolutions.
12156         (lto_get_section_name): Add file_data argument to prototype.
12157
12158 2010-07-10  Andi Kleen  <ak@linux.intel.com>
12159
12160         * lto-section-in.c (lto_section_name): Synchronize names
12161         with lto_get_section_name.
12162
12163 2010-07-10  Andi Kleen  <ak@linux.intel.com>
12164
12165         * lto-opts.c (lto_read_file_options): Check for missing section.
12166
12167 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
12168
12169         * ira.c (check_allocation): Correctly handle the case where an allocno
12170         with two objects was allocated to a single reg.
12171
12172 2010-07-22  Richard Sandiford  <rdsandiford@googlemail.com>
12173
12174         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): New function.
12175         (is_widening_mult_p): Likewise.
12176         (convert_to_widen): Use them.
12177         (convert_plusminus_to_widen): Likewise.  Handle fixed-point types as
12178         well as integer ones.
12179
12180 2010-07-22  Steven Bosscher  <steven@gcc.gnu.org>
12181
12182         * alias.c (true_dependence_1): New function, merged version of
12183         true_dependence and canon_true_dependence.
12184         (true_dependence): Simplify.
12185         (canon_true_dependence): Simplify.
12186
12187 2010-07-22  Richard Henderson  <rth@redhat.com>
12188
12189         PR target/45027
12190         * config/i386/i386.c (setup_incoming_varargs_64): Force the use
12191         of V4SFmode for the SSE saves; increase stack alignment if needed.
12192         (ix86_gimplify_va_arg): Don't increase stack alignment here.
12193
12194 2010-07-22  Jakub Jelinek  <jakub@redhat.com>
12195
12196         PR bootstrap/45028
12197         * recgprop.c (copyprop_hardreg_forward_1): If changed is true,
12198         call cprop_find_used_regs again via note_uses.
12199
12200 2010-07-22  Eric Botcazou  <ebotcazou@adacore.com>
12201
12202         * alias.c (get_alias_set): Fix formatting issues.
12203
12204 2010-07-22  Steve Ellcey  <sje@cup.hp.com>
12205
12206         PR middle-end/44878
12207         * stmt.c (expand_value_return):  Call promote_function_mode with
12208         a for_return argument of 2 when returning by reference.
12209
12210 2010-07-22  Dodji Seketeli  <dodji@redhat.com>
12211
12212         PR debug/45024
12213         * dwarf2out.c (scope_die_for): Don't fall back to the compilation
12214         unit DIE if we can find the scope DIE.
12215
12216 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
12217
12218         * ira-build.c (ira_create_object): New arg SUBWORD; all callers
12219         changed.  Initialize OBJECT_SUBWORD.
12220         (ira_create_allocno): Clear ALLOCNO_NUM_OBJECTS.
12221         (ira_create_allocno_objects): Renamed from ira_create_allocno_object;
12222         all callers changed.
12223         (merge_hard_reg_conflicts): Iterate over allocno subobjects.
12224         (finish_allocno): Likewise.
12225         (move_allocno_live_ranges, copy_allocno_live_ranges): Likewise.
12226         (remove_low_level_allocnos): Likewise.
12227         (update_bad_spill_attribute): Likewise.
12228         (setup_min_max_allocno_live_range_point): Likewise.
12229         (sort_conflict_id_map): Likewise.
12230         (ira_flattening): Likewise.  Use ior_hard_reg_conflicts.
12231         (ior_hard_reg_conflicts): New function.
12232         (ior_allocate_object_conflicts): Renamed first argument to OBJ.
12233         (compress_conflict_vecs): Iterate over objects, not allocnos.
12234         (ira_add_live_range_to_object): New function.
12235         (object_range_compare_func): Renamed from allocno_range_compare_func.
12236         All callers changed.
12237         (setup_min_max_conflict_allocno_ids): For allocnos with multiple
12238         subobjects, widen the min/max range of the lowest-order object to
12239         potentially include all other such low-order objects.
12240         * ira.c (ira_bad_reload_regno_1): Iterate over allocno subobjects.
12241         (check_allocation): Likewise.  Use more fine-grained tests for register
12242         conflicts.
12243         * ira-color.c (allocnos_have_intersected_live_ranges_p): Iterate over
12244         allocno subobjects.
12245         (assign_hard_reg): Keep multiple sets of conflicts.  Make finer-grained
12246         choices about which bits to set in each set.  Don't use
12247         ira_hard_reg_not_in_set_p, perform a more elaborate test for conflicts
12248         using the multiple sets we computed.
12249         (push_allocno_to_stack): Iterate over allocno subobjects.
12250         (all_conflicting_hard_regs_coalesced): New static function.
12251         (setup_allocno_available_regs_num): Use it.
12252         (setup_allocno_left_conflicts_size): Likewise.  Iterate over allocno
12253         subobjects.
12254         (coalesced_allocno_conflict): Test subobject 0 in each allocno.
12255         (setup_allocno_priorities): Divide ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
12256         by ALLOCNO_NUM_OBJECTS.
12257         (calculate_spill_cost): Likewise.
12258         (color_pass): Express if statement in a more normal way.
12259         (ira_reassign_conflict_allocnos): Iterate over allocno subobjects.
12260         (slot_coalesced_allocno_live_ranges_intersect_p): Likewise.
12261         (setup_slot_coalesced_allocno_live_ranges): Likewise.
12262         (allocno_reload_assign): Likewise.
12263         (ira_reassign_pseudos): Likewise.
12264         (fast_allocation): Likewise.
12265         * ira-conflicts.c (build_conflict_bit_table): Likewise.
12266         (print_allocno_conflicts): Likewise.
12267         (ira_build_conflicts): Likewise.
12268         (allocnos_conflict_for_copy_p): Renamed from allocnos_conflict_p.  All
12269         callers changed.  Test subword 0 of each allocno for conflicts.
12270         (build_object_conflicts): Renamed from build_allocno_conflicts.  All
12271         callers changed.  Iterate over allocno subobjects.
12272         * ira-emit.c (modify_move_list): Iterate over allocno subobjects.
12273         * ira-int.h (struct ira_allocno): New member: num_objects.
12274         Rename object to objects and change it into an array.
12275         (ALLOCNO_OBJECT): Add new argument N.
12276         (ALLOCNO_NUM_OBJECTS, OBJECT_SUBWORD): New macros.
12277         (ira_create_allocno_objects): Renamed from ira_create_allocno_object.
12278         (ior_hard_reg_conflicts): Declare.
12279         (ira_add_live_range_to_object): Declare.
12280         (ira_allocno_object_iterator): New.
12281         (ira_allocno_object_iter_init, ira_allocno_object_iter_cond): New.
12282         (FOR_EACH_ALLOCNO_OBJECT): New macro.
12283         * ira-lives.c (objects_live): Renamed from allocnos_live; all
12284         uses changed.
12285         (allocnos_processed): New sparseset.
12286         (make_object_born): Renamed from make_allocno_born; take an
12287         ira_object_t argument.  All callers changed.
12288         (make_object_dead): Renamed from make_allocno_dead; take an
12289         ira_object_t argument.  All callers changed.
12290         (update_allocno_pressure_excess_length): Take an ira_obejct_t argument.
12291         All callers changed.
12292         (mark_pseudo_regno_live): Iterate over allocno subobjects.
12293         (mark_pseudo_regno_dead): Likewise.
12294         (mark_pseudo_regno_subword_live, mark_pseudo_regno_subword_dead): New
12295         functions.
12296         (mark_ref_live): Detect subword accesses and call
12297         mark_pseudo_regno_subword_live as appropriate.
12298         (mark_ref_dead): Likewise for mark_pseudo_regno_subword_dead.
12299         (process_bb_nodes_live): Deal with object-related updates first; set
12300         and test bits in allocnos_processed to avoid computing allocno
12301         statistics more than once.
12302         (create_start_finish_chains): Iterate over objects, not allocnos.
12303         (print_object_live_ranges): New function.
12304         (print_allocno_live_ranges): Use it.
12305         (ira_create_allocno_live_ranges): Allocate and free allocnos_processed
12306         and objects_live.
12307
12308 2010-07-22  Richard Guenther  <rguenther@suse.de>
12309
12310         PR lto/42451
12311         * gimple.c (gtc_next_dfs_num): New global.
12312         (struct sccs): Make value a union, add integer same_p member.
12313         (gtc_visit): New function.
12314         (gimple_types_compatible_p_1): New function, split out from ...
12315         (gimple_types_compatible_p): ... here.  Start a DFS walk here.
12316         (iterative_hash_gimple_type): Adjust for sccs change.
12317
12318 2010-07-22  Martin Jambor  <mjambor@suse.cz>
12319
12320         PR tree-optimization/44891
12321         * tree-sra.c: Include gimple-pretty-print.h.
12322         (replace_uses_with_default_def_ssa_name): Renamed to
12323         get_repl_default_def_ssa_name, return the new SSA name instead of
12324         replacing the old one.
12325         (sra_modify_assign): Dump a message when removing a load, if the LHS
12326         is an SSA_NAME, do not do any propagation, just set the RHS to a
12327         default definition SSA NAME, type convert if necessary.
12328         * Makefile.in (tree-sra.o): Add gimple-pretty-print.h to dependencies.
12329
12330 2010-07-22  Richard Guenther  <rguenther@suse.de>
12331
12332         PR tree-optimization/45017
12333         * tree-ssa-sccvn.c (vn_reference_eq): Make sure we honor
12334         TYPE_PRECISION of integral types in addition to size.
12335
12336 2010-07-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
12337
12338         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Default to GLIBC
12339         when no C library is specified.
12340
12341 2010-07-22  Martin Jambor  <mjambor@suse.cz>
12342
12343         * ipa-prop.h (struct ipa_node_params): Updated comment.
12344         (struct ipa_edge_args): Likewise.
12345         * Makefile.in (ipa-prop.o): Remove bogus $(GIMPLE_FOLD_H) dependency.
12346
12347 2010-07-22  Martin Jambor  <mjambor@suse.cz>
12348
12349         * cgraphunit.c (verify_edge_count_and_frequency): New function.
12350         (verify_cgraph_node): Verify frequencies of indirect edges.
12351         * tree-inline.c (tree_function_versioning): Update frequencies of
12352         indirect edges.
12353
12354 2010-07-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12355
12356         PR target/43698
12357         * config/arm/arm.md: Split arm_rev into *arm_rev and *thumb1_rev.
12358         Set *arm_rev to be predicable.
12359
12360 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
12361
12362         * config/darwin.h (LINK_COMMAND_SPEC): Split into...
12363         (LINK_COMMAND_SPEC_A): New.
12364         (DSYMUTIL): New.
12365         (DSYMUTIL_SPEC): New.
12366         * config/darwin9.h (LINK_COMMAND_SPEC): Remove.
12367         (DSYMUTIL_SPEC): Update for darwin >= 9 requirements.
12368
12369 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
12370
12371         * calls.c (load_register_parameters): Move check for zero
12372         sized items so that only the call to
12373         mem_overlaps_already_clobbered_arg_p () is protected.
12374
12375 2010-07-22  Jan Hubicka  <jh@suse.cz>
12376
12377         * ipa-pure-const.c (varying_state): Break out from ...
12378         (get_function_state): ... here; always return varying_state
12379         when state would be NULL otherwise.
12380         (remove_node_data): Do not free varying state.
12381
12382 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
12383
12384         PR bootstrap/44970
12385         PR middle-end/45009
12386         * postreload.c: Include "target.h".
12387         (reload_combine_closest_single_use): Don't take DEBUG_INSNs
12388         into account.
12389         (fixup_debug_insns): Don't copy the rtx.
12390         (reload_combine_recognize_const_pattern): DEBUG_INSNs can't have uses.
12391         Don't copy when replacing.  Call fixup_debug_insns in the case where
12392         we merged one add with another.
12393         (reload_combine_recognize_pattern): Fail if there aren't any uses.
12394         Try harder to determine whether we're picking a valid index register.
12395         Don't set store_ruid for an insn we're going to scan in the
12396         next iteration.
12397         (reload_combine): Remove unused code.
12398         (reload_combine_note_use): When updating use information for
12399         an old insn, ignore a use that occurs after store_ruid.
12400         * Makefile.in (postreload.o): Update dependencies.
12401
12402         * function.c (record_hard_reg_sets): Restrict the previous change
12403         to cases where the incoming nominal mode is the same as the
12404         incoming promoted mode and everything happens in MODE_INT.
12405
12406 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
12407
12408         PR debug/45015
12409         * var-tracking.c (adjust_mems): Ignore ASM_OPERANDS with non-zero
12410         ASM_OPERANDS_OUTPUT_IDX.
12411         (adjust_insn): For inline asm with multiple sets ensure first
12412         ASM_OPERANDS vectors are used by all following ASM_OPERANDS in
12413         the insn.
12414
12415 2010-07-21  Richard Henderson  <rth@redhat.com>
12416
12417         * config/i386/i386.c (setup_incoming_varargs_64): Emit a simple
12418         comparison for avoiding xmm register saves.  Emit the xmm register
12419         saves explicitly.
12420         * config/i386/i386.md (UNSPEC_SSE_PROLOGUE_SAVE): Remove.
12421         (UNSPEC_SSE_PROLOGUE_SAVE_LOW): Remove.
12422         (sse_prologue_save, sse_prologue_save_insn1, sse_prologue_save_insn):
12423         Remove patterns and the associated splitters.
12424
12425 2010-07-21  Changpeng Fang  <changpeng.fang@amd.com>
12426
12427         * tree-ssa-loop-prefetch.c (analyze_ref): Strip off the real
12428         and imagine parts of a complex, so that they can have the same
12429         base and fall into the same group.
12430
12431 2010-07-21  Richard Guenther  <rguenther@suse.de>
12432
12433         PR lto/45018
12434         * tree.c (find_decls_types_r): Do not follow TREE_CHAIN
12435         of TYPE_DECLs.  Do not follow TYPE_NEXT_VARIANT,
12436         TYPE_NEXT_PTR_TO, nor TYPE_NEXT_REF_TO or TYPE_CANONICAL.
12437
12438 2010-07-21  Martin Jambor  <mjambor@suse.cz>
12439
12440         PR tree-optimization/44900
12441         * tree-sra.c (load_assign_lhs_subreplacements): Updated comments.
12442         (sra_modify_assign): Move gsi to the next statmenent unconditionally.
12443
12444 2010-07-21  Bernd Schmidt  <bernds@codesourcery.com>
12445
12446         PR middle-end/44738
12447         * tree-ssa.c (warn_uninit): Avoid emitting an unnecessary message.
12448
12449 2010-07-21  Richard Guenther  <rguenther@suse.de>
12450
12451         PR middle-end/45013
12452         * tree-ssa.c (useless_type_conversion_p): Dispatch to
12453         gimple_types_compatible_p only when in lto.
12454         * gimple.c (gimple_types_compatible_p): Use canonical types
12455         to speed up comparison.
12456
12457 2010-07-21  Richard Guenther  <rguenther@suse.de>
12458
12459         * tree-flow.h (referenced_var): Move define ...
12460         * tree-flow-inline.h (referenced_var): ... here as an inline
12461         function.  Assert here ...
12462         * tree-dfa.c (referenced_var_lookup): ... instead of here.
12463         * tree-ssa.c (maybe_optimize_var): Check if the variable
12464         is in referenced vars.
12465         (execute_update_addresses_taken): Remove old broken check.
12466         * gimple-pretty-print.c (pp_points_to_solution): Use
12467         referenced_var_lookup.
12468         * tree-into-ssa.c (dump_decl_set): Likewise.
12469
12470 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
12471
12472         PR debug/45003
12473         * var-tracking.c (reverse_op): Also handle {SIGN,ZERO}_EXTEND of a MEM.
12474         * dwarf2out.c (loc_descriptor): Don't handle SIGN_EXTEND nor
12475         ZERO_EXTEND here.
12476
12477 2010-07-20  Richard Henderson  <rth@redhat.com>
12478
12479         * vxworks.c (vxworks_emutls_var_fields): Pass locus to build_decls.
12480
12481 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
12482
12483         * config/arm/arm.md (thumb1_addsi3): Add alternative and split for
12484         computing the sum of the stack pointer and a large constant.
12485         * config/arm/constraints.md (M): Remove superfluous parentheses.
12486         (Pc): New constraint.
12487
12488 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
12489
12490         PR debug/45006
12491         * cfgexpand.c (expand_debug_expr): Only look at TYPE_UNSIGNED of
12492         operand's type if exp is tcc_unary class tree.
12493
12494 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
12495
12496         * config/rs6000/rs6000.md (abs<mode>2_isel, nabs<mode>2_isel):
12497         Reverse sense of if_then_else condition.
12498
12499 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
12500
12501         * config/rs6000/rs6000.opt (mblock-move-inline-limit): New option.
12502         * config/rs6000/rs6000.c (rs6000_override_options): Set
12503         rs6000_block_move_inline_limit appropriately.
12504         (expand_block_move): Use rs6000_block_move_inline_limit.
12505         * doc/invoke.texi (mblock-move-inline-limit): Document.
12506
12507 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
12508
12509         * postreload.c (fixup_debug_insns): Remove arg REGNO.  New args
12510         FROM and TO.  All callers changed.  Don't look for tracked uses,
12511         just scan the RTL for DEBUG_INSNs and substitute.
12512         (reload_combine_recognize_pattern): Call fixup_debug_insns.
12513         (reload_combine): Ignore DEBUG_INSNs.
12514
12515 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
12516
12517         * var-tracking.c (vt_expand_loc, vt_expand_loc_dummy): Bump maximum
12518         depth to 8 from 5.
12519
12520         PR debug/45003
12521         * cfgexpand.c (expand_debug_expr) <case NOP_EXPR>: Use ZERO_EXTEND
12522         or SIGN_EXTEND depending on TYPE_UNSIGNED of the operand's type
12523         instead of the result's type.
12524
12525 2010-07-20  Richard Guenther  <rguenther@suse.de>
12526
12527         PR tree-optimization/44977
12528         * tree-ssa-dom.c (propagate_rhs_into_lhs): Do not create invalid
12529         SSA form.
12530
12531 2010-07-20  Richard Guenther  <rguenther@suse.de>
12532
12533         * lto-symtab.c (lto_symtab_merge): Use gimple_types_compatible_p.
12534         (lto_symtab_merge_decls_2): Likewise.
12535         * gimple.h (gimple_types_compatible_p): Declare.
12536         * gimple.c (gimple_queue_type_fixup): Remove.
12537         (gimple_fixup_complete_and_incomplete_subtype_p): Likewise.
12538         (gimple_compatible_complete_and_incomplete_type_p): New function.
12539         (gimple_types_compatible_p): Adjust.
12540         (gimple_register_type): Remove type fixup code.
12541         (print_gimple_types_stats): Adjust.
12542         (free_gimple_type_tables): Likewise.
12543         * lto-streamer-in.c (input_gimple_stmt): Use gimple_types_compatible_p.
12544         * tree-ssa.c (useless_type_conversion_p): Likewise.
12545
12546 2010-07-20  Richard Guenther  <rguenther@suse.de>
12547
12548         PR middle-end/44971
12549         PR middle-end/44988
12550         * tree-ssa.c (maybe_optimize_var): New function split out from ...
12551         (execute_update_addresses_taken): ... here.
12552         (non_rewritable_mem_ref_base): Likewise.
12553         (execute_update_addresses_taken): Do not iterate over all referenced
12554         vars but just all local decls and parms.
12555         Properly check call and asm arguments and rewrite call arguments.
12556
12557 2010-07-20  Maxim Kuvyrkov  <maxim@codesourcery.com>
12558
12559         * config.gcc (LIBC_GLIBC, LIBC_UCLIBC, LIBC_BIONIC): Move constants
12560         to top level.
12561         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Move Android-specific
12562         definitions ...
12563         * config/linux-android.h (ANDROID_TARGET_OS_CPP_BUILTINS): ... here.
12564         New macro.
12565         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Use it.
12566
12567 2010-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
12568
12569         * gengtype.c (start_root_entry): New function, split out from
12570         write_root.  Check whether V is null and raise an error if so.
12571         (write_field_root): Check for V being null.  Don't raise an error here;
12572         set V to null instead.
12573         (write_root): Update comment above function.  Use start_root_entry.
12574
12575 2010-07-19  Xinliang David Li  <davidxl@google.com>
12576
12577         PR testsuite/44932
12578         * tree-ssa-uninit.c (collect_phi_def_edges): Fix bug collecting
12579         def edges.
12580         (find_uninit_use): Add dump.
12581         (is_use_properly_guarded): Ditto.
12582         (warn_uninitialized_phi): Ditto.
12583         (execute_late_warn_uninitialized): Ditto.
12584
12585 2010-07-19  Richard Guenther  <rguenther@suse.de>
12586
12587         PR middle-end/44941
12588         * expr.c (emit_block_move_hints): Move zero size check first.
12589         Move asserts to more useful places.
12590         * calls.c (load_register_parameters): Check for zero size.
12591
12592 2010-07-19  Richard Henderson  <rth@redhat.com>
12593
12594         * tree-optimize.c (execute_all_early_local_passes): New.  Change
12595         cgraph_state here ...
12596         (execute_early_local_optimizations): ... not here.  Remove.
12597         (pass_early_local_passes, pass_all_early_optimizations): Update.
12598
12599 2010-07-19  Bernd Schmidt  <bernds@codesourcery.com>
12600
12601         * postreload.c (reload_combine_closest_single_use): Ignore the
12602         number of uses for DEBUG_INSNs.
12603         (fixup_debug_insns): New static function.
12604         (reload_combine_recognize_const_pattern): Use it.  Don't let the
12605         main loop be affected by DEBUG_INSNs.
12606         Really disallow moving adds past a jump insn.
12607         (reload_combine_recognize_pattern): Don't update use_ruid here.
12608         (reload_combine_note_use): Do it here.
12609         (reload_combine): Use control_flow_insn_p rather than JUMP_P.
12610
12611 2010-07-19  Bingfeng Mei  <bmei@broadcom.com>
12612
12613         * ddg.c (create_ddg): Exclude nodes of debug_insn in counting nodes
12614         of a loop.
12615         * loop-doloop.c (doloop_condition_get): Skip possible debug_insn.
12616
12617 2010-07-19  Iain Sandoe  <iains@gcc.gnu.org>
12618
12619         * config/i386/darwin.h: Define darwin_emit_branch_islands.
12620         (TARGET_MACHO_BRANCH_ISLANDS): New.
12621         (FUNCTION_PROFILER): Use TARGET_MACHO_BRANCH_ISLANDS.
12622         * config/i386/i386.h (TARGET_MACHO_BRANCH_ISLANDS): Define a
12623         default value.
12624         * config/i386/i386.c (output_pic_addr_const): Do not emit
12625         branch islands unless TARGET_MACHO_BRANCH_ISLANDS is set.
12626         (x86_output_mi_thunk): Adjust symbol creation.
12627         * config/rs6000/darwin.h: Define darwin_emit_branch_islands.
12628         Remove out of date comment.
12629         * config/rs6000/rs6000.c (print_operand): Adjust symbol.
12630         (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
12631         (DARWIN_GENERATE_ISLANDS): Ditto.
12632         (output_call):  Do not emit branch islands unless
12633         darwin_emit_branch_islands is set.
12634         * config/darwin.c: Declare darwin_emit_branch_islands.
12635         (machopic_indirect_data_reference): Do not emit unless
12636         darwin_emit_branch_islands is set.
12637         (darwin_override_options): Set darwin_emit_branch_islands
12638         where it is needed.
12639         * config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
12640
12641 2010-07-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12642
12643         * doc/sourcebuild.texi (Effective-Target Keywords): Document
12644         sse_runtime, sse2_runtime.
12645
12646 2010-07-18  Richard Sandiford  <rdsandiford@googlemail.com>
12647
12648         * config/mips/mips.c (mips16_build_call_stub): Zero-extend the
12649         low half of a single-register SCmode return value before ORing
12650         it with the high half.
12651         * config/mips/mips16.S (MERGE_GPRf): Likewise.
12652
12653 2010-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12654
12655         PR target/44805
12656         * config/pa/pa.h (CONSTANT_ALIGNMENT): Align strings to BITS_PER_WORD
12657         on all targets.
12658
12659 2010-07-17  Bernd Schmidt  <bernds@codesourcery.com>
12660
12661         PR target/42235
12662         * postreload.c (reload_cse_move2add): Return bool, true if anything.
12663         changed.  All callers changed.
12664         (move2add_use_add2_insn): Likewise.
12665         (move2add_use_add3_insn): Likewise.
12666         (reload_cse_regs): If reload_cse_move2add changed anything, rerun
12667         reload_combine.
12668         (RELOAD_COMBINE_MAX_USES): Bump to 16.
12669         (last_jump_ruid): New static variable.
12670         (struct reg_use): New members CONTAINING_MEM and RUID.
12671         (reg_state): New members ALL_OFFSETS_MATCH and REAL_STORE_RUID.
12672         (reload_combine_split_one_ruid, reload_combine_split_ruids,
12673         reload_combine_purge_insn_uses, reload_combine_closest_single_use
12674         reload_combine_purge_reg_uses_after_ruid,
12675         reload_combine_recognize_const_pattern): New static functions.
12676         (reload_combine_recognize_pattern): Verify that ALL_OFFSETS_MATCH
12677         is true for our reg and that we have available index regs.
12678         (reload_combine_note_use): New args RUID and CONTAINING_MEM.  All
12679         callers changed.  Use them to initialize fields in struct reg_use.
12680         (reload_combine): Initialize last_jump_ruid.  Be careful when to
12681         take PREV_INSN of the scanned insn.  Update REAL_STORE_RUID fields.
12682         Call reload_combine_recognize_const_pattern.
12683         (reload_combine_note_store): Update REAL_STORE_RUID field.
12684
12685 2010-07-16  Jason Merrill  <jason@redhat.com>
12686
12687         * Makefile.in (opts-common.o): Depend on options.h.
12688
12689 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
12690
12691         * tree.c (build_common_builtin_nodes): Use build_function_type_list
12692         instead of build_function_type.
12693         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
12694         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
12695
12696 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
12697
12698         * config/rs6000/rs6000.c (rs6000_emit_sISEL): Let rs6000_emit_int_cmove
12699         do all the work.
12700         (rs6000_emit_int_cmove): Use function pointers for insn generation.
12701         Don't force values into registers unnecessarily.
12702         (output_isel): Assert that we're not given conditions we can't handle.
12703         Delete corresponding code.
12704         * config/rs6000/rs6000.md (isel_signed_<mode>): Use
12705         scc_comparison_operator constraint.  Permit 0 for the consequent
12706         operand.  Permit any GPR for the alternative operand.
12707         (isel_unsigned_<mode>): Likewise.
12708
12709 2010-07-16  Jakub Jelinek  <jakub@redhat.com>
12710
12711         PR target/44942
12712         * config/i386/i386-protos.h (ix86_function_arg_boundary): Change second
12713         argument to const_tree.
12714         * config/i386/i386.c (function_arg_advance): If padding needs to be
12715         inserted before argument, increment cum->words by number of padding
12716         words as well.
12717         (contains_aligned_value_p): Change argument to const_tree.
12718         (ix86_function_arg_boundary): Change second argument to const_tree.
12719
12720 2010-07-16  Bernd Schmidt  <bernds@codesourcery.com>
12721
12722         PR target/42235
12723         * function.c (record_hard_reg_sets): New static function.
12724         (assign_parm_setup_reg): If an optab for extending exists and the
12725         generated code clobbbers no hard regs, emit the insn directly and
12726         create a REG_EQUIV note.
12727
12728 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
12729
12730         * c-decl.c (detect_field_duplicates): Use DECL_CHAIN insted of
12731         TREE_CHAIN.
12732         * c-typeck.c (push_init_level): Likewise.
12733         (process_init_element): Likewise.
12734
12735 2010-07-15  Anatoly Sokolov  <aesok@post.ru>
12736
12737         * tree.h (enum tree_index): Add TI_INTEGER_THREE.
12738         (integer_three_node): Add.
12739         * tree.c (build_common_tree_nodes_2): Use integer_type_node insead of
12740         NULL_TREE in build_int_cst calls. Initialize the integer_three_node.
12741         * builtins.c (expand_builtin_prefetch): Use common tree nodes instead
12742         of call build_int_cst.
12743         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ditto.
12744         * tree-ssa-loop-ivopts.c (idx_find_step): Ditto.
12745         (find_interesting_uses_address): Ditto.
12746         * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Ditto.
12747         * tree-eh.c (lower_eh_constructs_2): Ditto.
12748         * tree-vect-loop.c (get_initial_def_for_induction): Ditto.
12749         * c-typeck.c (really_start_incremental_init, push_init_level): Ditto.
12750         * expmed.c (expand_divmod): Ditto.
12751         * tree-mudflap.c (mx_register_decls): Ditto.
12752         * varasm.c (array_size_for_constructor): Ditto.
12753         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
12754         * c-parser.c (c_parser_postfix_expression): Ditto.
12755
12756 2010-07-15  Bernd Schmidt  <bernds@codesourcery.com>
12757
12758         * postreload.c (last_label_ruid, first_index_reg, last_index_reg):
12759         New static variables.
12760         (reload_combine_recognize_pattern): New static function, broken out
12761         of reload_combine.
12762         (reload_combine): Use it.  Only initialize first_index_reg and
12763         last_index_reg once.
12764
12765 2010-07-15  Richard Henderson  <rth@redhat.com>
12766
12767         * cgraphunit.c (cgraph_build_static_cdtor): Clear current_function_decl
12768         when done.
12769
12770 2010-07-15  Jan Hubicka  <jh@suse.cz>
12771
12772         * lto-symtab.c (lto_symtab_resolve_symbols): Remove hack handling
12773         comdats for broken gold.
12774         (lto_sy mtab_merge_decls_1): Set used_from_object_file correctly.
12775
12776 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
12777
12778         * tree.h (TREE_RTL_OPERAND_CHECK): Delete.
12779
12780 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
12781
12782         * tree.h (DECL_CHAIN): Define.
12783         * alias.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
12784         * c-decl.c: Likewise.
12785         * c-parser.c: Likewise.
12786         * c-typeck.c: Likewise.
12787         * cfgexpand.c: Likewise.
12788         * cgraph.c: Likewise.
12789         * cgraphunit.c: Likewise.
12790         * combine.c: Likewise.
12791         * config/alpha/alpha.c: Likewise.
12792         * config/arm/arm.c: Likewise.
12793         * config/frv/frv.c: Likewise.
12794         * config/i386/i386.c: Likewise.
12795         * config/i386/winnt-cxx.c: Likewise.
12796         * config/ia64/ia64.c: Likewise.
12797         * config/iq2000/iq2000.c: Likewise.
12798         * config/mep/mep.c: Likewise.
12799         * config/mips/mips.c: Likewise.
12800         * config/pa/som.h: Likewise.
12801         * config/rs6000/rs6000.c: Likewise.
12802         * config/s390/s390.c: Likewise.
12803         * config/sh/sh.c: Likewise.
12804         * config/sh/symbian-cxx.c: Likewise.
12805         * config/sparc/sparc.c: Likewise.
12806         * config/spu/spu.c: Likewise.
12807         * config/stormy16/stormy16.c: Likewise.
12808         * config/vxworks.c: Likewise.
12809         * config/xtensa/xtensa.c: Likewise.
12810         * coverage.c: Likewise.
12811         * dbxout.c: Likewise.
12812         * dwarf2out.c: Likewise.
12813         * emit-rtl.c: Likewise.
12814         * expr.c: Likewise.
12815         * function.c: Likewise.
12816         * gimple-low.c: Likewise.
12817         * gimple-pretty-print.c: Likewise.
12818         * gimplify.c: Likewise.
12819         * integrate.c: Likewise.
12820         * ipa-inline.c: Likewise.
12821         * ipa-prop.c: Likewise.
12822         * ipa-split.c: Likewise.
12823         * ipa-struct-reorg.c: Likewise.
12824         * ipa-type-escape.c: Likewise.
12825         * langhooks.c: Likewise.
12826         * lto-cgraph.c: Likewise.
12827         * omp-low.c: Likewise.
12828         * stor-layout.c: Likewise.
12829         * tree-cfg.c: Likewise.
12830         * tree-complex.c: Likewise.
12831         * tree-dfa.c: Likewise.
12832         * tree-dump.c: Likewise.
12833         * tree-inline.c: Likewise.
12834         * tree-mudflap.c: Likewise.
12835         * tree-nested.c: Likewise.
12836         * tree-object-size.c: Likewise.
12837         * tree-pretty-print.c: Likewise.
12838         * tree-sra.c: Likewise.
12839         * tree-ssa-live.c: Likewise.
12840         * tree-ssa-loop-niter.c: Likewise.
12841         * tree-ssa-math-opts.c: Likewise.
12842         * tree-ssa-reassoc.c: Likewise.
12843         * tree-ssa-sccvn.c: Likewise.
12844         * tree-ssa-structalias.c: Likewise.
12845         * tree-tailcall.c: Likewise.
12846         * tree-vrp.c: Likewise.
12847         * tree.c: Likewise.
12848         * var-tracking.c: Likewise.
12849         * varasm.c: Likewise.
12850
12851 2010-07-15  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12852
12853         PR target/44877
12854         * config/spu/spu.c (spu_expand_builtin_1): Allow references
12855         (as well as pointers) as argument to mask_for_load builtins.
12856
12857 2010-07-15  Richard Guenther  <rguenther@suse.de>
12858
12859         PR tree-optimization/44946
12860         * tree-ssa-structalias.c (get_constraint_for_component_ref): Deal
12861         with accessing only padding properly.
12862
12863 2010-07-15  Jan Hubicka  <jh@suse.cz>
12864
12865         * ipa.c (function_and_variable_visibility): Variables marked as used
12866         should not be localized.
12867
12868 2010-07-15  Jan Hubicka  <jh@suse.cz>
12869
12870         * cgraph.c: Include lto-streamer.h
12871         (change_decl_assembler_name): Work when assembler name hash is at place.
12872         (cgraph_make_decl_local): When localizing COMDAT symbol at WPA stage,
12873         be sure to rename it to avoid name clash.
12874         * ipa.c (cgraph_externally_visible_p, function_and_variable_visibility):
12875         Localize hidden symbols only when locally defined.
12876
12877 2010-07-15  Uros Bizjak  <ubizjak@gmail.com>
12878
12879         * config/i386/i386.h (SHIFT_COUNT_TRUNCATED): Expand comment.
12880
12881 2010-07-15  Magnus Granberg  <zorry@gentoo.org>
12882             Kevin F. Quinn  <kevquinn@gentoo.org>
12883
12884         * builtins.c (expand_builtin_init_trampoline): Warn for -Wtrampolines.
12885         * common.opt: Add -Wtrampolines.
12886         * doc/invoke.texi: Add -Wtrampolines.
12887
12888 2010-07-15  Jie Zhang  <jie@codesourcery.com>
12889
12890         * config/arm/cortex-a8.md (cortex_a8_load_store_2): Reserve
12891         cortex_a8_issue_ls.
12892
12893 2010-07-15  Dave Korn  <dave.korn.cygwin@gmail.com>
12894
12895         * config/i386/cygwin.h (LIBGCJ_SONAME): Update.
12896         * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.
12897
12898 2010-07-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12899
12900         * config/spu/spu.c (reg_names): Remove prototype.
12901         (call_used_regs): Likewise.
12902
12903 2010-07-14  Dave Korn  <dave.korn.cygwin@gmail.com>
12904
12905         * config/i386/cygming-crtend.c (__FRAME_END__): Replace attribute
12906         "unused" with attribute "used".
12907         (__JCR_END__): Likewise.
12908         * config/i386/cygming-crtbegin.c (__EH_FRAME_BEGIN__): Add missing
12909         "used" attribute.
12910         (__JCR_LIST__): Replace attribute "unused" with attribute "used".
12911
12912 2010-07-14  Richard Guenther  <rguenther@suse.de>
12913
12914         * lto-streamer-in.c (maybe_fixup_handled_component): Remove.
12915         (maybe_fixup_decls): Likewise.
12916         (input_gimple_stmt): Do not fixup anything.
12917         * lto-streamer-out.c (output_gimple_stmt): Make sure all
12918         non-automatic variable uses are wrapped inside a MEM_REF.
12919
12920 2010-07-14  Richard Henderson  <rth@redhat.com>
12921
12922         * passes.c (rest_of_decl_compilation): Do not call assemble_variable
12923         for functions.
12924         * varasm.c (assemble_variable): Remove early exit for functions;
12925         assert that we're given a variable.
12926
12927 2010-07-14  Jie Zhang  <jie@codesourcery.com>
12928
12929         * config/arm/cortex-a8.md (cortex_a8_alu): Don't use
12930         cortex_a8_default when neon_type is not none.
12931
12932 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
12933
12934         * lower-subreg.c (subreg_context): New static bitmap.
12935         (decompose_multiword_subregs): Allocate and free it.
12936         (find_decomposable_subregs): Set a bit in it for a register that
12937         occurs in a subreg that changes mode but not size.
12938         (can_decompose_p): Test it instead of non_decomposable_context.
12939
12940 2010-07-14  Richard Guenther  <rguenther@suse.de>
12941
12942         PR tree-optimization/44824
12943         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Use
12944         is_gimple_mem_ref_addr.
12945         (tree_ssa_forward_propagate_single_use_vars): Do not propagate
12946         non-decl_address_invariant_p addresses.
12947
12948 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
12949
12950         * reload.c (find_reloads): Revert code to penalize small register
12951         classes that was brought in with the IRA merge.
12952
12953 2010-07-14  Richard Guenther  <rguenther@suse.de>
12954
12955         * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle MEM_REF
12956         as base of ARRAY_REFs.
12957
12958 2010-07-14  Richard Guenther  <rguenther@suse.de>
12959
12960         PR middle-end/44930
12961         * tree-pretty-print.c (do_niy): Do not print a newline.
12962
12963 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
12964
12965         * ira-int.h (struct ira_object): New.
12966         (ira_object_t): New typedef.  Add DEF_VEC_P and DEF_VEC_ALLOC_P for it.
12967         (struct ira_allocno): Remove members min, max,
12968         conflict_allocno_array, conflict_id, conflict_allocno_array_size,
12969         conflict_allocnos_num and conflict_vec_p.  Add new member object.
12970         (OBJECT_CONFLICT_ARRAY, OBJECT_CONFLICT_VEC_P,
12971         OBJECT_NUM_CONFLICTS, OBJECT_CONFLICT_ARRAY_SIZE,
12972         OBJECT_CONFLICT_HARD_REGS, OBJECT_TOTAL_CONFLICT_HARD_REGS,
12973         OBJECT_MIN, OBJECT_MAX, OBJECT_CONFLICT_ID): Renamed from
12974         ALLOCNO_CONFLICT_ALLOCNO_ARRAY, ALLOCNO_CONFLICT_VEC_P,
12975         ALLOCNO_CONFLICT_ALLOCNOS_NUM, ALLOCNO_CONFLICT_ALLOCNO_ARRAY_SIZE,
12976         ALLOCNO_CONFLICT_HARD_REGS, ALLOCNO_TOTAL_CONFLICT_HARD_REGS)
12977         ALLOCNO_MIN, ALLOCNO_MAX, and ALLOCNO_CONFLICT_ID; now operate on
12978         an ira_object_t rather than ira_allocno_t.  All uses changed.
12979         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
12980         contains a vector of ira_object_t; all uses changed.
12981         (ira_objects_num): Declare variable.
12982         (ira_create_allocno_object): Declare function.
12983         (ira_conflict_vector_profitable_p): Adjust prototype.
12984         (ira_allocate_conflict_vec): Renamed from
12985         ira_allocate_allocno_conflict_vec; first arg now ira_object_t.
12986         (ira_allocate_object_conflicts): Renamed from
12987         ira_allocate_allocno_conflicts; first arg now ira_object_t.
12988         (struct ira_object_iterator): New.
12989         (ira_object_iter_init, ira_object_iter_cond, FOR_EACH_OBJECT): New.
12990         (ira_allocno_conflict_iterator): Renamed member allocno_conflict_vec_p
12991         to conflict_vec_p.  All uses changed.
12992         (ira_allocno_conflict_iter_init, ira_allocno_conflict_iter_cond):
12993         Changed to take into account that conflicts are now tracked for
12994         objects.
12995         * ira-conflicts.c (OBJECTS_CONFLICT_P): Renamed from CONFLICT_ALLOCNO_P.
12996         Args changed to accept ira_object_t.  All uses changed.
12997         (allocnos_conflict_p): New static function.
12998         (collected_conflict_objects): Renamed from collected_allocno_objects;
12999         now a vector of ira_object_t.  All uses changed.
13000         (build_conflict_bit_table): Changed to take into account that
13001         conflicts are now tracked for objects.
13002         (process_regs_for_copy, propagate_copies, build_allocno_conflicts)
13003         (print_allocno_conflicts, ira_build_conflicts): Likewise.
13004         * ira-color.c (assign_hard_reg, setup_allocno_available_regs_num)
13005         setup_allocno_left_conflicts_size, allocno_reload_assign,
13006         fast_allocation): Likewise.
13007         * ira-lives.c (make_hard_regno_born, make_allocno_born)
13008         process_single_reg_class_operands, process_bb_node_lives): Likewise.
13009         * ira-emit.c (modify_move_list, add_range_and_copies_from_move_list):
13010         Likewise.
13011         * ira-build.c (ira_objects_num): New variable.
13012         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
13013         contains a vector of ira_object_t; all uses changed.
13014         (ira_object_id_map_vec): Corresponding change.
13015         (object_pool): New static variable.
13016         (initiate_allocnos): Initialize it.
13017         (finish_allocnos): Free it.
13018         (ira_create_object, ira_create_allocno_object, create_allocno_objects):
13019         New functions.
13020         (ira_create_allocno): Don't set members that were removed.
13021         (ira_set_allocno_cover_class): Don't change conflict hard regs.
13022         (merge_hard_reg_conflicts): Changed to take into account that
13023         conflicts are now tracked for objects.
13024         (ira_conflict_vector_profitable_p, ira_allocate_conflict_vec,
13025         allocate_conflict_bit_vec, ira_allocate_object_conflicts,
13026         compress_conflict_vecs, remove_low_level_allocnos, ira_flattening,
13027         setup_min_max_allocno_live_range_point, allocno_range_compare_func,
13028         setup_min_max_conflict_allocno_ids, ):  Likewise.
13029         (add_to_conflicts): Renamed from add_to_allocno_conflicts, args changed
13030         to ira_object_t; all callers changed.
13031         (ira_add_conflict): Renamed from ira_add_allocno_conflict, args changed
13032         to ira_object_t, all callers changed.
13033         (clear_conflicts): Renamed from clear_allocno_conflicts, arg changed
13034         to ira_object_t, all callers changed.
13035         (conflict_check, curr_conflict_check_tick): Renamed from
13036         allocno_conflict_check and curr_allocno_conflict_check_tick; all uses
13037         changed.
13038         (compress_conflict_vec): Renamed from compress_allocno_conflict_vec,
13039         arg changed to ira_object_t, all callers changed.
13040         (create_cap_allocno): Call ira_create_allocno_object.
13041         (finish_allocno): Free the corresponding object.
13042         (sort_conflict_id_map): Renamed from sort_conflict_id_allocno_map; all
13043         callers changed.  Adjusted for dealing with objects.
13044         (ira_build): Call create_allocno_objects after ira_costs.  Adjusted for
13045         dealing with objects.
13046         * ira.c (ira_bad_reload_regno_1): Adjusted for dealing with objects.
13047
13048         * ira-int.h (struct live_range): Rename allocno member to object
13049         and change type to ira_object_t.
13050         (struct ira_object): New member live_ranges.
13051         (struct ira_allocno): Remove member live_ranges.
13052         (ALLOCNO_LIVE_RANGES): Remove.
13053         (OBJECT_LIVE_RANGES): New macro.
13054         (ira_create_live_range, ira_copy_live_range_list,
13055         ira_merge_live_range_list, ira_live_ranges_intersect_p,
13056         ira_finish_live_range, ira_finish_live_range_list): Adjust declarations.
13057         * ira-build.c (ira_create_object): Initialize live ranges here.
13058         (ira_create_allocno): Not here.
13059         (ira_create_live_range): Rename from ira_create_allocno_live_range, arg
13060         changed to ira_object_t, all callers changed.
13061         (copy_live_range): Rename from copy_allocno_live_range, all callers
13062         changed.
13063         (ira_copy_live_range_list): Rename from
13064         ira_copy_allocno_live_range_list, all callers changed.
13065         (ira_merge_live_ranges): Rename from ira_merge_allocno_live_range_list,
13066         all callers changed.
13067         (ira_live_ranges_intersect_p): Rename from
13068         ira_allocno_live_ranges_intersect_p, all callers changed.
13069         (ira_finish_live_range): Rename from ira_finish_allocno_live_range, all
13070         callers changed.
13071         (ira_finish_live_range_list): Rename from
13072         ira_finish_allocno_live_range_list, all callers changed.
13073         (change_object_in_range_list): Rename from change_allocno_in_range_list,
13074         last arg changed to ira_object_t, all callers changed.
13075         (finish_allocno): Changed to expect live ranges in the allocno's object.
13076         (move_allocno_live_ranges, copy_allocno_live_ranges,
13077         update_bad_spill_attribute, setup_min_max_allocno_live_range_point,
13078         ira_flattening, ira_build): Likewise.
13079         * ira-color.c (allocnos_have_intersected_live_ranges_p,
13080         slot_coalesced_allocno_live_ranges_intersect,
13081         setup_slot_coalesced_allocno_live_ranges, fast_allocation): Likewise.
13082         * ira-conflicts.c (build_conflict_bit_table): Likewise.
13083         * ira-emit.c (add_range_and_copies_from_move_list): Likewise.
13084         * ira-lives.c (make_allocno_born, update_allocno_pressure_excess_length,
13085         make_allocno_dead, create_start_finish_chains,
13086         remove_some_program_points_and_update_live_ranges,
13087         ira_debug_live_range_list): Likewise.
13088
13089         * ira-int.h (ira_object_conflict_iterator): Rename from
13090         ira_allocno_conflict_iterator.
13091         (ira_object_conflict_iter_init): Rename from
13092         ira_allocno_conflict_iter_init, second arg changed to
13093         * ira.c (check_allocation): Use FOR_EACH_OBJECT_CONFLICT rather than
13094         FOR_EACH_ALLOCNO_CONFLICT.
13095         * ira-color.c (assign_hard_reg, push_allocno_to_stack)
13096         setup_allocno_left_conflicts_size, coalesced_allocno_conflict_p,
13097         ira_reassign_conflict_allocnos, ira_reassign_pseudos): Likewise.
13098         * ira-conflicts.c (print_allocno_conflicts): Likewise.
13099
13100 2010-07-13  Joern Rennecke  <joern.rennecke@embecosm.com>
13101
13102         PR other/44874
13103         * tree-dump.c (dump_options): Add enumerate_locals entry.
13104         Add TDF_NOID exclusion to all entry.
13105         * tree-dump.h (dump_enumerated_decls): Declare.
13106         * tree-pretty-print.c (dump_generic_node): For TDF_NOID,
13107         Don't display type uid.
13108         (print_declaration): Don't crash on TREE_TYPE (t) == 0.
13109         * tree-pass.h (TDF_ENUMERATE_LOCALS): Define.
13110         * tree-ssa-live.c: Include gimple.h.
13111         (numbered_tree_d): New struct.
13112         (numbered_tree): New typedef.
13113         (DEF_VEC_O (numbered_tree): New.
13114         (DEF_VEC_ALLOC_O (numbered_tree, heap)): Likewise.
13115         (compare_decls_by_uid, dump_enumerated_decls_push): New functions.
13116         (dump_enumerated_decls): Likewise.
13117         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): If comparing
13118         debug info and flag_dump_final_insns, call dump_enumerated_decls.
13119         * tree-cfg.c (dump_function_to_file): Call dump_enumerated_decls.
13120         * Makefile.in (tree-ssa-live.o): Depend on $(GIMPLE_H).
13121
13122 2010-07-13  Richard Sandiford  <rdsandiford@googlemail.com>
13123
13124         * expmed.h (MAX_BITS_PER_WORD): Move to...
13125         * defaults.h (MAX_BITS_PER_WORD): ...here.
13126
13127 2010-07-13  DJ Delorie  <dj@redhat.com>
13128
13129         * config/h8300/h8300.c (h8300_init_once): Default to
13130         -fstrict_volatile_bitfields.
13131
13132         * config/sh/sh.c (sh_override_options): Default to
13133         -fstrict_volatile_bitfields.
13134
13135         * config/rx/rx.c (rx_option_override): New.
13136
13137         * config/m32c/m32c.c (m32c_override_options): Default to
13138         -fstrict_volatile_bitfields.
13139
13140 2010-07-13  Nathan Froyd  <froydnj@codesourcery.com>
13141
13142         * tree.h (build_function_call_expr): Delete.
13143         (build_call_expr_loc_array): New function.
13144         (build_call_expr_loc_vec): New function.
13145         * tree-flow.h (struct omp_region): Change type of ws_args field
13146         to a VEC.
13147         * builtins.c (build_function_call_expr): Delete.
13148         (build_call_expr_loc_array): New function.
13149         (build_call_expr_loc): Call it.  Use XALLOCAVEC.
13150         (build_call_expr): Likewise.
13151         (build_call_expr_loc_vec): New function.
13152         * cgraphunit.c (build_cdtor): Call build_call_expr instead of
13153         build_function_call_expr.
13154         * expr.c (emutls_var_address): Likewise.
13155         * varasm.c (emutls_common_1): Likewise.
13156         * omp-low.c (expand_omp_atomic_mutex): Likewise.
13157         (expand_omp_taskreg): Adjust for new type of region->ws_args.
13158         (get_ws_args_for): Return a VEC instead of a tree.
13159         (expand_parallel_call): Call build_call_expr_loc_vec instead of
13160         build_function_call_expr.
13161         * stor-layout.c (self_referential_size): Likewise.
13162
13163 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
13164
13165         PR testsuite/44701
13166         * recog.c (constrain_operands): Allow side-effects in memory
13167         operands if either < or > constraint is used, rather than if
13168         both < and > is used.
13169
13170 2010-07-13  Richard Guenther  <rguenther@suse.de>
13171
13172         PR middle-end/44911
13173         * tree-pretty-print.c (dump_generic_node): Use TDF_SLIM for
13174         MEM_REF pointer type dumping.  Avoid recursing for TYPE_DECLs
13175         without name.
13176
13177 2010-07-13  Kaz Kojima  <kkojima@gcc.gnu.org>
13178
13179         PR target/44761
13180         * mode-switching.c (optimize_mode_switching): Add ATTRIBUTE_UNUSED
13181         to variable emited.
13182         * config/sh/sh.c (sh_expand_epilogue): Remove unused variable.
13183         * config/sh/sh.md (symGOT_load): Likewise.
13184         (symDTPOFF2reg): Likewise.
13185         (symTPOFF2reg): Likewise.
13186
13187 2010-07-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13188
13189         * expmed.c (MAX_BITS_PER_WORD): Moved to expmed.h.
13190         * expmed.h (MAX_BITS_PER_WORD): Moved from expmed.c.
13191
13192 2010-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13193
13194         * config/i386/sol2-unwind.h (x86_64_fallback_frame_state): Correct
13195         explanation.
13196         Find ucontext_t * on Solaris 11.
13197         (x86_fallback_frame_state): Handle Solaris 9 multi-threaded pattern.
13198         Handle new Solaris 11 __sighndlr patterns.
13199
13200 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
13201
13202         PR debug/44901
13203         * vec.h (VEC_block_remove): Fix comment.
13204         * tree-ssa-live.c (remove_unused_locals): Don't use
13205         VEC_unordered_remove on local_decls, instead replace a single
13206         vector element in each iteration if at least one element had
13207         to be removed and VEC_truncate at the end.
13208         * omp-low.c (expand_omp_taskreg): Likewise.
13209
13210 2010-07-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13211
13212         * c-decl.c (finish_function): Fix typo in comment.
13213
13214 2010-07-12  H.J. Lu  <hongjiu.lu@intel.com>
13215
13216         PR bootstrap/44921
13217         * postreload.c (move2add_use_add3_insn): Silence gcc warning
13218         on min_regno.
13219
13220 2010-07-12  Jakub Jelinek  <jakub@redhat.com>
13221
13222         * tree-vrp.c (simplify_bit_ops_using_ranges): New function.
13223         (simplify_stmt_using_ranges): Use it.
13224
13225 2010-07-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13226
13227         * config/spu/spu.h (struct spu_builtin_description): Remove FNDECL
13228         member.  Do not mark as GTY(()).
13229         * config/spu/spu.c (spu_builtins): Remove FNDECL initializer elements.
13230         (spu_builtin_decls): New static variable.
13231         (spu_builtin_decl): Use it instead of spu_builtins[].fndecl.
13232         (spu_init_builtins): Likewise.
13233         (spu_builtin_mul_widen_even): Likewise.
13234         (spu_builtin_mul_widen_odd): Likewise.
13235         (spu_builtin_mask_for_load): Likewise.
13236         (spu_builtin_vec_perm): Likewise.
13237         * config/spu/spu-c.c: Include "target.h".
13238         (spu_resolve_overloaded_builtin): Call targetm.builtin_decl instead
13239         of using spu_builtins[].fndecl.
13240
13241 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13242
13243         * config/mips/mips.c (mips_override_options): Make -mflip-mips16
13244         imply -minterlink-mips16.
13245
13246 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13247
13248         * config/mips/mips.h (mips16_globals): Declare.
13249         (SWITCHABLE_TARGET): Define.
13250         * config/mips/mips.c: Include target-globals.h.
13251         (mips16_globals): New variable.
13252         (mips_set_mips16_mode): Use save_target_globals and
13253         restore_target_globals instead of target_reinit.
13254
13255 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13256
13257         * reginfo.c (init_reg_sets): Don't zero globals here.  Update comment
13258         to say that the function can be called more than once.
13259         * target-globals.c (save_target_globals): Call init_reg_sets.
13260
13261 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13262
13263         * Makefile.in (bb-reorder.o, target-globals.o): Depend on bb-reorder.h
13264         * bb-reorder.h: New file.
13265         * bb-reorder.c (default_target_bb_reorder): New variable.
13266         (this_target_bb_reorder): New conditional variable.
13267         (uncond_jump_length): Redefine as a macro.
13268         * target-globals.h (this_target_bb_reorder): Declare.
13269         (target_globals): Add a bb_reorder field.
13270         (restore_target_globals): Copy the bb_reorder field to
13271         this_target_bb-reorder.
13272         * target-globals.c: Include bb-reorder.h.
13273         (default_target_globals): Initialize the bb_reorder field.
13274         (save_target_globals): Likewise.
13275
13276 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13277
13278         * Makefile.in (gcse.o, target-globals.o): Depend on gcse.h..
13279         * gcse.h: New file.
13280         * gcse.c: Include gcse.h.
13281         (default_target_gcse): New variable.
13282         (this_target_gcse): New conditional variable.
13283         (can_copy): Redefine as a macro.
13284         (can_copy_init_p): New macro.
13285         (can_copy_p): Remove can_copy_init_p.
13286         * target-globals.h (this_target_gcse): Declare.
13287         (target_globals): Add a gcse field.
13288         (restore_target_globals): Copy the gcse field to this_target_gcse.
13289         * target-globals.c: Include gcse.h.
13290         (default_target_globals): Initialize the gcse field.
13291         (save_target_globals): Likewise.
13292
13293 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13294
13295         * ira-int.h (target_ira_int): Add x_ira_prohibited_mode_move_regs
13296         and x_ira_prohibited_mode_move_regs_initialized_p.
13297         (ira_prohibited_mode_move_regs): Redefine as a macro.
13298         * ira.c (ira_prohibited_mode_move_regs): Delete.
13299         (ira_prohibited_mode_move_regs_initialized_p): Redefine as a macro.
13300
13301 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13302
13303         * reload.h (target_reload): Add x_cached_reg_save_code and
13304         x_cached_reg_restore_code.
13305         * caller-save.c (cached_reg_save_code, cached_reg_restore_code):
13306         Redefine as macros.
13307
13308 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13309
13310         * Makefile.in (target-globals.o): Depend on builtins.h.
13311         * builtins.h: New file.
13312         * builtins.c: Include builtins.h.
13313         (default_target_builtins): New variable.
13314         (this_target_builtins): New conditional variable.
13315         (apply_args_mode, apply_result_mode): Redefine as macros.
13316         * target-globals.h (this_target_builtins): Declare.
13317         (target_globals): Add a builtins field.
13318         (restore_target_globals): Copy the builtins field to
13319         this_target_builtins.
13320         * target-globals.c: Include builtins.h.
13321         (default_target_globals): Initialize the builtins field.
13322         (save_target_globals): Likewise.
13323
13324 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13325
13326         * expmed.h (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST)
13327         (algorithm, alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved
13328         from expmed.c.
13329         (target_expmed): Add x_alg_hash and x_alg_hash_used_p.
13330         (alg_hash, alg_hash_used_p): New macros.
13331         * expmed.c (init_expmed): Clear alg_hash if reinitializing.
13332         (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST, algorithm)
13333         (alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved to expmed.h.
13334
13335 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13336
13337         * ira-int.h (target_ira_int): Add x_max_struct_costs_size, x_init_cost,
13338         x_temp_costs, x_op_costs, x_this_op_costs and x_cost_classes.
13339         * ira-costs.c (max_struct_costs_size, init_cost, temp_costs, op_costs)
13340         (this_op_costs, costs_classes): Redefine as macros.
13341         (record_reg_classes): Don't take op_costs as a parameter.
13342         (record_operand_costs): Likewise.  Update calls to record_reg_classes.
13343         (scan_one_insn): Update call to record_operand_costs.
13344
13345 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13346
13347         * Makefile.in (target-globals.o): Depend on $(IRA_INT_H).
13348         * ira-int.h (ira_max_nregs, ira_important_class_nums): Delete.
13349         (target_ira_int): New structure.
13350         (default_target_ira_int): Declare.
13351         (this_target_ira_int): Declare as a variable or define as a macro.
13352         (ira_reg_mode_hard_regset, ira_register_move_cost)
13353         (ira_may_move_in_cost, ira_may_move_out_cost, ira_class_subset_p)
13354         (ira_non_ordered_class_hard_regs, ira_class_hard_reg_index)
13355         (prohibited_class_mode_regs, ira_important_classes_num)
13356         (ira_important_classes, ira_reg_class_intersect)
13357         (ira_reg_classes_intersect_p, ira_reg_class_super_classes)
13358         (ira_reg_class_union): Redefine as macros.
13359         * ira.h (target_ira): New structure.
13360         (default_target_ira): Declare.
13361         (this_target_ira): Declare as a variable or define as a macro.
13362         (ira_available_class_regs, ira_hard_regno_cover_class)
13363         (ira_reg_class_cover_size, ira_reg_class_cover, ira_class_translate)
13364         (ira_reg_class_nregs, ira_memory_move_cost, ira_class_hard_regs)
13365         (ira_class_hard_regs_num): Redefine as macros.
13366         * ira.c (default_target_ira, default_target_ira_int): New variables.
13367         (this_target_ira, this_target_ira_int): New conditional variables.
13368         (ira_reg_mode_hard_regset, ira_memory_move_cost)
13369         (ira_register_move_cost, ira_may_move_in_cost, ira_may_move_out_cost)
13370         (ira_class_subset_p): Delete.
13371         (no_unit_alloc_regs): Redefine as a macro.
13372         (ira_class_hard_regs, ira_non_ordered_class_hard_regs)
13373         (ira_class_hard_regs_num, ira_class_hard_reg_index)
13374         (ira_available_class_regs): Delete.
13375         (alloc_reg_class_subclasses): Redefine as a macro.
13376         (ira_reg_class_cover_size, ira_reg_class_cover)
13377         (ira_important_classes_num, ira_important_classes)
13378         (ira_important_class_nums, ira_class_translate): Delete.
13379         (cover_class_order): Document the variable's lifetime.
13380         (reorder_important_classes): Don't set ira_important_class_nums.
13381         (ira_reg_class_intersect, ira_reg_classes_intersect_p)
13382         (ira_reg_class_super_classes, ira_reg_class_union)
13383         (ira_hard_regno_cover_class, ira_reg_class_nregs, ira_max_nregs):
13384         Delete.
13385         (setup_reg_class_nregs): Don't set ira_max_regs.
13386         (prohibited_class_mode_regs): Delete.
13387         * target-globals.h (this_target_ira, this_target_ira_int): Declare.
13388         (target_globals): Add ira and ira_int fields.
13389         (restore_target_globals): Copy the ira field to this_target_ira
13390         and the ira_int field to this_target_ira_int.
13391         * target-globals.c: Include ira-int.h.
13392         (default_target_globals): Initialize the ira and ira_int fields.
13393         (save_target_globals): Likewise.
13394
13395 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13396
13397         * Makefile.in (target-globals.o): Depend on $(CFGLOOP_H).
13398         * cfgloop.h (target_cfgloop): New structure.
13399         (default_target_cfgloop): Declare.
13400         (this_target_cfgloop): Declare as a variable or define as a macro.
13401         (target_avail_regs, target_clobbered_regs, target_res_regs)
13402         (target_reg_cost, target_spill_cost): Redefine as macros.
13403         * cfgloopanal.c (default_target_cfgloop): New variable.
13404         (this_target_cfgloop): New conditional variable.
13405         (target_avail_regs, target_clobbered_regs, target_res_regs)
13406         (target_reg_cost, target_spill_cost): Delete.
13407         * target-globals.h (this_target_cfgloop): Declare.
13408         (target_globals): Add a cfgloop field.
13409         (restore_target_globals): Copy the cfgloop field to
13410         this_target_cfgloop.
13411         * target-globals.c: Include cfgloop.h.
13412         (default_target_globals): Initialize the cfgloop field.
13413         (save_target_globals): Likewise.
13414
13415 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13416
13417         * regs.h (target_regs): Add x_direct_load, x_direct_store and
13418         x_float_extend_from_mem.
13419         (direct_load, direct_store, float_extend_from_mem): New macros.
13420         * expr.c (direct_load, direct_store, float_extend_from_mem): Delete.
13421
13422 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13423
13424         * Makefile.in (LIBFUNCS_H): Add $(HASHTAB_H).
13425         (target-globals.o): Depend on $(LIBFUNCS_H).
13426         * libfuncs.h: Include hashtab.h.
13427         (libfunc_entry): Moved from optabs.c.
13428         (target_libfuncs): New structure.
13429         (default_target_libfuncs): Declare.
13430         (this_target_libfuncs): Declare as a variable or define as a macro.
13431         (libfunc_table): Redefine as a macro.
13432         * optabs.c (default_target_libfuncs): New variable.
13433         (this_target_libfuncs): New conditional variable.
13434         (libfunc_table): Delete.
13435         (libfunc_entry): Moved to optabs.h.
13436         (libfunc_hash): Redefine as a macro.
13437         (hash_libfunc, eq_libfunc): Fix comments.
13438         (init_optabs): Use libfunc_hash to detect cases where the function
13439         has already been called.  Clear the hash table instead of
13440         recreating it.
13441         * target-globals.h (this_target_libfuncs): Declare.
13442         (target_globals): Add a libfuncs field.
13443         (restore_target_globals): Copy the libfuncs field to
13444         this_target_libfuncs.
13445         * target-globals.c: Include libfuncs.h.
13446         (default_target_globals): Initialize the libfuncs field.
13447         (save_target_globals): Likewise.
13448
13449 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13450
13451         * Makefile.in (LIBFUNCS_H): New variable.  Use instead of libfuncs.h
13452         in all dependency lists.
13453
13454 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13455
13456         * Makefile.in (target-globals.o): Depend on $(EXPR_H) and $(OPTABS_H).
13457         * optabs.h (target_optabs): New structure.
13458         (default_target_optabs): Declare.
13459         (this_target_optabs): Declare as a variable or define as a macro.
13460         (optab_table, convert_optab_table, direct_optab_table): Redefine
13461         as macros.
13462         * optabs.c (default_target_optabs): New variable.
13463         (this_target_optabs): New conditional variable.
13464         (optab_table, convert_optab_table, direct_optab_table): Delete.
13465         * target-globals.h (this_target_optabs): Declare.
13466         (target_globals): Add a optabs field.
13467         (restore_target_globals): Copy the optabs field to
13468         this_target_optabs.
13469         * target-globals.c: Include expr.h and optabs.h.
13470         (default_target_globals): Initialize the optabs field.
13471         (save_target_globals): Likewise.
13472
13473 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13474
13475         * flags.h (target_flagstate): Add x_flag_excess_precision.
13476         (flag_excess_precision): Redefine as a macro.
13477         * toplev.c (flag_excess_precision): Delete.
13478
13479 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13480
13481         * defaults.h (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Define if not defined.
13482         * libgcc2.c (MIN_UNITS_PER_WORD): Delete.
13483         * hard-reg-set.h (target_hard_regs): Add x_no_caller_save_reg_set.
13484         (no_caller_save_reg_set): Redefine as a macro.
13485         * reload.h (target_reload): Add x_caller_save_initialized_p and
13486         x_regno_save_mode.
13487         (caller_save_initialized_p): Redefine as a macro.
13488         * caller-save.c (caller_save_initialized_p, no_caller_save_reg_set)
13489         (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Delete.
13490         (regno_save_mode): Redefine as a macro.
13491
13492 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13493
13494         * Makefile.in (expmed.o, target-globals.o): Depend on expmed.h.
13495         * expmed.h: New file.
13496         * expmed.c (default_target_costs): New variable.
13497         (this_target_costs): New conditional variable.
13498         (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost, neg_cost)
13499         (shift_cost, shiftadd_cost, shiftsub0_cost, shiftsub1_cost, mul_cost)
13500         (sdiv_cost, udiv_cost, mul_widen_cost, mul_highpart_cost): Delete.
13501         * target-globals.h (this_target_expmed): Declare.
13502         (target_globals): Add a expmed field.
13503         (restore_target_globals): Copy the expmed field to
13504         this_target_expmed.
13505         * target-globals.c: Include expmed.h.
13506         (default_target_globals): Initialize the expmed field.
13507         (save_target_globals): Likewise.
13508
13509 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13510
13511         * Makefile.in (target-globals.o): Depend on reload.h.
13512         * reload.h (target_reload): New structure.
13513         (default_target_reload): Declare.
13514         (this_target_reload): Declare as a variable or define as a macro.
13515         (indirect_symref_ok, double_reg_address_ok): Redefine as macros.
13516         * reload1.c (default_target_reload): New variable
13517         (this_target_reload): New conditional variable.
13518         (indirect_symref_ok, double_reg_address_ok): Delete.
13519         (spill_indirect_levels): Redefine as a macro.
13520         * target-globals.h (this_target_reload): Declare.
13521         (target_globals): Add a reload field.
13522         (restore_target_globals): Copy the reload field to
13523         this_target_reload.
13524         * target-globals.c: Include hard-reg-set.h.
13525         (default_target_globals): Initialize the reload field.
13526         (save_target_globals): Likewise.
13527
13528 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13529
13530         * rtl.h (target_rtl): Add x_static_reg_base_value.
13531         * alias.c (static_reg_base_value): Redefine as a macro.
13532
13533 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13534
13535         * Makefile.in (reginfo.o): Don't depend on $(GGC_H) or gt-reginfo.h.
13536         (GTFILES): Remove reginfo.c.
13537         * rtl.h (target_rtl): Add x_top_of_stack.
13538         (top_of_stack): New macro.
13539         * reginfo.c: Don't include ggc.h or gt-reginfo.h.
13540         (top_of_stack): Delete.
13541
13542 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13543
13544         * regs.h (target_regs): Add x_hard_regs_of_mode,
13545         x_contains_reg_of_mode, x_move_cost, x_may_move_in_cost,
13546         x_may_move_out_cost and x_last_mode_for_init_move_cost.
13547         (have_regs_of_mode, contains_reg_of_mode, move_cost)
13548         (may_move_in_cost, may_move_out_cost): Redefine as macros.
13549         * reginfo.c (have_regs_of_mode, contains_reg_of_mode, move_cost)
13550         (may_move_in_cost, may_move_out_cost): Delete.
13551         (last_mode_for_init_move_cost): Redefine as a macro.
13552
13553 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13554
13555         * hard-reg-set.h (target_hard_regs): New structure.
13556         (default_target_hard_regs): Declare.
13557         (this_target_hard_regs): Declare as a variable or define as a macro.
13558         (fixed_regs, fixed_reg_set, call_used_regs, call_really_used_regs)
13559         (call_used_reg_set, call_fixed_reg_set, regs_invalidated_by_call)
13560         (reg_alloc_order, inv_reg_alloc_order, reg_class_contents)
13561         (reg_class_size, reg_class_subclasses, reg_class_subunion)
13562         (reg_class_superunion, reg_names): Redefine as macros.
13563         * reginfo.c (fixed_regs, fixed_reg_set, call_used_regs)
13564         (call_used_reg_set, call_really_used_regs, call_fixed_reg_set)
13565         (regs_invalidated_by_call, reg_alloc_order, inv_reg_alloc_order)
13566         (reg_class_contents, reg_class_size, reg_class_subclasses)
13567         (reg_class_subunion, reg_class_superunion, reg_names): Delete.
13568         (default_target_hard_regs): New variable
13569         (this_target_hard_regs, initial_call_really_used_regs)
13570         (initial_reg_alloc_order): New conditional variables.
13571         (initial_reg_names): New variable.
13572         (init_reg_sets): Assert that initial_call_really_used_regs,
13573         initial_reg_alloc_order and initial_reg_names
13574         are all the same size as their variable counterparts.  Use them to
13575         initialize those counterparts.
13576         * target-globals.h (this_target_hard_regs): Declare.
13577         (target_globals): Add a hard_regs field.
13578         (restore_target_globals): Copy the hard_regs field to
13579         this_target_hard_regs.
13580         * target-globals.c: Include hard-reg-set.h.
13581         (default_target_globals): Initialize the hard_regs field.
13582         (save_target_globals): Likewise.
13583
13584 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13585
13586         * Makefile.in (target-globals.o): Depend on $(RTL_H).
13587         * rtl.h (target_rtl): New structure.
13588         (default_target_rtl): Declare.
13589         (this_target_rtl): Declare as a variable or define as a macro.
13590         (global_rtl, pic_offset_table_rtx, return_address_pointer_rtx):
13591         Redefine as macros.
13592         * emit-rtl.c (default_target_rtl): New variable.
13593         (this_target_rtl): New conditional variable.
13594         (global_rtl, static_regno_reg_rtx, pic_offset_table_rtx)
13595         (return_address_pointer_rtx): Delete.
13596         (initial_regno_reg_rtx): New macro.
13597         (init_emit): Use initial_regno_reg_rtx instead of static_regno_reg_rtx.
13598         (init_emit_regs): Likewise.
13599         * target-globals.h (this_target_rtl): Declare.
13600         (target_globals): Add a rtl field.
13601         (restore_target_globals): Copy the rtl field to this_target_rtl.
13602         * target-globals.c: Include rtl.h.
13603         (default_target_globals): Initialize the rtl field.
13604         (save_target_globals): Likewise.
13605
13606 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13607
13608         * Makefile.in (target-globals.o): Depend on $(REGS_H).
13609         * regs.h (target_reg_modes): New structure.
13610         (default_target_reg_modes): Declare.
13611         (this_target_reg_modes): Declare as a variable or define as a macro.
13612         (hard_regno_nregs, reg_raw_mode): Redefine as macros.
13613         * reginfo.c (default_target_reg_modes): New variable.
13614         (this_target_reg_modes): New conditional variable.
13615         (hard_regno_nregs, reg_raw_mode): Delete.
13616         * target-globals.h (this_target_regs): Declare.
13617         (target_globals): Add a regs field.
13618         (restore_target_globals): Copy the regs field to this_target_regs.
13619         * target-globals.c: Include regs.h.
13620         (default_target_globals): Initialize the regs field.
13621         (save_target_globals): Likewise.
13622
13623 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13624
13625         * doc/tm.texi.in (SWITCHABLE_TARGET): Document.
13626         * doc/tm.texi: Regenerate.
13627         * Makefile.in (OBJS-common): Add target-globals.o.
13628         (gtype-desc.o): Depend on $(IPA_PROP_H), $(LTO_STREAMER_H)
13629         and target-globals.h.
13630         (target-globals.o): New rule.
13631         (GTFILES): Include $(srcdir)/target-globals.h.
13632         * defaults.h (SWITCHABLE_TARGET): Define.
13633         * gengtype.c (open_base_files): Add target-globals.h to the
13634         list of includes.
13635         * target-globals.h: New file.
13636         * target-globals.c: Likewise.
13637
13638         * Makefile.in (target-globals.o): Depend on $(FLAGS_H).
13639         * flags.h (target_flag_state): New structure.
13640         (default_target_flag_state): Declare.
13641         (this_target_flag_state): Declare as a variable or define as a macro.
13642         (align_loops_log): Redefine as a macro.
13643         (align_loops_max_skip, align_jumps_log): Likewise.
13644         (align_jumps_max_skip, align_labels_log): Likewise.
13645         (align_labels_max_skip, align_functions_log): Likewise.
13646         * toplev.c (default_target_flag_state): New variable.
13647         (this_target_flag_state): New conditional variable.
13648         (align_loops_log): Delete.
13649         (align_loops_max_skip, align_jumps_log): Likewise.
13650         (align_jumps_max_skip, align_labels_log): Likewise.
13651         (align_labels_max_skip, align_functions_log): Likewise.
13652         * target-globals.h (this_target_flag_state): Declare.
13653         (target_globals): Add a flag_state field.
13654         (restore_target_globals): Copy the flag_state field to
13655         this_target_flag_state.
13656         * target-globals.c: Include flags.h.
13657         (default_target_globals): Initialize the flag_state field.
13658         (save_target_globals): Likewise.
13659
13660 2010-07-12  Jie Zhang  <jie@codesourcery.com>
13661
13662         * postreload.c (reg_symbol_ref[]): New.
13663         (move2add_use_add2_insn): New.
13664         (move2add_use_add3_insn): New.
13665         (reload_cse_move2add): Handle SYMBOL + OFFSET case.
13666         (move2add_note_store): Likewise.
13667
13668 2010-07-12  Joern Rennecke  <joern.rennecke@embecosm.com>
13669
13670         PR rtl-optimization/44752
13671         * genautomata.c (main): Don't emit an empty file even if there
13672         is no automaton.
13673
13674 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13675
13676         * config/i386/i386.c (ix86_sol10_return_in_memory): Rename to
13677         ix86_solaris_return_in_memory.
13678         * config/i386-protos.h: Reflect this.
13679         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
13680         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
13681         Move ...
13682         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): ... here.
13683
13684 2010-07-12  Jie Zhang  <jie@codesourcery.com>
13685
13686         * config/arm/arm.c (arm_get_frame_offsets): Don't use r3 to
13687         align the stack when it's going to be saved.
13688
13689 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13690
13691         PR pch/14940
13692         * config/host-solaris.c (mmap_fixed): New function.
13693         (sol_gt_pch_get_address): Use it.
13694         (sol_gt_pch_use_address): Likewise.
13695
13696 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13697
13698         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
13699         pentiumpro on Solaris 8 and 9/x86.
13700         * doc/install.texi (Specific, i?86-*-solaris2.[89]): Recommend GNU as.
13701         Document SSE/SSE2 support.
13702         * doc/sourcebuild.texi (Effective-Target Keywords): Document sse.
13703
13704 2010-07-12  Andi Kleen  <ak@linux.intel.com>
13705
13706         * lto-symtab.c (lto_symtab_merge_decls_1): Use fatal_error
13707         instead of gcc_assert to print better error message for multiple
13708         prevailing defs.
13709
13710 2010-07-12  Uros Bizjak  <ubizjak@gmail.com>
13711
13712         * config/i386/i386.c (ix86_asm_output_function_label): Change format
13713         string placeholder from 0x%x to %#x.
13714         (ix86_code_end): Use putc to output '\n'.
13715         (ix86_print_operand) <case ';'>: Use putc to output ';'.
13716
13717 2010-07-11  Kai Tietz  <kai.tietz@onevision.com>
13718
13719         * config/i386/winnt.c (i386_pe_file_end): Quote symbol name
13720         in directive -export.
13721
13722 2010-07-10  Anatoly Sokolov  <aesok@post.ru>
13723
13724         * reginfo.h (reg_classes_intersect_p): Change arguments type to
13725         reg_class_t.
13726         * rtl.h (reg_classes_intersect_p): Adjust prototype.
13727
13728         * config/rs6000/rs6000.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
13729         Remove macros.
13730         * config/rs6000/rs6000-protos.h (rs6000_register_move_cost,
13731         rs6000_memory_move_cost): Remove
13732         * config/rs6000/rs6000.c (TARGET_REGISTER_MOVE_COST,
13733         TARGET_MEMORY_MOVE_COST): Define.
13734         (rs6000_register_move_cost): Make static. Change arguments type from
13735         enum reg_class to reg_class_t. Adjust rs6000_memory_move_cost calls.
13736         (rs6000_memory_move_cost): Make static. Change arguments type from
13737         'enum reg_class' to reg_class_t.
13738
13739 2010-07-10  Sandra Loosemore  <sandra@codesourcery.com>
13740
13741         PR middle-end/42505
13742         * tree-inline.c (estimate_num_insns): Refactor builtin complexity
13743         lookup code into....
13744         * builtins.c (is_simple_builtin, is_inexpensive_builtin): ...these
13745         new functions.
13746         * tree.h (is_simple_builtin, is_inexpensive_builtin): Declare.
13747         * cfgloopanal.c (target_clobbered_regs): Define.
13748         (init_set_costs): Initialize target_clobbered_regs.
13749         (estimate_reg_pressure_cost): Add call_p argument.  When true,
13750         adjust the number of available registers to exclude the
13751         call-clobbered registers.
13752         * cfgloop.h (target_clobbered_regs): Declare.
13753         (estimate_reg_pressure_cost): Adjust declaration.
13754         * tree-ssa-loop-ivopts.c (struct ivopts_data): Add body_includes_call.
13755         (ivopts_global_cost_for_size): Pass it to estimate_reg_pressure_cost.
13756         (determine_set_costs): Dump target_clobbered_regs.
13757         (loop_body_includes_call): New function.
13758         (tree_ssa_iv_optimize_loop): Use it to initialize new field.
13759         * loop-invariant.c (gain_for_invariant): Adjust arguments to pass
13760         call_p flag through.
13761         (best_gain_for_invariant): Likewise.
13762         (find_invariants_to_move): Likewise.
13763         (move_single_loop_invariants): Likewise, using already-computed
13764         has_call field.
13765
13766 2010-07-10  Richard Guenther  <rguenther@suse.de>
13767             Joern Rennecke  <joern.rennecke@embecosm.com>
13768
13769         PR debug/44832
13770         * tree-ssa-live.c (mark_all_vars_used_1): Set TREE_USED for LABEL_DECL.
13771         (remove_unused_scope_block_p): Don't drop TREE_USED LABEL_DECLs
13772         unless they have DECL_IGNORED_P set.
13773
13774 2010-07-10  Richard Guenther  <rguenther@suse.de>
13775
13776         PR lto/44889
13777         * gimple.c (gimple_fixup_complete_and_incomplete_subtype_p): New
13778         helper function.
13779         (gimple_types_compatible_p): Similar to pointed-to
13780         types allow and merge a mix of complete and incomplete aggregate.
13781         Use gimple_fixup_complete_and_incomplete_subtype_p for that.
13782         (iterative_hash_gimple_type): Adjust for that.
13783
13784 2010-07-10  Richard Sandiford  <r.sandiford@uk.ibm.com>
13785
13786         * tree.h (DECL_REPLACEABLE_P): Strengthen check for weak symbols.
13787
13788 2010-07-10  Iain Sandoe  <iains@gcc.gnu.org>
13789
13790         PR objc/44140
13791         * config/darwin.c (output_objc_section_asm_op): Save and restore
13792         section when outputting ObjC section list.
13793
13794 2010-07-09  Jan Hubicka  <jh@suse.cz>
13795
13796         * lto-streamer-out.c (produce_symtab): Do not write alias
13797         cgraph/varpool nodes.
13798
13799 2010-07-09  Jan Hubicka  <jh@suse.cz>
13800
13801         * tree-inline.c (declare_return_variable): Fix ICE while
13802         inlining DECL_BY_VALUE function not in SSA form
13803
13804 2010-07-09  Changpeng Fang  <changpeng.fang@amd.com>
13805
13806         PR tree-optimization/44576
13807         * tree-ssa-loop-prefetch.c (trip_count_to_ahead_ratio_too_small_p):
13808         New.  Pull out from is_loop_prefetching_profitable to implement
13809         the trip count to ahead ratio heuristic.
13810         (mem_ref_count_reasonable_p): New.  Pull out from
13811         is_loop_prefetching_profitable to implement the instruction to
13812         memory reference ratio heuristic.  Also consider not reasonable if
13813         the memory reference count is above a threshold (to avoid
13814         explosive compilation time.
13815         (insn_to_prefetch_ratio_too_small_p): New.  Pull out from
13816         is_loop_prefetching_profitable to implement the instruction to
13817         prefetch ratio heuristic.
13818         (is_loop_prefetching_profitable): Removed.
13819         (loop_prefetch_arrays): Distribute the cost analysis across the
13820         function to allow early exit of the prefetch analysis.
13821         is_loop_prefetching_profitable is splitted into three functions,
13822         with each one called as early as possible.
13823         (PREFETCH_MAX_MEM_REFS_PER_LOOP): New.  Threshold above which the
13824         number of memory references in a loop is considered too many.
13825
13826 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
13827
13828         * reload.c (find_reloads): Don't clear badop if we have a winreg
13829         alternative, but not win, and the class only has fixed regs.
13830         * hard-reg-set.h (class_only_fixed_regs): Declare.
13831         * reginfo.c (class_only_fixed_regs): New array.
13832         (init_reg_sets_1): Initialize it.
13833         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn): Don't
13834         discourage alternatives using the stack pointer.
13835
13836         * config/arm/arm.md (addsi3_cbranch): Switch alternatives 0 and 1.
13837
13838         * config/arm/arm.md (Thumb-1 ldrsb peephole): New.
13839
13840         * config/arm/arm.md (cbranchqi4): Fix array size.
13841         (addsi3_cbranch): Also andle alternative 2 like alternative 3 when
13842         calculating length.
13843
13844 2010-07-09  Richard Guenther  <rguenther@suse.de>
13845
13846         * gimple.c (struct type_fixup_s): New struct and VEC type.
13847         (gimple_register_type_fixups): New static global.
13848         (gimple_queue_type_fixup): New function.
13849         (gimple_types_compatible_p): Queue type fixups instead of
13850         applying them here.
13851         (gimple_register_type): Apply queued fixups for the
13852         canonical type.  Empty the type fixup queue.
13853
13854 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
13855
13856         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Fix test.
13857         * configure: Regenerate.
13858         * config.in: Ditto.
13859
13860 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
13861             Denys Vlasenko  <dvlasenk@redhat.com>
13862             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
13863
13864         PR tree-optimization/28632
13865         * tree-vrp.c (zero_nonzero_bits_from_vr): New function.
13866         (extract_range_from_binary_expr): Further optimize
13867         BIT_AND_EXPR and BIT_IOR_EXPR.
13868
13869 2010-07-09  Sebastian Pop  <sebastian.pop@amd.com>
13870
13871         * tree-if-conv.c (fold_or_predicates): New.
13872         (add_to_predicate_list): Call it.
13873
13874 2010-07-09  Richard Guenther  <rguenther@suse.de>
13875
13876         PR middle-end/44890
13877         * tree-ssa-address.c (create_mem_ref_raw): Only build a MEM_REF
13878         if base is a pointer.
13879         * tree-cfg.c (verify_expr): Update MEM_REF checking.
13880
13881 2010-07-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
13882
13883         PR target/44877
13884         * config/rs6000/rs6000.c (rs6000_expand_builtin): Use
13885         POINTER_TYPE_P instead of checking only for POINTER_TYPE for the
13886         builtin mask for load/store builtins.
13887
13888 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
13889
13890         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Also check
13891         for "lock addl".
13892         * configure: Regenerate.
13893         * config/i386/i386.c (ix86_print_operand) <case ';'>:
13894         Remove TARGET_MACHO.
13895
13896 2010-07-09  Peter Bergner  <bergner@vnet.ibm.com>
13897
13898         * config/rs6000/rs6000.c (rs6000_override_options): Fix setting of
13899         default ISA flags.
13900         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mvsx.
13901
13902 2010-07-09  Tom de Vries  <tjvries@xs4all.nl>
13903
13904         * tree.c (type_hash_if_marked_p): Removed non-ggc_marked_p clause.
13905
13906 2010-07-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
13907
13908         * config/picochip/picochip.md (commsTestPort): Emit more
13909         efficient sequence for tstport instruction.
13910
13911 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
13912
13913         * config/i386/i386.c (ix86_veclib_handler): Make static.
13914
13915 2010-07-09  Richard Guenther  <rguenther@suse.de>
13916
13917         PR tree-optimization/44852
13918         * tree-ssa-alias.c: Include toplev.h for exact_log2.
13919         (indirect_ref_may_alias_decl_p): Properly handle negative offsets
13920         in MEM_REF.
13921         (indirect_refs_may_alias_p): Likewise.
13922         * Makefile.in (tree-ssa-alias.o): Add $(TOPLEV_H).
13923
13924 2010-07-09  Richard Guenther  <rguenther@suse.de>
13925
13926         PR tree-optimization/44882
13927         * tree-vect-stmts.c (vectorizable_store): Do not assert alias
13928         sets do conflict.
13929         (vectorizable_load): Likewise.
13930
13931 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
13932
13933         PR target/40657
13934         * config/arm/arm.c (thumb1_extra_regs_pushed): New arg FOR_PROLOGUE.
13935         All callers changed.
13936         Handle the case when we're called for the epilogue.
13937         (thumb_unexpanded_epilogue): Use it.
13938         (thumb1_expand_epilogue): Likewise.
13939
13940 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
13941
13942         * tree-vrp.c (extract_range_from_binary_expr) <BIT_AND_EXPR>: If
13943         both ranges are range_int_cst_p with non-negative minimum,
13944         try harder to derive smaller range.
13945
13946 2010-07-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13947
13948         * genrecog.c: Include diagnostic-core.h before toplev.h.
13949         * genoutput.c: Likewise.
13950         * genextract.c: Likewise.
13951         * genautomata.c: Likewise.
13952         * genemit.c: Likewise.
13953         * genpeep.c: Likewise.
13954         * genattrtab.c: Likewise.
13955         * genconditions.c: Likewise.
13956         * genpreds.c: Likewise.
13957
13958 2010-07-08  Andi Kleen  <ak@linux.intel.com>
13959
13960         * lto-section-in.c (lto_section_name): Add missing comma.
13961
13962 2010-07-08  Anatoly Sokolov  <aesok@post.ru>
13963
13964         * config/ia64/ia64.h (OVERRIDE_OPTIONS): Remove macros.
13965         * config/ia64/ia64-protos.h (ia64_override_options): Remove.
13966         * config/ia64/ia64.c (TARGET_OPTION_OVERRIDE): Define.
13967         (ia64_override_options): Rename to...
13968         (ia64_option_override): ... this one. Make static.
13969
13970 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
13971
13972         PR middle-end/44843
13973         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not rely on the
13974         pointed-to type of the offset in a MEM_REF to compute the alignment.
13975
13976 2010-07-08  Kai Tietz  <kai.tietz@onevision.com>
13977
13978         * final.c (final_scan_insn): Replace
13979         TARGET_UNWIND_INFO macro check by unwind_emit
13980         hook NULL check.
13981         * targhooks.c (default_unwind_emit): Removed.
13982         * targhooks.h (default_unwind_emit): Likewise.
13983         * target.def (unwind_emit): Set default value to NULL.
13984
13985         * config/i386/i386-protos.h (ix86_asm_output_function_label):
13986         New prototype.
13987         * config/i386/i386.c (ix86_function_ms_hook_prologue): Check
13988         for NULL fntype argument and allow 64-bit targets.
13989         (ix86_asm_output_function_label): New function.
13990         (ix86_expand_prologue): Handle 64-bit ms hook prologue.
13991         (ix86_handle_fndecl_attribute): Likewise.
13992         * doc/extend.texi (ms_hook_prologue): Adjust documentation.
13993         * doc/doc/tm.texi: Regenerated.
13994         * doc/doc/doc/tm.texi.in (ASM_OUTPUT_FUNCTION_LABEL): New.
13995         (ASM_DECLARE_FUNCTION_NAME): Adjust documentation.
13996         * defaults.h (ASM_OUTPUT_FUNCTION_LABEL): New macro.
13997         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use
13998         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
13999         * config/elfos.h: Likewise.
14000         * config/i386/cygming.h: Likewise.
14001         * config/netbsd-aout.h: Likewise.
14002         * config/openbsd.h: Likewise.
14003         * config/i386/i386.h (ASM_OUTPUT_FUNCTION_LABEL): Override
14004         by ix86_asm_output_function_label function call.
14005         * varasm.c (assemble_start_function): Use
14006         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
14007
14008 2010-07-08  Jan Hubicka  <jh@suse.cz>
14009
14010         * cgraph.c (cgraph_will_be_removed_from_program_if_no_direct_calls):
14011         New function.
14012         * cgraph.h (cgraph_will_be_removed_from_program_if_no_direct_calls):
14013         Declare.
14014         * ipa-cp.c (ipcp_estimate_growth): Use it.
14015         * ipa-inline.c (cgraph_estimate_growth, cgraph_decide_inlining):
14016         Likewise.
14017
14018 2010-07-08  Jan Hubicka  <jh@suse.cz>
14019
14020         * tree-inline.c (declare_return_variable): Allocate annotation for new
14021         temporary.
14022
14023 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
14024
14025         PR tree-optimization/44710
14026         * tree-if-conv.c (parse_predicate): New.
14027         (add_to_predicate_list): Call it, call maybe_fold_or_comparisons.
14028         Make sure that the predicates are either SSA_NAMEs or gimple_condexpr.
14029
14030 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
14031
14032         * common.opt (ftree-loop-if-convert): New flag.
14033         * doc/invoke.texi (ftree-loop-if-convert): Documented.
14034         * tree-if-conv.c (gate_tree_if_conversion): Enable if-conversion
14035         when flag_tree_loop_if_convert is set.
14036
14037 2010-07-08  Uros Bizjak  <ubizjak@gmail.com>
14038
14039         * config/i386/i386.c: Use short syntax for function calls
14040         through function pointers.
14041         * config/i386/i386.md: Ditto.
14042
14043 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
14044
14045         * emit-rtl.c (set_mem_attributes_minus_bitpos): Fix formatting issues.
14046
14047 2010-07-08  Richard Guenther  <rguenther@suse.de>
14048
14049         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Fix
14050         stmt check for POINTER_PLUS_EXPRs, fix the pointer assignment.
14051
14052 2010-07-08  Jakub Jelinek  <jakub@redhat.com>
14053
14054         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_const[48]u
14055         instead of DW_OP_addr for DW_OP_GNU_push_tls_address operand.
14056         (loc_list_from_tree): Likewise.
14057         (output_loc_operands): Handle outputting DW_OP_const[48]u
14058         with loc->dtprel set.
14059         (resolve_addr_in_expr): Handle loc->dtprel like DW_OP_addr.
14060
14061 2010-07-08  Jan Hubicka  <jh@suse.cz>
14062
14063         * ipa.c: Include pointer-set.h
14064         (cgraph_externally_visible_p): New attribute ALIASED;
14065         when in LTO, hidden symbols are local unless they are aliased.
14066         (function_and_variable_visibility): Compute aliased nodes;
14067         handle LTO and hidden symbol on functions and vars.
14068         * cgraph.c (cgraph_make_decl_local): Clear NAMED_SECTION
14069         for COMDAT symbols; handle COMDAT_GROUPS also at vars.
14070
14071 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
14072
14073         * config/i386/cygming.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
14074         * config/i386/freebsd.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
14075         * config/i386/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
14076         * config/i386/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
14077         * config/i386/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
14078         * config/i386/i386.c (ix86_gen_adjust_stack_and_probe): New variable.
14079         (ix86_gen_probe_stack_range): Likewise.
14080         (override_options): Set them.
14081         (ix86_target_stack_probe): New function.
14082         (ix86_compute_frame_layout): Force use of push instructions to
14083         save registers if stack checking with probes is enabled.
14084         (get_scratch_register_on_entry): New function.
14085         (release_scratch_register_on_entry): Likewise.
14086         (ix86_adjust_stack_and_probe): Likewise.
14087         (output_adjust_stack_and_probe): Likewise.
14088         (ix86_emit_probe_stack_range): Likewise.
14089         (output_probe_stack_range): Likewise.
14090         (ix86_expand_prologue): Emit stack checking code if static built-in
14091         stack checking is enabled.
14092         Test ix86_target_stack_probe instead of TARGET_STACK_PROBE.
14093         * config/i386/i386-protos.h (ix86_target_stack_probe): Declare.
14094         (output_adjust_stack_and_probe): Likewise.
14095         (output_probe_stack_range): Likewise.
14096         * config/i386/i386.md (UNSPECV_PROBE_STACK_RANGE): New constant.
14097         (allocate_stack_worker_32): Test ix86_target_stack_probe instead of
14098         TARGET_STACK_PROBE.
14099         (allocate_stack_worker_64): Likewise.
14100         (allocate_stack): Likewise.
14101         (adjust_stack_and_probe): New insn.
14102         (probe_stack_range): Likewise.
14103
14104 2010-07-08  Richard Guenther  <rguenther@suse.de>
14105
14106         PR tree-optimization/44831
14107         * tree-ssa-phiprop.c (phiprop_insert_phi): Properly build
14108         a MEM_REF preserving TBAA info of the original dereference.
14109         Dereference the original pointer if the address is not invariant.
14110         (propagate_with_phi): Fixup type checks wrt MEM_REFs.  Require
14111         at least one invariant address that we are going to dereference.
14112
14113 2010-07-08  Richard Guenther  <rguenther@suse.de>
14114
14115         PR tree-optimization/44861
14116         * tree-vect-stmts.c (vectorizable_store): Preserve TBAA
14117         information when building MEM_REFs.
14118         (vectorizable_load): Likewise.
14119         * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
14120
14121 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
14122
14123         * config/sol2-c.c: Do not include diagnostic-core.h.
14124
14125 2010-07-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14126
14127         PR bootstrap/44768
14128         * cfgexpand.c (estimated_stack_frame_size): Make self-contained
14129         with respect to current_function_decl. Pass decl of the function.
14130         * tree-inline.h (estimated_stack_frame_size): Adjust prototype.
14131         * ipa-inline.c (compute_inline_parameters): Pass decl to
14132         estimated_stack_frame_size.
14133
14134 2010-07-08  Richard Guenther  <rguenther@suse.de>
14135
14136         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
14137         New function.
14138         (valueize_refs): Call it.
14139
14140 2010-07-08  Richard Guenther  <rguenther@suse.de>
14141
14142         PR rtl-optimization/44838
14143         * tree-ssa-alias.c (indirect_refs_may_alias_p): When not in
14144         SSA form do not use pointer equivalence.
14145
14146 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
14147
14148         * dwarf2out.c (AT_linkage_name): Delete.
14149         (add_linkage_attr): New function.
14150         (add_linkage_name): Call it to emit the linkage attribute.
14151         (dwarf2out_finish): Likewise.
14152         (move_linkage_attr): Explicitly accept both attribute variants.
14153
14154 2010-07-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14155
14156         * toplev.h: Do not include diagnostic-core.h.
14157         Include diagnostic-core.h in every file that includes toplev.h.
14158         * c-tree.h: Do not include toplev.h.
14159         * pretty-print.h: Update comment.
14160         * Makefile.in: Update dependencies.
14161         * alias.c: Include diagnostic-core.h in every file that includes
14162         toplev.h.
14163         * attribs.c: Likewise.
14164         * auto-inc-dec.c: Likewise.
14165         * bb-reorder.c: Likewise.
14166         * bt-load.c: Likewise.
14167         * caller-save.c: Likewise.
14168         * calls.c: Likewise.
14169         * cfg.c: Likewise.
14170         * cfganal.c: Likewise.
14171         * cfgbuild.c: Likewise.
14172         * cfgcleanup.c: Likewise.
14173         * cfghooks.c: Likewise.
14174         * cfgloop.c: Likewise.
14175         * combine.c: Likewise.
14176         * config/alpha/alpha.c: Likewise.
14177         * config/arc/arc.c: Likewise.
14178         * config/arm/arm.c: Likewise.
14179         * config/arm/pe.c: Likewise.
14180         * config/avr/avr.c: Likewise.
14181         * config/bfin/bfin.c: Likewise.
14182         * config/cris/cris.c: Likewise.
14183         * config/crx/crx.c: Likewise.
14184         * config/darwin-c.c: Likewise.
14185         * config/darwin.c: Likewise.
14186         * config/fr30/fr30.c: Likewise.
14187         * config/frv/frv.c: Likewise.
14188         * config/h8300/h8300.c: Likewise.
14189         * config/host-darwin.c: Likewise.
14190         * config/i386/i386.c: Likewise.
14191         * config/i386/netware.c: Likewise.
14192         * config/i386/nwld.c: Likewise.
14193         * config/i386/winnt-cxx.c: Likewise.
14194         * config/i386/winnt-stubs.c: Likewise.
14195         * config/i386/winnt.c: Likewise.
14196         * config/ia64/ia64-c.c: Likewise.
14197         * config/ia64/ia64.c: Likewise.
14198         * config/iq2000/iq2000.c: Likewise.
14199         * config/lm32/lm32.c: Likewise.
14200         * config/m32c/m32c-pragma.c: Likewise.
14201         * config/m32c/m32c.c: Likewise.
14202         * config/m32r/m32r.c: Likewise.
14203         * config/m68hc11/m68hc11.c: Likewise.
14204         * config/m68k/m68k.c: Likewise.
14205         * config/mcore/mcore.c: Likewise.
14206         * config/mep/mep-pragma.c: Likewise.
14207         * config/mep/mep.c: Likewise.
14208         * config/mmix/mmix.c: Likewise.
14209         * config/mn10300/mn10300.c: Likewise.
14210         * config/moxie/moxie.c: Likewise.
14211         * config/pa/pa.c: Likewise.
14212         * config/pdp11/pdp11.c: Likewise.
14213         * config/picochip/picochip.c: Likewise.
14214         * config/rs6000/rs6000-c.c: Likewise.
14215         * config/rs6000/rs6000.c: Likewise.
14216         * config/rx/rx.c: Likewise.
14217         * config/s390/s390.c: Likewise.
14218         * config/score/score.c: Likewise.
14219         * config/score/score3.c: Likewise.
14220         * config/score/score7.c: Likewise.
14221         * config/sh/sh.c: Likewise.
14222         * config/sh/symbian-base.c: Likewise.
14223         * config/sh/symbian-c.c: Likewise.
14224         * config/sh/symbian-cxx.c: Likewise.
14225         * config/sol2-c.c: Likewise.
14226         * config/sol2.c: Likewise.
14227         * config/sparc/sparc.c: Likewise.
14228         * config/spu/spu.c: Likewise.
14229         * config/stormy16/stormy16.c: Likewise.
14230         * config/v850/v850-c.c: Likewise.
14231         * config/v850/v850.c: Likewise.
14232         * config/vax/vax.c: Likewise.
14233         * config/vxworks.c: Likewise.
14234         * config/xtensa/xtensa.c: Likewise.
14235         * convert.c: Likewise.
14236         * cse.c: Likewise.
14237         * cselib.c: Likewise.
14238         * dbgcnt.c: Likewise.
14239         * dbxout.c: Likewise.
14240         * ddg.c: Likewise.
14241         * dominance.c: Likewise.
14242         * emit-rtl.c: Likewise.
14243         * explow.c: Likewise.
14244         * expmed.c: Likewise.
14245         * fixed-value.c: Likewise.
14246         * fold-const.c: Likewise.
14247         * fwprop.c: Likewise.
14248         * gcse.c: Likewise.
14249         * ggc-common.c: Likewise.
14250         * ggc-page.c: Likewise.
14251         * ggc-zone.c: Likewise.
14252         * gimple-low.c: Likewise.
14253         * gimplify.c: Likewise.
14254         * graph.c: Likewise.
14255         * haifa-sched.c: Likewise.
14256         * ifcvt.c: Likewise.
14257         * implicit-zee.c: Likewise.
14258         * integrate.c: Likewise.
14259         * ira-build.c: Likewise.
14260         * ira-color.c: Likewise.
14261         * ira-conflicts.c: Likewise.
14262         * ira-costs.c: Likewise.
14263         * ira-lives.c: Likewise.
14264         * ira.c: Likewise.
14265         * lists.c: Likewise.
14266         * loop-doloop.c: Likewise.
14267         * loop-iv.c: Likewise.
14268         * lto-opts.c: Likewise.
14269         * lto-symtab.c: Likewise.
14270         * main.c: Likewise.
14271         * modulo-sched.c: Likewise.
14272         * optabs.c: Likewise.
14273         * params.c: Likewise.
14274         * plugin.c: Likewise.
14275         * postreload-gcse.c: Likewise.
14276         * postreload.c: Likewise.
14277         * predict.c: Likewise.
14278         * profile.c: Likewise.
14279         * real.c: Likewise.
14280         * regcprop.c: Likewise.
14281         * reginfo.c: Likewise.
14282         * regmove.c: Likewise.
14283         * reorg.c: Likewise.
14284         * resource.c: Likewise.
14285         * rtl.c: Likewise.
14286         * rtlanal.c: Likewise.
14287         * sched-deps.c: Likewise.
14288         * sched-ebb.c: Likewise.
14289         * sched-rgn.c: Likewise.
14290         * sdbout.c: Likewise.
14291         * sel-sched-dump.c: Likewise.
14292         * sel-sched-ir.c: Likewise.
14293         * simplify-rtx.c: Likewise.
14294         * stmt.c: Likewise.
14295         * stor-layout.c: Likewise.
14296         * store-motion.c: Likewise.
14297         * targhooks.c: Likewise.
14298         * tree-cfg.c: Likewise.
14299         * tree-cfgcleanup.c: Likewise.
14300         * tree-dump.c: Likewise.
14301         * tree-eh.c: Likewise.
14302         * tree-inline.c: Likewise.
14303         * tree-nomudflap.c: Likewise.
14304         * tree-object-size.c: Likewise.
14305         * tree-optimize.c: Likewise.
14306         * tree-outof-ssa.c: Likewise.
14307         * tree-phinodes.c: Likewise.
14308         * tree-profile.c: Likewise.
14309         * tree-ssa-ccp.c: Likewise.
14310         * tree-ssa-coalesce.c: Likewise.
14311         * tree-ssa-live.c: Likewise.
14312         * tree-ssa-loop-niter.c: Likewise.
14313         * tree-ssa-loop-prefetch.c: Likewise.
14314         * tree-ssa-loop.c: Likewise.
14315         * tree-ssa-structalias.c: Likewise.
14316         * tree-ssa-uninit.c: Likewise.
14317         * tree-ssa.c: Likewise.
14318         * tree-vect-data-refs.c: Likewise.
14319         * tree-vect-loop-manip.c: Likewise.
14320         * tree-vect-loop.c: Likewise.
14321         * tree-vect-patterns.c: Likewise.
14322         * tree-vect-stmts.c: Likewise.
14323         * tree-vrp.c: Likewise.
14324         * varasm.c: Likewise.
14325         * vec.c: Likewise.
14326         * web.c: Likewise.
14327         * xcoffout.c: Likewise.
14328
14329 2010-07-07  Richard Sandiford  <rdsandiford@googlemail.com>
14330
14331         * gengtype.c (write_field_root): New function.
14332         (write_root): Use it.
14333
14334 2010-07-07  Wei Guozhi  <carrot@google.com>
14335
14336         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
14337         of lowest bits to lshift/compare): Add a missing line.
14338
14339 2010-07-07  Wei Guozhi  <carrot@google.com>
14340
14341         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
14342         of lowest bits to lshift/compare): New.
14343
14344 2010-07-07  Tom Tromey  <tromey@redhat.com>
14345
14346         * doc/tm.texi: Update.
14347         * doc/tm.texi.in (SDB and DWARF) <TARGET_WANT_DEBUG_PUB_SECTIONS>:
14348         Add @hook.
14349         * target.def (want_debug_pub_sections): New hook.
14350         * config/darwin.h (TARGET_WANT_DEBUG_PUB_SECTIONS): Define.
14351         * dwarf2out.c (add_pubname_string): Check
14352         targetm.want_debug_pub_sections.
14353         (add_pubname): Likewise.
14354         (add_pubtype): Likewise.
14355
14356 2010-07-07  Jie Zhang  <jie@codesourcery.com>
14357
14358         * genautomata.c (output_automata_list_min_issue_delay_code):
14359         Correctly decompress min_issue_delay.
14360
14361 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
14362
14363         PR rtl-optimization/44404
14364         * auto-inc-dec.c (find_inc): Avoid calling count_occurrences if
14365         possible, use reg_overlap_mentioned_p instead.
14366
14367 2010-07-07  Duncan Sands  <baldrick@free.fr>
14368
14369         PR middle-end/41355
14370         * tree.c (build_function_type_skip_args): Copy the original type using
14371         build_distinct_type_copy rather than copy_node.
14372
14373 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
14374
14375         PR target/44850
14376         * config/i386/i386.c (ix86_function_ms_hook_prologue): Revert
14377         revision 161876.
14378         (ix86_expand_prologue): Likewise.
14379         (ix86_handle_fndecl_attribute): Likewise.
14380         (ix86_asm_declare_function_name): Likewise.
14381         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
14382         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
14383         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): Likewise.
14384         * config/i386/i386-protos.h (ix86_asm_declare_function_name): Likewise.
14385         * doc/extend.texi: Likewise.
14386
14387 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
14388
14389         PR target/44844
14390         * config/i386/i386.md (rdrand<mode>): Changed to expand to
14391         retry if the carry flag isn't valid.
14392         (rdrand<mode>_1): New.
14393
14394 2010-07-07  Richard Guenther  <rguenther@suse.de>
14395
14396         PR middle-end/44790
14397         * expr.c (expand_expr_real_1): Go the POINTER_PLUS_EXPR path
14398         for expanding the constant offset for MEM_REFs.
14399
14400 2010-07-07  Richard Guenther  <rguenther@suse.de>
14401
14402         * tree-ssa-propagate.h (valid_gimple_call_p): Remove.
14403         * tree-ssa-propagate.c (valid_gimple_call_p): Make static.  Fix.
14404         * gimple.h (is_gimple_operand): Remove.
14405         * gimple.c (is_gimple_operand): Likewise.
14406         (walk_gimple_op): Fix wi->val_only setting for calls.
14407         * tree-cfg.c (verify_gimple_call): Fix argument validation.
14408         * tree-profile.c (tree_gen_ic_func_profiler): Do not create
14409         invalid gimple calls.
14410
14411 2010-07-06  Jan Hubicka  <jh@suse.cz>
14412
14413         * lto-cgraph.c (output_cgraph): Add missing declaration.
14414
14415 2010-07-06  Jan Hubicka  <jh@suse.cz>
14416
14417         * lto-cgraph.c (output_cgraph): Output toplevel asms only into first
14418         partition.
14419
14420 2010-07-06  Alexandre Oliva  <aoliva@redhat.com>
14421
14422         * doc/gimple.texi (GIMPLE_DEBUG): Document.
14423         * doc/rtl.texi (Debug Information): New node.
14424         (NOTE_INSN_VAR_LOCATION): Document.
14425         (debug_insn): Likewise.
14426         * doc/generic.texi (DEBUG_EXPR_DECL): Document.
14427
14428 2010-07-07  Jan Hubicka  <jh@suse.cz>
14429
14430         With parts by Richard Guenther.
14431
14432         PR middle-end/44813
14433         * tree-ssa-uninit.c (ssa_undefined_value_p): Result decl is defined
14434         for functions passed by reference.
14435         * tree.c (needs_to_live_in_memory): RESULT_DECL don't need to live
14436         in memory when passed by reference.
14437         * tree-ssa-ccp.c (get_default_value): Only VAR_DECL is undefined at
14438         beggining.
14439         * ipa-split.c (split_function): Cleanup way return value is passed;
14440         handle SSA DECL_BY_REFERENCE retvals.
14441         * tree-ssa.c (verify_def): Verify that RESULT_DECL is read only when
14442         DECL_BY_REFERENCE is set.
14443         * tree-ssa-structalias.c (get_constraint_for_ssa_var, get_fi_for_callee,
14444         find_what_p_points_to): Handle RESULT_DECL.
14445         * tree-inline.c (declare_return_variable): Get new entry_block argument;
14446         when passing by reference ensure that RESULT_DECL is gimple_val.
14447         (remap_gimple_op_r): Remap RESULT_DECL ssa name.
14448         (remap_gimple_stmt): Handle SSA DECL_BY_REFERENCE returns.
14449
14450 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
14451
14452         PR rtl-optimization/44787
14453         * config/arm/arm.md (arith_shiftsi): Allow stack pointer in operand 2.
14454         * config/arm/thumb2.md (thumb2_arith_shiftsi): Likewise.
14455
14456 2010-07-06  Jan Hubicka  <jh@suse.cz>
14457
14458         * lto-symtab.c (lto_cgraph_replace_node): Handle aliases.
14459         (lto_symtab_resolve_can_prevail_p): Also alias of cgraph node
14460         with body can prevail.
14461         (lto_symtab_resolve_symbols): Use cgraph_get_node_or_alias.
14462         (lto_symtab_merge_cgraph_nodes_1): Do not remove nodes from aliases.
14463         * cgraph.c (cgraph_get_node_or_alias): New function.
14464         * cgraph.h (cgraph_get_node_or_alias): Declare.
14465
14466 2010-07-06  Kai Tietz  <kai.tietz@onevision.com>
14467
14468         * config/i386/i386.c (ix86_function_ms_hook_prologue): Enable x64
14469         support.
14470         (ix86_expand_prologue): Likewise.
14471         (ix86_handle_fndecl_attribute): Likewise.
14472         (ix86_asm_declare_function_name): New function for
14473         ASM_DECLARE_FUNCTION_NAME.
14474         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): New macro.
14475         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Removed.
14476         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): New macro.
14477         * config/i386/i386-protos.h (ix86_asm_declare_function_name): New.
14478         * doc/extend.texi: Adjust documentation about ms_hook_prologue
14479         attribute.
14480
14481 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
14482
14483         * config/i386/i386.md (immediate_operand): New mode attribute.
14484
14485         (pro_epilogue_adjust_stack_<mode>_1): Macroize insn from
14486         pro_epilogue_adjust_stack  and pro_epilogue_adjust_stack_rex64
14487         using P mode iterator.
14488         (pro_epilogue_adjust_stack_di_2): Rename from
14489         pro_epilogue_adjust_stack_rex64_2.
14490
14491         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for rename.
14492
14493 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
14494
14495         * config/i386/i386.md (insv): Call gen_movdi_insv1 or gen_movsi_insv1
14496         through gen_mov_insv_1 function pointer.
14497         (fmod<mode>3): Call gen_truncxf<mode>2_i387_noop_unspec or
14498         gen_truncxf<mode>2 through gen_truncxf function pointer.
14499         (remainder<mode>3): Ditto.
14500         (cmpstrnsi): Rename cmp_insn function pointer to gen_cmp.
14501         (allocate_stack): Call gen_allocate_stack_worker_64 or
14502         gen_allocate_stack_worker_32 through gen_allocate_stack_worker
14503         function pointer.
14504         (probe_stack): Call gen_iordi3 or gen_iorsi3 through gen_ior3
14505         function pointer.
14506
14507 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
14508
14509         * config/i386/i386.md (*add<mode>3_cconly_overflow): Use <g>
14510         operand constraint instead of <r><i>m.
14511
14512 2010-07-06  Richard Guenther  <rguenther@suse.de>
14513
14514         PR middle-end/44828
14515         * convert.c (convert_to_integer): Watch out for overflowing
14516         MULT_EXPR as well.
14517
14518 2010-07-05  Jan Hubicka  <jh@suse.cz>
14519
14520         * lto-streamer.c (write_symbol_vec): Rename to ...
14521         (write_symbol) ... this one; write only symbol given and when
14522         present in cache. Sanity check that what is defined is present
14523         in cgraph/varpool with body/finalized decl.
14524         (write_symbols_of_kind): Remove.
14525         (produce_symtab): Take outputblock and sets; use cgraph/varpool/alias
14526         pairs to produce symtab.
14527         (produce_asm_for_decls): Update call of produce_symtab; don't do so
14528         when doing WPA streaming.
14529
14530 2010-07-05  Jan Hubicka  <jh@suse.cz>
14531
14532         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Check that
14533         function is still available to fold into.
14534
14535 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
14536
14537         * vec.h (FOR_EACH_VEC_ELT_REVERSE): New macro.
14538         * function.h (struct_function): Change type of local_decls field
14539         to a VEC.
14540         (add_local_decl): New function.
14541         (FOR_EACH_LOCAL_DECL): New macro.
14542         * cfgexpand.c (init_vars_expansion): Adjust for new type of
14543         cfun->local_decls.
14544         (estimated_stack_frame_size): Likewise.
14545         (expand_used_vars): Likewise.
14546         * cgraphbuild.c (build_cgraph_edges): Likewise.
14547         * function.c (instantiate_decls_1): Likewise.
14548         * ipa-struct-reorg.c (build_data_structure): Likewise.
14549         * ipa-type-escape.c (analyze_function): Likewise.
14550         * lto-streamer-in.c (input_function): Likewise.
14551         * lto-streamer-out.c (output_function): Likewise.
14552         * tree-ssa-live.c (remove_unused_locals): Likewise.
14553         * tree.c (free_lang_data_in_decl): Likewise.
14554         (find_decls_types_in_node): Likewise.
14555         * omp-low.c (remove_exit_barrier): Likewise.
14556         (expand_omp_taskreg): Likewise.
14557         (list2chain): Rename to...
14558         (vec2chain): ...this.  Adjust.
14559         * cgraphunit.c (assemble_thunk): Call add_local_decl.
14560         * tree-cfg.c (replace_by_duplicate_decl): Likewise.
14561         * gimple-low.c (record_vars_into): Likewise.
14562         * tree-inline.c (remap_decls): Likewise.
14563         (declare_return_variable): Likewise.
14564         (declare_inline_vars): Likewise.
14565         (copy_forbidden): Adjust for new type of cfun->local_decls.
14566         (add_local_variables): New function.
14567         (expand_call_inline): Call it.
14568         (tree_function_versioning): Likewise.
14569
14570 2010-07-05  H.J. Lu  <hongjiu.lu@intel.com>
14571
14572         AVX Programming Reference (June, 2010)
14573         * config/i386/cpuid.h (bit_F16C): New.
14574         (bit_RDRND): Likewise.
14575         (bit_FSGSBASE): Likewise.
14576
14577         * config/i386/i386-builtin-types.def: Add
14578         "DEF_FUNCTION_TYPE (UINT16)", function types for
14579         float16 <-> float conversions and
14580         "DEF_FUNCTION_TYPE (VOID, UINT64)".
14581
14582         * config/i386/i386-c.c (ix86_target_macros_internal): Support
14583         OPTION_MASK_ISA_FSGSBASE, OPTION_MASK_ISA_RDRND and
14584         OPTION_MASK_ISA_F16C.
14585
14586         * config/i386/i386.c (OPTION_MASK_ISA_FSGSBASE_SET): New.
14587         (OPTION_MASK_ISA_RDRND_SET): Likewise.
14588         (OPTION_MASK_ISA_F16C_SET): Likewise.
14589         (OPTION_MASK_ISA_FSGSBASE_UNSET): Likewise.
14590         (OPTION_MASK_ISA_RDRND_UNSET): Likewise.
14591         (OPTION_MASK_ISA_F16C_UNSET): Likewise.
14592         (OPTION_MASK_ISA_AVX_UNSET): Add OPTION_MASK_ISA_F16C_UNSET.
14593         (ix86_handle_option): Handle OPT_mfsgsbase, OPT_mrdrnd and OPT_mf16c.
14594         (ix86_target_string): Support -mfsgsbase, -mrdrnd and -mf16c.
14595         (pta_flags): Add PTA_FSGSBASE, PTA_RDRND and PTA_F16C.
14596         (override_options): Handle them.
14597         (ix86_valid_target_attribute_inner_p): Handle fsgsbase, rdrnd and f16c.
14598         (ix86_builtins): Add IX86_BUILTIN_RDFSBASE32,
14599         IX86_BUILTIN_RDFSBASE64, IX86_BUILTIN_RDGSBASE32,
14600         IX86_BUILTIN_RDGSBASE64, IX86_BUILTIN_WRFSBASE32,
14601         IX86_BUILTIN_WRFSBASE64, IX86_BUILTIN_WRGSBASE32,
14602         IX86_BUILTIN_WRGSBASE64, IX86_BUILTIN_RDRAND16,
14603         IX86_BUILTIN_RDRAND32, IX86_BUILTIN_RDRAND64,
14604         IX86_BUILTIN_CVTPH2PS, IX86_BUILTIN_CVTPH2PS256,
14605         IX86_BUILTIN_CVTPS2PH and IX86_BUILTIN_CVTPS2PH256.
14606         (bdesc_args): Likewise.
14607         (ix86_expand_args_builtin): Handle V8SF_FTYPE_V8HI,
14608         V4SF_FTYPE_V8HI, V8HI_FTYPE_V8SF_INT and V8HI_FTYPE_V4SF_INT.
14609         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_UINT64,
14610         VOID_FTYPE_UNSIGNED, UNSIGNED_FTYPE_VOID and UINT16_FTYPE_VOID.
14611         Handle non-memory store.
14612
14613         * config/i386/i386.h (TARGET_FSGSBASE): New.
14614         (TARGET_RDRND): Likewise.
14615         (TARGET_F12C): Likewise.
14616
14617         * config/i386/i386.md (UNSPEC_VCVTPH2PS): New.
14618         (UNSPEC_VCVTPS2PH): Likewise.
14619         (UNSPECV_RDFSBASE): Likewise.
14620         (UNSPECV_RDGSBASE): Likewise.
14621         (UNSPECV_WRFSBASE): Likewise.
14622         (UNSPECV_WRGSBASE): Likewise.
14623         (UNSPECV_RDRAND): Likewise.
14624         (rdfsbase<mode>): Likewise.
14625         (rdgsbase<mode>): Likewise.
14626         (wrfsbase<mode>): Likewise.
14627         (wrgsbase<mode>): Likewise.
14628         (rdrand<mode>): Likewise.
14629
14630         * config/i386/i386.opt: Add -mfsgsbase, -mrdrnd and -mf16c.
14631
14632         * config/i386/immintrin.h (_rdrand_u16): New.
14633         (_rdrand_u32): Likewise.
14634         (_readfsbase_u32): Likewise.
14635         (_readfsbase_u64): Likewise.
14636         (_readgsbase_u32): Likewise.
14637         (_readgsbase_u64): Likewise.
14638         (_writefsbase_u32): Likewise.
14639         (_writefsbase_u64): Likewise.
14640         (_writegsbase_u32): Likewise.
14641         (_writegsbase_u64): Likewise.
14642         (_rdrand_u64): Likewise.
14643         (_cvtsh_ss): Likewise.
14644         (_mm_cvtph_ps): Likewise.
14645         (_mm256_cvtph_ps): Likewise.
14646         (_cvtss_sh): Likewise.
14647         (_mm_cvtps_ph): Likewise.
14648         (_mm256_cvtps_ph): Likewise.
14649
14650         * config/i386/sse.md (vcvtph2ps): New.
14651         (*vcvtph2ps_load): Likewise.
14652         (vcvtph2ps256): Likewise.
14653         (vcvtps2ph): Likewise.
14654         (*vcvtps2ph): Likewise.
14655         (*vcvtps2ph_store): Likewise.
14656         (vcvtps2ph256): Likewise.
14657
14658         * doc/extend.texi: Document FSGSBASE and RDRND built-in functions.
14659
14660         * doc/invoke.texi: Document -mfsgsbase, -mrdrnd and -mf16c.
14661
14662 2010-07-05  Joern Rennecke  <joern.rennecke@embecosm.com>
14663
14664         PR bootstrap/44512
14665         * genenums.c (main): Output include of insn-constants.h
14666         * Makefile.in (insn-enums.o): Depend on insn-constants.h.
14667
14668 2010-07-05  Uros Bizjak  <ubizjak@gmail.com>
14669
14670         * config/i386/i386.c (ix86_gen_allocate_stack_worker): New.
14671         (override_options): Initialize it.
14672         (ix86_expand_prologue): Use it.
14673
14674 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
14675
14676         * tree-nrv.c (tree_nrv): Set DECL_VALUE_EXPR on found to result.
14677
14678 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
14679
14680         * double-int.h (fit_double_type): Remove declaration.
14681         * double-int.c (fit_double_type): Remove function.
14682         * tree.h (int_fits_type_p): Adjust prototype.
14683         * tree.c (int_fits_type_p): Return bool. Use double_int_fits_to_tree_p
14684         instead of fit_double_type.
14685         (build_int_cst_type): Use double_int_to_tree and shwi_to_double_int
14686         instead of fit_double_type and build_int_cst_wide.
14687         * builtins.c (): Use double_int_fits_to_tree_p and double_int_to_tree
14688         instead of fit_double_type and build_int_cst_wide.
14689         (fold_builtin_object_size): Use double_int_fits_to_tree_p instead
14690         of fit_double_type.
14691
14692 2010-07-05  Jan Hubicka  <jh@suse.cz>
14693
14694         * cgraph.h (cgraph_node, cgraph_varpool_node): Update docmentation of
14695         in_other_partition.
14696         * lto-cgraph.c (referenced_from_other_partition_p,
14697         reachable_from_other_partition_p): Use in_other_partition flags.
14698         (output_node, output_varpool_node): COMDAT nodes always have private
14699         copies and thus are never used from other partition.
14700
14701 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
14702
14703         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
14704         * config/ia64/t-ia64 (ia64.o): Depend on reload.h.
14705         * config/ia64/ia64.c Include reload.h.
14706         (ia64_memory_move_cost): New function.
14707         (TARGET_MEMORY_MOVE_COST): Define.
14708         (ia64_register_move_cost): Replace MEMORY_MOVE_COST with
14709         memory_move_cost.
14710
14711 2010-07-05  Sandra Loosemore  <sandra@codesourcery.com>
14712
14713         PR middle-end/42505
14714         * tree-ssa-loop-ivopts.c (determine_set_costs): Delete obsolete
14715         comments about cost model.
14716         (try_add_cand_for):  Add second strategy for choosing initial set
14717         based on original IVs, controlled by ORIGINALP argument.
14718         (get_initial_solution): Add ORIGINALP argument.
14719         (find_optimal_iv_set_1): New function, split from find_optimal_iv_set.
14720         (find_optimal_iv_set): Try two different strategies for choosing
14721         the IV set, and return the one with lower cost.
14722
14723 2010-07-05  Richard Guenther  <rguenther@suse.de>
14724
14725         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Copy alias info.
14726
14727 2010-07-05  Richard Guenther  <rguenther@suse.de>
14728
14729         * tree.c (reference_alias_ptr_type): New function.
14730         * tree.h (reference_alias_ptr_type): Declare.
14731         * tree-ssa-loop-ivopts.c (copy_ref_info): Restructure to
14732         allow non-TARGET_MEM_REF new refs.
14733         (rewrite_use_address): Pass old alias pointer type to create_mem_ref.
14734         * tree-ssa-address.c (create_mem_ref_raw): Get alias pointer type.
14735         Build a MEM_REF instead of a TARGET_MEM_REF if possible.
14736         (create_mem_ref): Get alias pointer type.  Adjust calls to
14737         create_mem_ref_raw.
14738         (maybe_fold_tmr): Likewise.
14739         * tree-flow.h (create_mem_ref): Adjust prototype.
14740
14741 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
14742
14743         PR c++/44808
14744         * gimplify.c (gimplify_modify_expr): Only SET_DECL_DEBUG_EXPR if
14745         *from_p is VAR_DECL.
14746
14747 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
14748
14749         * tree.h (build_call_list): Remove.
14750         * tree.c (build_call_list): Remove.
14751
14752 2010-07-05  Richard Guenther  <rguenther@suse.de>
14753
14754         * double-int.h (double_int_sub): Declare.
14755         * double-int.c (double_int_sub): New function.
14756         * dwarf2out.c (field_byte_offset): Use it.
14757         * fixed-value.c (do_fixed_add): Likewise.
14758         (do_fixed_multiply): Likewise.
14759         (do_fixed_divide): Likewise.
14760         * tree-predcom.c (add_ref_to_chain): Likewise.
14761         (determine_roots_comp): Likewise.
14762         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
14763
14764 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
14765
14766         * vec.h (VEC_splice, VEC_safe_splice): New macros.  Add function
14767         implementations.
14768
14769 2010-07-05  Bernd Schmidt  <bernds@codesourcery.com>
14770
14771         * config/arm/arm.c (get_arm_condition_code): Remove CC_NOTBmode case.
14772         * arm-modes.def (CC_NOTB): Don't define.
14773         * config/arm/arm.md (arm_adddi3): Generate canonical RTL.
14774         (adddi_sesidi_di, adddi_zesidi_di): Likewise.
14775         (LTUGEU): New code_iterator.
14776         (cnb, optab): New corresponding code_attrs.
14777         (addsi3_carryin_<optab>): Renamed from addsi3_carryin.  Change pattern
14778         to canonical form.  Operands 1 and 2 are commutative.  Parametrize
14779         using LTUGEU.
14780         (addsi3_carryin_shift_<optab>): Likewise.
14781         (addsi3_carryin_alt2_<optab>): Renamed from addsi3_carryin_alt2.
14782         Operands 1 and 2 are commutative.  Parametrize using LTUGEU.
14783         (addsi3_carryin_alt1, addsi3_carryin_alt3): Remove.
14784         (subsi3_compare): Renamed from subsi3_compare0_c.
14785         Change CC_NOTB to CC.
14786         (arm_subsi3_insn): Allow constants for operand 0.
14787         (compare_scc peephole for eq case): New.
14788         (compare_scc splitters): Change CC_NOTB to CC.
14789
14790 2010-07-05  Richard Guenther  <rguenther@suse.de>
14791
14792         * tree-ssa-loop-im.c (for_each_index): Do not handle
14793         ALIGN_INDIRECT_REF.
14794         (gen_lsm_tmp_name): Likewise.
14795         * tree-dump.c (dequeue_and_dump): Likewise.
14796         * tree-pretty-print.c (dump_generic_node): Likewise.
14797         (op_code_prio): Likewise.
14798         (op_symbol_code): Likewise.
14799         * tree.c (staticp): Likewise.
14800         (build1_stat): Likewise.
14801         * tree.h (INDIRECT_REF_P): Likewise.
14802         * fold-const.c (maybe_lvalue_p): Likewise.
14803         (operand_equal_p): Likewise.
14804         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
14805         (ao_ref_init_from_vn_reference): Likewise.
14806         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
14807         (find_interesting_uses_address): Likewise.
14808         * dwarf2out.c (loc_list_from_tree): Likewise.
14809         * gimplify.c (gimplify_expr): Likewise.
14810         * tree-eh.c (tree_could_trap_p): Likewise.
14811         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
14812         * cfgexpand.c (expand_debug_expr): Likewise.
14813         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
14814         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
14815         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
14816         * config/rs6000/rs6000 (rs6000_check_sdmode): Likewise.
14817         * tree-ssa-operands.c (get_expr_operands): Likewise.
14818         * expr.c (safe_from_p): Likewise.
14819         (expand_expr_real_1): Likewise.  TER BIT_AND_EXPRs into MEM_REFs.
14820         * tree-vect-data-refs.c (vect_setup_realignment): Build
14821         BIT_AND_EXPR and MEM_REF instead of ALIGN_INDIRECT_REF.
14822         * tree-vect-stmts.c (vectorizable_load): Likewise.
14823         * tree.def (ALIGN_INDIRECT_REF): Remove.
14824
14825 2010-07-05  Richard Guenther  <rguenther@suse.de>
14826
14827         PR tree-optimization/44784
14828         * tree-ssa-pre.c (bitmap_find_leader): Fix dominance check
14829         for inserted stmts.
14830         (find_or_generate_expression): Fix SCCVN insertion check.
14831
14832 2010-07-05  Nathan Sidwell  <nathan@codesourcery.com>
14833
14834         * config/rs6000/e500crtsavg64gprctr.asm: Correct done label name.
14835         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
14836         * config/rs6000/e500crtres64gprctr.asm: Likewise. Add FUNC_END
14837         directives.
14838
14839 2010-07-05  Ira Rosen  <irar@il.ibm.com>
14840
14841         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Skip
14842         statements that are not vectorized.
14843         * tree-vect-stmts.c (vect_get_load_cost): Update the value stored
14844         in INSIDE_COST.
14845
14846 2010-07-05  Mikael Pettersson  <mikpe@it.uu.se>
14847
14848         PR bootstrap/44820
14849         * config/arm/arm.c (arm_attr_length_move_neon): Delete regno.
14850
14851 2010-07-05  Richard Guenther  <rguenther@suse.de>
14852
14853         * tree-cfg.c (verify_gimple_return): Handle DECL_BY_REFERENCE
14854         RESULT_DECLs properly.
14855
14856 2010-07-04  H.J. Lu  <hongjiu.lu@intel.com>
14857
14858         PR rtl-optimization/44695
14859         * config/i386/i386.md (extract_code): Removed.
14860         (<u>divmodqi4): Likewise.
14861         (divmodqi4): New.
14862         (udivmodqi4): Likewise.
14863         (divmodhiqi3): Change div/mod to HImode and extend operand 2 to HImode.
14864         (udivmodhiqi3): Likewise.
14865
14866 2010-07-04  Jan Hubicka  <jh@suse.cz>
14867
14868         * lto-cgraph.c (input_edge): Do not care about resolution decisions.
14869
14870 2010-07-04  Jan Hubicka  <jh@suse.cz>
14871
14872         * cgraphunit.c (init_cgraph): Only initialize dump file if it
14873         is not already initialized.
14874
14875 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
14876
14877         * optabs.h (reload_in_optab, reload_out_optab, code_to_optab)
14878         (vcond_gen_code, vcondu_gen_code, movmem_optab, setmem_optab)
14879         (cmpstr_optab, cmpstrn_optab, cmpmem_optab, sync_add_optab)
14880         (sync_sub_optab, sync_ior_optab, sync_and_optab, sync_xor_optab)
14881         (sync_nand_optab, sync_old_add_optab, sync_old_sub_optab)
14882         (sync_old_ior_optab, sync_old_and_optab, sync_old_xor_optab)
14883         (sync_old_nand_optab, sync_new_add_optab, sync_new_sub_optab)
14884         (sync_new_ior_optab, sync_new_and_optab, sync_new_xor_optab)
14885         (sync_new_nand_optab): Redefine as macros.
14886         (sync_compare_and_swap, sync_lock_test_and_set, sync_lock_release):
14887         Delete.
14888         (direct_optab_index): New enum.
14889         (direct_optab_d): New structure.
14890         (direct_optab): New typedef.
14891         (direct_optab_table): Declare.
14892         (direct_optab_handler, set_direct_optab_handler): New functions.
14893         (sync_compare_and_swap_optab, sync_lock_test_and_set_optab)
14894         (sync_lock_release_optab): New macros.
14895         * optabs.c (direct_optab_table): New variable.
14896         (movcc_gen_code, vcond_gen_code, vcondu_gen_code): Delete.
14897         (prepare_cmp_insn): Use direct_optab_handler for cmpmem_optab,
14898         cmpstr_optab and cmpstrn_optab.
14899         (emit_conditional_move): Likewise for movcc_optab.
14900         (can_conditionally_move_p): Likewise for movcc_gen_code.
14901         (init_insn_codes): Clear direct_optab_table.
14902         (init_optabs): Don't initialize the new "direct optabs" here.
14903         (get_vcond_icode): Use direct_optab_handler for vcondu_gen_code and
14904         vcond_gen_code.
14905         (expand_val_compare_and_swap): Likewise sync_compare_and_swap_optab.
14906         (expand_bool_compare_and_swap): Likewise sync_compare_and_swap_optab.
14907         (expand_compare_and_swap_loop): Likewise sync_compare_and_swap_optab.
14908         (expand_sync_operation): Likewise other sync_*_optabs.
14909         (expand_sync_fetch_operation): Likewise.  Rename sync_compare_and_swap
14910         to sync_compare_and_swap_optab.
14911         (expand_sync_lock_test_and_set): Use direct_optab_handler for
14912         sync_lock_test_and_set and sync_compare_and_swap, adding "_optab"
14913         to the names of both.
14914         * builtins.c (expand_builtin_strcmp): Use direct_optab_handler for
14915         cmpstr_optab and cmpstrn_optab.
14916         (expand_builtin_lock_release): Likewise sync_lock_release.
14917         * expr.c (movmem_optab, setmem_optab, cmpstr_optab, cmpstrn_optab)
14918         (cmpmem_optab, sync_add_optab, sync_sub_optab, sync_ior_optab)
14919         (sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab)
14920         (sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab)
14921         (sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab)
14922         (sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab)
14923         (sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap)
14924         (sync_lock_test_and_set, sync_lock_release): Delete.
14925         (emit_block_move_via_movmem): Use direct_optab_handler for movmem_optab.
14926         (emit_block_move_via_setmem): Use direct_optab_handler for setmem_optab.
14927         * genopinit.c (optabs): Use set_direct_optab_handler for the new
14928         macro optabs.
14929         * omp-low.c (expand_omp_atomic_fetch_op): Update the type of
14930         the "optab" local variable.  Use direct_optab_handler for optab and
14931         sync_compare_and_swap_optab.
14932         * reload1.c (reload_in_optab, reload_out_optab): Delete.
14933         * targhooks.c (default_secondary_reload): Use direct_optab_handler for
14934         reload_in_optab and reload_out_optab.
14935         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
14936         * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
14937         * config/pa/pa.c (pa_secondary_reload): Likewise.
14938         * java/builtins.c (compareAndSwapInt_builtin): Use direct_optab_handler
14939         for sync_compare_and_swap, renaming it to sync_compare_and_swap_optab.
14940         (compareAndSwapLong_builtin, compareAndSwapObject_builtin): Likewise.
14941         (VMSupportsCS8_builtin): Likewise.
14942
14943 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
14944
14945         * optabs.h (optab_handlers): Change type of insn_code to int.
14946         (optab_handler, set_optab_handler, convert_optab_handler)
14947         (set_convert_optab_handler): Treat the insn_code field as "insn_code -
14948         CODE_FOR_nothing".
14949         * optabs.c (optab_table, convert_optab_table): Always zero-initialize.
14950         (init_insn_codes): Zero both the above arrays.
14951         (init_optabs): Never call init_insn_codes first time around.
14952
14953 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
14954
14955         * optabs.h (optab_handler, convert_optab_handler): Turn into
14956         inline functions that return an insn code.
14957         (set_optab_handler, set_convert_optab_handler): New functions.
14958         * builtins.c: Replace optab_handler(X)->insn_code with
14959         optab_handler or set_optab_handler thoughout.  Likewise
14960         convert_optab_handler(X)->insn_code with convert_optab_handler
14961         and set_convert_optab_handler.
14962         * expmed.c, expr.c, genopinit.c, ifcvt.c, optabs.c, reload.c,
14963         reload1.c, stmt.c, targhooks.c, tree-ssa-loop-prefetch.c,
14964         tree-ssa-math-opts.c, tree-vect-data-refs.c, tree-vect-generic.c,
14965         tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
14966         tree-vect-stmts.c, config/m32c/m32c.c, config/rs6000/rs6000.c,
14967         config/spu/spu.c: Likewise.
14968
14969 2010-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
14970
14971         PR target/44531
14972         * config.gcc (sh*-*-*): Use regular expressions instead of
14973         the 'i' modifier for sed substitutions.
14974
14975 2010-07-04  Jeremie Salvucci  <jeremie.salvucci@free.fr>
14976
14977         * gimple.c (gimple_body): Comments added.
14978
14979 2010-07-04  Richard Guenther  <rguenther@suse.de>
14980
14981         PR middle-end/44809
14982         * gimplify.c (gimplify_expr): Properly build a MEM_REF instead
14983         of an INDIRECT_REF.
14984
14985 2010-07-04  Richard Guenther  <rguenther@suse.de>
14986
14987         PR tree-optimization/44479
14988         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid
14989         extra SSA name copy statements which preserves points-to
14990         information.
14991         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
14992         Copy points-to information for all pointers.  Properly handle
14993         MEM_REFs.
14994         (vect_create_data_ref_ptr): Likewise.  Avoid extra SSA name
14995         copy statements.
14996         * Makefile.in (tree-ssa-loop-ivopts.o): Add tree-ssa-propagate.h
14997         dependency.
14998
14999 2010-07-04  Richard Guenther  <rguenther@suse.de>
15000
15001         PR middle-end/44785
15002         * tree-inline.c (initialize_inlined_parameters): Do not
15003         re-use pointer-map slot over remap_type call.
15004
15005 2010-07-04  Richard Guenther  <rguenther@suse.de>
15006
15007         * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix last commit.
15008
15009 2010-07-04  Richard Guenther  <rguenther@suse.de>
15010
15011         PR tree-optimization/44656
15012         * tree-ssa-sccvn.c (vn_reference_lookup_3): Try disambiguation
15013         again after value-replacing in the defintions lhs.
15014
15015 2010-07-04  Ira Rosen  <irar@il.ibm.com>
15016             Revital Eres  <eres@il.ibm.com>
15017
15018         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST):
15019         Document new arguments.
15020         * doc/tm.texi: Regenerate.
15021         * targhooks.c (default_builtin_vectorization_cost): Add new arguments.
15022         Handle unaligned store.
15023         * targhooks.h (default_builtin_vectorization_cost): Add new arguments.
15024         * target.def (builtin_vectorization_cost): Add new arguments.
15025         * target.h (enum vect_cost_for_stmt): Add unaligned_store.
15026         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Take number
15027         of iterations of prolog loop directly from LOOP_PEELING_FOR_ALIGNMENT.
15028         (vect_vfa_segment_size): Fix indentation.
15029         * tree-vectorizer.h (struct _vect_peel_info): New.
15030         (struct _vect_peel_extended_info): New.
15031         (struct _loop_vec_info): Add new field for peeling hash table and a
15032         macro for its access.
15033         (VECT_MAX_COST): Define.
15034         (vect_get_load_cost): Declare.
15035         (vect_get_store_cost, vect_get_known_peeling_cost,
15036         vect_get_single_scalar_iteraion_cost): Likewise.
15037         (vect_supportable_dr_alignment): Add new argument.
15038         * tree-vect-loop.c (new_loop_vec_info): Initialize peeling hash table
15039         field.
15040         (destroy_loop_vec_info): Free peeling hash table.
15041         (vect_analyze_loop_form): Update call to builtin_vectorization_cost.
15042         (vect_analyze_loop): Move vect_enhance_data_refs_alignment before
15043         vect_analyze_slp. Fix indentation.
15044         (vect_get_single_scalar_iteraion_cost): New function.
15045         (vect_get_known_peeling_cost): Likewise.
15046         (vect_estimate_min_profitable_iters): Rename byte_misalign to npeel.
15047         Call vect_get_single_scalar_iteraion_cost instead of cost_for_stmt per
15048         statement. Move outside cost calculation inside unknown peeling case.
15049         Call vect_get_known_peeling_cost for known amount of peeling.
15050         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Add data
15051         reference to the print message of forced alignment.
15052         (vect_verify_datarefs_alignment): Update call to
15053         vect_supportable_dr_alignment.
15054         (vect_get_data_access_cost): New function.
15055         (vect_peeling_hash, vect_peeling_hash_eq, vect_peeling_hash_insert,
15056         vect_peeling_hash_get_most_frequent, vect_peeling_hash_get_lowest_cost,
15057         vect_peeling_hash_choose_best_peeling): Likewise.
15058         (vect_enhance_data_refs_alignment): Fix documentation. Use hash table
15059         to store all the accesses in the loop and find best possible access to
15060         align using peeling for known alignment case. For unknown alignment
15061         check if stores are preferred or if peeling is worthy.
15062         (vect_find_same_alignment_drs): Analyze pairs of loads too.
15063         (vect_supportable_dr_alignment): Add new argument and check aligned
15064         accesses according to it.
15065         * tree-vect-stmts.c (vect_get_stmt_cost): New function.
15066         (cost_for_stmt): Call vect_get_stmt_cost.
15067         (vect_model_simple_cost): Likewise.
15068         (vect_model_store_cost): Call vect_get_stmt_cost. Call
15069         vect_get_store_cost to calculate the cost of the statement.
15070         (vect_get_store_cost): New function.
15071         (vect_model_load_cost): Call vect_get_stmt_cost. Call
15072         vect_get_load_cost to calculate the cost of the statement.
15073         (vect_get_load_cost): New function.
15074         (vectorizable_store): Update call to vect_supportable_dr_alignment.
15075         (vectorizable_load): Likewise.
15076         * config/spu/spu.c (spu_builtin_vectorization_cost): Add new arguments.
15077         * config/i386/i386.c (ix86_builtin_vectorization_cost): Add new
15078         arguments. Handle unaligned store.
15079         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): New.
15080         (rs6000_builtin_support_vector_misalignment): Return true for word and
15081         double word alignments for VSX.
15082         * tree-vect-slp.c (vect_build_slp_tree): Update calls to
15083         vect_supportable_dr_alignment and builtin_vectorization_cost.
15084
15085 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15086
15087         PR target/44597
15088         * config/pa/predicates.md (prefetch_cc_operand): Remove.
15089         (prefetch_nocc_operand): Likewise.
15090         * config/pa/pa.md (prefetch): Revise expander to use prefetch_20.
15091         (prefetch_20): New insn.
15092         (prefetch_cc): Remove.
15093         (prefetch_nocc): Likewise.
15094
15095 2010-07-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15096
15097         * expr.c (vector_mode_valid_p): Move to c-common.c.
15098         * expr.h (vector_mode_valid_p): Do not declare here.
15099         * system.h: Poison GCC_EXPR_H in front-ends.
15100         * Makefile.in: Update dependencies.
15101
15102 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15103
15104         PR target/44705
15105         * config/pa/pa.h (GO_IF_LEGITIMATE_ADDRESS): Reject LABEL_REF.
15106
15107 2010-07-03  Jan Hubicka  <jh@suse.cz>
15108
15109         * timevar.def (TV_OUT_OF_SSA, TV_VAR_EXPAND, TV_POST_EXPAND,
15110         TV_VAR_TRACKING_DATAFLOW, TV_VAR_TRACKING_EMIT): New timevars.
15111         * cfgexpand.c (gimple_expand_cfg): Use new timevars.
15112         * var-tracking.c (vt_find_locations, variable_tracking_main_1):
15113         Likewise.
15114
15115         * lto-stramer-out.c (pass_ipa_lto_gimple_out, pass_ipa_lto_finish_out):
15116         Update timevars.V
15117         * timevar.def (TV_IPA_LTO_GIMPLE_IO, TV_IPA_LTO_DECL_IO): Remove.
15118         (TV_IPA_LTO_GIMPLE_IN, TV_IPA_LTO_GIMPLE_OUT, TV_IPA_LTO_DECL_IN,
15119         TV_IPA_LTO_DECL_OUT): New.
15120         * lto.c (read_cgraph_and_symbols, materialize_cgraph): Update timevars.
15121
15122 2010-07-03  Jan Hubicka  <jh@suse.cz>
15123
15124         * ipa-inline.c (update_edge_key): Break out from ...
15125         update_callers_keys): ... here;
15126         (update_callee_keys): Update only the edges from caller to callee.
15127         (update_all_calle_keys): Do what update_calle_keys did.
15128         (decide_inlining_of_small_functions): Avoid recomputing of all
15129         callees when badness increase.
15130
15131 2010-07-03  Jie Zhang  <jie@codesourcery.com>
15132
15133         * config/arm/arm.c (arm_attr_length_move_neon): New.
15134         * config/arm/arm-protos.h (arm_attr_length_move_neon): Declare.
15135         * config/arm/neon.md (define_mode_attr V_slen): Remove.
15136         (neon_mov<mode> for VSTRUCT): Use arm_attr_length_move_neon
15137         to compute length attribute.
15138
15139 2010-07-03  Jie Zhang  <jie@codesourcery.com>
15140
15141         * config/arm/vfp.md (*push_multi_vfp): Use vfp_register_operand
15142         as predicate for operand 1 and remove its constraint.
15143         * config/arm/predicates.md (vfp_register_operand): New.
15144         * config/arm/arm.md (*push_multi): Remove the constraint of operand 1.
15145         (*push_fp_multi): Likewise.
15146
15147 2010-07-03  Eric Botcazou  <ebotcazou@adacore.com>
15148
15149         * gimplify.c (mostly_copy_tree_r): Deal with BIND_EXPR.
15150
15151 2010-07-03  Jan Hubicka  <jh@suse.cz>
15152
15153         * config/i386/i386.c (override_options): Revert accidental commit.
15154
15155 2010-07-02  Le-Chun Wu  <lcwu@google.com>
15156
15157         PR c++/44128
15158         * doc/invoke.texi: Update documentation of -Wshadow.
15159
15160 2010-07-02  Daniel Jacobowitz  <dan@codesourcery.com>
15161             Julian Brown  <julian@codesourcery.com>
15162             Sandra Loosemore  <sandra@codesourcery.com>
15163
15164         * config/arm/arm.c (arm_canonicalize_comparison): Canonicalize DImode
15165         comparisons.  Adjust to take both operands.
15166         (arm_select_cc_mode): Handle DImode comparisons.
15167         (arm_gen_compare_reg): Generate a scratch register for DImode
15168         comparisons which require one.  Use xor for Thumb equality checks.
15169         (arm_const_double_by_immediates): New.
15170         (arm_print_operand): Allow 'Q' and 'R' for constants.
15171         (get_arm_condition_code): Handle new CC_CZmode and CC_NCVmode.
15172         * config/arm/arm.h (CANONICALIZE_COMPARISON): Always use
15173         arm_canonicalize_comparison.
15174         * config/arm/arm-modes.def: Add CC_CZmode and CC_NCVmode.
15175         * config/arm/arm-protos.h (arm_canonicalize_comparison): Update
15176         prototype.
15177         (arm_const_double_by_immediates): Declare.
15178         * config/arm/constraints.md (Di): New constraint.
15179         * config/arm/predicates.md (arm_immediate_di_operand)
15180         (arm_di_operand, cmpdi_operand): New.
15181         * config/arm/arm.md (cbranchdi4): Handle non-Cirrus also.
15182         (*arm_cmpdi_insn, *arm_cmpdi_unsigned)
15183         (*arm_cmpdi_zero, *thumb_cmpdi_zero): New insns.
15184         (cstoredi4): Handle non-Cirrus also.
15185
15186 2010-07-02  Julian Brown  <julian@codesourcery.com>
15187             Sandra Loosemore  <sandra@codesourcery.com>
15188
15189         PR target/43703
15190         * config/arm/vec-common.md (add<mode>3, sub<mode>3, smin<mode>3)
15191         (smax<mode>3): Disable for NEON float modes when
15192         flag_unsafe_math_optimizations is false.
15193         * config/arm/neon.md (*add<mode>3_neon, *sub<mode>3_neon)
15194         (*mul<mode>3_neon)
15195         (mul<mode>3add<mode>_neon, mul<mode>3neg<mode>add<mode>_neon)
15196         (reduc_splus_<mode>, reduc_smin_<mode>, reduc_smax_<mode>): Disable
15197         for NEON float modes when flag_unsafe_math_optimizations is false.
15198         (quad_halves_<code>v4sf): Only enable if
15199         flag_unsafe_math_optimizations is true.
15200         * doc/invoke.texi (ARM Options): Add note about floating point
15201         vectorization requiring -funsafe-math-optimizations.
15202
15203 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
15204             Julian Brown  <julian@codesourcery.com>
15205
15206         * config/arm/neon.md (UNSPEC_VABA): Delete.
15207         (UNSPEC_VABAL): Delete.
15208         (UNSPEC_VABS): Delete.
15209         (UNSPEC_VMUL_N): Delete.
15210         (adddi3_neon): New.
15211         (subdi3_neon): New.
15212         (mul<mode>3add<mode>_neon): Make the pattern named.
15213         (mul<mode>3neg<mode>add<mode>_neon): Likewise.
15214         (neon_vadd<mode>): Replace with define_expand, and move the remaining
15215         unspec parts...
15216         (neon_vadd<mode>_unspec): ...to this.
15217         (neon_vmla<mode>, neon_vmla<mode>_unspec): Likewise.
15218         (neon_vlms<mode>, neon_vmls<mode>_unspec): Likewise.
15219         (neon_vsub<mode>, neon_vsub<mode>_unspec): Likewise.
15220         (neon_vaba<mode>): Rewrite in terms of vabd.
15221         (neon_vabal<mode>): Rewrite in terms of vabdl.
15222         (neon_vabs<mode>): Rewrite without unspec.
15223         * config/arm/arm.md (*arm_adddi3): Disable for TARGET_NEON.
15224         (*arm_subdi3): Likewise.
15225         * config/arm/neon.ml (Vadd, Vsub): Split out 64-bit variants and add
15226         No_op attribute to disable assembly output checks.
15227         * config/arm/arm_neon.h: Regenerated.
15228         * doc/arm-neon-intrinsics.texi: Regenerated.
15229
15230 2010-07-02  Jan Hubicka  <jh@suse.cz>
15231
15232         * ipa-split.c (split_function): For aggregate values, set the return
15233         slot optimization bit.  When passing DECL_BY_REFERENCE, produce
15234         *<retval> = fncall.part ().
15235         (execute_split_functions): Do not care about DECL_BY_REFERENCE.
15236
15237 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
15238
15239         * config/arm/neon.md (UNSPEC_VAND): Delete.
15240         (UNSPEC_VBIC): Delete.
15241         (UNSPEC_VCLZ): Delete.
15242         (UNSPEC_VCNT): Delete.
15243         (UNSPEC_VEOR): Delete.
15244         (UNSPEC_VORN): Delete.
15245         (UNSPEC_VORR): Delete.
15246         (iordi3_neon): Rewrite RTL without unspec.  Add alternatives to handle
15247         core registers too.
15248         (anddi3_neon): Likewise.
15249         (orndi3_neon): Likewise.
15250         (bicdi3_neon): Likewise.
15251         (xordi3_neon): Likewise.
15252         (neon_vclz<mode>): Rewrite as define_expand and clz<mode>2 to get
15253         rid of unspec and handle unused operand.
15254         (neon_vcnt<mode>): Similarly, with popcount<mode>2.
15255         * config/arm/predicates.md (imm_for_neon_logic_operand):
15256         Require TARGET_NEON.
15257         (imm_for_neon_inv_logic_operand): Likewise.
15258         * config/arm/arm.md (define_split for logical_binary_operator):
15259         Disable for NEON registers.
15260         (anddi3): Add new define_expand, and rename the insn.  Disable
15261         this insn for NEON, where anddi3_neon now applies.
15262         (*anddi_notdi_di): Disable for TARGET_NEON, where bicdi3_neon applies.
15263         (iordi3): As for anddi3.
15264         (xordi3): Likewise.
15265         * config/arm/neon.ml (Vand): Split DImode variants and mark them
15266         as No_op to disable testing for exact instruction match.
15267         (Vorr): Likewise.
15268         (Veor): Likewise.
15269         (Vbic): Likewise.
15270         (Vorn): Likewise.
15271         * config/arm/arm_neon.h: Regenerated.
15272         * doc/arm-neon-intrinsics.texi: Regenerated.
15273
15274 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
15275
15276         * expr.h (emit_stack_probe): Declare.
15277         * explow.c (emit_stack_probe): Make global.
15278         (anti_adjust_stack_and_probe): Fix comments.
15279         * config/sparc/linux.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
15280         * config/sparc/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
15281         * config/sparc/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
15282         * config/sparc/sparc.c: Include except.h.
15283         (sparc_emit_probe_stack_range): New function.
15284         (output_probe_stack_range): Likewise.
15285         (sparc_expand_prologue): Invoke sparc_emit_probe_stack_range if static
15286         built-in stack checking is enabled.
15287         * config/sparc/sparc-protos.h (output_probe_stack_range): Declare.
15288         * config/sparc/sparc.md (UNSPECV_PROBE_STACK_RANGE): New constant.
15289         (probe_stack_range): New insn.
15290
15291 2010-07-02  Richard Guenther  <rguenther@suse.de>
15292
15293         PR target/43958
15294         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Use pointer arithmetic
15295         for argument alignment.
15296
15297 2010-07-02  Jan Hubicka  <jh@suse.cz>
15298
15299         * ipa-split.c (verify_non_ssa_vars): Break out from ...; perform DFS
15300         walk backwards from entry_bb to check only those basic block of header
15301         that might lead to execution of split part.
15302         (consider_split) ... here.
15303         (find_return_bb): Allow assignment in return BB.
15304         (find_retval): New.
15305         (split_function): Fix name of cloned function; take care of updating
15306         return value in return_bb containing move.
15307
15308 2010-07-02  Andreas Schwab  <schwab@linux-m68k.org>
15309
15310         PR target/44771
15311         * config/m68k/m68k.c (m68k_expand_prologue): Remove set but not
15312         used variable insn.
15313
15314 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
15315
15316         * implicit-zee.c (combine_reaching_defs): Fix long lines.
15317         (is_set_with_extension_DI): Delete.
15318         (struct zero_extend_info): New structure.
15319         (add_removable_zero_extend): New function.
15320         (find_removable_zero_extends): Use note_stores to find SETs.
15321         (find_and_remove_ze): Fix long line, remove superfluous parentheses.
15322
15323 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
15324
15325         * tree-ssa-loop-prefetch.c (compute_miss_rate): Rename to
15326         is_miss_rate_acceptable. Pull total_positions computation
15327         out of the loops.  Early return if miss_positions exceeds
15328         the acceptable threshold.
15329         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Call
15330         is_miss_rate_acceptable after renaming of compute_miss_rate.
15331
15332 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
15333
15334         PR middle-end/44576
15335         * tree-ssa-loop-prefetch.c (compute_miss_rate): Return 1000 (out
15336         of 1000) for miss rate if the address diference is greater than or
15337         equal to the cache line size (the two reference will never hit the
15338         same cache line).
15339
15340 2010-07-02  Bernd Schmidt  <bernds@codesourcery.com>
15341
15342         PR target/42835
15343         * config/arm/arm-modes.def (CC_NOTB): New mode.
15344         * config/arm/arm.c (get_arm_condition_code): Handle it.
15345         * config/arm/thumb2.md (thumb2_compare_scc): Delete pattern.
15346         * config/arm/arm.md (subsi3_compare0_c): New pattern.
15347         (compare_scc): Now a define_and_split.  Add a number of extra
15348         splitters before it.
15349
15350         PR target/42172
15351         * config/arm/arm.c (thumb1_rtx_costs): Improve support for SIGN_EXTEND
15352         and ZERO_EXTEND.
15353         (arm_rtx_costs_1): Likewise.
15354         (arm_size_rtx_costs): Use arm_rtx_costs_1 for these codes.
15355         * config/arm/arm.md (is_arch6): New attribute.
15356         (zero_extendhisi2, zero_extendqisi2, extendhisi2,
15357         extendqisi2): Tighten the code somewhat, avoiding invalid
15358         RTL to occur in the expander patterns.
15359         (thumb1_zero_extendhisi2): Merge with thumb1_zero_extendhisi2_v6.
15360         (thumb1_zero_extendhisi2_v6): Delete.
15361         (thumb1_extendhisi2): Merge with thumb1_extendhisi2_v6.
15362         (thumb1_extendhisi2_v6): Delete.
15363         (thumb1_extendqisi2): Merge with thumb1_extendhisi2_v6.
15364         (thumb1_extendqisi2_v6): Delete.
15365         (zero_extendhisi2 for register input splitter): New.
15366         (zero_extendqisi2 for register input splitter): New.
15367         (thumb1_extendhisi2 for register input splitter): New.
15368         (extendhisi2 for register input splitter): New.
15369         (extendqisi2 for register input splitter): New.
15370         (TARGET_THUMB1 extendqisi2 for memory input splitter): New.
15371         (arm_zero_extendhisi2): Allow nonimmediate_operand for operand 1,
15372         and add support for a register alternative requiring a split.
15373         (thumb1_zero_extendqisi2): Likewise.
15374         (arm_zero_extendqisi2): Likewise.
15375         (arm_extendhisi2): Likewise.
15376         (arm_extendqisi2): Likewise.
15377
15378 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
15379
15380         * config/arm/arm.c (neon_vdup_constant): Expand into canonical RTL
15381         instead of an unspec.
15382         (neon_expand_vector_init): Likewise.
15383         * config/arm/neon.md (UNSPEC_VCOMBINE): Delete.
15384         (UNSPEC_VDUP_LANE): Delete.
15385         (UNSPEC VDUP_N): Delete.
15386         (UNSPEC_VGET_HIGH): Delete.
15387         (UNSPEC_VGET_LANE): Delete.
15388         (UNSPEC_VGET_LOW): Delete.
15389         (UNSPEC_VMVN): Delete.
15390         (UNSPEC_VSET_LANE): Delete.
15391         (V_double_vector_mode): New.
15392         (vec_set<mode>_internal): Make code emitted match that for the
15393         corresponding intrinsics.
15394         (vec_setv2di_internal): Likewise.
15395         (neon_vget_lanedi): Rewrite to expand into emit_move_insn.
15396         (neon_vget_lanev2di): Rewrite to expand into vec_extractv2di.
15397         (neon_vset_lane<mode>): Combine double and quad patterns and
15398         expand into vec_set<mode>_internal instead of UNSPEC_VSET_LANE.
15399         (neon_vset_lanedi): Rewrite to expand into emit_move_insn.
15400         (neon_vdup_n<mode>): Rewrite RTL without unspec.
15401         (neon_vdup_ndi): Rewrite as define_expand and use emit_move_insn.
15402         (neon_vdup_nv2di): Rewrite RTL without unspec and merge with
15403         with neon_vdup_lanev2di, adjusting the pattern from the latter
15404         to be predicable for consistency.
15405         (neon_vdup_lane<mode>_internal): New.
15406         (neon_vdup_lane<mode>): Turn into a define_expand and rewrite
15407         to avoid using an unspec.
15408         (neon_vdup_lanedi): Rewrite RTL pattern to avoid unspec.
15409         (neon_vdup_lanev2di): Turn into a define_expand.
15410         (neon_vcombine): Rewrite pattern to eliminate UNPSEC_VCOMBINE.
15411         (neon_vget_high<mode>): Replace with....
15412         (neon_vget_highv16qi): New pattern using canonical RTL.
15413         (neon_vget_highv8hi): Likewise.
15414         (neon_vget_highv4si): Likewise.
15415         (neon_vget_highv4sf): Likewise.
15416         (neon_vget_highv2di): Likewise.
15417         (neon_vget_low<mode>): Replace with....
15418         (neon_vget_lowv16qi): New pattern using canonical RTL.
15419         (neon_vget_lowv8hi): Likewise.
15420         (neon_vget_lowv4si): Likewise.
15421         (neon_vget_lowv4sf): Likewise.
15422         (neon_vget_lowv2di): Likewise.
15423
15424         * config/arm/neon.ml (Vget_lane): Add No_op attribute to suppress
15425         test for this emitting vmov.
15426         (Vset_lane): Likewise.
15427         (Vdup_n): Likewise.
15428         (Vmov_n): Likewise.
15429
15430         * doc/arm-neon-intrinsics.texi: Regenerated.
15431
15432 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
15433
15434         * config/arm/neon.md (vec_extractv2di): Correct error in register
15435         numbering to reconcile with neon_vget_lanev2di.
15436
15437 2010-07-02  Richard Guenther  <rguenther@suse.de>
15438
15439         * tree-ssa-structalias.c (pt_solution_set_var): New function.
15440         * tree-ssa-alias.h (pt_solution_set_var): Declare.
15441         * tree-ssa-loop-ivopts.c (copy_ref_info): Also copy or create
15442         points-to information.
15443
15444 2010-07-02  Christian Borntraeger  <borntraeger@de.ibm.com>
15445
15446         * config/s390/s390.c (override_options): Adopt prefetching
15447         at -O3 to handle flag_prefetch_loop_arrays as a tristate.
15448
15449 2010-07-02  Jan Hubicka  <jh@suse.cz>
15450
15451         * df-problems.c (df_kill_notes): Do not collect dead  notes.
15452         (df_set_note): Just call add_reg_note.
15453         (df_set_unused_notes_for_mw, df_set_dead_notes_for_mw,
15454         df_create_unused_note): Do not deal with lists of old notes.
15455         (df_note_bb_compute): Likewise.
15456
15457 2010-07-02  Richard Guenther  <rguenther@suse.de>
15458
15459         * tree-ssa-structalias.c (find_func_aliases): Handle
15460         pointer alignment via BIT_AND_EXPR.
15461         * tree-vrp.c (extract_range_from_binary_expr): Likewise.
15462
15463 2010-07-02  Richard Guenther  <rguenther@suse.de>
15464
15465         * tree-data-ref.c (initialize_data_dependence_relation): Handle
15466         mismatching number of dimensions properly.
15467
15468 2010-07-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15469
15470         PR target/44707
15471         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Recognize
15472         (lo_sum (high ...) ...) patterns generated by earlier passes.
15473
15474 2010-07-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15475
15476         * doc/install.texi (Prerequisites): Document Perl requirement on
15477         Solaris 2.
15478         (Specific, *-*-solaris2*): Document GNU c++filt requirement.
15479
15480 2010-07-02  Richard Guenther  <rguenther@suse.de>
15481
15482         PR middle-end/44777
15483         * tree-cfg.c (gimple_block_ends_with_call_p): Handle empty BBs.
15484
15485 2010-07-02  Jan Hubicka  <jh@suse.cz>
15486
15487         PR middle-end/44706
15488         * predict.c (predict_paths_for_bb): Handle case when control dependence
15489         BB has only abnormal edges.
15490
15491 2010-07-02  Richard Guenther  <rguenther@suse.de>
15492
15493         PR tree-optimization/44748
15494         * tree-ssa-ccp.c (fold_const_aggregate_ref): Properly handle
15495         the embedded conversion in MEM_REFs.
15496
15497 2010-07-01  López-Ibáñez  <manu@gcc.gnu.org>
15498
15499         * reload.c: Include toplev.h.
15500         * recog.c:  Likewise.
15501         * Makefile.in: Adjust dependencies.
15502
15503 2010-07-01  Jakub Jelinek  <jakub@redhat.com>
15504
15505         PR debug/44694
15506         * dwarf2out.c (reg_loc_descriptor): For eliminated arg_pointer_rtx
15507         or frame_pointer_rtx use DW_OP_fbreg offset DW_OP_stack_value.
15508
15509 2010-07-01  Richard Guenther  <rguenther@suse.de>
15510
15511         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use unsigned
15512         types for offsets.
15513
15514 2010-07-01  Joern Rennecke  <joern.rennecke@embecosm.com>
15515
15516         PR target/44732
15517         * config/ia64/ia64.c (ia64_register_move_cost): Remove stray '{'.
15518         Fix argument types.
15519
15520 2010-07-01  Bernd Schmidt  <bernds@codesourcery.com>
15521
15522         PR target/44727
15523         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
15524         Make sure operand 0 dies.
15525
15526 2010-07-01  Richard Guenther  <rguenther@suse.de>
15527
15528         PR middle-end/42834
15529         PR middle-end/44468
15530         * doc/gimple.texi (is_gimple_mem_ref_addr): Document.
15531         * doc/generic.texi (References to storage): Document MEM_REF.
15532         * tree-pretty-print.c (dump_generic_node): Handle MEM_REF.
15533         (print_call_name): Likewise.
15534         * tree.c (recompute_tree_invariant_for_addr_expr): Handle MEM_REF.
15535         (build_simple_mem_ref_loc): New function.
15536         (mem_ref_offset): Likewise.
15537         * tree.h (build_simple_mem_ref_loc): Declare.
15538         (build_simple_mem_ref): Define.
15539         (mem_ref_offset): Declare.
15540         * fold-const.c: Include tree-flow.h.
15541         (operand_equal_p): Handle MEM_REF.
15542         (build_fold_addr_expr_with_type_loc): Likewise.
15543         (fold_comparison): Likewise.
15544         (fold_unary_loc): Fold
15545         VIEW_CONVERT_EXPR <T1, MEM_REF <T2, ...>> to MEM_REF <T1, ...>.
15546         (fold_binary_loc): Fold MEM[&MEM[p, CST1], CST2] to MEM[p, CST1 + CST2],
15547         fold MEM[&a.b, CST2] to MEM[&a, offsetof (a, b) + CST2].
15548         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle MEM_REF.
15549         (ptr_deref_may_alias_ref_p_1): Likewise.
15550         (ao_ref_base_alias_set): Properly differentiate base object for
15551         offset and TBAA.
15552         (ao_ref_init_from_ptr_and_size): Use MEM_REF.
15553         (indirect_ref_may_alias_decl_p): Handle MEM_REFs properly.
15554         (indirect_refs_may_alias_p): Likewise.
15555         (refs_may_alias_p_1): Likewise.  Remove pointer SSA name def
15556         chasing code.
15557         (ref_maybe_used_by_call_p_1): Handle MEM_REF.
15558         (call_may_clobber_ref_p_1): Likewise.
15559         * dwarf2out.c (loc_list_from_tree): Handle MEM_REF.
15560         * expr.c (expand_assignment): Handle MEM_REF.
15561         (store_expr): Handle MEM_REFs from STRING_CSTs.
15562         (store_field): If expanding a MEM_REF of a non-addressable
15563         decl use bitfield operations.
15564         (get_inner_reference): Handle MEM_REF.
15565         (expand_expr_addr_expr_1): Likewise.
15566         (expand_expr_real_1): Likewise.
15567         * tree-eh.c (tree_could_trap_p): Handle MEM_REF.
15568         * alias.c (ao_ref_from_mem): Handle MEM_REF.
15569         (get_alias_set): Likewise.  Properly handle VIEW_CONVERT_EXPRs.
15570         * tree-data-ref.c (dr_analyze_innermost): Handle MEM_REF.
15571         (dr_analyze_indices): Likewise.
15572         (dr_analyze_alias): Likewise.
15573         (object_address_invariant_in_loop_p): Likewise.
15574         * gimplify.c (mark_addressable): Handle MEM_REF.
15575         (gimplify_cond_expr): Build MEM_REFs.
15576         (gimplify_modify_expr_to_memcpy): Likewise.
15577         (gimplify_init_ctor_preeval_1): Handle MEM_REF.
15578         (gimple_fold_indirect_ref): Adjust.
15579         (gimplify_expr): Handle MEM_REF.  Gimplify INDIRECT_REF to MEM_REF.
15580         * tree.def (MEM_REF): New tree code.
15581         * tree-dfa.c: Include toplev.h.
15582         (get_ref_base_and_extent): Handle MEM_REF.
15583         (get_addr_base_and_unit_offset): New function.
15584         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle MEM_REF.
15585         * gimple-fold.c (may_propagate_address_into_dereference): Handle
15586         MEM_REF.
15587         (maybe_fold_offset_to_array_ref): Allow possibly out-of bounds
15588         accesses if the array has just one dimension.  Remove always true
15589         parameter.  Do not require type compatibility here.
15590         (maybe_fold_offset_to_component_ref): Remove.
15591         (maybe_fold_stmt_indirect): Remove.
15592         (maybe_fold_reference): Remove INDIRECT_REF handling.
15593         Fold back to non-MEM_REF.
15594         (maybe_fold_offset_to_address): Simplify.  Deal with type
15595         mismatches here.
15596         (maybe_fold_reference): Likewise.
15597         (maybe_fold_stmt_addition): Likewise.  Also handle
15598         &ARRAY + I in addition to &ARRAY[0] + I.
15599         (fold_gimple_assign): Handle ADDR_EXPR of MEM_REFs.
15600         (gimple_get_relevant_ref_binfo): Handle MEM_REF.
15601         * cfgexpand.c (expand_debug_expr): Handle MEM_REF.
15602         * tree-ssa.c (useless_type_conversion_p): Make most pointer
15603         conversions useless.
15604         (warn_uninitialized_var): Handle MEM_REF.
15605         (maybe_rewrite_mem_ref_base): New function.
15606         (execute_update_addresses_taken): Implement re-writing of MEM_REFs
15607         to SSA form.
15608         * tree-inline.c (remap_gimple_op_r): Handle MEM_REF, remove
15609         INDIRECT_REF handling.
15610         (copy_tree_body_r): Handle MEM_REF.
15611         * gimple.c (is_gimple_addressable): Adjust.
15612         (is_gimple_address): Likewise.
15613         (is_gimple_invariant_address): ADDR_EXPRs of MEM_REFs with
15614         invariant base are invariant.
15615         (is_gimple_min_lval): Adjust.
15616         (is_gimple_mem_ref_addr): New function.
15617         (get_base_address): Handle MEM_REF.
15618         (count_ptr_derefs): Likewise.
15619         (get_base_loadstore): Likewise.
15620         * gimple.h (is_gimple_mem_ref_addr): Declare.
15621         (gimple_call_fndecl): Handle invariant MEM_REF addresses.
15622         * tree-cfg.c (verify_address): New function, split out from ...
15623         (verify_expr): ... here.  Use for verifying ADDR_EXPRs and
15624         the address operand of MEM_REFs.  Verify MEM_REFs.  Reject
15625         INDIRECT_REFs.
15626         (verify_types_in_gimple_min_lval): Handle MEM_REF.  Disallow
15627         INDIRECT_REF.  Allow conversions.
15628         (verify_types_in_gimple_reference): Verify VIEW_CONVERT_EXPR of
15629         a register does not change its size.
15630         (verify_types_in_gimple_reference): Verify MEM_REF.
15631         (verify_gimple_assign_single): Disallow INDIRECT_REF.
15632         Handle MEM_REF.
15633         * tree-ssa-operands.c (opf_non_addressable, opf_not_non_addressable):
15634         New.
15635         (mark_address_taken): Handle MEM_REF.
15636         (get_indirect_ref_operands): Pass through opf_not_non_addressable.
15637         (get_asm_expr_operands): Pass opf_not_non_addressable.
15638         (get_expr_operands): Handle opf_[not_]non_addressable.
15639         Handle MEM_REF.  Remove INDIRECT_REF handling.
15640         * tree-vrp.c (check_array_ref): Handle MEM_REF.
15641         (search_for_addr_array): Likewise.
15642         (check_array_bounds): Likewise.
15643         (vrp_stmt_computes_nonzero): Adjust for MEM_REF.
15644         * tree-ssa-loop-im.c (for_each_index): Handle MEM_REF.
15645         (ref_always_accessed_p): Likewise.
15646         (gen_lsm_tmp_name): Likewise.  Handle ADDR_EXPR.
15647         * tree-complex.c (extract_component): Do not handle INDIRECT_REF.
15648         Handle MEM_REF.
15649         * cgraphbuild.c (mark_load): Properly check for NULL result
15650         from get_base_address.
15651         (mark_store): Likewise.
15652         * tree-ssa-loop-niter.c (array_at_struct_end_p): Handle MEM_REF.
15653         * tree-loop-distribution.c (generate_builtin): Exchange INDIRECT_REF
15654         handling for MEM_REF.
15655         * tree-scalar-evolution.c (follow_ssa_edge_expr): Handle
15656         &MEM[ptr + CST] similar to POINTER_PLUS_EXPR.
15657         * builtins.c (stabilize_va_list_loc): Use the function ABI
15658         valist type if we couldn't canonicalize the argument type.
15659         Always dereference with the canonical va-list type.
15660         (maybe_emit_free_warning): Handle MEM_REF.
15661         (fold_builtin_memory_op): Simplify and handle MEM_REFs in folding
15662         memmove to memcpy.
15663         * builtins.c (fold_builtin_memory_op): Use ref-all types
15664         for all memcpy foldings.
15665         * omp-low.c (build_receiver_ref): Adjust for MEM_REF.
15666         (build_outer_var_ref): Likewise.
15667         (scan_omp_1_op): Likewise.
15668         (lower_rec_input_clauses): Likewise.
15669         (lower_lastprivate_clauses): Likewise.
15670         (lower_reduction_clauses): Likewise.
15671         (lower_copyprivate_clauses): Likewise.
15672         (expand_omp_atomic_pipeline): Likewise.
15673         (expand_omp_atomic_mutex): Likewise.
15674         (create_task_copyfn): Likewise.
15675         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MEM_REF.
15676         Remove old union trick.  Initialize constant offsets.
15677         (ao_ref_init_from_vn_reference): Likewise.  Do not handle
15678         INDIRECT_REF.  Init base_alias_set properly.
15679         (vn_reference_lookup_3): Replace INDIRECT_REF handling with MEM_REF.
15680         (vn_reference_fold_indirect): Adjust for MEM_REFs.
15681         (valueize_refs): Fold MEM_REFs.  Re-evaluate constant offset
15682         for ARRAY_REFs.
15683         (may_insert): Remove.
15684         (visit_reference_op_load): Do not test may_insert.
15685         (run_scc_vn): Remove parameter, do not fiddle with may_insert.
15686         * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
15687         a field to store the constant offset this op applies.
15688         (run_scc_vn): Adjust prototype.
15689         * cgraphunit.c (thunk_adjust): Adjust for MEM_REF.
15690         * tree-ssa-ccp.c (ccp_fold): Replace INDIRECT_REF folding with
15691         MEM_REF.  Propagate &foo + CST as &MEM[&foo, CST].  Do not
15692         bother about volatile qualifiers on pointers.
15693         (fold_const_aggregate_ref): Handle MEM_REF, do not handle INDIRECT_REF.
15694         * tree-ssa-loop-ivopts.c
15695         * tree-ssa-loop-ivopts.c (determine_base_object): Adjust for MEM_REF.
15696         (strip_offset_1): Likewise.
15697         (find_interesting_uses_address): Replace INDIRECT_REF handling with
15698         MEM_REF handling.
15699         (get_computation_cost_at): Likewise.
15700         * ipa-pure-const.c (check_op): Handle MEM_REF.
15701         * tree-stdarg.c (check_all_va_list_escapes): Adjust for MEM_REF.
15702         * tree-ssa-sink.c (is_hidden_global_store): Handle MEM_REF
15703         and constants.
15704         * ipa-inline.c (likely_eliminated_by_inlining_p): Handle MEM_REF.
15705         * tree-parloops.c (take_address_of): Adjust for MEM_REF.
15706         (eliminate_local_variables_1): Likewise.
15707         (create_call_for_reduction_1): Likewise.
15708         (create_loads_for_reductions): Likewise.
15709         (create_loads_and_stores_for_name): Likewise.
15710         * matrix-reorg.c (may_flatten_matrices_1): Sanitize.
15711         (ssa_accessed_in_tree): Handle MEM_REF.
15712         (ssa_accessed_in_assign_rhs): Likewise.
15713         (update_type_size): Likewise.
15714         (analyze_accesses_for_call_stmt): Likewise.
15715         (analyze_accesses_for_assign_stmt): Likewise.
15716         (transform_access_sites): Likewise.
15717         (transform_allocation_sites): Likewise.
15718         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF.
15719         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
15720         not handle INDIRECT_REF.
15721         * tree-ssa-phiopt.c (add_or_mark_expr): Handle MEM_REF.
15722         (cond_store_replacement): Likewise.
15723         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
15724         MEM_REF, no not handle INDIRECT_REFs.
15725         (insert_into_preds_of_block): Properly initialize avail.
15726         (phi_translate_1): Fold MEM_REFs.  Re-evaluate constant offset
15727         for ARRAY_REFs.  Properly handle reference lookups that
15728         require a bit re-interpretation.
15729         (can_PRE_operation): Do not handle INDIRECT_REF.  Handle MEM_REF.
15730         * tree-sra.c (build_access_from_expr_1): Handle MEM_REF.
15731         (build_ref_for_offset_1): Remove.
15732         (build_ref_for_offset): Build MEM_REFs.
15733         (gate_intra_sra): Disable for now.
15734         (sra_ipa_modify_expr): Handle MEM_REF.
15735         (ipa_early_sra_gate): Disable for now.
15736         * tree-sra.c (create_access): Swap INDIRECT_REF handling for
15737         MEM_REF handling.
15738         (disqualify_base_of_expr): Likewise.
15739         (ptr_parm_has_direct_uses): Swap INDIRECT_REF handling for
15740         MEM_REF handling.
15741         (sra_ipa_modify_expr): Remove INDIRECT_REF handling.
15742         Use mem_ref_offset.  Remove bogus folding.
15743         (build_access_from_expr_1): Properly handle MEM_REF for non IPA-SRA.
15744         (make_fancy_name_1): Add support for MEM_REF.
15745         * tree-predcom.c (ref_at_iteration): Handle MEM_REFs.
15746         * tree-mudflap.c (mf_xform_derefs_1): Adjust for MEM_REF.
15747         * ipa-prop.c (compute_complex_assign_jump_func): Handle MEM_REF.
15748         (compute_complex_ancestor_jump_func): Likewise.
15749         (ipa_analyze_virtual_call_uses): Likewise.
15750         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Replace
15751         INDIRECT_REF folding with more generalized MEM_REF folding.
15752         (tree_ssa_forward_propagate_single_use_vars): Adjust accordingly.
15753         (forward_propagate_addr_into_variable_array_index): Also handle
15754         &ARRAY + I in addition to &ARRAY[0] + I.
15755         * tree-ssa-dce.c (ref_may_be_aliased): Handle MEM_REF.
15756         * tree-ssa-ter.c (find_replaceable_in_bb): Avoid TER if that
15757         creates assignments with overlap.
15758         * tree-nested.c (get_static_chain): Adjust for MEM_REF.
15759         (get_frame_field): Likewise.
15760         (get_nonlocal_debug_decl): Likewise.
15761         (convert_nonlocal_reference_op): Likewise.
15762         (struct nesting_info): Add mem_refs pointer-set.
15763         (create_nesting_tree): Allocate it.
15764         (convert_local_reference_op): Insert to be folded mem-refs.
15765         (fold_mem_refs): New function.
15766         (finalize_nesting_tree_1): Perform defered folding of mem-refs
15767         (free_nesting_tree): Free the pointer-set.
15768         * tree-vect-stmts.c (vectorizable_store): Adjust for MEM_REF.
15769         (vectorizable_load): Likewise.
15770         * tree-ssa-phiprop.c (phiprop_insert_phi): Adjust for MEM_REF.
15771         (propagate_with_phi): Likewise.
15772         * tree-object-size.c (addr_object_size): Handle MEM_REFs
15773         instead of INDIRECT_REFs.
15774         (compute_object_offset): Handle MEM_REF.
15775         (plus_stmt_object_size): Handle MEM_REF.
15776         (collect_object_sizes_for): Dispatch to plus_stmt_object_size
15777         for &MEM_REF.
15778         * tree-flow.h (get_addr_base_and_unit_offset): Declare.
15779         (symbol_marked_for_renaming): Likewise.
15780         * Makefile.in (tree-dfa.o): Add $(TOPLEV_H).
15781         (fold-const.o): Add $(TREE_FLOW_H).
15782         * tree-ssa-structalias.c (get_constraint_for_1): Handle MEM_REF.
15783         (find_func_clobbers): Likewise.
15784         * ipa-struct-reorg.c (decompose_indirect_ref_acc): Handle MEM_REF.
15785         (decompose_access): Likewise.
15786         (replace_field_acc): Likewise.
15787         (replace_field_access_stmt): Likewise.
15788         (insert_new_var_in_stmt): Likewise.
15789         (get_stmt_accesses): Likewise.
15790         (reorg_structs_drive): Disable.
15791         * config/i386/i386.c (ix86_va_start): Adjust for MEM_REF.
15792         (ix86_canonical_va_list_type): Likewise.
15793
15794 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
15795
15796         PR other/44566
15797         * coretypes.h [!USED_FOR_TARGET] (reg_class_t): Define.
15798         * target.def (struct gcc_target): Replace enum reg_class with
15799         reg_class_t in hook argument / return types.
15800         * doc/tm.texi.in (TARGET_SECONDARY_RELOAD): Likewise.
15801         (TARGET_IRA_COVER_CLASSES, TARGET_MEMORY_MOVE_COST): Likewise.
15802         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise.
15803         * targhooks.h (default_branch_target_register_class): Likewise.
15804         (default_ira_cover_classes, default_secondary_reload): Likewise.
15805         (default_memory_move_cost, default_register_move_cost): Likewise.
15806         * targhooks.c (default_branch_target_register_class): Likewise.
15807         (default_ira_cover_classes, default_secondary_reload): Likewise.
15808         (default_memory_move_cost, default_register_move_cost): Likewise.
15809         * reload.c (push_secondary_reload, secondary_reload_class): Likewise.
15810         * bt-load.c (branch_target_load_optimize): Likewise.
15811         * ira.c (setup_cover_and_important_classes): Likewise.
15812         * ira-costs.c (copy_cost): Likewise.
15813         * reload1.c (emit_input_reload_insns): Likewise.
15814         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
15815         * config/frv/frv.c (frv_secondary_reload): Likewise.
15816         * config/s390/s390.c (s390_secondary_reload): Likewise.
15817         * config/i386/i386.c (i386_ira_cover_classes): Likewise.
15818         (ix86_secondary_reload, ix86_memory_move_cost): Likewise.
15819         (ix86_register_move_cost): Likewise.
15820         * config/sh/sh-protos.h (sh_secondary_reload): Likewise.
15821         * config/sh/sh.c (sh_target_reg_class, sh_secondary_reload): Likewise.
15822         * config/xtensa/xtensa.c (xtensa_secondary_reload): Likewise.
15823         * config/xtensa/xtensa-protos.h (xtensa_secondary_reload): Likewise.
15824         * config/rs6000/rs6000.c (rs6000_secondary_reload): Likewise.
15825         (rs6000_ira_cover_classes): Likewise.
15826         * config/picochip/picochip.c (picochip_secondary_reload): Likewise.
15827         * config/picochip/picochip-protos.h (picochip_secondary_reload):
15828         Likewise.
15829         * config/pa/pa.c (pa_secondary_reload): Likewise.
15830         * config/mips/mips.c (mips_ira_cover_classes): Likewise.
15831         * config/bfin/bfin.c (bfin_secondary_reload): Likewise.
15832         * config/ia64/ia64.c (ia64_register_move_cost): Likewise.
15833         * doc/tm.texi: Regenerate.
15834
15835 2010-06-30  Sebastian Pop  <sebastian.pop@amd.com>
15836
15837         PR bootstrrap/44726
15838         * graphite-sese-to-poly.c (build_poly_dr): Avoid uninitialized
15839         use.
15840         (build_alias_set_optimal_p): Likewise.
15841         (build_base_obj_set_for_drs): Likewise.
15842
15843 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
15844
15845         * target.def: Remove comment about licensing problems of function
15846         declarations.
15847
15848         * target.def (declare_constant_name): Change exp to expr.  Use DEFHOOK.
15849         * doc/tm.texi.in (TARGET_ASM_DECLARE_CONSTANT_NAME): Use @hook.
15850         * doc/tm.texi: Regenerate.
15851
15852         * target.def (builtin_reciprocal): Change tm_fn to md_fn.  Use DEFHOOK.
15853         * doc/tm.texi.in (TARGET_BUILTIN_RECIPROCAL): Use @hook.
15854
15855         * target.def (enum_va_list_p): Use DEFHOOK.
15856         * doc/tm.texi.in (TARGET_ENUM_VA_LIST_P): Use @hook.
15857         Rename ptype to ptree.
15858         * doc/tm.texi: Regenerate.
15859
15860         * target.def (fold_builtin): Rename nargs to n_args.  Use DEFHOOK.
15861         * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Use @hook.
15862         * doc/tm.texi: Regenerate.
15863
15864         * target.def (memory_move_cost): Use DEFHOOK.
15865         * doc/tm.texi.in (TARGET_MEMORY_MOVE_COST): Use @hook.
15866         Rename regclass AKA class to rclass.
15867         * doc/tm.texi: Regenerate.
15868
15869         * target.def (pragma_parse): Use DEFHOOK.
15870         * doc/tm.texi.in (TARGET_OPTION_PRAGMA_PARSE): Use @hook.
15871         s/TARGET_VALID_OPTION_ATTRIBUTE_P/TARGET_OPTION_VALID_ATRIBUTE_P/ .
15872         * doc/tm.texi: Regenerate.
15873
15874         * target.def (pass_by_reference): Use DEFHOOK.
15875         * doc/tm.texi.in (TARGET_PASS_BY_REFERENCE): Use @hook.
15876         * doc/tm.texi: Regenerate.
15877
15878         * target.def (resolve_overloaded_builtin): Rename params to arglist.
15879         Use DEFHOOK.
15880         * doc/tm.texi.in (TARGET_RESOLVE_OVERLOADED_BUILTIN): Use @hook.
15881         * doc/tm.texi: Regenerate.
15882
15883         * target.def (return_pops_args): Use DEFHOOK.
15884         * doc/tm.texi.in (TARGET_RETURN_POPS_ARGS): Use @hook.
15885         Rename stack-size to size.
15886         * doc/tm.texi: Regenerate.
15887
15888         * target.def (dfa_new_cycle): Use DEFHOOK.  Rename dump_file to dump,
15889         last-sched_cycle to last_clock, cur_cycle to clock.
15890         * doc/tm.texi.in: Use @hook.
15891         * doc/tm.texi: Regenerate.
15892
15893         * target.def (print_operand, print_operand_address): Update comment.
15894         (print_operand_punct_valid_p): Likewise.
15895
15896 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15897
15898         * toplev.h (_fatal_insn_not_found, _fatal_insn): Move declarations
15899         to rtl.h.
15900         (error_for_asm, warning_for_asm): Move declarations to rtl-error.h.
15901         * rtl.h (_fatal_insn_not_found, _fatal_insn): Move declarations here.
15902         * rtl-error.h: New.
15903         * regrename.c: Do not include toplev.h. Include rtl-error.h.
15904         * rtl-error.c: Likewise.
15905         * reload.c: Likewise.
15906         * recog.c:  Likewise.
15907         * sel-sched.c: Likewise.
15908         * function.c: Likewise.
15909         * reg-stack.c: Likewise.
15910         * cfgrtl.c: Likewise.
15911         * reload1.c: Likewise.
15912         * final.c: Include rtl-error.
15913         * Makefile.in: Adjust dependencies.
15914
15915 2010-06-30  Jan Hubicka  <jh@suse.cz>
15916
15917         PR middle-end/PR44706
15918         * ipa-split (split_function): Refine conditions when to use DECL_RESULT
15919         to return the value.
15920
15921 2010-06-30  Michael Matz  <matz@suse.de>
15922
15923         PR bootstrap/44699
15924         * tree-vrp.c (vrp_finalize): Deal with changing num_ssa_names.
15925         * gimple-fold.c (gimplify_and_update_call_from_tree): If LHS is
15926         a gimple reg, attach the original VDEF to the last store in the
15927         sequence.
15928
15929 2010-06-30  Iain Sandoe  <iains@gcc.gnu.org>
15930
15931         PR other/44034
15932         * config/darwin.c (darwin_override_options): Use renamed
15933         targetm.asm_out.emit_unwind_label.
15934
15935 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
15936
15937         PR tree-optimization/39799
15938         * tree-inline.c (remap_ssa_name): Initialize variable only if
15939         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
15940
15941 2010-06-30  Nathan Froyd  <froydnj@codesourcery.com>
15942
15943         * c-parser.c (c_parser_omp_for_loop): Use a VEC for for_block.
15944
15945 2010-06-30  Richard Guenther  <rguenther@suse.de>
15946
15947         PR target/44722
15948         * config/i386/i386.md (peephole2 for fix:SSEMODEI24): Guard
15949         against oscillation with reverse peephole2.
15950
15951 2010-06-30  H.J. Lu  <hongjiu.lu@intel.com>
15952
15953         PR target/44721
15954         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
15955         Fix last commit.
15956
15957 2010-06-30  Nick Clifton  <nickc@redhat.com>
15958
15959         * config/rx/rx-modes.def: New file.
15960         * config/rx/rx.h (FIRST_PSEUDO_REGISTER): Increase to 17.
15961         (CC_REGNUM): Define.
15962         (FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add cc
15963         register.
15964         (CC_NO_CARRY, NOTICE_UPDATE_CC): Delete.
15965         (SELECT_CC_MODE): Define.
15966         * config/rx/rx.md (CC_REG): Define.  Update all patterns to use
15967         (reg:CC CC_REG) instead of (cc0).
15968         (attr "cc"): Delete.
15969         (cbranchsi4): Do not split compare and branch here. Instead move
15970         it to...
15971         (cbranchsi4_<code>): ... here.  New patterns.
15972         (cmpsi): Call rx-compare_redundant to find out if it is necessary
15973         to emit the compare instruction.
15974         * config/rx/rx.c (rx_gen-cond_branch_template): Remove tests of
15975         cc_status flags.
15976         (rx_get_stack_layout): Iterate up to before CC_REGNUM not
15977         FIRST_PSEUDO_REGNUM.
15978         (rx_expand_prologue, rx_expand_epilogue): Likewise.
15979         (rx_notice_update_cc): Delete.
15980         (rx_cc_modes_compatible): New function.
15981         (flags_needed_for_conditional): New function.
15982         (flags_from_mode): New function.
15983         (rx_compare_redundant): New function - scans backwards through
15984         insn list to find out if condition flags are already set correctly.
15985         (TARGET_CC_MODES_COMPATIBLE): Define.
15986         * config/rx/rx-protos.h (rx_compare_redundant): Prototype.
15987
15988         * config/rx/rx.h (BRANCH_COST): Define.
15989         (REGISTER_MOVE_COST): Define.
15990         * config/rx/predicates (rx_source_operand): Allow all constant types.
15991         * config/rx/rx.md (addsi3): Add alternative for swapped operands.
15992         (tstsi4): New pattern.
15993         * config/rx/rx.c (rx_memory_move_cost): Define.
15994         (TARGET_MEMORY_MOVE_COST): Define.
15995
15996 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15997
15998         * tree.h (block_may_fallthru): Declare here.
15999         * tree-flow.h (block_may_fallthru): Do not declare here.
16000         * c-typeck.c: Do not include tree-flow.h. Include gimple.h and
16001         bitmap.h
16002         * Makefile.in (c-typeck.o): Update dependencies.
16003
16004 2010-06-30  Jakub Jelinek  <jakub@redhat.com>
16005
16006         PR debug/44694
16007         * cselib.h (cselib_preserve_cfa_base_value): Add regno argument.
16008         * cselib.c (cfa_base_preserved_regno): New static variable.
16009         (cselib_reset_table): Don't reset cfa_base_preserved_regno instead
16010         of REGNO (cfa_base_preserved_val->locs->loc).
16011         (cselib_preserve_cfa_base_value): Add regno argument, set
16012         cfa_base_preserved_regno to it.
16013         (cselib_invalidate_regno): Allow removal of registers other than
16014         cfa_base_preserved_regno from cfa_base_preserved_val.
16015         (cselib_finish): Set cfa_base_preserved_regno to INVALID_REGNUM.
16016         * var-tracking.c (adjust_mems): Replace sp or hfp even outside
16017         of MEM addresses, if not on LHS.
16018         (reverse_op): Don't add reverse ops for cfa_base_rtx.
16019         (vt_init_cfa_base): Adjust cselib_preserve_cfa_base_value caller.
16020
16021 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
16022
16023         * recog.c (peep2_do_rebuild_jump_labels, peep2_do_cleanup_cfg): New
16024         static variables.
16025         (peep2_buf_position): New static function.
16026         (peep2_regno_dead_p, peep2_reg_dead_p, peep2_find_free_register,
16027         peephole2_optimize): Use it.
16028         (peep2_attempt, peep2_update_life): New static functions, broken out
16029         of peephole2_optimize.
16030         (peep2_fill_buffer): New static function.
16031         (peephole2_optimize): Change the main loop to try to fill the buffer
16032         with the maximum number of insns before matching them against
16033         peepholes.  Use a forward scan.  Remove special case for targets with
16034         conditional execution.
16035         * genrecog.c (change_state): Delete dead code.
16036         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
16037         Rewrite so as not to expect the second insn to have had a peephole
16038         applied yet.
16039
16040 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
16041
16042         * genhooks.c (emit_findices): Cast field precision to int.
16043         (emit_documentation): Likewise.
16044
16045 2010-06-29  Jakub Jelinek  <jakub@redhat.com>
16046
16047         PR tree-optimization/43801
16048         * cgraph.c (cgraph_create_virtual_clone): Clear DECL_SECTION_NAME
16049         if old_decl was DECL_ONE_ONLY.
16050
16051         PR debug/44668
16052         * dwarf2out.c (add_accessibility_attribute): New function.
16053         (gen_subprogram_die, gen_variable_die, gen_field_die): Use it
16054         instead of adding DW_AT_accessibility manually.
16055         (gen_enumeration_type_die, gen_struct_or_union_type_die,
16056         gen_typedef_die): Use it.
16057
16058 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
16059
16060         * vmsdbgout.c (full_name): Just output the file name if not native.
16061
16062 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
16063
16064         * vmsdbgout.c (func_table): Replace with VEC func{nam,num}_tables.
16065         (funcnam_table): New static table.
16066         (funcnum_table): New static table.
16067         (write_rtnbeg): Write value saved in funcnum_table.
16068         (write_rtnend): Write value saved in funcnum_table.
16069         (vmsdbgout_begin_function): Save current function info in
16070         (vmsdbgout_init): Initialize func{nam,num}_tables. Minor reformatting.
16071         (vmsdbgout_finish): Iterate over funcnum_table.
16072
16073 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
16074
16075         * vmsdbgout.c (vmsdbgout_begin_epilogue): Declare
16076         (vmsdbgout_type_decl): Declare
16077         (vmsdbg_debug_hooks): Add entry for type_decl and begin_epilogue.
16078         (FUNC_EPILOGUE_LABEL): New macro
16079         (vmsdbgout_begin_epilogue): New function.
16080         (vmsdbgout_type_decl): New function.
16081
16082 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
16083
16084         * vmsdbg.h: Update copyright.
16085
16086 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
16087
16088         * vmsdbg.h (DST_K_TBG): New DST constant.
16089         * vmsdbgout.c (addr_const_to_string): Removed, not referenced.
16090         (write_modbeg): Cast module_language to avoid warning.
16091         (write_rtnbeg): Use DST_K_TBG vice magic mystery number.
16092
16093 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
16094
16095         PR other/44034
16096         * target.def, doc/tm.texi.in, genhooks.c: New files.
16097         * target.h: Instead of defining individual hook members,
16098         define DEFHOOKPOD / DEFHOOK / DEFHOOK_UNDOC / HOOKSTRUCT and
16099         include target.def.
16100         * target-def.h: Instead of defining individual hook initializers,
16101         include target-hooks-def.h.
16102         * df-scan.c, haifa-sched.c, sel-sched.c: Rename targetm members:
16103         targetm.live_on_entry -> targetm.extra_live_on_entry
16104         targetm.sched.md_finish ->targetm.sched.finish
16105         targetm.sched.md_init -> targetm.sched.init
16106         targetm.sched.md_init_global -> targetm.sched.init_global
16107         targetm.asm_out.unwind_label -> targetm.asm_out.emit_unwind_label
16108         targetm.asm_out.except_table_label ->
16109           targetm.asm_out.emit_except_table_label
16110         targetm.asm_out.visibility -> targetm.asm_out.assemble_visibility
16111         targetm.target_help -> targetm.help
16112         targetm.vectorize.builtin_support_vector_misalignment ->
16113           targetm.vectorize.support_vector_misalignment
16114         targetm.file_start_app_off -> targetm.asm_file_start_app_off
16115         targetm.file_start_file_directive ->
16116          targetm.asm_file_start_file_directive
16117         * dwarf2out.c, opts.c, tree-vect-data-refs.c, except.c: Likewise.
16118         * varasm.c, config/alpha/alpha.c, config/cris/cris.c: Likewise.
16119         * config/spu/spu.c, config/ia64/ia64.c: Rename target macros:
16120         TARGET_VECTOR_ALIGNMENT_REACHABLE ->
16121           TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE
16122         TARGET_SUPPORT_VECTOR_MISALIGNMENT ->
16123           TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT
16124         TARGET_UNWIND_EMIT -> TARGET_ASM_UNWIND_EMIT
16125         * config/rs6000/rs6000.c, config/arm/arm.c: Likewise.
16126         * Makefile.in (TARGET_H): Depend on target.def.
16127         (TARGET_DEF_H): Depend on target-hooks-def.h.
16128         (target-hooks-def.h, tm.texi, s-target-hooks-def-h): New rules.
16129         (s-tm-texi, build/genhooks.o, build/genhooks): Likewise.
16130         * doc/tm.texi: Regenerate.
16131
16132         * Makefile.in (s-tm-texi): Remove stray tab / rule.
16133
16134         * config/m68k/m68k.c (targetm.sched.init_global): Update comment.
16135         (targetm.sched.init): Likewise.
16136
16137 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
16138
16139         PR bootstrap/44713
16140         * config/i386/i386.c (type_natural_mode): Const-ify CUM parameter.
16141         (function_arg_advance_32): Const-ify TYPE parameter.
16142         (function_arg_advance_64): Likewise.  Change type of NAMED to bool.
16143         (ix86_function_arg_advance): Change type of NAMED to bool.
16144         (function_arg_32): Const-ify CUM and TYPE parameters.
16145         (function_arg_64): Likewise.  Change type of NAMED to bool.
16146         (function_arg_ms_64): Const-ify CUM parameter. Change type of NAMED
16147         to bool.
16148         (ix86_function_arg): Change type of NAMED to bool.
16149         (ix86_setup_incoming_varargs): Call ix86_function_arg_advance.  Pass
16150         last argument as a bool.
16151
16152 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
16153
16154         * doc/tm.texi (TARGET_OPTION_OVERRIDE): Document.
16155         (OVERRIDE_OPTIONS): Add note of obsolescence.
16156         Replace references with references to TARGET_OPTION_OVERRIDE.
16157         (Except for C_COMMON_OVERRIDE_OPTIONS, which remains similar to
16158          the macro).
16159         * targhooks.c (default_target_option_override): New function.
16160         * targhooks.h (default_target_option_override): Declare.
16161         * target.h (struct gcc_target): Add override member to
16162         target_option member.
16163         * toplev.c (process_options): Replace OVERRIDE_OPTIONS use with
16164         targetm.target_option.override call.
16165         * target-def.h (TARGET_OPTION_OVERRIDE): Define.
16166         (TARGET_OPTION_HOOKS): Add TARGET_OPTION_OVERRIDE.
16167
16168 2010-06-29  Jan Hubicka  <jh@suse.cz>
16169
16170         * tree-inline.c: Replace incomming by incomin and clonning by cloning.
16171
16172 2010-06-29  Jan Hubicka  <jh@suse.cz>
16173
16174         * predict.c (propagate_freq): Clear EXIT_BLOCK_PTR frequency if it is
16175         unreachable.
16176         (rebuild_frequencies): New function.
16177         * predict.h (rebuild_frequencies): Declare.
16178         * tree-inline.c (copy_cfg_body): Compute properly count & frequency of
16179         entry block and edge reaching new_entry.
16180         (tree_function_versioning): When doing partial cloning, rebuild
16181         frequencies when done.
16182         * passes.c (execute_function_todo): Use rebild_frequencies.
16183
16184 2010-06-29  Richard Guenther  <rguenther@suse.de>
16185
16186         * tree-dfa.c (dump_variable): Remove noalias_state dumping.
16187         * tree-flow.h (enum noalias_state): Remove.
16188         (struct var_ann_d): Remove noalias_state member.
16189
16190 2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
16191
16192         PR target/43902
16193         * config/arm/arm.md (maddsidi4, umaddsidi4): New expanders.
16194         (maddhisi4): Renamed from mulhisi3addsi.  Operands renumbered.
16195         (maddhidi4): Likewise.
16196
16197         Revert parts of the change for PR25130.
16198         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
16199         MEM_ALIAS_SET.
16200
16201 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
16202
16203         * calls.c, dse.c, expr.c, function.c: Call targetm.calls.function_arg,
16204         targetm.calls.function_incoming_arg, and
16205         targetm.calls.function_arg_advance instead of FUNCTION_ARG,
16206         FUNCTION_INCOMING_ARG, and FUNCTION_ARG_ADVANCE, respectively.
16207         * target.h (struct gcc_target): Add function_arg_advance,
16208         function_arg, and function_incoming_arg fields.
16209         * target-def.h (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG):
16210         (TARGET_FUNCTION_INCOMING_ARG): Define.
16211         (TARGET_CALLS): Add TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG,
16212         and TARGET_FUNCTION_INCOMING_ARG.
16213         * targhooks.h (default_function_arg_advance): Declare.
16214         (default_function_arg, default_function_incoming_arg): Declare.
16215         * targhooks.c (default_function_arg_advance): New function.
16216         (default_function_arg, default_function_incoming_arg): New function.
16217         * config/i386/i386.c (function_arg_advance): Rename to...
16218         (ix86_function_arg_advance): ...this.  Make static.
16219         (function_arg): Rename to...
16220         (ix86_function_arg): ...this.  Make static.
16221         (TARGET_FUNCTION_ARG_ADVANCE): Define.
16222         (TARGET_FUNCTION_ARG): Define.
16223         * config/i386/i386.h (FUNCTION_ARG_ADVANCE): Delete.
16224         (FUNCTION_ARG): Delete.
16225         * config/i386/i386-protos.h (function_arg_advance): Delete prototype.
16226         (function_arg): Delete prototype.
16227
16228 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
16229
16230         * reginfo.c (init_reg_sets_1): Adjust comments.
16231         * combine-stack-adj.c (rest_of_handle_stack_adjustments): Likewise.
16232         * calls.c (prepare_call_address): Likewise.
16233         (emit_call_1): Use targetm.calls.return_pops_args.
16234         (expand_call): Likewise.
16235         * function.c (assign_parms): Likewise.
16236         * system.h (RETURN_POPS_ARGS): Add to #pragma poison list.
16237         * target.h (struct gcc_target) [struct calls]: Add
16238         return_pops_args field.
16239         * targhooks.h (default_return_pops_args): Declare.
16240         * targhooks.c (default_return_pops_args): Define.
16241         * target-def.h (TARGET_RETURN_POPS_ARGS): Define.
16242         (TARGET_CALLS): Add TARGET_RETURN_POPS_ARGS.
16243         * doc/tm.texi (RETURN_POPS_ARGS): Rename to...
16244         (TARGET_RETURN_POPS_ARGS): ...this.  Use deftypefn.  Adjust
16245         documentation.
16246         * config/alpha/alpha.h (RETURN_POPS_ARGS): Delete.
16247         * config/arc/arc.h (RETURN_POPS_ARGS): Likewise.
16248         * config/arm/arm.h (RETURN_POPS_ARGS): Likewise.
16249         * config/avr/avr.h (RETURN_POPS_ARGS): Likewise.
16250         * config/bfin/bfin.h (RETURN_POPS_ARGS): Likewise.
16251         * config/cris/cris.h (RETURN_POPS_ARGS): Likewise.
16252         * config/crx/crx.h (RETURN_POPS_ARGS): Likewise.
16253         * config/fr30/fr30.h (RETURN_POPS_ARGS): Likewise.
16254         * config/frv/frv.h (RETURN_POPS_ARGS): Likewise.
16255         * config/h8300/h8300.h (RETURN_POPS_ARGS): Likewise.
16256         * config/ia64/ia64.h (RETURN_POPS_ARGS): Likewise.
16257         * config/iq2000/iq2000.h (RETURN_POPS_ARGS): Likewise.
16258         * config/lm32/lm32.h (RETURN_POPS_ARGS): Likewise.
16259         * config/m32c/m32c.h (RETURN_POPS_ARGS): Likewise.
16260         * config/m32r/m32r.h (RETURN_POPS_ARGS): Likewise.
16261         * config/m68hc11/m68hc11.h (RETURN_POPS_ARGS): Likewise.
16262         * config/mcore/mcore.h (RETURN_POPS_ARGS): Likewise.
16263         * config/mep/mep.h (RETURN_POPS_ARGS): Likewise.
16264         * config/mips/mips.h (RETURN_POPS_ARGS): Likewise.
16265         * config/mmix/mmix.h (RETURN_POPS_ARGS): Likewise.
16266         * config/mn10300/mn10300.h (RETURN_POPS_ARGS): Likewise.
16267         * config/moxie/moxie.h (RETURN_POPS_ARGS): Likewise.
16268         * config/pa/pa.h (RETURN_POPS_ARGS): Likewise.
16269         * config/pdp11/pdp11.h (RETURN_POPS_ARGS): Likewise.
16270         * config/picochip/picochip.h (RETURN_POPS_ARGS): Likewise.
16271         * config/rs6000/rs6000.h (RETURN_POPS_ARGS): Likewise.
16272         * config/rx/rx.h (RETURN_POPS_ARGS): Likewise.
16273         * config/s390/s390.h (RETURN_POPS_ARGS): Likewise.
16274         * config/score/score.h (RETURN_POPS_ARGS): Likewise.
16275         * config/sh/sh.h (RETURN_POPS_ARGS): Likewise.
16276         * config/sparc/sparc.h (RETURN_POPS_ARGS): Likewise.
16277         * config/spu/spu.h (RETURN_POPS_ARGS): Likewise.
16278         * config/stormy16/stormy16.h (RETURN_POPS_ARGS): Likewise.
16279         * config/v850/v850.h (RETURN_POPS_ARGS): Likewise.
16280         * config/xtensa/xtensa.h (RETURN_POPS_ARGS): Likewise.
16281         * config/i386/i386-protos.h (ix86_return_pops_args): Delete.
16282         * config/i386/i386.h (RETURN_POPS_ARGS): Delete.
16283         * config/i386/i386.c (ix86_return_pops_args): Make static.
16284         Constify arguments.
16285         (TARGET_RETURN_POPS_ARGS): Define.
16286         * config/m68k/m68k.h (RETURN_POPS_ARGS): Move to...
16287         * config/m68k/m68k.c (m68k_return_pops_args): ...here.  New function.
16288         (TARGET_RETURN_POPS_ARGS): Define.
16289         * config/vax/vax.h (RETURN_POPS_ARGS): Move to...
16290         * config/vax/vax.c (vax_return_pops_args): ...here.  New function.
16291         (TARGET_RETURN_POPS_ARGS): Define.
16292
16293 2010-06-29  Richard Guenther  <rguenther@suse.de>
16294
16295         PR middle-end/44667
16296         * tree-inline.c (initialize_inlined_parameters): Make sure
16297         to remap the inlined parameter variable substitutions types.
16298
16299 2010-06-29  Eric Botcazou  <ebotcazou@adacore.com>
16300
16301         PR rtl-optimization/44659
16302         * combine.c (make_compound_operation) <SUBREG>: Do not return the
16303         result of force_to_mode if it partially re-expanded the compound.
16304
16305 2010-06-28  Jan Hubicka  <jh@suse.cz>
16306
16307         PR middle-end/44671
16308         * ipa-split.c (test_nonssa_use, mark_nonssa_use): Check also uses of
16309         RESULT_DECL.
16310
16311 2010-06-28  Anatoly Sokolov  <aesok@post.ru>
16312
16313         * double-int.h (force_fit_type_double): Remove declaration.
16314         * double-int.c (force_fit_type_double): Move to tree.c.
16315         * tree.h (force_fit_type_double): Declare.
16316         * tree.h (force_fit_type_double): Moved from double-int.c. Use
16317         double_int type for 'cst' argument. Use double_int_fits_to_tree_p and
16318         double_int_to_tree instead of fit_double_type and build_int_cst_wide.
16319         * convert.c (convert_to_pointer): Adjust call to
16320         force_fit_type_double.
16321         * tree-vrp.c (extract_range_from_assert,
16322         extract_range_from_unary_expr): Adjust call to force_fit_type_double.
16323         * fold-const.c: Update comment.
16324         (int_const_binop, fold_convert_const_int_from_int,
16325         fold_convert_const_int_from_real, fold_convert_const_int_from_fixed,
16326         extract_muldiv_1, fold_div_compare, fold_sign_changed_comparison,
16327         fold_unary_loc, fold_negate_const, fold_abs_const, fold_not_const,
16328         round_up_loc): Adjust call to force_fit_type_double.
16329
16330 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
16331
16332         * config/rs6000/rs6000.h (PROCESSOR_TITAN): Declare.
16333
16334 2010-06-28  Martin Jambor  <mjambor@suse.cz>
16335
16336         * tree-sra.c (convert_callers): New parameter, change fndecls of
16337         recursive calls.
16338         (modify_function): Pass the old decl to convert_callers.
16339
16340 2010-06-28  Martin Jambor  <mjambor@suse.cz>
16341
16342         * ipa-cp.c (ipcp_init_cloned_node): Replace calls to
16343         ipa_check_create_node_params and ipa_initialize_node_params with
16344         checking asserts they are not necessary.
16345
16346 2010-06-28  Jan Hubicka  <jh@suse.cz>
16347
16348         PR tree-optimization/44687
16349         * ipa-split.c (split_function): Use DECL_RESULT to store return value.
16350
16351 2010-06-28  Martin Jambor  <mjambor@suse.cz>
16352
16353         PR c++/44535
16354         * gimple-fold.c (get_first_base_binfo_with_virtuals): New function.
16355         (gimple_get_relevant_ref_binfo): Use get_first_base_binfo_with_virtuals
16356         instead of BINFO_BASE_BINFO.
16357
16358 2010-06-28  Michael Matz  <matz@suse.de>
16359
16360         PR middle-end/44592
16361         * gimple-fold.c (gimplify_and_update_call_from_tree): Maintain
16362         proper VDEF chain for intermediate stores in the sequence.
16363
16364 2010-06-28  Jan Hubicka  <jh@suse.cz>
16365
16366         PR tree-optimization/44357
16367         * ipa-inline.c (add_new_edges_to_heap): Do not add edges to
16368         uninlinable functions.
16369
16370 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
16371
16372         * config.gcc (powerpc*-*-*): Handle titan.
16373         * config/rs6000/rs6000.c (titan_cost): New costs.
16374         (rs6000_override_options): Add "titan" to processor_target_table.
16375         Add Titan to branch alignment logic.
16376         Correctly set rs6000_cost for titan.
16377         * config/rs6000/rs6000.md (cpu): Add titan.  Include "titan.md".
16378         * config/rs6000/titan.md: New file.
16379         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=titan.
16380
16381 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
16382
16383         * tree-browser.c (TB_history_stack): Convert to a VEC.
16384         (TB_SET_HEAD): Adjust for new type of TB_history_stack.
16385         (TB_history_prev): Likewise.
16386
16387 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
16388
16389         * vec.h (vec_heap_free): Add parentheses around free.
16390
16391 2010-06-28  Steven Bosscher  <steven@gcc.gnu.org>
16392
16393         * system.h: Poison GCC_EXCEPT_H for front-end files.
16394
16395         * langhooks.h (struct lang_hooks): Add eh_protect_cleanup_actions
16396         langhook.
16397         * langhooks-def.h (LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS) New.
16398         Define to NULL by default.
16399         * except.h: Define GCC_EXCEPT_H.
16400         (doing_eh): Remove prototype.
16401         (init_eh, init_eh_for_function): Move prototypes to toplev.h.
16402         (lang_protect_cleanup_actions): Remove.
16403         * except.c (lang_protect_cleanup_actions): Remove.
16404         (doing_eh): Remove.
16405         (gen_eh_region): Don't check doing_eh here.
16406         * toplev.h (init_eh, init_eh_for_function_): Moved from except.h.
16407         * tree-eh.c (honor_protect_cleanup_actions): Use new langhook
16408         instead of lang_protect_cleanup_actions.
16409         * omp-low.c (maybe_catch_exception): Likewise.
16410         * Makefile.in: Update dependencies.
16411
16412 2010-06-28  Bingfeng Mei  <bmei@broadcom.com>
16413
16414         * cgraph.h (struct varpool_node): new used_from_object_file flag.
16415         (struct cgraph_local_info): new used_from_object_file flag.
16416         * cgraph.c (dump_cgraph_node): dump used_from_object_file flag.
16417         (cgraph_clone_node): initialize used_from_object_file.
16418         (cgraph_create_virtual_clone): initialize used_from_object_file.
16419         * lto-symbtab.c (lto_symtab_merge_decls_1): Set
16420         used_from_object_file flags for symbols of LDPR_PREVAILING_DEF
16421         when compiling with -fwhole-program.
16422         (lto_symtab_resolve_symbols) Use LDPR_PREVAILING_DEF_IRONLY for
16423         internal resolver.
16424         * ipa.c (function_and_variable_visibility): Set externally_visible
16425         flag of varpool_node if used_from_object_file flag is set.
16426         (cgraph_externally_visible_p): check used_from_object_file flag.
16427         * doc/invoke.texi (-fwhole-program option): Change description of
16428         externally_visible attribute accordingly.
16429         * doc/extend.texi (externally_visible): Ditto.
16430
16431 2010-06-27  Jan Hubicka  <jh@suse.cz>
16432
16433         * params.def (max-inline-insns-auto): Default to 40.
16434         * doc/invoke.texi (max-inline-insns-auto): Document the change.
16435
16436 2010-06-27  Jan Hubicka  <jh@suse.cz>
16437
16438         PR middle-end/44671
16439         PR middle-end/44686
16440         * tree.c (build_function_decl_skip_args): Clear DECL_BUILT_IN on
16441         signature change.
16442         * ipa-split.c (split_function): Always clear DECL_BUILT_IN.
16443         * ipa-prop.c (ipa_modify_formal_parameters): Likewise.
16444
16445 2010-06-27  Anatoly Sokolov  <aesok@post.ru>
16446
16447         * target.h (struct gcc_target): Add register_move_cost field.
16448         * target-def.h (TARGET_REGISTER_MOVE_COST): New.
16449         (TARGET_INITIALIZER): Use TARGET_REGISTER_MOVE_COST.
16450         * targhooks.c (default_register_move_cost): New function.
16451         * targhooks.h (default_register_move_cost): Declare function.
16452         * defaults.h (REGISTER_MOVE_COST): Delete.
16453         * ira-int.h (ira_register_move_cost): Update comment.
16454         * ira.c (ira_register_move_cost): Update comment.
16455         * reload.h (register_move_cost): Declare.
16456         * reginfo.c (register_move_cost): New function.
16457         (move_cost): Update comment.
16458         (init_move_cost, memory_move_secondary_cost): Replace
16459         REGISTER_MOVE_COST with register_move_cost.
16460         * postreload.c (reload_cse_simplify_set): (Ditto.).
16461         * reload.c (find_valid_class, find_reloads): (Ditto.).
16462         * reload1.c (choose_reload_regs): (Ditto.).
16463         * doc/tm.texi (TARGET_REGISTER_MOVE_COST): New.
16464         (REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Update documentation.
16465         * doc/md.texi (can_create_pseudo_p): Update documentation.
16466
16467         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
16468         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
16469         * config/i386/i386.h (ix86_memory_move_cost): Make static.
16470         (TARGET_MEMORY_MOVE_COST): Define.
16471
16472         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
16473         * config/ia64/ia64-protos.h (int ia64_memory_move_cost): Remove.
16474         * config/ia64/ia64.h (ia64_memory_move_cost): Make static.
16475         (TARGET_MEMORY_MOVE_COST): Define.
16476
16477 2010-06-27  Richard Guenther  <rguenther@suse.de>
16478
16479         PR tree-optimization/44683
16480         * tree-ssa-dom.c (record_edge_info): Record equivalences for the
16481         false edge from the inverted condition.
16482
16483 2010-06-27  Richard Guenther  <rguenther@suse.de>
16484
16485         PR middle-end/44684
16486         * tree-ssa-alias.c (refs_may_alias_p_1): Allow SSA name refs.
16487         (stmt_may_clobber_ref_p_1): Do not bother to call the oracle
16488         for register LHS.  Or non-store assignments.
16489
16490 2010-06-26  Eric Botcazou  <ebotcazou@adacore.com>
16491
16492         * config/sparc/sparc.c (sparc_emit_set_const32): Make static.
16493         (sparc_emit_set_const64): Likewise.  Remove disabled code.
16494         * config/sparc/sparc-protos.h (sparc_emit_set_const32): Delete.
16495         (sparc_emit_set_const64): Likewise.
16496
16497 2010-06-26  Catherine Moore  <clm@codesourcery.com>
16498
16499         * config/mips/mips.md (alu_type): New attribute.
16500         (type): Infer type from alu_type.
16501         (*add<mode>3, *add<mode>3_mips16, *addsi3_extended,
16502         *baddu_si_eb, *baddu_si_el, *baddu_di, sub<mode>3,
16503         *subsi3_extended, negsi2, negdi2, *low<mode>,
16504         *low<mode>_mips16, *ior<mode>3, *ior<mode>3_mips16,
16505         xor<mode>3, *nor<mode>3,
16506         *zero_extend<GPR:mode>_trunc<SHORT:mode>,
16507         *zero_extendhi_truncqi):  Set alu_type instead of type.
16508
16509 2010-06-26  Douglas B Rupp  <rupp@gnat.com>
16510
16511         * config/alpha/alpha.c (alpha_need_linkage): Adjust
16512         splay_tree_new_ggc call.
16513         (alpha_use_linkage): Likewise.
16514
16515 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
16516
16517         * collect2.c (main): Remove SWITCHES_NEED_SPACES conditional.
16518         * doc/tm.texi (SWITCHES_NEED_SPACES): Don't document.
16519         * gcc.c (SWITCHES_NEED_SPACES, switches_need_spaces): Remove.
16520         (static_specs): Remove switches_need_spaces.
16521         (process_command, do_self_spec): Hardcode handling "-o" instead of
16522         checking switches_need_spaces.
16523         * system.h (SWITCHES_NEED_SPACES): Poison.
16524
16525 2010-06-26  Richard Guenther  <rguenther@suse.de>
16526
16527         PR tree-optimization/44393
16528         * tree-loop-distribution.c (generate_loops_for_partition): Fix
16529         stmt removal and VOP renaming.
16530         (generate_memset_zero): Remove redundant stmt updating.
16531         * tree-flow.h (mark_virtual_ops_in_bb): Remove.
16532         * tree-cfg.c (mark_virtual_ops_in_bb): Likewise.
16533
16534 2010-06-26  Jan Hubicka  <jh@suse.cz>
16535
16536         * ipa-split.c (consider_split): PHI in entry block is OK as long as all
16537         edges comming from header are equivalent.
16538         (visit_bb): Handle PHIs correctly.
16539         * tree-inline.c (copy_phis_for_bb): Be able to copy
16540         PHI from entry edge.
16541         (copy_cfg_body): Produce edge from entry BB before copying PHIs.
16542
16543 2010-06-26  Richard Guenther  <rguenther@suse.de>
16544
16545         PR middle-end/44674
16546         * tree-ssa-alias.c (refs_may_alias_p_1): Allow all kind of
16547         decls.  Handle LABEL_DECLs like FUNCTION_DECLs.
16548
16549 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
16550
16551         * gcc.c (n_switches_alloc, n_infiles_alloc, alloc_infile,
16552         add_infile, alloc_switch): New.
16553         (process_command): Remove variable lang_n_infiles.  Process
16554         options in a single pass.  Use new functions for allocating
16555         infiles and switches arrays.  Properly skip operands of
16556         -Xpreprocessor and -Xassembler.
16557
16558 2010-06-26  Jan Hubicka  <jh@suse.cz>
16559
16560         PR middle-end/44671
16561         * cgraphunit.c (cgraph_function_versioning): Remove wrong
16562         cgraph_make_decl_local call; fix typo copying RTL data.
16563
16564 2010-06-25  DJ Delorie  <dj@redhat.com>
16565
16566         * config/m32c/m32c-protos.h (m32c_note_pragma_address): Declare.
16567         (m32c_output_aligned_common): Likewise.
16568         * config/m32c/m32c.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
16569         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
16570         * config/m32c/m32c-pragma.c (m32c_pragma_address): New.
16571         (m32c_register_pragmas): Register it.
16572         * config/m32c/m32c.c (m32c_get_pragma_address): New.
16573         (m32c_insert_attributes): Set #pragma address decls volatile.
16574         (pragma_entry_eq): New.
16575         (pragma_entry_hash): New.
16576         (m32c_note_pragma_address): New.
16577         (m32c_get_pragma_address): New.
16578         (m32c_output_aligned_common): New.
16579         * doc/extend.texi: Document the new pragma.
16580
16581         * config/m32c/m32c.c (m32c_illegal_subreg_p): Reject illegal MEMs
16582         also.
16583         * config/m32c/predicates.md (m32c_any_operand): Check the code
16584         instead of memory_operand so as to allow matching volatile MEMs.
16585         (m32c_nonimmediate_operand): Likewise.
16586         (mra_operand): Allow volatiles.
16587
16588 2010-06-25  Alexandre Oliva  <aoliva@redhat.com>
16589
16590         PR debug/44610
16591         * simplify-rtx.c (delegitimize_mem_from_attrs): Don't use a base
16592         address if the offset is unknown.
16593
16594 2010-06-25  Douglas B Rupp  <rupp@gnat.com>
16595
16596         * dwarf2out.c (dwarf2out_vms_debug_main_pointer): New function.
16597         * dwarf2out.h (dwarf2out_vms_debug_main_pointer): Declare new function.
16598         * config/ia64/ia64-protos.h (ia64_start_function): Declare.
16599         * config/ia64/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Move contents
16600         to ia64_start_function. Invoke it.
16601         * config/ia64/ia64.c (ia64_start_function): Call new function
16602         dwarf2out_vms_debug_main_pointer.
16603
16604 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
16605
16606         * tree-if-conv.c (insert_gimplified_predicates): Do not insert
16607         statements computing the true predicate.
16608
16609 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
16610
16611         * tree-if-conv.c (init_bb_predicate): Initialize the predicate
16612         to boolean_true_node.
16613         (reset_bb_predicate): New.
16614         (predicate_bbs): Call reset_bb_predicate.
16615
16616 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
16617
16618         * tree-if-conv.c (combine_blocks): Remove FIXME comment.
16619         (tree_if_conversion): Returns true when something has been changed.
16620         (main_tree_if_conversion): Return TODO_cleanup_cfg when if-conversion
16621         changed something.
16622
16623 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
16624
16625         * Makefile.in (tree-if-conv.o): Depends on DBGCNT_H.
16626         * dbgcnt.def (if_conversion_tree): New DEBUG_COUNTER.
16627         * tree-if-conv.c: Include dbgcnt.h.
16628         (tree_if_conversion): Use if_conversion_tree to count the number of
16629         if-convertible loops.
16630
16631 2010-06-25  Changpeng Fang  <changpeng.fang@amd.com>
16632
16633         * common.opt (fprefetch-loop-arrays): Re-define
16634         -fprefetch-loop-arrays as a tri-state option with the initial
16635         value of -1.
16636         * tree-ssa-loop.c (gate_tree_ssa_loop_prefetch): Invoke prefetch
16637         pass only when flag_prefetch_loop_arrays > 0.
16638         * toplev.c (process_options): Note that, with tri-states,
16639         flag_prefetch_loop_arrays>0 means prefetching is enabled.
16640         * config/i386/i386.c (override_options): Enable prefetching at -O3
16641         for a set of CPUs that sw prefetching is helpful.
16642         (software_prefetching_beneficial_p): New.  Return TRUE if software
16643         prefetching is beneficial for the given CPU.
16644
16645 2010-06-25  H.J. Lu  <hongjiu.lu@intel.com>
16646
16647         PR rtl-optimization/44326
16648         * implicit-zee.c (find_removable_zero_extends): Replace
16649         INSN_P with NONDEBUG_INSN_P.
16650
16651 2010-06-25  Martin Jambor  <mjambor@suse.cz>
16652
16653         * ipa-prop.h (struct ipa_param_descriptor): Removed the modified flag.
16654         (struct ipa_node_params): Removed the modification_analysis_done flag.
16655         (ipa_is_param_modified): Removed.
16656         (ipa_analyze_node): Declare.
16657         (ipa_compute_jump_functions): Remove declaration.
16658         (ipa_count_arguments): Likewise.
16659         (ipa_detect_param_modifications): Likewise.
16660         (ipa_analyze_params_uses): Likewise.
16661         * ipa-prop.c (struct param_analysis_info): New type.
16662         (visit_store_addr_for_mod_analysis): Removed.
16663         (visit_load_for_mod_analysis): Renamed to visit_ref_for_mod_analysis,
16664         moved down in the file.
16665         (ipa_detect_param_modifications): Merged into ipa_analyze_params_uses.
16666         (ipa_count_arguments): Made static.
16667         (mark_modified): New function.
16668         (is_parm_modified_before_call): New function.
16669         (compute_pass_through_member_ptrs): New parameter parms_info, call
16670         is_parm_modified_before_call instead of ipa_is_param_modified.
16671         (ipa_compute_jump_functions_for_edge): New parameter parms_info, pass
16672         it to compute_pass_through_member_ptrs.
16673         (ipa_compute_jump_functions): New parameter parms_info, pass it to
16674         ipa_compute_jump_functions_for_edge.  Call ipa_initialize_node_params
16675         on the callee if it is analyzed.  Made static.
16676         (ipa_analyze_indirect_call_uses): New parameter parms_info, call
16677         is_parm_modified_before_call instead of ipa_is_param_modified.
16678         (ipa_analyze_call_uses): New parameter parms_info, pass it to
16679         ipa_analyze_indirect_call_uses.
16680         (ipa_analyze_stmt_uses): New parameter parms_info, pass it to
16681         ipa_analyze_call_uses.
16682         (ipa_analyze_params_uses): New parameter parms_info, pass it to
16683         ipa_analyze_stmt_uses.  Also perform the used analysis.  Made static.
16684         (ipa_analyze_node): New function.
16685         (ipa_print_node_params): Do not dump the modified flag.
16686         (ipa_write_node_info): Assert uses_analysis_done rather than streaming
16687         it.  Do not stream the modified parameter flag.
16688         (ipa_read_node_info): Set uses_analysis_done to 1 instead of streaming
16689         it.  Do not stream the modified parameter flag.
16690         * ipa-cp.c (ipcp_analyze_node): Removed.
16691         (ipcp_init_stage): Iterate only once over the nodes, analyze each one
16692         with only a call to ipa_analyze_node.
16693         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Analyze the
16694         node with only a call to ipa_analyze_node.
16695
16696 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
16697
16698         * doc/invoke.texi (-Wsuggest-attribute): Add item for noreturn.
16699
16700 2010-06-25  Jan Hubicka  <jh@suse.cz>
16701
16702         * tree-pass.h (pass_split_functions): Declare.
16703         * opts.c (decode_options): Enable function splitting at -O2
16704         * timevar.def (TV_IPA_FNSPLIT): New macro.
16705         * ipa-split.c: New file.
16706         * common.opt (-fpartial-inlining): New flag.
16707         * Makefile.in (ipa-split.o): New object file.
16708         * passes.c (init_optimization_passes): Add ipa-split.
16709         * params.def (partial-inlining-entry-probability): New parameters.
16710         * doc/invoke.texi (-fpartial-inlining): New.
16711
16712 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
16713
16714         PR 44665
16715         * tree-inline.c (gimple_expand_calls_inline): Fix typo in comment.
16716         * gimplify.c (is_gimple_reg_rhs_or_call): Likewise.
16717         (gimplify_expr): Likewise.
16718
16719 2010-06-25  Martin Jambor  <mjambor@suse.cz>
16720
16721         * ipa-prop.c (determine_cst_member_ptr): Ignore non-clobbering
16722         statements instead of bailing out on them.
16723         (ipa_analyze_indirect_call_uses): Do not require that loads from the
16724         parameter are in the same BB as the condition.  Update comments.
16725
16726 2010-06-25  Jakub Jelinek  <jakub@redhat.com>
16727
16728         PR middle-end/43866
16729         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): If stmt is always
16730         true or always false, return NULL_TREE.
16731         (tree_unswitch_single_loop): Optimize conditions even when reaching
16732         max-unswitch-level parameter.  If num > 0, optimize first all conditions
16733         using entry checks, then do still reachable block discovery and consider
16734         only conditions in still reachable basic blocks in the loop.
16735
16736         PR tree-optimization/44539
16737         * tree-cfgcleanup.c (fixup_noreturn_call): Call update_stmt even when
16738         the call doesn't have LHS, but has VDEF.
16739
16740 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
16741
16742         * config/pa/pa.h (MODIFY_TARGET_NAME): Remove.
16743         * doc/tm.texi (MODIFY_TARGET_NAME): Don't document.
16744         * gcc.c (enum add_del, struct modify_target, modify_target): Remove.
16745         (process_command): Remove code conditional on MODIFY_TARGET_NAME.
16746         * system.h (MODIFY_TARGET_NAME): Poison.
16747
16748 2010-06-25  Alan Modra  <amodra@gmail.com>
16749
16750         * doc/invoke.texi: Delete mcmodel=medium from powerpc options.
16751         * config/rs6000/rs6000.h (enum rs6000_cmodel): Delete CMODEL_MEDIUM.
16752         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
16753         CMODEL_LARGE as default.
16754         * config/rs6000/rs6000.c (rs6000_handle_option): Remove mcmodel=medium.
16755         (offsettable_ok_by_alignment): Delete.
16756         (rs6000_emit_move): Remove mcmodel=medium optimization.
16757
16758 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
16759
16760         With large parts from Jim Wilson:
16761         PR target/43902
16762         * tree-pretty-print.c (dump_generic_node, op_code_prio): Add
16763         WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
16764         * optabs.c (optab_for_tree_code): Likewise.
16765         (expand_widen_pattern_expr): Likewise.
16766         * tree-ssa-math-opts.c (convert_mult_to_widen): New function, broken
16767         out of execute_optimize_widening_mul.
16768         (convert_plusminus_to_widen): New function.
16769         (execute_optimize_widening_mul): Use the two new functions.
16770         * expr.c (expand_expr_real_2): Add support for GIMPLE_TERNARY_RHS.
16771         Remove code to generate widening multiply-accumulate.  Add support
16772         for WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
16773         * gimple-pretty-print.c (dump_ternary_rhs): New function.
16774         (dump_gimple_assign): Call it when appropriate.
16775         * tree.def (WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR): New codes.
16776         * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
16777         (expand_gimple_stmt_1): Likewise.
16778         (expand_debug_expr): Support WIDEN_MULT_PLUS_EXPR and
16779         WIDEN_MULT_MINUS_EXPR.
16780         * tree-ssa-operands.c (get_expr_operands): Likewise.
16781         * tree-inline.c (estimate_operator_cost): Likewise.
16782         * gimple.c (extract_ops_from_tree_1): Renamed from
16783         extract_ops_from_tree.  Add new arg for a third operand; fill it.
16784         (gimple_build_assign_stat): Support operations with three operands.
16785         (gimple_build_assign_with_ops_stat): Likewise.
16786         (gimple_assign_set_rhs_from_tree): Likewise.
16787         (gimple_assign_set_rhs_with_ops_1): Renamed from
16788         gimple_assign_set_rhs_with_ops.  Add new arg for a third operand.
16789         (get_gimple_rhs_num_ops): Support GIMPLE_TERNARY_RHS.
16790         (get_gimple_rhs_num_ops): Handle WIDEN_MULT_PLUS_EXPR and
16791         WIDEN_MULT_MINUS_EXPR.
16792         * gimple.h (enum gimple_rhs_class): Add GIMPLE_TERNARY_RHS.
16793         (extract_ops_from_tree_1): Adjust declaration.
16794         (gimple_assign_set_rhs_with_ops_1): Likewise.
16795         (gimple_build_assign_with_ops): Pass NULL for last operand.
16796         (gimple_build_assign_with_ops3): New macro.
16797         (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3,
16798         gimple_assign_set_rhs_with_ops, extract_ops_from_tree): New inline
16799         functions.
16800         * tree-cfg.c (verify_gimple_assign_ternary): New static function.
16801         (verify_gimple_assign): Call it.
16802         * doc/gimple.texi (Manipulating operands): Document GIMPLE_TERNARY_RHS.
16803         (Tuple specific accessors, subsection GIMPLE_ASSIGN): Document new
16804         functions for dealing with three-operand statements.
16805         * tree.c (commutative_ternary_tree_code): New function.
16806         * tree.h (commutative_ternary_tree_code): Declare it.
16807         * tree-vrp.c (gimple_assign_nonnegative_warnv_p): Return false for
16808         ternary statements.
16809         (gimple_assign_nonzero_warnv_p): Likewise.
16810         * tree-ssa-sccvn.c (stmt_has_constants): Handle GIMPLE_TERNARY_RHS.
16811         * tree-ssa-ccp.c (get_rhs_assign_op_for_ccp): New static function.
16812         (ccp_fold): Use it.  Handle GIMPLE_TERNARY_RHS.
16813         * tree-ssa-dom.c (enum expr_kind): Add EXPR_TERNARY.
16814         (struct hashtable_expr): New member ternary in the union.
16815         (initialize_hash_element): Handle GIMPLE_TERNARY_RHS.
16816         (hashable_expr_equal_p): Fix indentation.  Handle EXPR_TERNARY.
16817         (iterative_hash_hashable_expr): Likewise.
16818         (print_expr_hash_elt): Handle EXPR_TERNARY.
16819         * gimple-fold.c (fold_gimple_assign): Handle GIMPLE_TERNARY_RHS.
16820         * tree-ssa-threadedge.c (fold_assignment_stmt): Remove useless break
16821         statements.  Handle GIMPLE_TERNARY_RHS.
16822
16823 2010-06-25  Jan Hubicka  <jh@suse.cz>
16824
16825         * doc/invoke.texi (-Wsuggest-attribute): Add noreturn.
16826
16827 2010-06-25  Shujing Zhao  <pearly.zhao@oracle.com>
16828
16829         PR c/44517
16830         * c-parser.c (c_parser_parms_list_declarator): Return NULL if one of
16831         parameters are not good.
16832         (c_parser_parameter_declaration): Error unknown type name if the type
16833         name can't start declaration specifiers.
16834
16835 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
16836
16837         * gcc.c (translate_options): Don't mention +e in comment.
16838         (process_command): Don't handle +e specially.
16839
16840 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
16841
16842         * ira.c (allocno_pool, copy_pool, allocno_live_range_pool): Delete.
16843
16844         * ira-build.c (merge_hard_reg_conflicts): New function.
16845         (create_cap_allocno, copy_info_to_removed_store_destinations,
16846         propagate_some_info_from_allocno, propagate_allocno_info): Use it.
16847         (move_allocno_live_ranges, copy_allocno_live_ranges): New functions.
16848         (remove_unnecessary_allocnos, remove_low_level_allocnos)
16849         copy_nifo_to_removed_store_destination): Use them.
16850         * ira-lives.c (make_hard_regno_born): New function, split out of
16851         make_regno_born.
16852         (make_allocno_born): Likewise.
16853         (make_hard_regno_dead): New function, split out of make_regno_dead.
16854         (make_allocno_dead): Likewise.
16855         (inc_register_pressure): New function, split out of set_allocno_live.
16856         (dec_register_pressure): New function, split out of clear_allocno_live.
16857         (mark_pseudo_regno_live): New function, split out of mark_reg_live.
16858         (mark_hard_reg_live): Likewise.  Use inc_register_pressure.
16859         (mark_pseudo_regno_dead): New function, split out of mark_reg_dead.
16860         (mark_hard_reg_dead): Likewise.  Use dec_register_pressure.
16861         (make_pseudo_conflict): Use mark_pseudo_regno_dead and
16862         mark_pseudo_regno_live.
16863         (process_bb_node_lives): Use mark_pseudo_regno_live,
16864         make_hard_regno_born and make_allocno_dead.
16865         (make_regno_born, make_regno_dead, mark_reg_live, mark_reg_dead,
16866         set_allocno_live, clear_allocno_live): Delete functions.
16867
16868         * ira-int.h (ira_parent_allocno, ira_parent_or_cap_allocno): Declare.
16869         * ira-build.c (ira_parent_allocno, ira_parent_or_cap_allocno): New
16870         functions.
16871         (ira_flattening): Use ira_parent_allocno.
16872         * ira-conflicts.c (process_regs_for_copy, propagate_copies)
16873         build_allocno_conflicts): Use ira_parent_or_cap_allocno.
16874
16875         * ira-color.c (assign_hard_reg): Improve formatting of multi-line for
16876         statement.
16877
16878         * ira-int.h (SET_MINMAX_SET_BIT, CLEAR_MINMAX_SET_BIT,
16879         TEST_MINMAX_SET_BIT, minmax_set_iterator, minmax_set_iter_init,
16880         minmax_set_iter_cond, minmax_set_iter_next,
16881         FOR_EACH_BIT_IN_MINMAX_SET): Renamed from SET_ALLOCNO_SET_BIT,
16882         CLEAR_ALLOCNO_SET_BIT, TEST_ALLOCNO_SET_BIT, ira_allocno_set_iterator,
16883         ira_allocno_set_iter_init, ira_allocno_set_iter_cond,
16884         ira_allocno_set_iter_Next and FOR_EACH_ALLOCNO_IN_ALLOCNO_SET.  All
16885         uses changed.
16886
16887         * ira-int.h (struct live_range, live_range_t): Renamed from struct
16888         ira_allocno_live_range and allocno_live_range_t; all uses changed.
16889         * ira-build.c (live_range_pool): Renamed from allocno_live_range_pool.
16890         All uses changed.
16891
16892 2010-06-24  Richard Earnshaw  <rearnsha@arm.com>
16893
16894         * thumb2.md (thumb2_tlobits_cbranch): Delete.
16895         (peephole2 to convert zero_extract/compare of single bit to
16896          lshift/compare): New.
16897
16898 2010-06-24  Anatoly Sokolov  <aesok@post.ru>
16899
16900         * fold-const.c (const_binop): Remove 'notrunc' argement. Adjust
16901         recursive call and call to 'int_const_binop'.
16902         (build_range_check, fold_cond_expr_with_comparison, unextend,
16903         fold_truthop, extract_muldiv_1, fold_comparison, fold_binary_loc,
16904         multiple_of_p): Adjust call to const_binop.
16905
16906 2010-06-24  Uros Bizjak  <ubizjak@gmail.com>
16907
16908         * config/i386/i386.md (XFmode push splitter): Use GET_MODE_SIZE to
16909         determine size of XFmode operand.
16910         (XFmode extended DFmode push splitter): Ditto.
16911         (XFmode extended SFmode push splitter): Ditto.
16912
16913 2010-06-24  H.J. Lu  <hongjiu.lu@intel.com>
16914
16915         PR target/44588
16916         * config/i386/i386.md (extract_code): New.
16917         (<u>divmodqi4): Likewise.
16918         (divmodhiqi3): Likewise.
16919         (udivmodhiqi3): Likewise.
16920         (<u>divqi3): Remvoved.
16921
16922 2010-06-24  Jakub Jelinek  <jakub@redhat.com>
16923
16924         PR middle-end/44492
16925         * recog.h (struct recog_data): Add is_asm field.
16926         * recog.c (asm_operand_ok, constrain_operands): If neither < nor > is
16927         present in constraints of inline-asm operand and memory operand
16928         contains {PRE,POST}_{INC,DEC,MODIFY}, return 0.
16929         (extract_insn): Initialize recog_data.is_asm.
16930         * doc/md.texi (Constraints): Document operand side-effect rules.
16931
16932 2010-06-24  Andi Kleen  <ak@linux.intel.com>
16933
16934         * c-parser.c (c_parser_conditional_expression): Call
16935         warn_for_omitted_condop.
16936         * doc/invoke.texi: Document omitted condop warning.
16937
16938 2010-06-24  Nick Clifton<nickc@redhat.com>
16939
16940         * loop-unswitch.c (compare_and_jump_seq): Assert that the last
16941         insn in the sequence is a jump insn before setting its label.
16942
16943 2010-06-24  Alan Modra  <amodra@gmail.com>
16944
16945         * collect2.c (main): Match exactly --version and --help.
16946
16947 2010-06-24  DJ Delorie  <dj@redhat.com>
16948
16949         * config/m32c/m32c-pragma.c: Don't include rtl.h.
16950
16951 2010-06-23  Uros Bizjak  <ubizjak@gmail.com>
16952
16953         * config/i386/i386.md (mov<mode>): Macroize expander from mov{sf,df,xf}
16954         using X87MODEF mode iterator.
16955         (pushsf splitter): Macroize splitter using P mode iterator.
16956         (*swap<mode>): Macroize insn from *swap{sf,df} using MODEF
16957         mode iterator.
16958
16959         (*movxf_internal): Rename from *movxf_integer.
16960         (*movxf_internal_nointeger): Rename from *movxf_nointeger.
16961         (*movdf_internal_rex64): Rename from *movdf_integer_rex64.
16962         (*movdf_internal): Rename from *movdf_integer.
16963         (*movdf_internal_nointeger): Rename from *movdf_nointeger.
16964         (*movsf_internal): Rename from *movdf_1.
16965
16966 2010-06-23  Basile Starynkevitch  <basile@starynkevitch.net>
16967
16968         * coretypes.h (gimple_seq_node_d, gimple_seq_node)
16969         (const_gimple_seq_node): Removed typedefs.
16970
16971         * gimple.h (gimple_seq_node_d, gimple_seq_node)
16972         (const_gimple_seq_node): Added typedefs moved from coretypes.h.
16973
16974 2010-06-23  H.J. Lu  <hongjiu.lu@intel.com>
16975
16976         * config/i386/i386.c (bdesc_args): Replace CODE_FOR_avx_si_si256,
16977         CODE_FOR_avx_ps_ps256 and CODE_FOR_avx_pd_pd256 with
16978         CODE_FOR_vec_extract_lo_v8si, CODE_FOR_vec_extract_lo_v8sf
16979         and CODE_FOR_vec_extract_lo_v4df.
16980
16981         * config/i386/sse.md (vec_extract_lo_<AVX256MODE4P:mode>):
16982         Changed to define_insn_and_split.
16983         (vec_extract_lo_<AVX256MODE8P:mode>): Likewise.
16984         (vec_extract_lo_v16hi): Likewise.
16985         (vec_extract_lo_v32qi): Likewise.
16986         (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
16987         (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Removed.
16988
16989 2010-06-23  Joern Rennecke  <joern.rennecke@embecosm.com>
16990
16991         PR target/44640
16992         * config/spu/spu-protos.h (spu_expand_epilogue) Use bool.
16993         * config/spu/spu.c (spu_scalar_mode_supported_p): Declare with bool.
16994         (spu_vector_mode_supported_p, spu_handle_fndecl_attribute): Likewise.
16995         (spu_handle_vector_attribute, spu_pass_by_reference): Likewise.
16996         (spu_rtx_costs, spu_function_ok_for_sibcall): Likewise.
16997
16998         PR target/44640
16999         * config/spu/spu.c (ea_load_store_inline): Use add_reg_note.
17000
17001         PR other/44644
17002         * df-core.c (struct df): Rename to df_d.
17003         * df.h (struct df): Likewise.
17004         * dse.h (struct df): Remove forward declaration.
17005         * recog.h (struct insn_data): Rename to:
17006         (struct_insn_data_d).  Adjusted all users.
17007
17008 2010-06-23  Arnaud Charlet  <charlet@adacore.com
17009
17010         PR ada/22220
17011         * doc/install.texi: Update requirements to build GNAT.
17012
17013 2010-06-22  Andreas Schwab  <schwab@linux-m68k.org>
17014
17015         * config/m68k/m68k.c (m68k_output_addr_const_extra): Add cast to
17016         enum type.
17017         (m68k_sched_attr_opx_type): Remove unreachable return.
17018         (m68k_sched_attr_opy_type): Likewise.
17019         (m68k_sched_attr_size): Likewise.
17020         (sched_get_opxy_mem_type): Likewise.
17021         (m68k_sched_attr_op_mem): Likewise.
17022
17023 2010-06-22  Eric Botcazou  <ebotcazou@adacore.com>
17024
17025         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Chain the
17026         new statement and adjust VDEF only if necessary.  Remove superfluous
17027         call to maybe_clean_or_replace_eh_stmt.
17028         * gimple.c (gimple_call_copy_skip_args): Use gimple_call_copy_flags to
17029         copy the flags.
17030         * gimple-iterator.c (gsi_replace): Clear BB of old statement here...
17031         * tree-inline.c (copy_bb): ...and not there.
17032
17033 2010-06-22  Cary Coutant  <ccoutant@google.com>
17034
17035         * dwarf2out.c (is_nested_in_subprogram): New function.
17036         (should_move_die_to_comdat): Use it.
17037         (copy_ancestor_tree): Don't mark DIEs here.
17038         (copy_decls_walk): Start walk from root of newly-added tree;
17039         mark DIEs here instead.
17040
17041 2010-06-22  H.J. Lu  <hongjiu.lu@intel.com>
17042
17043         * config/i386/i386.md (unit): Also check sseishft1.
17044
17045 2010-06-22  Jan Hubicka  <jh@suse.cz>
17046
17047         * gimple.h (gimple_expr_code): Do checking on when gimple checking is
17048         enabled.
17049
17050 2010-06-22  Jan Hubicka  <jh@suse.cz>
17051
17052         * df-problems.c (df_rd_confluence_n, df_lr_confluence_n,
17053         df_live_confluence_n, df_byte_lr_confluence_n, df_md_confluence_n):
17054         Return true if something changed.
17055         * df.h (df_confluence_function_n): Return bool.
17056         * df-core.c (df_worklist_propagate_forward,
17057         df_worklist_propagate_backward): Track changes and ages.
17058         (df_worklist_dataflow_doublequeue): Use bitmap iterator for main walk;
17059         track ages.
17060         * dse.c (dse_confluence_n): Return always true.
17061
17062 2010-06-22  Jan Hubicka  <jh@suse.cz>
17063
17064         * bitmap.c (bitmap_clear_bit): Micro optimize.
17065
17066 2010-06-22  Uros Bizjak  <ubizjak@gmail.com>
17067
17068         * config/i386/i386.md (SWI1248x): New mode iterator.
17069         (SWI48x): Ditto.
17070         (SWI12): Ditto.
17071         (SWI24): Ditto.
17072
17073         (mov<mode>): Macroize expander from mov{qi,hi,si,di} using
17074         SWI1248x mode iterator.
17075         (*push<mode>2_rex64): Macroize insn from *push{qi,hi,si}_rex64
17076         using SWI124 mode iterator.
17077         (*push<mode>2): Macroize insn from *push{qi,hi} using SWI12
17078         mode iterator.
17079         (*push<mode>2_prologue): Macroize insn from  *pushsi2_prologue and
17080         *pushdi2_prologue_rex64 using P mode iterator.
17081         (*mov<mode>_xor): Macroize insn from *movsi_xor and *movdi_xor_rex64
17082         using SWI48 mode iterator.
17083         (*mov<mode>_or): Ditto from *movsi_or and *movdi_or_rex64.
17084         (*movabs<mode>_1): Macroize insn from *movabs{qi,hi,si,di}_1_rex64
17085         using SWI1248x mode iterator.
17086         (*movabs<mode>_2): Ditto from *movabs{qi,hi,si,di}_1_rex64.
17087         (*swap<mode>): Macroize insn from *swapsi and *swapdi_rex64 using
17088         SWI48 mode iterator.
17089         (*swap<mode>_1): Macroize insn from *swap{qi,hi}_1 using SWI12 mode
17090         iterator.
17091         (*swap<mode>_2): Ditto from *swap{qi,hi}_2.
17092         (movstrict<mode>): Macroize expander from movstrict{qi,hi} using
17093         SWI12 mode iterator.
17094         (*movstrict<mode>_1): Macroize insn from *movstrict{qi,hi}_1 using
17095         SWI12 mode iterator.
17096         (*movstrict<mode>_xor): Ditto from *movstrict{qi,hi}_xor.
17097         (*mov<mode>_extv_1): Macroize insn from *mov{hi,si}_extv_1 using
17098         SWI24 mode iterator.
17099         (*mov<mode>_extzv_1): Macroize insn from *mov{si,di}_extzv_1 using
17100         SWI48 mode iterator.
17101         (mov<mode>_insn_1): New expander.
17102         (*mov<mode>_insv_1_rex64): Macroize insn from *mov{si,di}_insv_1_rex64
17103         using SWI48x mode iterator.
17104
17105         (*movoi_internal_avx): Rename from *movoi_internal.
17106         (*movti_internal_rex64): Rename from *movti_rex64.
17107         (*movti_internal_sse): Rename from *movti_sse.
17108         (*movdi_internal_rex64): Rename from *movdi_1_rex64.
17109         (*movdi_internal): Rename from *movdi_2.
17110         (*movsi_internal): Rename from *movsi_1.
17111         (*movhi_internal): Rename from *movhi_1.
17112         (*movqi_internal): Rename from *movqi_1.
17113
17114         (insv): Update the call to gen_movsi_insv_1 for rename.
17115         * config/i386/i386.c (promote_duplicated_reg): Ditto.
17116
17117 2010-06-22  Jan Hubicka  <jh@suse.cz>
17118
17119         * passes.c (execute_function_todo): Move call of statistics_fini_pass
17120         to ...
17121         (execute_todo) ... this one.
17122
17123 2010-06-22  Alan Modra  <amodra@gmail.com>
17124
17125         PR target/44364
17126         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
17127         * caller-save.c (insert_restore, insert_save): Use non-validate
17128         form of adjust_address.
17129
17130 2010-06-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17131
17132         PR target/39690
17133         * config/pa/pa.c (override_options): Disable
17134         -freorder-blocks-and-partition.
17135
17136 2010-06-21  H.J. Lu  <hongjiu.lu@intel.com>
17137
17138         PR target/44615
17139         * config/i386/atom.md (atom_sseishft_2): Also check sseishft1.
17140
17141         * config/i386/i386.md (type): Add sseishft1
17142
17143         * config/i386/ppro_insn (ppro_insn): Also check sseishft1.
17144         (ppro_insn_load): Likewise.
17145         (ppro_insn_store): Likewise.
17146         (ppro_insn_both): Likewise.
17147
17148         * config/i386/sse.md (sse2_lshrv1ti3): Add atom_unit.
17149         (*vec_extractv2di_1_rex64_avx): Replace sseishft with sseishft1
17150         for type.
17151         (*vec_extractv2di_1_avx): Likewise.
17152         (*vec_extractv2di_1_rex64): Replace sseishft with sseishft1 for
17153         type.  Remove atom_unit.
17154         (*vec_extractv2di_1_sse2): Likewise.
17155
17156 2010-06-21  DJ Delorie  <dj@redhat.com>
17157
17158         * diagnostic.h (diagnostic_classification_change_t): New.
17159         (diagnostic_context): Add history and push/pop list.
17160         (diagnostic_push_diagnostics): Declare.
17161         (diagnostic_pop_diagnostics): Declare.
17162         * diagnostic.c (diagnostic_classify_diagnostic): Store changes
17163         from pragmas in a history chain instead of the global table.
17164         (diagnostic_push_diagnostics): New.
17165         (diagnostic_pop_diagnostics): New.
17166         (diagnostic_report_diagnostic): Scan history chain to find state
17167         of diagnostics as of the diagnostic location.
17168         * opts.c (set_option): Pass UNKNOWN_LOCATION to
17169         diagnostic_classify_diagnostic.
17170         (enable_warning_as_error): Likewise.
17171         * diagnostic-core.h (DK_POP): Add after "real" diagnostics, for
17172         use in the history chain.
17173         * doc/extend.texi: Document pragma GCC diagnostic changes.
17174
17175 2010-06-21  Jakub Jelinek  <jakub@redhat.com>
17176
17177         * dwarf2out.c (add_linkage_name): New function.  Don't add
17178         anything to DW_TAG_member DIEs.
17179         (add_name_and_src_coords_attributes): Use it.
17180         (gen_variable_die): Call it for C++ static data members if
17181         specification is DW_TAG_member.
17182
17183         * dwarf2out.c (base_type_die): Use DW_ATE_UTF for
17184         C++ char16_t and char32_t.
17185
17186         * Makefile.in (build/genattrtab.o): Depend on vecprim.h.
17187         * genattrtab.c: Include vecprim.h.
17188         (cached_attrs, cached_attr_count, attrs_seen_once,
17189         attrs_seen_more_than_once, attrs_to_cache, attrs_cached_inside,
17190         attrs_cached_after): New variables.
17191         (find_attrs_to_cache): New function.
17192         (FLG_BITWISE, FLG_AFTER, FLG_INSIDE, FLG_OUTSIDE_AND): Define.
17193         (write_test_expr): Add attrs_cached argument, return it too,
17194         attempt to cache non-const attributes used more than once in
17195         a single case handling.
17196         (write_attr_get): Use find_attrs_to_cache, for caching candidates
17197         emit cached_* variables.  Adjust write_attr_set callers.
17198         (write_attr_set): Add attrs_cached attribute, use find_attrs_to_cache
17199         to find attributes that should be cached in this block.  Adjust
17200         write_test_expr callers.
17201         (write_attr_case): Clear attrs_to_cache.  Adjust write_attr_set
17202         callers.
17203         (make_automaton_attrs): Adjust write_test_expr caller.
17204
17205         * Makefile.in (cfgexpand.o): Depend on $(INSN_ATTR_H).
17206         * genattrtab.c (check_tune_attr, find_tune_attr): New functions.
17207         (make_automaton_attrs): If find_tune_attr returns non-NULL,
17208         write separate internal_dfa_insn_code_* and insn_default_latency_*
17209         functions for each attribute's value and emit init_sched_attrs
17210         function and function pointers.
17211         * genattr.c (const_attrs, reservations): New variables.
17212         (gen_attr): Add const attributes to const_attrs vector.
17213         (check_tune_attr, find_tune_attr): New functions.
17214         (main): Add reservations to reservations vector.  If find_tune_attr
17215         returns true, add prototype for init_sched_attrs and make
17216         internal_dfa_insn_code and insn_default_latency function pointers,
17217         otherwise define init_sched_attrs as dummy macro.
17218         * cfgexpand.c: Include insn-attr.h.
17219         (gimple_expand_cfg): Call init_sched_attrs.
17220
17221         * stmt.c (resolve_asm_operand_names): Fix handling of %%.
17222
17223         PR target/44575
17224         * config/i386/i386.c (ix86_gimplify_va_arg): When copying
17225         va_arg from a set of register save slots into a temporary,
17226         if the container is bigger than type size, do the copying
17227         using smaller mode or using memcpy.
17228
17229         PR bootstrap/44426
17230         * sel-sched-dump.h (sel_prepare_string_for_dot_label): Remove
17231         prototype.
17232         (sel_print_to_dot): Remove macro.
17233         (sel_print): Likewise.  New prototype.
17234         * sel-sched-dump.c (sel_prepare_string_for_dot_label): Make static.
17235         (sel_print): New function.
17236
17237 2010-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17238
17239         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define
17240         __STDC_VERSION__=199901L, _XOPEN_SOURCE=600 for C++.
17241
17242 2010-06-21  Nick Clifton  <nickc@redhat.com>
17243
17244         * config/rx/rx.h (PTRDIFF_TYPE): Define.
17245         (SMALL_REGISTER_CLASS): Define (to zero).
17246         (PRINT_OPERAND): Delete.
17247         (PRINT_OPERAND_ADDRESS): Delete.
17248         * config/rx/rx-protos.h (rx_print_operand): Delete prototype.
17249         (rx_print_operand_address): Delete prototype.
17250         * config/rx/rx.c (rx_print_operand): Make static.
17251         Allow %H and %L to handle CONST_DOUBLEs.
17252         (rx_print_operand_address): Make static.
17253         (rx_gen_move_template): Rename local variable 'template' to
17254         out_template.
17255         (rx_function_arg): Do not pass unknown sized objects in registers.
17256         (TARGET_PRINT_OPERAND): Define.
17257         (TARGET_PRINT_OPERAND_ADDRESS): Define.
17258
17259 2010-06-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
17260
17261         * Makefile.in (POD2MAN): Provide --date from $(DATESTAMP).
17262
17263 2010-06-21  Kai Tietz  <kai.tietz@onevision.com>
17264
17265         * config/i386/i386.c (ix86_compute_frame_layout): Avoid
17266         stack-alignment for simple leaf-functions.
17267
17268 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
17269
17270         * doc/install.texi: Document bootstrap-lto.
17271
17272 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
17273
17274         PR debug/44248
17275         * lto-streamer-in.c (input_bb): Leave debug stmts alone.
17276         (input_function): Drop them here, if VTA is disabled.
17277
17278 2010-06-20  Uros Bizjak  <ubizjak@gmail.com>
17279
17280         PR target/44546
17281         * config/i386/predicates.md (ix86_swapped_fp_comparsion_operator):
17282         New predicate.
17283         * config/i386/i386.md (*fp_jcc_8<mode>_387 and splitters): Use
17284         ix86_swapped_fp_comparsion_operator instead of
17285         ix86_fp_comparison_operator.
17286
17287         (*fp_jcc_1_387): Rename from *fp_jcc_3_387.
17288         (*fp_jcc_1r_387): Rename from *fp_jcc_4_387.
17289         (*fp_jcc_2_387): Rename from *fp_jcc_5_387.
17290         (*fp_jcc_2r_387): Rename from *fp_jcc_6_387.
17291         (*fp_jcc_3_387): Rename from *fp_jcc_7_387.
17292         (*fp_jcc_4_<mode>_387): Rename from *fp_jcc_8<mode>_387.
17293
17294 2010-06-20  Joseph Myers  <joseph@codesourcery.com>
17295
17296         PR other/32998
17297         * opth-gen.awk: Generate definitions of OPT_SPECIAL_unknown,
17298         OPT_SPECIAL_program_name and OPT_SPECIAL_input_file.
17299         * opts-common.c (find_opt): Return OPT_SPECIAL_unknown on failure.
17300         (decode_cmdline_option): Update for this return value.  Set
17301         orig_option_with_args_text field.  Set arg field for unknown
17302         options.  Make static.
17303         (decode_cmdline_options_to_array): New.
17304         (prune_options): Update handling of find_opt return value.
17305         * opts.c (read_cmdline_option): Take decoded option.  Return void.
17306         (read_cmdline_options): Take decoded options.
17307         (decode_options): Add parameters for decoded options.  Use
17308         decode_cmdline_options_to_array.  Use decoded options for -O
17309         scan.  Use integral_argument for -O parameters.  Update call to
17310         read_cmdline_options.
17311         (enable_warning_as_error): Update handling of find_opt return value.
17312         * opts.h: Update comment on unknown options.
17313         (struct cl_decoded_option): Update comments on opt_index and arg.
17314         Add orig_option_with_args_text.
17315         (decode_cmdline_option): Remove.
17316         (decode_cmdline_options_to_array): Declare.
17317         (decode_options): Update prototype.
17318         * toplev.c (save_argv): Remove.
17319         (save_decoded_options, save_decoded_options_count): New.
17320         (read_integral_parameter): Remove.
17321         (print_switch_values): Use decoded options.
17322         (toplev_main): Don't set save_argv.  Update call to decode_options.
17323         * toplev.h (read_integral_parameter): Remove.
17324         * varasm.c (elf_record_gcc_switches): Don't handle holding back names.
17325
17326 2010-06-19  Richard Earnshaw  <rearnsha@arm.com>
17327
17328         PR target/44072
17329         * arm.md (cmpsi2_addneg): Prefer emitting adds to subs with a negative
17330         immediate.
17331         * constraints.md (Pw, Px): New constraints.
17332         * thumb2.md (cmpsi2_addneg peephole2): New peepholes.
17333
17334 2010-06-19  H.J. Lu  <hongjiu.lu@intel.com>
17335
17336         * config/i386/sse.md (fma4modesuffixf4): Removed.
17337         (ssemodesuffixf2s): Likewise.
17338         (ssemodesuffixf4): Likewise.
17339         (ssemodesuffixf2c): Likewise.
17340         (ssescalarmodesuffix2s): Likewise.
17341         (avxmodesuffixf2c): Likewise.
17342         (ssemodesuffix): New.
17343         (ssescalarmodesuffix): Likewise.
17344         Update patterns with ssemodesuffix and ssescalarmodesuffix.
17345
17346 2010-06-19  Philip Herron  <herron.philip@googlemail.com>
17347
17348         * c-decl.c (c_write_global_declarations): Don't check flag_syntax_only.
17349
17350 2010-06-18  H.J. Lu  <hongjiu.lu@intel.com>
17351
17352         * stor-layout.c (debug_rli): Remove unused local variables.
17353
17354 2010-06-18  Eric Botcazou  <ebotcazou@adacore.com>
17355
17356         PR rtl-optimization/40900
17357         * expr.c (expand_expr_real_1) <SSA_NAME>: Fix long line.  Save the
17358         original expression for later reuse.
17359         <expand_decl_rtl>: Use promote_function_mode to compute the signedness
17360         of the promoted RTL for a SSA_NAME on the LHS of a call statement.
17361
17362 2010-06-18  Anatoly Sokolov  <aesok@post.ru>
17363
17364         * double-int.h (double_int_to_shwi, double_int_to_uhwi,
17365         double_int_fits_in_uhwi_p): Implement as static inline.
17366         (double_int_xor): New inline function.
17367         (double_int_lrotate, double_int_rrotate, double_int_max,
17368         double_int_umax, double_int_smax, double_int_min, double_int_umin,
17369         double_int_smin): Declare.
17370         (lrotate_double, rrotate_double): Remove declaration.
17371         * double-int.c (double_int_fits_in_uhwi_p, double_int_to_shwi,
17372         double_int_to_uhwi, lrotate_double, rrotate_double): Remove function.
17373         (double_int_lrotate, double_int_rrotate, double_int_max,
17374         double_int_umax, double_int_smax, double_int_min, double_int_umin,
17375         double_int_smin): New function.
17376         * fold-const.c (int_const_binop): Clean up, use double_int_*
17377         functions.
17378         * simplify-rtx.c (simplify_const_binary_operation): Clean up, use
17379         double_int_* and immed_double_int_const functions.
17380
17381 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
17382
17383         * function.h (types_used_by_cur_var_decl): Change type to a VEC.
17384         * function.c (types_used_by_cur_var_decl): Likewise.
17385         (used_types_insert): Adjust for new type of types_used_by_cur_var_decl.
17386
17387 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
17388
17389         * tree.h (record_layout_info): Change type of pending_statics field
17390         to a VEC.
17391         * stor-layout.c (start_record_layout): Store NULL into
17392         pending_statics.
17393         (debug_rli): Call debug_vec_tree instead of debug_tree.
17394         (place_field): Likewise.
17395         (finish_record_layout): Likewise.
17396
17397 2010-06-18  Alan Modra  <amodra@gmail.com>
17398
17399         * config/rs6000/linux64.h (SET_CMODEL): Don't expand to empty.
17400
17401 2010-06-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17402
17403         PR target/43740
17404         * config/pa/pa.c (emit_move_sequence): Don't infer REG_POINTER flag
17405         for SET source operand from SET destination operand.
17406
17407 2010-06-17  Bernd Schmidt  <bernds@codesourcery.com>
17408
17409         PR rtl-optimization/39871
17410         * reload1.c (init_eliminable_invariants): For flag_pic, disable
17411         equivalences only for constants that aren't LEGITIMATE_PIC_OPERAND_P.
17412         (function_invariant_p): Rule out a plus of frame or arg pointer with
17413         a SYMBOL_REF.
17414         * ira.c (find_reg_equiv_invariant_const): Likewise.
17415
17416 2010-06-17  Gunther Nikl  <gnikl@users.sourceforge.net>
17417
17418         * config/rs6000/rs6000.c (print_operand) <'K'>: Also use
17419         print_operand_address and puts to output the operand for CONST.
17420
17421 2010-06-17  Jakub Jelinek  <jakub@redhat.com>
17422
17423         PR debug/44572
17424         * dwarf2out.c (dwarf2out_debug_hooks): Add entry for begin_epilogue
17425         hook.
17426
17427 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
17428
17429         * v850-protos.h (print_operand): Delete.
17430         (print_operand_address): Delete.
17431         * v850.h (PRINT_OPERAND): Delete.
17432         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
17433         (PRINT_OPERAND_ADDRESS): Delete.
17434         * v850.c (print_operand_address): Rename to...
17435         (v850_print_operand_address): ...this.  Make static. Call
17436         v850_print_operand.
17437         (print_operand): Rename to...
17438         (v850_print_operand): ...this.  Make static.  Call
17439         v850_print_operand_address.
17440         (v850_print_operand_punct_valid_p): New function.
17441         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
17442         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
17443
17444 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
17445
17446         * config/sh/sh-protos.h (print_operand): Delete.
17447         (print_operand_address): Delete.
17448         * config/sh/sh.h (PRINT_OPERAND): Delete.
17449         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
17450         (PRINT_OPERAND_ADDRESS): Delete.
17451         * config/sh/sh.c (sh_print_operand_address): Make static.
17452         (sh_print_operand): Make static.  Call sh_print_operand_address
17453         and sh_print_operand.
17454         (sh_print_operand_punct_valid_p): New function.
17455         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
17456         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
17457
17458 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
17459
17460         * config/mcore/mcore-protos.h (mcore_print_operand): Delete.
17461         (mcore_print_operand_address): Delete.
17462         * config/mcore/mcore.h (PRINT_OPERAND): Delete.
17463         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
17464         (PRINT_OPERAND_ADDRESS): Delete.
17465         * config/mcore/mcore.c (mcore_print_operand_address): Make static.
17466         (mcore_print_operand): Make static.
17467         (mcore_print_operand_punct_valid_p): New function.
17468         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define
17469         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
17470
17471 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
17472
17473         * config/m68hc11/m68hc11-protos.h (print_operand): Delete.
17474         (print_operand_address): Delete.
17475         * config/m68hc11/m68hc11.h (PRINT_OPERAND): Delete.
17476         (PRINT_OPERAND_ADDRESS): Delete.
17477         * config/m68hc11/m68hc11.c (m68hc11_print_operand_address): Make
17478         static.
17479         (m68hc11_print_operand): Make static.
17480         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
17481
17482 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
17483
17484         * config/m32r/m32r-protos.h (m32r_print_operand): Delete.
17485         (m32r_print_operand_address): Delete.
17486         * config/m32r/m32r.h (m32r_punct_chars): Delete.
17487         (PRINT_OPERAND): Delete.
17488         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
17489         (PRINT_OPERAND_ADDRESS): Delete.
17490         * config/m32r/m32r.c (m32r_punct_chars): Make static.
17491         (m32r_print_operand_address): Make static.
17492         (m32r_print_operand): Make static.
17493         (m32r_print_operand_punct_valid_p): New function.
17494         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
17495         (TARGET_PRINT_OPERAND_ADDRESS): Define.
17496
17497 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
17498
17499         * config/iq2000/iq2000-protos.h (print_operand): Delete.
17500         (print_operand_address): Delete.
17501         * config/iq2000/iq2000.h (PRINT_OPERAND): Delete.
17502         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
17503         (PRINT_OPERAND_ADDRESS): Delete.
17504         (iq2000_print_operand_punct): Delete.
17505         * config/iq2000/iq2000.c (iq2000_print_operand_punct): Make static.
17506         (iq2000_print_operand_address): Make static.
17507         (iq2000_print_operand): Make static.
17508         (iq2000_print_operand_punct_valid_p): New function.
17509         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
17510         (TARGET_PRINT_OPERAND_ADDRESS): Define.
17511
17512 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
17513
17514         * config/frv/frv-protos.h (frv_print_operand): Delete.
17515         (frv_print_operand_address): Delete.
17516         * config/frv/frv.h (PRINT_OPERAND): Delete.
17517         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
17518         (PRINT_OPERAND_ADDRESS): Delete.
17519         * config/frv/frv.c (frv_print_operand_address): Make static.
17520         (frv_print_operand): Make static.
17521         (frv_print_operand_punct_valid_p): New function.
17522         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
17523         (TARGET_PRINT_OPERAND_ADDRESS): Define.
17524
17525 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
17526
17527         * tree.h (vec_member): Declare.
17528         * tree.c (vec_member): Define.
17529
17530 2010-06-17  Richard Guenther  <rguenther@suse.de>
17531
17532         * tree-flow-inline.h (array_ref_contains_indirect_ref): Remove.
17533         * tree-flow.h (array_ref_contains_indirect_ref): Likewise.
17534
17535 2010-06-17  Richard Guenther  <rguenther@suse.de>
17536
17537         * tree-inline.c (declare_return_variable): Remove bogus code.
17538
17539 2010-06-17  Richard Guenther  <rguenther@suse.de>
17540
17541         * gimplify.c (gimplify_bind_expr): Always promote complex
17542         and vector variables to registers if possible.
17543
17544 2010-06-17  Richard Guenther  <rguenther@suse.de>
17545
17546         * expr.c (get_inner_reference): Use double_int for bit_offset
17547         calculation.
17548
17549 2010-06-16  DJ Delorie  <dj@redhat.com>
17550
17551         * common.opt (-fstrict-volatile-bitfields): new.
17552         * doc/invoke.texi: Document it.
17553         * fold-const.c (optimize_bit_field_compare): For volatile
17554         bitfields, use the field's type to determine the mode, not the
17555         field's size.
17556         * expr.c (expand_assignment): Likewise.
17557         (get_inner_reference): Likewise.
17558         (expand_expr_real_1): Likewise.
17559         * expmed.c (store_fixed_bit_field): Likewise.
17560         (extract_bit_field_1): Likewise.
17561         (extract_fixed_bit_field): Likewise.
17562
17563 2010-06-16  Richard Guenther  <rguenther@suse.de>
17564
17565         * tree-inline.c (remap_gimple_op_r): Recurse using remap_gimple_op_r.
17566
17567 2010-06-16  Douglas B Rupp  <rupp@gnat.com>
17568
17569         * config/ia64/vms.h (ASM_OUTPUT_DWARF_DELTA_UNITS): Remove.
17570         (ASM_OUTPUT_DWARF_VMS_DELTA: Define new macro.
17571         * dbxout.c (gcc_debug_hooks): New entry begin_epilogue.
17572         * debug.c: Likewise.
17573         * sdbout.c: Likewise.
17574         * vmsdbgout.c: Likewise.
17575         * debug.h: Likewise. (dwarf2out_vms_{begin,end}_prologue): Declare.
17576         * doc/tm.texi (ASM_OUTPUT_DWARF_VMS_DELTA): Document.
17577         * dwarf2asm.c (dw2_asm_output_vms_delta): New function.
17578         (ASM_OUTPUT_DWARF_VMS_DELTA): Call it.
17579         * dwarf2asm.h (dw2_asm_output_vms_delta): Declare.
17580         * dwarf2out.c (dw_fde_struct): New fields
17581         dw_fde_vms_{end,begin}_prologue.
17582         (PROLOGUE_END_LABEL, EPILOGUE_BEGIN_LABEL): New macros.
17583         (dwarf2out_begin_prologue): Set dw_fde_struct defaults for above.
17584         (dwarf2out_vms_end_prologue): New function.
17585         (dwarf2out_vms_begin_epilogue): New function.
17586         (dw_val_struct): New value dw_val_class_vms_delta.
17587         (gcc_debug_hooks): New entry begin_epilogue. Set end_prologue,
17588         begin_epilogue for VMS.
17589         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): Declare
17590         new static functions.
17591         (dwarf_attr_name): New cases DW_AT_HP_{prologue,epilogue}.
17592         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): New
17593         static functions.
17594         (print_die): New case dw_val_class_vms_delta.
17595         (attr_checksum): Likewise.
17596         (same_dw_val_p: Likewise.
17597         (size_of_die): Likewise.
17598         (value_format): Likewise.
17599         (output_die): Likewise.
17600         (gen_subprogram_die): Call add_AT_vms_delta on VMS.
17601         (dwarf2out_begin_epilogue): Rename to dwarf2out_cfi_begin_epilogue
17602         * dwarf2out.h (dwarf2out_begin_epilogue): Rename to
17603         dwarf2out_cfi_begin_epilogue
17604         * final.c (final_scan_insn): Likewise. Call begin_epilogue.
17605
17606 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
17607
17608         * config/cris/cris-protos.h (cris_print_operand): Delete.
17609         (cris_print_operand_address): Delete.
17610         * config/cris/cris.h (PRINT_OPERAND): Delete.
17611         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
17612         (PRINT_OPERAND_ADDRESS): Delete.
17613         * config/cris/cris.c (cris_print_operand_address): Make static.
17614         (cris_print_operand): Make static.
17615         (cris_print_operand_punct_valid_p): New function.
17616         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
17617         (TARGET_PRINT_OPERAND_ADDRESS): Define.
17618
17619 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
17620
17621         * config/arm/arm-protos.h (arm_print_operand): Delete.
17622         (arm_print_operand_address): Delete.
17623         * config/arm/arm.h (PRINT_OPERAND): Delete.
17624         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
17625         (PRINT_OPERAND_ADDRESS, ARM_PRINT_OPERAND_ADDRESS):
17626         (THUMB_PRINT_OPERAND_ADDRESS): Delete and move code to...
17627         * config/arm/arm.c (arm_print_operand_address): ...here.  New function.
17628         (arm_print_operand): Make static.
17629         (arm_print_operand_punct_valid_p): New function.
17630         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
17631         (TARGET_PRINT_OPERAND_ADDRESS): Define.
17632
17633 2010-06-16  Nick Clifton  <nickc@redhat.com>
17634
17635         * config/rx/constraints.md (NEGint4): New constraint.
17636         * config/rx/rx.md (attr cc): Add set_zsc.
17637         (cbranchsf4): Only test for -fnon-call-exceptions if cfun has been
17638         initialised.
17639         (cmpsf): Likewise.
17640         (call_internal): Clobber the cc0 register.
17641         (call_value_internal): Likewise.
17642         (cstoresi4): Likewise.
17643         (movsieq): Likewise.
17644         (movsine): Likewise.
17645         (addsi3): Add alternative to handle small negative constants.
17646         (sunsi3): Likewise.
17647         (addsi3): Do not set the O bit in the cc0 register.
17648         (adddi3): Likewise.
17649         (subsi3): Likewise.
17650         (subdi3): Likewise.
17651         (andsi3): Reorder alternatives to prefer shorter forms.
17652         (mulsi3): Likewise.
17653         (iorsi3): Likewise.
17654         (negsi2): Note that the cc0 flags are set.
17655         (rotlsi3): Note that only the Z and S bits are set in cc0.
17656         (lshrsi3): Likewise.
17657         (ashlsi3): Likewise.
17658         (subsf3): Use %Q for the MEM operand.
17659         (fix_truncsfsi2): Likewise.
17660         (floatsisf2): Likewise.
17661         (bitset): Remove early clobber from destination.
17662         (bitset_in_memory): Likewise.
17663         (lrintsf2): Clobber the cc0 register.
17664         * config/rx/rx.c (rx_notice_update_cc): Handle CC_SET_ZSC.
17665         (rx_print_operand): Handle %N.
17666
17667 2010-06-16  Jan Hubicka  <jh@suse.cz>
17668
17669         * df-core.c (df_compact_blocks): Free problem_temps vector.
17670
17671 2010-06-16  Martin Jambor  <mjambor@suse.cz>
17672
17673         PR tree-optimization/43905
17674         * tree-sra.c: Include tree-inline.h.
17675         (create_abstract_origin): Removed.
17676         (modify_function): Version the call graph node instead of creating
17677         abstract origins and dealing with same_body aliases.
17678         * tree-sra.c (ipa_sra_preliminary_function_checks): Check whether the
17679         function is versionable.
17680         * Makefile.in (tree-sra.o): Add TREE_INLINE_H to dependencies.
17681
17682 2010-06-16  Maxim Kuvyrkov  <maxim@codesourcery.com>
17683
17684         * config/mips/linux64.h (BIONIC_DYNAMIC_LINKERN32): Define.
17685         (CHOOSE_DYNAMIC_LINKER): Update.
17686
17687 2010-06-15  Uros Bizjak  <ubizjak@gmail.com>
17688
17689         * config/i386/i386.c (*prefetch_sse_<mode>):  Macroize insn from
17690         *prefetch_sse and *prefetch_sse_rex using P mode iterator.
17691         (*prefetch_3dnow_<mode>): Ditto from *prefetch_3dnow and
17692         *prefetch_3dnow_rex.
17693
17694 2010-06-15  Anatoly Sokolov  <aesok@post.ru>
17695
17696         * target.h (struct asm_out):Add declare_constant_name field.
17697         * target-def.h (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
17698         (TARGET_INITIALIZER): Use TARGET_ASM_DECLARE_CONSTANT_NAME.
17699         * output.h (default_asm_declare_constant_name): Declare.
17700         (assemble_label): Update prototype.
17701         * varasm.c (assemble_constant_contents): Use
17702         targetm.asm_out.declare_constant_name target hook.
17703         (assemble_label): Add 'file' argument.
17704         (default_asm_declare_constant_name): New function.
17705         * system.h (ASM_DECLARE_CONSTANT_NAME): Poison.
17706         * doc/tm.texi (ASM_DECLARE_CONSTANT_NAME): Remove.
17707         (TARGET_ASM_DECLARE_CONSTANT_NAME): Document it.
17708
17709         * config/darwin-protos.h (darwin_asm_declare_constant_name): Declare.
17710         * config/darwin.c (darwin_asm_declare_constant_name): New function.
17711         (machopic_output_indirection): Update assemble_label argument list.
17712         * config/darwin.h (ASM_DECLARE_CONSTANT_NAME): Remove.
17713         (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
17714
17715 2010-06-15  Sebastian Pop  <sebastian.pop@amd.com>
17716
17717         PR middle-end/44391
17718         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
17719         size_one_node for pointer types.  Do not call gmp_cst_to_tree.
17720
17721 2010-06-15  Richard Guenther  <rguenther@suse.de>
17722
17723         * tree-ssa-pre.c (eliminate): Handle PHI elimination to constants.
17724
17725 2010-06-15  Paul Brook  <paul@codesourcery.com>
17726
17727         * config/arm/arm.c (use_vfp_abi): Add sorry() for Thumb-1
17728         hard-float ABI.
17729
17730 2010-06-15  Alexandre Oliva  <aoliva@redhat.com>
17731
17732         * tree-vect-patterns.c (vect_pattern_recog_1): Bail out if we
17733         don't get a vector type for output.
17734
17735 2010-06-15  Jakub Jelinek  <jakub@redhat.com>
17736
17737         PR fortran/44536
17738         * langhooks.h (struct lang_hooks_for_decls): Add omp_report_decl.
17739         * langhooks-def.h (LANG_HOOKS_OMP_REPORT_DECL): Define.
17740         (LANG_HOOKS_DECLS): Add it.
17741         * gimplify.c (omp_notice_variable): Call
17742         lang_hooks.decls.omp_report_decl.
17743
17744 2010-06-15  Martin Jambor  <mjambor@suse.cz>
17745
17746         PR lto/44464
17747         * tree-sra.c (replace_removed_params_ssa_names): Call release_ssa_name
17748         on the newly dead SSA name.
17749
17750 2010-06-15  Alan Modra  <amodra@gmail.com>
17751
17752         * doc/invoke.texi: Add mcmodel to powerpc options.
17753         * configure.ac: Add HAVE_LD_LARGE_TOC test.
17754         * configure: Regenerate.
17755         * config.in: Regenerate.
17756         * config/rs6000/linux64.opt (mcmodel): New.
17757         * config/rs6000/linux64.h (TARGET_USES_LINUX64_OPT): Define.
17758         (TARGET_CMODEL, SET_CMODEL): Define.
17759         (SUBSUBTARGET_OVERRIDE_OPTIONS): Check user -mcmodel choice,
17760         select CMODEL_MEDIUM default.
17761         * config/rs6000/rs6000.h (enum rs6000_cmodel): New.
17762         (TARGET_CMODEL): Define default.
17763         * config/rs6000/rs6000.c (cmodel): New variable.
17764         (rs6000_explicit_options): Add cmodel field.
17765         (rs6000_handle_option): Handle -mcmodel.
17766         (create_TOC_reference): Add largetoc_reg param.  Generate high,
17767         lo_sum rtl for CMODEL_MEDIUM and CMODEL_LARGE.  Update all callers.
17768         (rs6000_delegitimize_address): Recognise new toc reference rtl
17769         and minimal-toc rtl.
17770         (rs6000_legitimize_reload_address): Handle new toc references.
17771         (print_operand_address): Handle legitimate_constant_pool_address_p
17772         match before lo_sum.
17773         (rs6000_eliminate_indexed_memrefs): Tidy.
17774         (rs6000_emit_move): Tweak threshold for inlining constants.
17775         Keep rs6000_emit_allocate_stack large stack frame offsets
17776         loaded into r0 inline.
17777         (rs6000_generate_compare <cmptf_internal2>): One more clobber.
17778         (tocrel_base, tocrel_offset): New variables.
17779         (toc_relative_expr_p): Set them here.
17780         (print_operand_address): Skip over any offset on constant pool address.
17781         (rs6000_output_addr_const_extra): Print tocrel_offset before @toc.
17782         (rs6000_mode_dependent_address <LO_SUM>): False for new toc refs.
17783         (offsettable_ok_by_alignment): New function.
17784         (rs6000_emit_move): Address suitably aligned local symbol_refs
17785         relative to the toc pointer for -mcmodel=medium.
17786         (legitimate_constant_pool_address_p): Make param const_rtx.  Add
17787         strict param.  Allow lo_sum version of addressing.  Verify reg
17788         used for -mminimal-toc and -mcmodel != small.  Update all callers.
17789         * config/rs6000/constraints.md: Update for above change.
17790         * config/rs6000/predicates.md: Likewise.
17791         * config/rs6000/rs6000.md (tls_gd_aix): Generate -mcmodel=medium/large
17792         code.
17793         (tls_gd): Split for -mcmodel=medium/large.
17794         (tls_gd_high, tls_gd_low): New.
17795         (tls_ld_aix, tls_ld, tls_ld_high, tls_ld_low): Similarly.
17796         (tls_got_dtprel, tls_got_dtprel_high, tls_got_dtprel_low): Similarly.
17797         (tls_got_tprel, tls_got_tprel_high, tls_got_tprel_low): Similarly.
17798         (largetoc_high, largetoc_low): New.
17799         (cmptf_internal2): Add clobber.
17800         * config/rs6000/rs6000-protos.h: Update.
17801
17802 2010-06-14  Changpeng Fang  <changpeng.fang@amd.com>
17803
17804         * tree-ssa-loop-prefetch.c (nothing_to_prefetch_p): New.  Return
17805         true if no prefetch is going to be generated for a given group.
17806         (estimate_prefetch_count): Use prefetch_mod and unroll_factor to
17807         estimate the prefetch_count.
17808         (loop_prefetch_arrays): Call nothing_to_prefetch_p; estimate the
17809         prefetch count by considering the unroll_factor and prefetch_mod
17810         for is_loop_prefetching_profitable.
17811
17812 2010-06-14  Andreas Schwab  <schwab@linux-m68k.org>
17813
17814         * config/m68k/m68k.c (m68k_delegitimize_address): Don't do
17815         anything if the argument is not a MEM.
17816
17817 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
17818
17819         PR debug/43650
17820         PR debug/44181
17821         PR debug/44247
17822         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Skip
17823         debug stmts.
17824         (canonicalize_loop_ivs): Likewise.
17825
17826 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
17827
17828         PR debug/43656
17829         * haifa-sched.c (setup_insn_reg_pressure_info,
17830         update_register_pressure): Reject debug insns.
17831         (ready_sort): Don't setup reg pressure for debug insns.
17832         (schedule_insn): Don't update reg pressure for debug insns.
17833
17834 2010-06-14  Richard Guenther  <rguenther@suse.de>
17835
17836         * lto-streamer.c (cached_bp): Remove.
17837         (bitpack_delete): Likewise.
17838         (bitpack_create): Likewise.
17839         (bp_get_next_word): Likewise.
17840         (bp_pack_value, bp_unpack_value): Move ...
17841         * lto-streamer.h (bp_pack_value, bp_unpack_value): ... here.
17842         Re-implement.
17843         (struct bitpack_d): Likewise.
17844         (bitpack_create, lto_output_bitpack, lto_input_bitpack):
17845         New inline functions.
17846         * lto-streamer-out.c (lto_output_bitpack): Remove.
17847         (pack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
17848         (pack_value_fields): Adjust.
17849         (lto_write_tree): Likewise.
17850         (output_gimple_stmt): Likewise.
17851         (output_function): Likewise.
17852         * lto-streamer-in.c (input_gimple_stmt): Adjust.
17853         (input_function): Likewise.
17854         (unpack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
17855         (lto_input_bitpack): Remove.
17856         (lto_materialize_tree): Adjust.
17857         * Makefile.in (ipa-prop.o): Add $(LTO_STREAMER_H) dependency.
17858         * lto-cgraph.c (lto_output_edge): Adjust.
17859         (lto_output_node): Likewise.
17860         (lto_output_varpool_node): Likewise.
17861         (lto_output_ref): Likewise.
17862         (input_node): Likewise.
17863         (input_varpool_node): Likewise.
17864         (input_ref): Likewise.
17865         (input_edge): Likewise.
17866         (output_node_opt_summary): Likewise.
17867         (input_node_opt_summary): Likewise.
17868         * ipa-pure-const.c (pure_const_write_summary): Likewise.
17869         (pure_const_read_summary): Likewise.
17870         * ipa-prop.c (ipa_write_indirect_edge_info): Likewise.
17871         (ipa_read_indirect_edge_info): Likewise.
17872         (ipa_write_node_info): Likewise.
17873         (ipa_read_node_info): Likewise.
17874
17875 2010-06-14  H.J. Lu  <hongjiu.lu@intel.com>
17876
17877         PR target/44534
17878         * config/i386/sse.md (vec_extract_lo_<mode>): Replace 0x1 with 0x0.
17879         (vec_extract_lo_v16hi): Likewise.
17880         (vec_extract_lo_v32qi): Likewise.
17881
17882 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
17883
17884         PR bootstrap/44426
17885         * tree.h (build_call_expr): Don't define as vararg macro, instead
17886         add a prototype.
17887         * builtins.c (build_call_nofold): Remove.
17888         (expand_builtin_int_roundingfn, expand_builtin_pow,
17889         expand_builtin_mempcpy_args, expand_builtin_stpcpy,
17890         expand_builtin_memset_args, expand_builtin_strcmp,
17891         expand_builtin_strncmp, expand_builtin_memory_chk): Use
17892         build_call_nofold_loc instead of build_call_nofold.
17893         (build_call_expr): New function.
17894
17895         PR tree-optimization/44508
17896         * tree-ssa-propagate.h (substitute_and_fold): Add DO_DCE argument.
17897         * tree-ssa-propagate.c (substitute_and_fold): If !DO_DCE,
17898         don't eliminate trivially dead stmts.
17899         * tree-vrp.c (vrp_finalize): Pass false as last argument
17900         to substitute_and_fold.
17901         * tree-ssa-copy.c (fini_copy_prop): Pass true as last argument
17902         to substitute_and_fold.
17903         * tree-ssa-ccp.c (ccp_finalize): Likewise.
17904
17905         PR bootstrap/44509
17906         * c-config-lang.in (gtfiles): Add c-family/c-cppbuiltin.c.
17907
17908 2010-06-14  Ira Rosen  <irar@il.ibm.com>
17909
17910         PR tree-optimization/44507
17911         * tree-vect-loop.c (get_initial_def_for_reduction): Use -1
17912         to build initial vector for BIT_AND_EXPR.
17913         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
17914
17915 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
17916
17917         * config/s390/s390.md (*mov<mode>_64 DD_DF, mov<mode>): Properly
17918         adjust z10prop set_attr.
17919
17920 2010-06-13  Jan Hubicka  <jh@suse.cz>
17921
17922         * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
17923         bitmap_and_compl_into, bitmap_compl_and_into, bitmap_ior,
17924         bitmap_ior_into, bitmap_xor, bitmap_xor_into,
17925         bitmap_ior_and_compl, bitmap_ior_and_compl): Turn internal
17926         datastructure checks into checking asserts.
17927         * rtlanal.c (find_reg_note): Use gcc_checking_assert.
17928         * tree-ssa-sccvn.c (VN_INFO): Likewise.
17929         * df-scan.c (df_reorganize_refs_by_reg_by_reg, df_install_ref,
17930         df_ref_create_structure): Likewise.
17931         * alloc-pool.c (create_alloc_pool, empty_alloc_pool, pool_alloc,
17932         pool_free): Use gcc_checking_assert.
17933         * alias.c (get_alias_set): Likewise.
17934         * var-tracking.c (variable_htab_free, shared_hash_copy,
17935         canonicalize_values_mark, variable_merge_over_cur): Likewise.
17936         * lto-streamer.c (bp_unpack_value): Likewise.
17937
17938 2010-06-13  Richard Guenther  <rguenther@suse.de>
17939
17940         * lto-streamer-in.c (lto_input_ts_type_tree_pointers):
17941         Do not stream but initialize TYPE_CANONICAL to NULL.
17942         (lto_output_ts_type_tree_pointers): Do not stream TYPE_CANONICAL.
17943         * gimple.c (gimple_types_compatible_p): Disregard
17944         TYPE_STRUCTURAL_EQUALITY_P.
17945         (gimple_register_type): Use TYPE_CANONICAL as cache.
17946         * lto-streamer.c (lto_record_common_node): Zero TYPE_CANONICAL
17947         before registering common types.
17948         * config/i386/i386.c (ix86_function_arg_boundary): Do not
17949         use TYPE_CANONICAL, instead use TYPE_MAIN_VARIANT.
17950         * tree.h (TYPE_CANONICAL): Clarify documentation.
17951
17952 2010-06-13  Anatoly Sokolov  <aesok@post.ru>
17953
17954         * config/ia64/ia64.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
17955         LIBCALL_VALUE): Remove macros.
17956         * config/ia64/ia64-protos.h (ia64_function_value): Remove.
17957         * config/ia64/ia64.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
17958         TARGET_FUNCTION_VALUE_REGNO_P): Define.
17959         (ia64_libcall_value, ia64_function_value_regno_p): New functions.
17960         (ia64_function_value): Make static. Handle receiving the function
17961         type in 'fn_decl_or_type' argunent. Add 'outgoing' argument.
17962
17963 2010-06-12  Jan Hubicka  <jh@suse.cz>
17964
17965         * cse.c (cse_extended_basic_block): Move optimize_bb_for_speed_p
17966         at correct place.
17967
17968 2010-06-12  Bernd Schmidt  <bernds@codesourcery.com>
17969
17970         * config/arm/arm.c (thumb2_reorg): Fix errors in previous change.
17971
17972 2010-06-12  Jan Hubicka  <jh@suse.cz>
17973
17974         * df-core.c (df_clear_bb_info): New function.
17975         (df_set_blocks): bb_info is always allocated.
17976         (df_get_bb_info): Use block_info_elt_size.
17977         (df_set_bb_info): Likewise.
17978         (df_compact_blocks): Update for new block_info.
17979         (grow_bb_info): New function.
17980         * df-problems.c (df_grow_bb_info): Move to df-core.c
17981         (df_rd_set_bb_info): Remove.
17982         (df_rd_free_bb_info): Do not free block pool.
17983         (df_rd_alloc): Do not create pool, use check for
17984         obstack presence instead of NULL pointer for new blocks.
17985         (df_rd_free): DO not free alloc pool; clear block_info.
17986         (problem_RD): Add size of block info structure.
17987         (df_lr_set_bb_info): Remove.
17988         (df_lr_free_bb_info): Do not free block pool.
17989         (df_lr_alloc): Do not create pool, use check for
17990         obstack presence instead of NULL pointer for new blocks.
17991         (df_lr_free): DO not free alloc pool; clear block_info.
17992         (problem_LR): Add size of block info structure.
17993         (df_live_set_bb_info): Remove.
17994         (df_live_free_bb_info): Do not free block pool.
17995         (df_live_alloc): Do not create pool, use check for
17996         obstack presence instead of NULL pointer for new blocks.
17997         (df_live_free): DO not free alloc pool; clear block_info.
17998         (problem_LIVE): Add size of block info structure.
17999         (problem_CHAIN): Add size of block info structure.
18000         (df_byte_lr_set_bb_info): Remove.
18001         (df_byte_lr_free_bb_info): Do not free block pool.
18002         (df_byte_lr_alloc): Do not create pool, use check for
18003         obstack presence instead of NULL pointer for new blocks.
18004         (df_byte_lr_free): DO not free alloc pool; clear block_info.
18005         (problem_BYTE_LR): Add size of block info structure.
18006         (problem_NOTE): Add size of block info structure.
18007         (df_byte_MD_set_bb_info): Remove.
18008         (df_byte_MD_free_bb_info): Do not free block pool.
18009         (df_byte_MD_alloc): Do not create pool, use check for
18010         obstack presence instead of NULL pointer for new blocks.
18011         (df_byte_MD_free): DO not free alloc pool; clear block_info.
18012         (problem_BD): Add size of block info structure.
18013         * df-scan.c (df_scan_free_internal): Free block pool.
18014         (df_scan_set_bb_info): Remove.
18015         (df_scan_free_bb_info): Check for artificial_defs instead
18016         of bb_info being non-NULL.
18017         (df_scan_alloc): DO not create df_scan_block pool.
18018         (problem_SCAN): Set size of block info.
18019         (df_bb_refs_record): Do not allocate bb_info.
18020         * df.h (df_problem): Add block_info_elt_size.
18021         (struct dataflow): Change block_info to void *.
18022         (df_scan_get_bb_info, df_rd_get_bb_info, df_lr_get_bb_info,
18023         df_md_get_bb_info, df_live_get_bb_info, df_byte_lr_get_bb_info): Return
18024         in-line structures.
18025
18026 2010-06-12  Jan Hubicka  <jh@suse.cz>
18027
18028         PR tree-optimize/44485
18029         * tree-cfgcleanup.c (fixup_noreturn_call): Remove basic blocks
18030         containing use of return value of noreturn function.
18031
18032 2010-06-12  Anatoly Sokolov  <aesok@post.ru>
18033
18034         * targhooks.c (default_function_value): Don't use
18035         FUNCTION_OUTGOING_VALUE.
18036         * system.h (FUNCTION_OUTGOING_VALUE): Poison.
18037         * doc/tm.texi (FUNCTION_OUTGOING_VALUE): Removed.
18038
18039 2010-06-12  Kazu Hirata  <kazu@codesourcery.com>
18040
18041         * config.gcc (mips64*-*-linux*, mipsisa64*-*-linux*, mips*-*-linux*):
18042         Add crtfastmath.o to extra_parts.
18043         * config/mips/crtfastmath.c: New.
18044         * config/mips/linux.h (ENDFILE_SPEC): New.
18045
18046 2010-06-12  Sebastian Pop  <sebastian.pop@amd.com>
18047
18048         * graphite-clast-to-gimple.c (gcc_type_for_interval): Do not pass
18049         old_type in parameter.
18050         (gcc_type_for_value): Update call to gcc_type_for_interval.
18051         (compute_type_for_level_1): Renamed compute_type_for_level.
18052         Update call to gcc_type_for_interval.
18053
18054 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
18055
18056         * common.opt (Wstrict-aliasing=, Wstrict-overflow=, fabi-version=,
18057         flto-compression-level=, ftree-parallelize-loops=): Add RejectNegative.
18058
18059 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
18060
18061         * opts-common.c: Include options.h.
18062         (integral_argument): Move from opts.c.
18063         (decode_cmdline_option): New.  Based on read_cmdline_option.
18064         * opts.c (integral_argument): Move to opts-common.c.
18065         (read_cmdline_option): Move most contents to
18066         decode_cmdline_option.  Use %qs in diagnostics.
18067         * opts.h (CL_ERR_DISABLED, CL_ERR_MISSING_ARG, CL_ERR_WRONG_LANG,
18068         CL_ERR_UINT_ARG, struct cl_decoded_option, integral_argument,
18069         decode_cmdline_option): New.
18070
18071 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
18072
18073         PR target/44481
18074         * config/i386/i386.md (UNSPEC_PARITY): New unspec.
18075         (paritydi2_cmp): Use UNSPEC_PARITY unspec instead of parity RTX.
18076         (partiysi2_cmp): Ditto.
18077         (*partiyhi2_cmp): Ditto.
18078         (*parityqi2_cmp): Remove.
18079
18080 2010-06-11  Jan Hubicka  <jh@suse.cz>
18081
18082         * bitmap.h (bmp_iter_next_bit): New.
18083         (bmp_iter_set, bmp_iter_and, bmp_iter_and_compl): Use it.
18084
18085 2010-06-11  Sandra Loosemore  <sandra@codesourcery.com>
18086             Eric Botcazou  <ebotcazou@adacore.com>
18087
18088         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Return again the
18089         computed cost.
18090
18091 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
18092
18093         * config/i386/i386.md (unspec): New define_c_enum.
18094         (unspecv): Ditto.
18095
18096 2010-06-10  Jakub Jelinek  <jakub@redhat.com>
18097
18098         * Makefile.in (c-family/c-cppbuiltin.o): Depend on $(CPP_ID_DATA_H).
18099
18100 2010-06-11  Sebastian Pop  <sebastian.pop@amd.com>
18101
18102         PR middle-end/44483
18103         * tree-if-conv.c (bb_predicate_s): New struct.
18104         (bb_predicate_p): New.
18105         (bb_has_predicate): New.
18106         (bb_predicate): New.
18107         (set_bb_predicate): New.
18108         (bb_predicate_gimplified_stmts): New.
18109         (set_bb_predicate_gimplified_stmts): New.
18110         (add_bb_predicate_gimplified_stmts): New.
18111         (init_bb_predicate): New.
18112         (free_bb_predicate): New.
18113         (is_predicated): Use bb_predicate.
18114         (add_to_predicate_list): Use bb_predicate and set_bb_predicate.
18115         (predicate_bbs): Same.  Gimplify the condition of the basic blocks
18116         before processing their successors.
18117         (clean_predicate_lists): Removed.
18118         (find_phi_replacement_condition): Use bb_predicate.
18119         (process_phi_nodes): Renamed ifconvert_phi_nodes.  Avoid useless
18120         computations.
18121         (insert_gimplified_predicates): New.
18122         (combine_blocks): Call insert_gimplified_predicates.
18123         (tree_if_conversion): Call free_bb_predicate instead of
18124         clean_predicate_lists.
18125
18126 2010-10-11  Paul Brook  <paul@codesourcery.com>
18127
18128         * doc/invoke.texi: Document ARM -mcpu=cortex-m4.
18129         * config/arm/arm.c (all_architectures): Change v7e-m default to
18130         cortexm4.
18131         * config/arm/arm-cores.def: Add cortex-m4.
18132         * config/arm/arm-tune.md: Regenerate.
18133
18134 2010-06-11  Jan Hubicka  <jh@suse.cz>
18135
18136         * ipa-pure-const.c (special_builtlin_state): New function.
18137         (check_call): Use it instead of special casign BUILT_IN_RETURN.
18138         (propagate_pure_const): Use it.
18139
18140 2010-06-11  Jan Hubicka  <jh@suse.cz>
18141
18142         * df-problems.c (df_live_scratch): Convert to bitmap_head.
18143         (df_live_alloc): Initialize df_live_scratch when initializing
18144         problem_data.
18145         (df_live_transfer_function): Update uses of df_live_scratch.
18146         (df_live_free): Free problem_data; clear df_live_scratch before
18147         releasing the obstack.
18148         (df_md_free): Free problem data.
18149
18150 2010-06-11  Jan Hubicka  <jh@suse.cz>
18151
18152         * doc/invoke.texi (Wsuggest-attribute): Document.
18153         (Wmissing-noreturn): Remove.
18154         * ipa-pure-const.c (warn_function_noreturn): New function.
18155         * opts.c (decode_options): Set warn_suggest_attribute_noreturn on
18156         warn_missing_noreturn.
18157         * common.opt (Wsuggest-attribute=noreturn): New.
18158         * tree-flow.h (warn_function_noreturn): Declare.
18159         * tree-cfg.c (execute_warn_function_noreturn): Use
18160         warn_function_noreturn.
18161         (gate_warn_function_noreturn): New.
18162         (pass_warn_function_noreturn): Update.
18163
18164 2010-06-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
18165
18166         * c-typeck.c (handle_warn_cast_qual): Add loc
18167         parameter. Improve warning message.
18168         (build_c_cast): Pass location to handle_warn_cast_qual.
18169
18170 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
18171
18172         * config/i386/i386.md (pro_epilogue_adjust_stack_1) <TYPE_ALU>: Assert
18173         that operand 0 == operand 1.  Use x86_maybe_negate_const_int to output
18174         insn mnemonic.
18175         (pro_epilogue_adjust_stack_rex64) <TYPE_ALU>: Ditto.
18176
18177 2010-06-10  Dodji Seketeli  <dodji@redhat.com>
18178
18179         Fix bootstap on mips
18180         * dwarf2out.c (is_naming_typedef_dec): Built-in TYPE_DECLs cannot
18181         be naming typedefs.
18182
18183 2010-06-11  Kai Tietz  <kai.tietz@onevision.com>
18184
18185         * system.h (helper_const_non_const_cast): New inline for
18186         gcc version <= 4.0.
18187         (CONST_CAST2): For gcc version <= 4.0 use
18188         new helper to do const/non-const casting.
18189
18190 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
18191
18192         * doc/md.texi: Document the "unspec" and "unspecv" enum names.
18193         * Makefile.in (OBJS-common): Include insn-enums.o.
18194         (insn-enums.o): New rule.
18195         (simple_generated_c): Add insn-enums.c.
18196         (build/genenums.o): New rule.
18197         (genprogmd): Add "enums".
18198         * genconstants.c (print_enum_type): Declare a C string array
18199         for each enum.
18200         * genenums.c: New file.
18201         * print-rtl.c (print_rtx): If defined, use the "unspecv" enum
18202         for UNSPEC_VOLATILE.  If defined, use the "unspec" enum for both
18203         UNSPEC and (as a fallback) for UNSPEC_VOLATILE.
18204
18205 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
18206
18207         * doc/md.texi (define_enum_attr): Document.
18208         * rtl.def (DEFINE_ENUM_ATTR): New rtx.
18209         * read-md.h (lookup_enum_type): Declare.
18210         * read-md.c (lookup_enum_type): New function.
18211         * genattr.c (gen_attr, main): Handle DEFINE_ENUM_ATTR.
18212         * genattrtab.c (attr_desc): Add an enum_name field.
18213         (evaluate_eq_attr): Take the associated attribute as argument.
18214         Get the enum prefix from the enum_name field, if defined.
18215         Use ACONCAT rather than a fixed-length buffer.  Update recursive calls.
18216         (simplify_test_exp): Pass attr to evaluate_eq_attr.
18217         (add_attr_value): New function, split out from...
18218         (gen_attr): ...here.  Handle DEFINE_ENUM_ATTR.
18219         (write_test_expr): Pass attr to evaluate_eq_attr.
18220         (write_attr_get): Use the enum_name as the enum tag, if defined.
18221         (write_attr_valueq): Use the enum_name as a prefix, if defined.
18222         (find_attr): Initialize enum_name.
18223         (main): Handle DEFINE_ENUM_ATTR.
18224         * gensupport.c (process_rtx): Likewise.
18225         * config/mips/mips.h (mips_tune_attr): Delete.
18226         * config/mips/mips.md (cpu): Use define_attr_enum.
18227
18228 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
18229
18230         * doc/md.texi (define_c_enum, define_enum): Document.
18231         * read-md.h (md_constant): Add a parent_enum field.
18232         (enum_value, enum_type): New structures.
18233         (upcase_string, traverse_enum_types): Declare.
18234         * read-md.c (enum_types): New variable.
18235         (upcase_string, add_constant): New functions.
18236         (handle_constants): Don't create the hash table here.
18237         Use add_constant.
18238         (traverse_md_constants): Don't check for a null md_constants.
18239         (decimal_string, handle_enum, traverse_enum_types): New functions.
18240         (read_md_files): Initialize md_constants and md_enums.
18241         * genconstants.c (print_md_constant): Ignore info argument.
18242         Only print constants that belong to no enum.
18243         (print_enum_type): New function.
18244         (main): Don't pass stdout to print_md_constant.  Call print_enum_type
18245         for each defined enum type.
18246         * config/mips/mips.md (processor): New define_enum.
18247         (unspec): New define_c_enum.
18248         (UNSPEC_COMPARE_AND_SWAP, UNSPEC_COMPARE_AND_SWAP_12)
18249         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_NEW_OP_12)
18250         (UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE, UNSPEC_SYNC_EXCHANGE_12)
18251         (UNSPEC_MEMORY_BARRIER): Moved to sync.md.
18252         (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
18253         (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
18254         (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
18255         (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
18256         (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
18257         (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
18258         (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
18259         (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
18260         (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
18261         (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
18262         (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
18263         (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
18264         (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
18265         (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
18266         (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
18267         (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
18268         (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
18269         (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
18270         (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
18271         (UNSPEC_RDDSP): Move to mips-dsp.md.
18272         (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH, UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB)
18273         (UNSPEC_ADDUH_R_QB, UNSPEC_APPEND, UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB)
18274         (UNSPEC_CMPGDU_LT_QB, UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH)
18275         (UNSPEC_DPS_W_PH, UNSPEC_MADD, UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU)
18276         (UNSPEC_MUL_PH, UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH)
18277         (UNSPEC_MULQ_S_W, UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU)
18278         (UNSPEC_PRECR_QB_PH, UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W)
18279         (UNSPEC_PREPEND, UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH)
18280         (UNSPEC_SUBU_PH, UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB)
18281         (UNSPEC_ADDQH_PH, UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W)
18282         (UNSPEC_SUBQH_PH, UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W)
18283         (UNSPEC_DPAX_W_PH, UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH)
18284         (UNSPEC_DPAQX_SA_W_PH, UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH):
18285         Moved to mips-dspr2.md.
18286         (UNSPEC_MOVE_TF_PS, UNSPEC_C, UNSPEC_ALNV_PS, UNSPEC_CABS)
18287         (UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS, UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS)
18288         (UNSPEC_ABS_PS, UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1)
18289         (UNSPEC_RECIP2, UNSPEC_SINGLE_CC, UNSPEC_SCC): Move from mips-ps-3d.md.
18290         (UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ, UNSPEC_LOONGSON_PCMPGT)
18291         (UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
18292         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
18293         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
18294         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
18295         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
18296         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
18297         UNSPEC_LOONGSON_PSADBH)
18298         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
18299         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
18300         (UNSPEC_LOONGSON_PSUBD): Move to mips-loongson.md.
18301         (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
18302         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
18303         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
18304         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Move to mips-loongson2ef.md.
18305         (cpu): Update comment.
18306         * config/mips/sync.md (UNSPEC_COMPARE_AND_SWAP)
18307         (UNSPEC_COMPARE_AND_SWAP_12, UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP)
18308         (UNSPEC_SYNC_NEW_OP_12, UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE)
18309         (UNSPEC_SYNC_EXCHANGE_12, UNSPEC_MEMORY_BARRIER): Moved from mips.md.
18310         * config/mips/loongson.md (UNSPEC_LOONGSON_PAVG,
18311         UNSPEC_LOONGSON_PCMPEQ)
18312         (UNSPEC_LOONGSON_PCMPGT, UNSPEC_LOONGSON_PEXTR,
18313         UNSPEC_LOONGSON_PINSR_0)
18314         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
18315         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
18316         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
18317         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
18318         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
18319         UNSPEC_LOONGSON_PSADBH)
18320         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
18321         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
18322         (UNSPEC_LOONGSON_PSUBD): Moved from mips.md
18323         * config/mips/loongson2ef.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
18324         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
18325         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
18326         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved from mips.md
18327         * config/mips/mips-dsp.md (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ)
18328         (UNSPEC_SUBQ_S, UNSPEC_ADDSC, UNSPEC_ADDWC, UNSPEC_MODSUB)
18329         (UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S, UNSPEC_PRECRQ_QB_PH)
18330         (UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W, UNSPEC_PRECRQU_S_QB_PH)
18331         (UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR, UNSPEC_PRECEQU_PH_QBL)
18332         (UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA, UNSPEC_PRECEQU_PH_QBRA)
18333         (UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR, UNSPEC_PRECEU_PH_QBLA)
18334         (UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL, UNSPEC_SHLL_S, UNSPEC_SHRL_QB)
18335         (UNSPEC_SHRA_PH, UNSPEC_SHRA_R, UNSPEC_MULEU_S_PH_QBL)
18336         (UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH, UNSPEC_MULEQ_S_W_PHL)
18337         (UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL, UNSPEC_DPAU_H_QBR)
18338         (UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR, UNSPEC_DPAQ_S_W_PH)
18339         (UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH, UNSPEC_DPAQ_SA_L_W)
18340         (UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL, UNSPEC_MAQ_S_W_PHR)
18341         (UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR, UNSPEC_BITREV, UNSPEC_INSV)
18342         (UNSPEC_REPL_QB, UNSPEC_REPL_PH, UNSPEC_CMP_EQ, UNSPEC_CMP_LT)
18343         (UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB, UNSPEC_CMPGU_LT_QB)
18344         (UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH, UNSPEC_EXTR_W)
18345         (UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H, UNSPEC_EXTP)
18346         (UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
18347         (UNSPEC_RDDSP): Moved from mips.md.
18348         * config/mips/mips-dspr2.md (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH)
18349         (UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB, UNSPEC_ADDUH_R_QB, UNSPEC_APPEND)
18350         (UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB, UNSPEC_CMPGDU_LT_QB)
18351         (UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH, UNSPEC_DPS_W_PH, UNSPEC_MADD)
18352         (UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU, UNSPEC_MUL_PH)
18353         (UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH, UNSPEC_MULQ_S_W)
18354         (UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU, UNSPEC_PRECR_QB_PH)
18355         (UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W, UNSPEC_PREPEND)
18356         (UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH, UNSPEC_SUBU_PH)
18357         (UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB, UNSPEC_ADDQH_PH)
18358         (UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W, UNSPEC_SUBQH_PH)
18359         (UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W, UNSPEC_DPAX_W_PH)
18360         (UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH, UNSPEC_DPAQX_SA_W_PH)
18361         (UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH): Moved from mips.md.
18362         * config/mips/mips-ps-3d.md (UNSPEC_MOVE_TF_PS, UNSPEC_C)
18363         (UNSPEC_ALNV_PS, UNSPEC_CABS, UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS)
18364         (UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS, UNSPEC_ABS_PS, UNSPEC_RSQRT1)
18365         (UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2, UNSPEC_SINGLE_CC)
18366         (UNSPEC_SCC): Moved from mips.md.
18367         * config/mips/mips.c (mips_arch, mips_tune): Change enum from
18368         "processor_type" to "processor".
18369         (mips_rtx_cost_data): Replace PROCESSOR_MAX with NUM_PROCESSOR_VALUES.
18370         * config/mips/mips.h (processor_type): Delete.
18371         (mips_cpu_info.cpu, mips_arch, mips_tune): Change enum from
18372         "processor_type" to "processor".
18373
18374 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
18375
18376         * configure.ac (tm_include_list): Add insn-constants.h.
18377         * configure: Regenerate.
18378         * Makefile.in (GTM_H): Move insn-constants.h here from...
18379         (TM_H): ...here.
18380         * mkconfig.sh: Remove special handling for insn-constants.h.
18381
18382 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
18383
18384         * Makefile.in (BUILD_RTL): Move build/read-md.o to...
18385         (BUILD_MD): ...this new variable.
18386         (simple_generated_rtl_h, simple_generated_rtl_c): New variables
18387         that include the old contents of simple_generated_h and
18388         simple_generated_c.
18389         (simple_generated_h, simple_generated_c): Include them.  Add
18390         insn-constants.h.
18391         (s-%): Make simple_generated_{h,c} stamps depend on $(MD_DEPS)
18392         and simple_generated_rtl_{h,c} stamps depend on insn-conditions.md.
18393         Remove these dependencies from the main rule and include
18394         insn-conditions.md in the command line only if it appears
18395         in the dependency list.
18396         (insn-constants.h, s-constants): Delete.
18397         (build/genconstants.o): Don't depend on $(RTL_BASE_H), $(GTM_H)
18398         or gensupport.h.
18399         (build/genmddeps.o): Likewise.
18400         (genprogrtl): New variable that contains everything from genprogmd
18401         except mddeps and constants.
18402         (genprogmd): Redefine in terms of genprogrtl.  Make these programs
18403         depend on $(BUILD_MD)
18404         (genprog): New variable.  Make these programs depend on
18405         $(BUILD_ERRORS).
18406         * genmddeps.c: Don't include tm.h, rtl.h or gensupport.h.
18407         (main): Use read_md_files instead of init_rtx_reader_args.
18408         * genconstants.c: As for genmddeps.c.
18409         * read-md.h (read_skip_construct): Declare.
18410         * read-md.c (read_skip_construct): New function.
18411         (handle_file): Allow a null handle_directive, skipping the
18412         construct if so.
18413         (parse_include): Update the comment accordingly.
18414
18415 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
18416
18417         * Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H).
18418         * genmddeps.c: Include read-md.h.
18419         (main): Call init_rtx_reader_args instead of init_md_reader_args.
18420         * genattr.c (main): Likewise.
18421         * genattrtab.c (main): Likewise.
18422         * genautomata.c (main): Likewise.
18423         * gencodes.c (main): Likewise.
18424         * genconditions.c (main): Likewise.
18425         * genconfig.c (main): Likewise.
18426         * genconstants.c (main): Likewise.
18427         * genemit.c (main): Likewise.
18428         * genextract.c (main): Likewise.
18429         * genflags.c (main): Likewise.
18430         * genopinit.c (main): Likewise.
18431         * genoutput.c (main): Likewise.
18432         * genpeep.c (main): Likewise.
18433         * genrecog.c (main): Likewise.
18434         * genpreds.c (main): Likewise.
18435         * gensupport.h (in_fname): Move to read-md.h.
18436         (init_md_reader_args_cb): Rename to...
18437         (init_rtx_reader_args_cb): ...this and return a bool.
18438         (init_md_reader_args): Rename to...
18439         (init_rtx_reader_args): ...this and return a bool.
18440         (include_callback): Move to read-md.h.
18441         * gensupport.c (in_fname, include_callback, base_dir, max_include_len)
18442         (file_name_list, first_dir_md_include): Move to read-md.c
18443         (first_bracket_include): Delete unused variable.
18444         (last_dir_md_include): Move to read-md.c.
18445         (process_include): Delete, moving code to read-md.c:handle_include.
18446         (process_rtx): Don't handle INCLUDE.
18447         (save_string): Delete.
18448         (rtx_handle_directive): New function.
18449         (init_md_reader_args_cb): Rename to...
18450         (init_rtx_reader_args_cb): ...this and return a boolean success value.
18451         Use read_md_args.
18452         (init_md_reader_args): Rename to...
18453         (init_rtx_reader_args): ...this and return a boolean success value.
18454         * rtl.def (INCLUDE): Delete.
18455         * rtl.h (read_rtx): Remove "int *" argument.  Add "const char *"
18456         argument.
18457         * read-rtl.c (read_conditions): Don't gobble ')' here.
18458         (read_mapping): Likewise.
18459         (read_rtx): Remove LINENO argument.  Add RTX_NAME argument.
18460         Handle top-level non-rtx constructs here rather than in read_rtx_1.
18461         Store the whole queue in *X.  Remove call to init_md_reader.
18462         (read_rtx_1): Rename to...
18463         (read_rtx_code): ...this.  Call read_nested_rtx to read subrtxes.
18464         Don't handle top-level non-rtx constructs here.  Don't handle (nil)
18465         here.
18466         (read_nested_rtx): New function.  Handle (nil) here rather than
18467         in read_rtx_code.
18468         (read_rtx_variadic): Call read_nested_rtx to read subrtxes.  Don't
18469         gobble ')' here.
18470         * read-md.h (directive_handler_t): New type.
18471         (in_fname, include_callback): Moved from read-md.h.
18472         (read_constants, init_md_reader): Delete.
18473         (read_md_files): Declare.
18474         * read-md.c (file_name_list, in_fname, base_dir, first_dir_md_include)
18475         (last_dir_md_include_ptr, include_callback, max_include_len): Moved
18476         from gensupport.c.
18477         (read_constants): Rename to...
18478         (handle_constants): ...this.  Don't gobble ')' here.
18479         (handle_include, handle_file, handle_toplevel_file)
18480         (parse_include): New functions, mostly taken from gensupport.c.
18481         (init_md_reader): Subsume into...
18482         (read_md_files): ...this new function.
18483
18484 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
18485
18486         * read-md.h (read_char): Increment read_md_lineno after reading '\n'.
18487         (unread_char): Decrement read_md_lineno after putting back '\n'.
18488         * read-md.c (fatal_with_file_and_line): Push back any characters
18489         that we decide not to add to the context.
18490         (read_skip_spaces): Don't increment read_md_lineno here.  Avoid using
18491         fatal_expected_char in cases where '/' ends a line (for example).
18492         (read_name): Don't increment read_md_lineno here.
18493         (read_escape): Likewise.
18494         (read_quoted_string): Likewise.
18495         (read_braced_string): Likewise.
18496
18497 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
18498
18499         * Makefile.in (READ_MD_H): Add $(HASHTAB_H).
18500         (build/genconstants.o): Depend on $(READ_MD_H) gensupport.h.
18501         * genconstants.c: Include read-md.h.
18502         * read-rtl.c (md_constants): Move to read-md.c.
18503         (md_name): Move to read-md.h.
18504         (initialize_iterators): Use leading_string_hash instead of def_hash
18505         and leading_string_eq_p instead of def_name_eq_p.
18506         (read_name): Move to read-md.c.
18507         (def_hash, def_name_eq_p): Delete.
18508         (read_constants, traverse_md_constants): Move to read-md.c.
18509         * rtl.h (md_constant, traverse_md_constants): Move to read-md.h.
18510         * read-md.h: Include hashtab.h.
18511         (md_name): Moved from read-rtl.c.
18512         (md_constant): Moved from read-md.h.
18513         (leading_string_hash, leading_string_eq_p, read_name)
18514         (read_constants, traverse_md_constants): Declare.
18515         * read-md.c (md_constants): Moved from read-rtl.c.
18516         (leading_string_hash, leading_string_eq_p): New functions.
18517         (read_name, read_constants, traverse_md_constants): Moved from
18518         read-rtl.c.
18519
18520 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
18521
18522         * read-rtl.c (md_name): New structure.
18523         (read_name): Take an md_name instead of a buffer pointer.
18524         Use the "string" field instead of strcpy when expanding constants.
18525         (read_constants): Remove the tmp_char argument.  Update the calls
18526         to read_name, using two local name buffers instead of the tmp_char
18527         argument.  Merge the constant-creation code.
18528         (read_conditions): Remove the tmp_char argument.  Update the calls
18529         to read_name, using a local name buffer instead of the tmp_char
18530         argument.
18531         (read_mapping): Replace tmp_char variable with a local name buffer.
18532         Update the calls to read_name.
18533         (read_rtx_1): Likewise.  Update the calls to read_constants and
18534         read_conditions.
18535
18536 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
18537
18538         * Makefile.in (build/read-md.o): Depend on errors.h.
18539         * read-md.h (error_with_line): Declare.
18540         * read-md.c: Include errors.h.
18541         (message_with_line_1): New function, extracted from...
18542         (message_with_line): ...here.
18543         (error_with_line): New function.
18544         * genattrtab.c: If a call to message_with_line is followed by
18545         "have_error = 1;", replace both statements with a call to
18546         error_with_line.
18547         * genoutput.c: Likewise.
18548         * genpreds.c: Likewise.
18549         * genrecog.c: If a call to message_with_line is followed by
18550         "error_count++;", replace both statements with a call to
18551         error_with_line.
18552         (errorcount): Delete.
18553         (main): Don't check it.
18554         * gensupport.c: If a call to message_with_line is followed by
18555         "errors = 1;", replace both statements with a call to error_with_line.
18556         (errors): Delete.
18557         (process_define_cond_exec): Check have_error instead of errors.
18558         (init_md_reader_args_cb): Likewise.  Don't set errors.
18559
18560 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
18561
18562         * read-md.h (read_md_file): Declare.
18563         (read_char, unread_char): New functions.
18564         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
18565         (read_quoted_string, read_string): Remove FILE * argument.
18566         * read-md.c (read_md_file): New variable.
18567         (read_md_filename, read_md_lineno): Update comments and remove
18568         unnecessary initialization.
18569         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
18570         (read_escape, read_quoted_string, read_braced_string, read_string):
18571         Remove FILE * argument.  Update calls accordingly, using read_char
18572         and unread_char instead of getc and ungetc.
18573         * rtl.h (read_rtx): Remove FILE * argument.
18574         * read-rtl.c (iterator_group): Remove FILE * argument from
18575         "find_builtin".
18576         (iterator_traverse_data): Remove "infile" field.
18577         (find_mode, find_code, apply_mode_maps, apply_iterator_to_rtx)
18578         (add_mapping, read_name, read_constants, read_conditions)
18579         (validate_const_int, find_iterator, read_mapping, check_code_iterator)
18580         (read_rtx, read_rtx_1, read_rtx_variadic): Remove FILE * argument.
18581         Remove file arguments from all calls, using read_char and unread_char
18582         instead of getc and ungetc.
18583         * gensupport.c (process_include): Preserve read_md_file around
18584         the include.  Set read_md_file to the handle of the included file.
18585         Update call to read_rtx.
18586         (init_md_reader_args_cb): Set read_md_file to the handle of the file
18587         and remove local FILE *.  Update calls to read_rtx.
18588
18589 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
18590
18591         * read-md.h (read_rtx_lineno): Rename to...
18592         (read_md_lineno): ...this.
18593         (read_rtx_filename): Rename to...
18594         (read_md_filename): ...this.
18595         (copy_rtx_ptr_loc): Rename to...
18596         (copy_md_ptr_loc): ...this.
18597         (print_rtx_ptr_loc): Rename to...
18598         (print_md_ptr_loc): ...this.
18599         * read-md.c: Likewise.  Update references after renaming.
18600         (string_obstack): Replace RTL with MD in comment.
18601         (set_rtx_ptr_loc): Rename to...
18602         (set_md_ptr_loc): ...this.
18603         (get_rtx_ptr_loc): Rename to...
18604         (get_md_ptr_loc): ...this.
18605         * genconditions.c: Update references after renaming.
18606         * genemit.c: Likewise.
18607         * genoutput.c: Likewise.
18608         * genpreds.c: Likewise.
18609         * gensupport.c: Likewise.
18610         * read-rtl.c: Likewise.
18611
18612 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
18613
18614         * Makefile.in (READ_MD_H): New variable.
18615         (BUILD_RTL): Add build/read-md.o.
18616         (lto-wrapper.o): Depend on coretypes.h instead of defaults.h.
18617         (build/gensupport.o, build/read-rtl.o, build/genattr.o)
18618         (build/genattrtab.o, build/genconditions.o build/genemit.o)
18619         (build/genextract.o, build/genflags.o, build/genoutput.o)
18620         (build/genpreds.o, build/genrecog.o): Depend on $(READ_MD_H).
18621         (build/read-md.o): New rule.
18622         * defaults.h (obstack_chunk_alloc, obstack_chunk_free)
18623         (OBSTACK_CHUNK_SIZE, gcc_obstack_init): Move to...
18624         * coretypes.h: ...here.
18625         * lto-wrapper.c: Include coretypes.h instead of defaults.h.
18626         * pretty-print.c (obstack_chunk_alloc, obstack_chunk_free): Delete.
18627         * genattr.c: Include read-md.h.
18628         * genattrtab.c: Likewise.
18629         * genconditions.c: Likewise.
18630         * genemit.c: Likewise.
18631         * genextract.c: Likewise.
18632         * genflags.c: Likewise.
18633         * genoutput.c: Likewise.
18634         * genpreds.c: Likewise.
18635         * genrecog.c: Likewise.
18636         * rtl.h (read_skip_spaces, copy_rtx_ptr_loc, print_rtx_ptr_loc)
18637         (join_c_conditions, print_c_condition, read_rtx_filename)
18638         (read_rtx_lineno): Move to read-md.h.
18639         * read-rtl.c: Include read-md.h.
18640         (ptr_loc, string_obstack, ptr_locs, ptr_loc_obstack)
18641         (joined_conditions, joined_conditions_obstack, read_rtx_lineno)
18642         (read_rtx_filename, fatal_with_file_and_line, fatal_expected_char)
18643         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc, get_rtx_ptr_loc)
18644         (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
18645         (print_c_condition, read_skip_spaces, read_escape, read_quoted_string)
18646         (read_braced_string, read_string): Move to read-md.c.
18647         (read_rtx): Move some initialization to init_md_reader and call
18648         init_md_reader here.
18649         * gensupport.h (message_with_line, n_comma_elts, scan_comma_elt):
18650         Move to read-md.h.
18651         * gensupport.c: Include read-md.h.
18652         (message_with_line, n_comma_elts, scan_comma_elt): Move to read-md.c.
18653         * read-md.h, read-md.c: New files.
18654
18655 2010-06-10  Anatoly Sokolov  <aesok@post.ru>
18656
18657         * config/moxie/moxie.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
18658         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
18659         * config/moxie/moxie-protos.h (moxie_function_value): Remove.
18660         * config/moxie/moxie.c (moxie_function_value): Make static.
18661         (moxie_libcall_value, moxie_function_value_regno_p): New functions.
18662         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
18663
18664 2010-06-10  Martin Jambor  <mjambor@suse.cz>
18665
18666         * Makefile.in (tree-sra.o): Add DBGCNT_H to dependencies.
18667         * dbgcnt.def (tree_sra): New counter.
18668         * tree-sra.c: Include dbgcnt.h.
18669         (gate_intra_sra): Check tree_sra debug counter.
18670
18671 2010-06-10  Martin Jambor  <mjambor@suse.cz>
18672
18673         PR tree-optimization/44258
18674         * tree-sra.c (build_access_subtree): Return false iff there is a
18675         partial overlap.
18676         (build_access_trees): Likewise.
18677         (analyze_all_variable_accesses): Disqualify candidates if
18678         build_access_trees returns true for them.
18679
18680 2010-06-10  Alexandre Oliva  <aoliva@redhat.com>
18681
18682         PR debug/41371
18683         * var-tracking.c (find_loc_in_1pdv): Remove recursion, only
18684         tail-recurse into canonical node.  Fast-forward over
18685         non-canonical VALUEs.
18686
18687 2010-06-10  H.J. Lu  <hongjiu.lu@intel.com>
18688
18689         PR boostrap/44470
18690         * config/i386/i386.md (*add<mode>_1): Revert revision 160394.
18691         (*addsi_1_zext) <TYPE_LEA>: Likewise.
18692         (add lea splitter): Likewise.
18693         (add_zext lea splitter): Likewise.
18694
18695 2010-06-10  Joseph Myers  <joseph@codesourcery.com>
18696
18697         * common.opt (fshow-column): Don't mark as C ObjC C++ ObjC++.
18698
18699 2010-06-10  Jan Hubicka  <jh@suse.cz>
18700
18701         * df-problems.c (df_live_problem_data): Add live_bitmaps.
18702         (df_live_alloc): Initialize problem data and live_osbtacks.
18703         (df_live_finalize): Remove obstack, problem data; do not
18704         clear all bitmaps.
18705         (df_live_top_dump, df_live_bottom_dump): Do not dump old
18706         data when not allocated.
18707         (df_live_verify_solution_start): Do not allocate problem data.
18708         (df_live_verify_solution_end): Check if out is allocated.
18709         (struct df_md_problem_data): New structure.
18710         (df_md_alloc): Allocate problem data.
18711         (df_md_free): Free problem data; do not clear bitmaps.
18712
18713 2010-06-10  Jan Beulich  <jbeulich@novell.com>
18714
18715         PR bootstrap/37304
18716         * configure.ac: Replace $() with ${} when intending to expand
18717         variables rather than invoking commands.
18718         * configure: Re-generate.
18719
18720 2010-06-10  Jan Hubicka  <jh@suse.cz>
18721
18722         PR rtl-optimization/44460
18723         * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
18724         TYPE_NEEDS_CONSTRUCTING sanity check.
18725
18726 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
18727
18728         * doc/include/fdl.texi: Move to GFDL version 1.3.
18729
18730         * doc/cpp.texi: Move to GFDL version 1.3.
18731         * doc/gcc.texi: Move to GFDL version 1.3.  Fix copyright years.
18732         * doc/gccint.texi: Move to GFDL version 1.3.
18733         * doc/gcov.texi: Move to GFDL version 1.3.  Update copyright years.
18734         * doc/install.texi: Move to GFDL version 1.3.  Fix copyright years.
18735         * doc/invoke.texi: Move to GFDL version 1.3.
18736
18737 2010-06-09  Jan Hubicka  <jh@suse.cz>
18738
18739         * ipa-pure-const.c (propagate_pure_const, propagate_noreturn):
18740         Break out from ...
18741         (propagate) ... here; swap the order.
18742
18743 2010-06-09  Jan Hubicka  <jh@suse.cz>
18744
18745         * bitmap.c (bitmap_elt_insert_after, bitmap_first_set_bit,
18746         bitmap_first_set_bit, bitmap_last_set_bit, bitmap_last_set_bit,
18747         bitmap_and_into, bitmap_and_compl_into, bitmap_set_range,
18748         bitmap_compl_and_into, bitmap_elt_ior): Use checking asserts.
18749
18750 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
18751
18752         * tree-ssa-loop-prefetch.c (gather_memory_references_ref):
18753         Do not the gather memory reference in the outer loop if the step
18754         is not a constant.
18755
18756 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
18757
18758         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO) :
18759         Change the PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO threshold value from
18760         8 to 4.  Minor change of the related comments.
18761
18762 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
18763
18764         * tree-scalar-evolution.c (instantiate_scev_name): Do not fail
18765         the scev analysis when the variable is not used outside the loop
18766         in a close phi node: call compute_overall_effect_of_inner_loop.
18767
18768 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
18769
18770         * graphite-sese-to-poly.c (single_pred_cond): Renamed
18771         single_pred_cond_non_loop_exit.  Return NULL for loop exit edges.
18772         (build_sese_conditions_before): Renamed call to single_pred_cond.
18773         (build_sese_conditions_after): Same.
18774
18775 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
18776
18777         * graphite-poly.h: Fix comments and indentation.
18778         * graphite-sese-to-poly.c: Same.
18779         (build_sese_conditions_before): Compute stmt and gbb only when needed.
18780         * tree-chrec.c: Fix comments and indentation.
18781         (tree-ssa-loop-niter.c): Same.
18782
18783 2010-06-09  Eric Botcazou  <ebotcazou@adacore.com>
18784
18785         PR rtl-optimization/42461
18786         * dce.c (deletable_insn_p): Return true for const or pure calls again.
18787         * except.c (insn_could_throw_p): Return false if !flag_exceptions.
18788
18789 2010-06-09  Jan Hubicka  <jh@suse.cz>
18790
18791         * bitmap.c (bitmap_and): Walk array forward.
18792         (bitmap_and_compl_into): Likewise.
18793         (bitmap_xor): Likewise.
18794         (bitmap_xor_into):  Likewise.
18795         (bitmap_equal_p): Likewise.
18796         (bitmap_intersect_p): Likewise.
18797         (bitmap_intersect_compl_p): Likewise.
18798         (bitmap_ior_and_into): Likewise.
18799         (bitmap_elt_copy): Likewise.
18800         (bitmap_and_compl): Likewise.
18801         (bitmap_elt_ior): Likewise.
18802
18803 2010-06-09  Dave Korn  <dave.korn.cygwin@gmail.com>
18804
18805         * opts-common.c (prune_options): Ensure replacement argv array
18806         is correctly terminated by a NULL entry.
18807
18808 2010-06-09  Jan Hubicka  <jh@suse.cz>
18809
18810         * cgraph.h (varpool_first_static_initializer,
18811         varpool_next_static_initializer): Make checking only when
18812         checking enabled.
18813         * tree-vectorizer.h (vinfo_for_stmt): Remove check.
18814         (set_vinfo_for_stmt, get_earlier_stmt, is_loop_header_bb_p): Change
18815         gcc_assert to gcc_checking_assert.
18816         * tree-flow-inline.h (gimple_vop, get_var_ann, relink_imm_use,
18817         phi_nodes, set_phi_nodes, phi_arg_index_from_use, op_iter_next_use,
18818         op_iter_next_def, op_iter_next_tree, op_iter_init, op_iter_init_use,
18819         op_iter_init_phiuse, op_iter_init_phidef,
18820         array_ref_contains_indirect_ref, ref_contains_array_ref): Use
18821         gcc_checking_assert.
18822         * emit-rtl.h (set_first_insn, set_last_insn): Likewise.
18823         * tree-ssa-live.h (var_to_partition, var_to_partition_to_var,
18824         partition_is_global, live_on_entry, live_on_exit,
18825         live_merge_and_clear): Likewise.
18826         * system.h (gcc_checking_assert): New macro.
18827         * gimple.h (set_bb_seq): Use gcc_checking_assert.
18828
18829 2010-06-09  Jason Merrill  <jason@redhat.com>
18830
18831         * Makefile.in (TAGS): Collect tags info from c-family.
18832
18833 2010-06-09  Jan Hubicka  <jh@suse.cz>
18834
18835         * gimple.h (gcc_gimple_checking_assert): New macro.
18836         (gimple_set_def_ops, gimple_set_use_ops,
18837         gimple_set_vuse, gimple_set_vdef,
18838         gimple_omp_subcode, gimple_omp_set_subcode, gimple_ops, gimple_op,
18839         gimple_op_ptr, gimple_op_ptr, gimple_set_op, gimple_bind_set_block,
18840         gimple_asm_input_op, gimple_asm_input_op_ptr, gimple_asm_set_input_op,
18841         gimple_asm_output_op, gimple_asm_output_op_ptr,
18842         gimple_asm_set_output_op, gimple_asm_clobber_op,
18843         gimple_asm_set_clobber_op, gimple_asm_label_op,
18844         gimple_asm_set_label_op, gimple_try_set_kind,
18845         gimple_try_catch_is_cleanup, gimple_try_set_catch_is_cleanup,
18846         gimple_phi_arg, gimple_switch_num_labels, gimple_switch_set_index,
18847         gimple_switch_label, gimple_switch_set_label, gimple_omp_for_index,
18848         gimple_omp_for_index_ptr, gimple_omp_for_set_index,
18849         gimple_omp_for_initial, gimple_omp_for_initial_ptr,
18850         gimple_omp_for_set_initial, gimple_omp_for_final,
18851         gimple_omp_for_final_ptr, gimple_omp_for_set_final,
18852         gimple_omp_for_incr, gimple_omp_for_incr_ptr, gimple_omp_for_set_incr,
18853         gimple_omp_for_set_cond, gimple_omp_for_cond): Make checking
18854         conditional with ENABLE_GIMPLE_CHECKING.
18855         (gimple_phi_set_arg): Likewise; replace memcpy by assignment.
18856
18857 2010-06-09  Sandra Loosemore  <sandra@codesourcery.com>
18858
18859         * tree-ssa-loop-ivopts.c (adjust_setup_cost): New function.
18860         (get_computation_cost_at): Use it.
18861         (determine_use_iv_cost_condition): Likewise.
18862         (determine_iv_cost): Likewise.
18863
18864 2010-06-09  Richard Guenther  <rguenther@suse.de>
18865
18866         * tree-ssa-loop-niter.c (simplify_replace_tree): Do not
18867         replace constants.
18868
18869 2010-06-09  Kai Tietz  <kai.tietz@onevision.com>
18870
18871         * c-objc-common.c (c_tree_printer): Pre-intialize t by NULL_TREE.
18872
18873 2010-06-09  Martin Jambor  <mjambor@suse.cz>
18874
18875         PR tree-optimization/44423
18876         * tree-sra.c (dump_access): Dump also grp_assignment_read.
18877         (analyze_access_subtree): Pass negative allow_replacements to children
18878         if the current type is scalar.
18879
18880 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
18881
18882         PR testsuite/42843
18883         * gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".
18884         * doc/plugins.texi (Plugin license check): Update information
18885         on type of plugin_is_GPL_compatible.
18886         * Makefile.in (PLUGINCC): Define as $(COMPILER).
18887         (PLUGINCFLAGS): Define as $(COMPILER_FLAGS).
18888
18889 2010-06-09  Bernd Schmidt  <bernds@codesourcery.com>
18890
18891         * config/arm/arm.c (thumb2_reorg): New function.
18892         (arm_reorg): Call it.
18893         * config/arm/thumb2.md (define_peephole2 for flag clobbering
18894         arithmetic operations): Delete.
18895
18896 2010-06-09  Edmar Wienskoski  <edmar@freescale.com>
18897
18898         PR target/44067
18899         * config/rs6000/rs6000.md (DIFD): Do not split dpfp values for
18900         e500v2 target.
18901
18902 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
18903
18904         PR plugins/44459
18905         * gcc-plugin.h: Encapsulate all declarations in extern "C".
18906
18907 2010-06-08  Jan Hubicka  <jh@suse.cz>
18908
18909         * basic-block.h (single_succ_edge, single_pred_edge, ei_container,
18910         ei_next, ei_prev): Do sanity checking with ENABLE_CHECKING only.
18911
18912 2010-06-08  Sandra Loosemore  <sandra@codesourcery.com>
18913
18914         PR tree-optimization/39874
18915         PR middle-end/28685
18916         * gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons):
18917         Declare.
18918         * gimple-fold.c (canonicalize_bool, same_bool_comparison_p,
18919         same_bool_result_p): New.
18920         (and_var_with_comparison, and_var_with_comparison_1,
18921         and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New.
18922         (or_var_with_comparison, or_var_with_comparison_1,
18923         or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New.
18924         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Use
18925         maybe_fold_and_comparisons or maybe_fold_or_comparisons instead
18926         of combine_comparisons.
18927         * tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise.
18928
18929 2010-06-08  Anatoly Sokolov  <aesok@post.ru>
18930
18931         * config/pdp11/pdp11.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
18932         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
18933         * config/pdp11/pdp11.c (pdp11_function_value, pdp11_libcall_value,
18934         pdp11_function_value_regno_p): New functions.
18935         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
18936         TARGET_FUNCTION_VALUE_REGNO_P): Define.
18937
18938 2010-06-08  Kazu Hirata  <kazu@codesourcery.com>
18939
18940         * config/arm/arm.c (arm_rtx_costs_1): Don't special case for
18941         Thumb-2 in the MINUS case.
18942
18943 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
18944
18945         * doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
18946
18947         * doc/gty.texi (GTY Options): Document typed GC allocation and
18948         variable_size GTY option.
18949
18950         * ggc-internal.h: New.
18951
18952         * ggc.h: Update copyright year.
18953         (digit_string): Move to stringpool.c.
18954         (ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
18955         (gt_pch_save_stringpool, gt_pch_fixup_stringpool)
18956         (gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
18957         (init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
18958         (ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
18959         (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
18960         (ggc_force_collect, ggc_get_size, ggc_statistics)
18961         (ggc_print_common_statistics): Move to ggc-internal.h.
18962         (digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
18963         (ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
18964         (GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
18965         (ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
18966         (ggc_min_heapsize_heuristic, ggc_alloc_zone)
18967         (ggc_alloc_zone_pass_stat): Remove.
18968         (ggc_internal_alloc_stat, ggc_internal_alloc)
18969         (ggc_internal_cleared_alloc_stat): New.
18970         (GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
18971         (ggc_internal_vec_alloc_stat)
18972         (ggc_internal_cleared_vec_alloc_stat)
18973         (ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
18974         (ggc_alloc_atomic_stat, ggc_alloc_atomic)
18975         (ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
18976         (ggc_cleared_alloc_ptr_array_two_args): New.
18977         (htab_create_ggc, splay_tree_new_ggc): Redefine.
18978         (ggc_splay_alloc): Change the type of the first argument to
18979         enum gt_types_enum.
18980         (ggc_alloc_string): Make macro.
18981         (ggc_alloc_string_stat): New.
18982         (ggc_strdup): Redefine.
18983         (rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
18984         (ggc_alloc_rtvec_sized): New.
18985         (ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
18986         (ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
18987         (ggc_internal_cleared_alloc_zone_stat)
18988         (ggc_internal_zone_alloc_stat)
18989         (ggc_internal_zone_cleared_alloc_stat)
18990         (ggc_internal_zone_vec_alloc_stat)
18991         (ggc_alloc_zone_rtx_def_stat)
18992         (ggc_alloc_zone_tree_node_stat)
18993         (ggc_alloc_zone_cleared_tree_node_stat)
18994         (ggc_alloc_cleared_gimple_statement_d_stat): New.
18995
18996         * ggc-common.c: Include ggc-internal.h.
18997         (ggc_internal_cleared_alloc_stat): Rename from
18998         ggc_alloc_cleared_stat.
18999         (ggc_realloc_stat): Use ggc_internal_alloc_stat.
19000         (ggc_calloc): Remove.
19001         (ggc_cleared_alloc_htab_ignore_args): New.
19002         (ggc_cleared_alloc_ptr_array_two_args): New.
19003         (ggc_splay_alloc): Add obj_type parameter.
19004         (init_ggc_heuristics): Formatting fixes.
19005
19006         * ggc-none.c: Update copyright year.
19007         (ggc_alloc_stat): Rename to ggc_alloc_stat.
19008         (ggc_alloc_cleared_stat): Rename to
19009         ggc_internal_cleared_alloc_stat.
19010         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
19011
19012         * ggc-page.c: Update copyright year.  Include ggc-internal.h.
19013         Remove references to ggc_alloc in comments.
19014         (ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
19015         (ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
19016         (new_ggc_zone, destroy_ggc_zone): Remove.
19017         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
19018
19019         * ggc-zone.c: Include ggc-internal.h.  Remove references to
19020         ggc_alloc in comments.
19021         (ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
19022         (ggc_internal_alloc_zone_pass_stat): New.
19023         (ggc_internal_cleared_alloc_zone_stat): New.
19024         (ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
19025         (ggc_alloc_stat): Rename ggc_internal_alloc_stat.
19026         (new_ggc_zone, destroy_ggc_zone): Remove.
19027
19028         * stringpool.c: Update copyright year.  Include ggc-internal.h
19029         (digit_vector): Make static.
19030         (digit_string): Moved from ggc.h.
19031         (stringpool_ggc_alloc): Use ggc_alloc_atomic.
19032         (ggc_alloc_string): Rename to ggc_alloc_string_stat.
19033
19034         * Makefile.in (GGC_INTERNAL_H): New.
19035         (ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
19036         $(GGC_INTERNAL_H) to dependencies.
19037
19038         * gentype.c: Update copyright year.
19039         (walk_type): Accept variable_size GTY option.
19040         (USED_BY_TYPED_GC_P): New macro.
19041         (write_enum_defn): Use USED_BY_TYPED_GC_P.  Do not output
19042         whitespace at the end of strings.
19043         (get_type_specifier, variable_size_p): New functions.
19044         (alloc_quantity, alloc_zone): New enums.
19045         (write_typed_alloc_def): New function.
19046         (write_typed_struct_alloc_def): Likewise.
19047         (write_typed_typed_typedef_alloc_def): Likewise.
19048         (write_typed_alloc_defns): Likewise.
19049         (output_typename, write_splay_tree_allocator_def): Likewise.
19050         (write_splay_tree_allocators): Likewise.
19051         (main): Call write_typed_alloc_defns and
19052         write_splay_tree_allocators.
19053
19054         * lto-streamer.h (lto_file_decl_data_ptr): New.
19055
19056         * passes.c (order): Define using cgraph_node_ptr.
19057
19058         * strinpool.c (struct string_pool_data): Declare nested_ptr using
19059         ht_identifier_ptr.
19060
19061         * gimple.h (union gimple_statement_d): Likewise.
19062
19063         * rtl.h (struct rtx_def): Likewise.
19064         (struct rtvec_def): Likewise.
19065
19066         * tree.h (union tree_node): Likewise.
19067
19068         * tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
19069
19070         * cfgloop.c (record_loop_exits): Use htab_create_ggc.
19071
19072         * tree-scalar-evolution.c (scev_initialize): Likewise.
19073
19074         * alias.c (record_alias_subset): Update splay_tree_new_ggc call.
19075
19076         * dwarf2asm.c (dw2_force_const_mem): Likewise.
19077
19078         * omp-low.c (lower_omp_critical): Likewise.
19079
19080         * bitmap.h (struct bitmap_head_def): Update comment to not
19081         reference ggc_alloc.
19082
19083         * config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
19084
19085         * ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
19086
19087         * ipa-prop.c (duplicate_ggc_array): Rename to
19088         duplicate_ipa_jump_func_array.  Use typed GC allocation.
19089         (ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
19090
19091         * gimple.c (gimple_alloc_stat): Use
19092         ggc_alloc_cleared_gimple_statement_d_stat.
19093
19094         * varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
19095
19096         * tree.c (make_node_stat): Use
19097         ggc_alloc_zone_cleared_tree_node_stat.
19098         (make_tree_vec_stat): Likewise.
19099         (build_vl_exp_stat): Likewise.
19100         (copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
19101         (make_tree_binfo_stat): Likewise.
19102         (tree_cons_stat): Likewise.
19103
19104         * rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
19105         (shallow_copy_rtx_stat): Likewise.
19106         (make_node_stat): Likewise.
19107
19108         * lto-symtab.c: Fix comment.
19109
19110         * tree-cfg.c (create_bb): Update comment to not reference
19111         ggc_alloc_cleared.
19112         * tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is value.
19113
19114         * varpool.c (varpool_node): Use typed GC allocation.
19115         (varpool_extra_name_alias): Likewise.
19116
19117         * varasm.c (emutls_decl): Likewise.
19118         (get_unnamed_section): Likewise.
19119         (get_noswitch_section): Likewise.
19120         (get_section): Likewise.
19121         (get_block_for_section): Likewise.
19122         (build_constant_desc): Likewise.
19123         (create_constant_pool): Likewise.
19124         (force_const_mem): Likewise.
19125
19126         * tree.c (build_vl_exp_stat): Likewise.
19127         (build_real): Likewise.
19128         (build_string): Likewise.
19129         (decl_debug_expr_insert): Likewise.
19130         (decl_value_expr_insert): Likewise.
19131         (type_hash_add): Likewise.
19132         (build_omp_clause): Likewise.
19133
19134         * tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
19135
19136         * tree-ssa.c (init_tree_ssa): Likewise.
19137
19138         * tree-ssa-structalias.c (heapvar_insert): Likewise.
19139
19140         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
19141
19142         * tree-ssa-loop-niter.c (record_estimate): Likewise.
19143
19144         * tree-ssa-alias.c (get_ptr_info): Likewise.
19145
19146         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
19147
19148         * tree-phinodes.c (allocate_phi_node): Likewise.
19149
19150         * tree-iterator.c (tsi_link_before): Likewise.
19151         (tsi_link_after): Likewise.
19152
19153         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
19154
19155         * tree-dfa.c (create_var_ann): Likewise.
19156
19157         * tree-cfg.c (create_bb): Likewise.
19158
19159         * toplev.c (alloc_for_identifier_to_locale): Likewise.
19160         (general_init): Likewise.
19161
19162         * stringpool.c (stringpool_ggc_alloc): Likewise.
19163         (gt_pch_save_stringpool): Likewise.
19164
19165         * sese.c (if_region_set_false_region): Likewise.
19166
19167         * passes.c (do_per_function_toporder): Likewise.
19168
19169         * optabs.c (set_optab_libfunc): Likewise.
19170         (set_conv_libfunc): Likewise.
19171
19172         * lto-symtab.c (lto_symtab_register_decl): Likewise.
19173
19174         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
19175         (input_eh_region): Likewise.
19176         (input_eh_lp): Likewise.
19177         (make_new_block): Likewise.
19178         (unpack_ts_real_cst_value_fields): Likewise.
19179
19180         * lto-section-in.c (lto_new_in_decl_state): Likewise.
19181
19182         * lto-cgraph.c (input_node_opt_summary): Likewise.
19183
19184         * loop-init.c (loop_optimizer_init): Likewise.
19185
19186         * lambda.h (lambda_vector_new): Likewise.
19187
19188         * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
19189
19190         * ira.c (update_equiv_regs): Likewise.
19191
19192         * ipa.c (cgraph_node_set_new): Likewise.
19193         (cgraph_node_set_add): Likewise.
19194         (varpool_node_set_new): Likewise.
19195         (varpool_node_set_add): Likewise.
19196
19197         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
19198         (duplicate_ipa_jump_func_array): Likewise.
19199         (ipa_read_node_info): Likewise.
19200
19201         * ipa-cp.c (ipcp_create_replace_map): Likewise.
19202
19203         * integrate.c (get_hard_reg_initial_val): Likewise.
19204
19205         * gimple.c (gimple_alloc_stat): Likewise.
19206         (gimple_build_omp_for): Likewise.
19207         (gimple_seq_alloc): Likewise.
19208         (gimple_copy): Likewise.
19209
19210         * gimple-iterator.c (gsi_insert_before_without_update): Likewise.
19211         (gsi_insert_after_without_update): Likewise.
19212
19213         * function.c (add_frame_space): Likewise.
19214         (insert_temp_slot_address): Likewise.
19215         (assign_stack_temp_for_type): Likewise.
19216         (allocate_struct_function): Likewise.
19217         (types_used_by_var_decl_insert): Likewise.
19218
19219         * except.c (init_eh_for_function): Likewise.
19220         (gen_eh_region): Likewise.
19221         (gen_eh_region_catch): Likewise.
19222         (gen_eh_landing_pad): Likewise.
19223         (add_call_site): Likewise.
19224
19225         * emit-rtl.c (get_mem_attrs): Likewise.
19226         (get_reg_attrs): Likewise.
19227         (start_sequence): Likewise.
19228         (init_emit): Likewise.
19229
19230         * dwarf2out.c (new_cfi): Likewise.
19231         (queue_reg_save): Likewise.
19232         (dwarf2out_frame_init): Likewise.
19233         (new_loc_descr): Likewise.
19234         (find_AT_string): Likewise.
19235         (new_die): Likewise.
19236         (add_var_loc_to_decl): Likewise.
19237         (clone_die): Likewise.
19238         (clone_as_declaration): Likewise.
19239         (break_out_comdat_types): Likewise.
19240         (new_loc_list): Likewise.
19241         (loc_descriptor): Likewise.
19242         (add_loc_descr_to_each): Likewise.
19243         (add_const_value_attribute): Likewise.
19244         (tree_add_const_value_attribute): Likewise.
19245         (add_comp_dir_attribute): Likewise.
19246         (add_name_and_src_coords_attributes): Likewise.
19247         (lookup_filename): Likewise.
19248         (store_vcall_insn): Likewise.
19249         (dwarf2out_init): Likewise.
19250
19251         * dbxout.c (dbxout_init): Likewise.
19252
19253         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
19254
19255         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
19256
19257         * config/score/score7.c (score7_output_external): Likewise.
19258
19259         * config/score/score3.c (score3_output_external): Likewise.
19260
19261         * config/s390/s390.c (s390_init_machine_status): Likewise.
19262
19263         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
19264         (rs6000_init_machine_status): Likewise.
19265         (output_toc): Likewise.
19266
19267         * config/pa/pa.c (pa_init_machine_status): Likewise.
19268         (get_deferred_plabel): Likewise.
19269
19270         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
19271
19272         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
19273
19274         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
19275
19276         * config/mep/mep.c (mep_init_machine_status): Likewise.
19277         (mep_note_pragma_flag): Likewise.
19278
19279         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
19280
19281         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
19282
19283         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
19284
19285         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
19286         (i386_pe_maybe_record_exported_symbol): Likewise.
19287
19288         * config/i386/i386.c (get_dllimport_decl): Likewise.
19289         (ix86_init_machine_status): Likewise.
19290         (assign_386_stack_local): Likewise.
19291
19292         * config/frv/frv.c (frv_init_machine_status): Likewise.
19293
19294         * config/darwin.c (machopic_indirection_name): Likewise.
19295
19296         * config/cris/cris.c (cris_init_machine_status): Likewise.
19297
19298         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
19299
19300         * config/avr/avr.c (avr_init_machine_status): Likewise.
19301
19302         * config/arm/arm.c (arm_init_machine_status): Likewise.
19303
19304         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
19305         (alpha_need_linkage): Likewise.
19306         (alpha_use_linkage): Likewise.
19307
19308         * cgraph.c (cgraph_allocate_node): Likewise.
19309         (cgraph_create_edge_1): Likewise.
19310         (cgraph_create_indirect_edge): Likewise.
19311         (cgraph_add_asm_node): Likewise.
19312
19313         * cfgrtl.c (init_rtl_bb_info): Likewise.
19314
19315         * cfgloop.c (alloc_loop): Likewise.
19316         (rescan_loop_exit): Likewise.
19317
19318         * cfg.c (init_flow): Likewise.
19319         (alloc_block): Likewise.
19320         (unchecked_make_edge): Likewise.
19321
19322         * c-parser.c (c_parse_init): Likewise.
19323         (c_parse_file): Likewise.
19324
19325         * c-decl.c (bind): Likewise.
19326         (record_inline_static): Likewise.
19327         (push_scope): Likewise.
19328         (make_label): Likewise.
19329         (lookup_label_for_goto): Likewise.
19330         (finish_struct): Likewise.
19331         (finish_enum): Likewise.
19332         (c_push_function_context): Likewise.
19333
19334         * bitmap.c (bitmap_element_allocate): Likewise.
19335         (bitmap_gc_alloc_stat): Likewise.
19336
19337         * alias.c (record_alias_subset): Likewise.
19338         (init_alias_analysis): Likewise.
19339
19340 2010-06-08  Shujing Zhao  <pearly.zhao@oracle.com>
19341
19342         * fold-const.c (fold_comparison): Remove redundant parenthesis.
19343         * tree-inline.c (expand_call_inline): Pass translated return value of
19344         cgraph_inline_failed_string to diagnostic function.
19345
19346 2010-06-08  Andrew Pinski  <pinskia@gmail.com>
19347             Shujing Zhao  <pearly.zhao@oracle.com>
19348
19349         PR c/37724
19350         * c-typeck.c (convert_for_assignment): Call pedwarn_init if the
19351         implicit bad conversions is initialization.
19352         (error_init): Use gmsgid instead of msgid for argument name and change
19353         the call for error.
19354         (pedwarn_init): Use gmsgid instead of msgid for argument name and
19355         change the call for pedwarn.
19356         (warning_init): Use gmsgid instead of msgid for argument name and
19357         change the call for warning.
19358
19359 2010-06-07  Nathan Froyd  <froydnj@codesourcery.com>
19360
19361         * config/mips/mips-protos.h (mips_print_operand): Delete.
19362         (mips_print_operand_address): Delete.
19363         * config/mips/mips.h (mips_print_operand_punct): Delete.
19364         (PRINT_OPERAND): Delete.
19365         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
19366         (PRINT_OPERAND_ADDRESS): Delete.
19367         * config/mips/mips.c (mips_print_operand_punct): Make static.
19368         (mips_print_operand_address): Make static.
19369         (mips_print_operand): Make static.  Call
19370         mips_print_operand_punct_valid_p.
19371         (mips_print_operand_punct_valid_p): New function.
19372         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
19373         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
19374
19375 2010-06-07  Jan Hubicka  <jh@suse.cz>
19376
19377         PR middle-end/44454
19378         (df_lr_top_dump, df_lr_bottom_dump): Check that in/out bitmaps
19379         are allocated.
19380
19381 2010-06-07  Kaz Kojima  <kkojima@gcc.gnu.org>
19382
19383         * config/sh/sh.c (sh_build_builtin_va_list): Set tree type
19384         name of RECORD.
19385
19386 2010-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19387
19388         * doc/sourcebuild.texi (Effective-Target Keywords, Other
19389         attributes): Document gas.
19390
19391 2010-06-07  Uros Bizjak  <ubizjak@gmail.com>
19392
19393         * config/i386/i386.md (*add<mode>_1): Remove alternative 2.
19394         <TYPE_LEA>: Split instruction.
19395         <default>: Remove alternative 2 handling.
19396         (*addsi_1_zext) <TYPE_LEA>: Split instruction.
19397         (add lea splitter): Generate SImode lea for mode sizes <= SImode.
19398         (add_zext lea splitter): Use ix86_lea_for_add_ok in insn predicate.
19399
19400         (*movsi_1) <TYPE_LEA>: Use %a modifier to output operand 1.
19401         (ashift_zext lea splitter): Use DImode for multiplication.
19402
19403         * config/i386/i386.c (ix86_expand_epilogue): Do not use ix86_gen_add
19404         to generate addition.
19405
19406 2010-06-07  Joseph Myers  <joseph@codesourcery.com>
19407
19408         * common.opt (fira-verbose): Use Var.
19409         (fpcc-struct-return): Use Init instead of VarExists.
19410         * defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
19411         toplev.c.
19412         * flags.h (flag_signed_char, flag_short_enums,
19413         flag_pcc_struct_return, flag_ira_verbose,
19414         flag_detailed_statistics, flag_remove_unreachable_functions): Remove.
19415         * toplev.c (flag_detailed_statistics, flag_signed_char,
19416         flag_short_enums, flag_pcc_struct_return, flag_ira_verbose): Remove.
19417         (DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
19418         * toplev.h (flag_crossjumping, flag_if_conversion,
19419         flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
19420         flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
19421         flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
19422         flag_cprop_registers, time_report, flag_ira_loop_pressure,
19423         flag_ira_coalesce, flag_ira_move_spills,
19424         flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.
19425
19426 2010-06-07  Jan Hubicka  <jh@suse.cz>
19427
19428         * df-core.c (df_analyze_problem): Do verification after allocation.
19429
19430         * df-problems.c (df_lr_problem_data): Add lr_bitmaps.
19431         (df_lr_alloc): Initialize problem data; move bitmaps to
19432         lr_bitmaps obstack.
19433         (df_lr_finalize): Free problem data; do not bother to free bitmaps.
19434         (df_lr_verify_solution_start): Do not initialize problem data;
19435         allocate bitmaps in lr_bitmaps.
19436         (df_lr_verify_solution_end): Do not free problem data.
19437
19438 2010-06-07  Jan Hubicka  <jh@suse.cz>
19439
19440         * cgraph.c (cgraph_edge_cannot_lead_to_return): Also check
19441         if caller is noreturn.
19442         * ipa-reference.c (analyze_function): Use ipa_ref_cannot_lead_to_return
19443         * ipa-ref.h (ipa_ref_cannot_lead_to_return): New function.
19444         * ipa-ref.c (ipa_ref_cannot_lead_to_return): New function.
19445         * ipa-pure-const.c (check_decl): Add IPA parameter.
19446         (state_from_flags): New function.
19447         (better_state, worse_state): New functions.
19448         (check_call): When in IPA mode, do not care about callees.
19449         (check_load, check_store): Update.
19450         (check_ipa_load, check_ipa_store): New.
19451         (check_stmt): When in IPA mode, use IPA checkers.
19452         (analyze_function): Use state_from_flags.
19453         (propagate): Check indirect edges and references.
19454
19455 2010-06-07  Kazu Hirata  <kazu@codesourcery.com>
19456
19457         PR rtl-optimization/44404
19458         * auto-inc-dec.c (find_inc): Use reg_overlap_mentioned_p instead
19459         of count_occurrences to see if it's safe to modify mem_insn.
19460
19461 2010-06-07  Richard Guenther  <rguenther@suse.de>
19462
19463         * gimplify.c (gimplify_cleanup_point_expr): For empty body
19464         and EH-only cleanup drop the cleanup instead of inserting it
19465         unconditionally.
19466
19467 2010-06-07  Ira Rosen  <irar@il.ibm.com>
19468
19469         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update
19470         documentation.
19471         * targhooks.c (default_builtin_vectorization_cost): New function.
19472         * targhooks.h (default_builtin_vectorization_cost): Declare.
19473         * target.h (enum vect_cost_for_stmt): Define.
19474         (builtin_vectorization_cost): Change argument and comment.
19475         * tree-vectorizer.h: Remove cost model macros.
19476         * tree-vect-loop.c: Include target.h.
19477         (vect_get_cost): New function.
19478         (vect_estimate_min_profitable_iters): Replace cost model macros with
19479         calls to vect_get_cost.
19480         (vect_model_reduction_cost, vect_model_induction_cost): Likewise.
19481         * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Add
19482         default implementation.
19483         * tree-vect-stmts.c (cost_for_stmt): Replace cost model macros with
19484         calls to target hook builtin_vectorization_cost.
19485         (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
19486         Likewise.
19487         * Makefile.in (tree-vect-loop.o): Add dependency on TARGET_H.
19488         * config/spu/spu.c (spu_builtin_vectorization_cost): Replace with new
19489         implementation to return costs.
19490         * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
19491         * config/spu/spu.h: Remove vectorizer cost model macros.
19492         * config/i386/i386.h: Likewise.
19493         * tree-vect-slp.c (vect_build_slp_tree): Replace cost model macro with
19494         a call to target hook builtin_vectorization_cost.
19495
19496 2010-06-06  Sriraman Tallam  <tmsriram@google.com>
19497
19498         PR target/44319
19499         * config/i386/i386.c (override_options): Turn zee pass on for level 2
19500         and above and defer till target is known.
19501         (optimization_options): Turn on zee pass if TARGET_64BIT is set and
19502         turn off otherwise.
19503
19504 2010-05-25  Jan Hubicka  <jh@suse.cz>
19505
19506         * df-core.c (df_set_blocks): Use bitmap_head instead of bitmap.
19507         (df_compact_blocks): Likewise.
19508         * df.h (struct df): Turn hardware_regs_used,
19509         regular_block_artificial_uses, eh_block_artificial_uses,
19510         insns_to_delete, insns_to_rescan, insns_to_notes_rescan into
19511         bitmap_head.
19512         * df-problems.c (df_lr_local_compute, df_lr_confluence_0,
19513         df_byte_lr_alloc, df_simulate_fixup_sets): Update.
19514         * df-scan.c (df_scan_free_internal, df_scan_alloc, df_scan_start_dump,
19515         df_scan_blocks, df_insn_delete, df_insn_rescan,
19516         df_insn_rescan_debug_internal, df_insn_rescan_all,
19517         df_process_deferred_rescans, df_process_deferred_rescans,
19518         df_notes_rescan, df_get_call_refs, df_get_call_refs,
19519         regs_invalidated_by_call_regset, df_get_call_refs, df_bb_refs_collect,
19520         df_record_entry_block_defs, df_record_exit_block_uses,
19521         df_update_exit_block_uses, df_bb_verify, df_entry_block_bitmap_verify,
19522         df_scan_verify): Update.
19523
19524 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
19525
19526         PR c++/44188
19527         * c-common.c (is_typedef_decl): Move this definition ...
19528         * tree.c (is_typedef_decl): ... here.
19529         (typdef_variant_p): Move definition here from cp/tree.c.
19530         * c-common.h (is_typedef_decl): Move this declaration ...
19531         * tree.h (is_typedef_decl): ... here.
19532         (typedef_variant_p): Move declaration here from cp/cp-tree.h
19533         * dwarf2out.c (is_naming_typedef_decl): New function.
19534         (gen_tagged_type_die): Split out of ...
19535         (gen_type_die_with_usage): ... this function. When an anonymous
19536         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
19537         is emitted for the typedef.
19538         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
19539         anonymous tagged types.
19540
19541 2010-06-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19542
19543         PR c/20000
19544         * c-decl.c (grokdeclarator): Delete warning.
19545
19546 2010-06-06  Eric Botcazou  <ebotcazou@adacore.com>
19547
19548         * stor-layout.c (self_referential_size): Set UNKNOWN_LOCATION on the
19549         newly built CALL_EXPR.
19550         * tree-profile.c (tree_profiling): Don't profile functions produced
19551         for built-in stuff.
19552
19553 2010-06-06  Segher Boessenkool  <segher@kernel.crashing.org>
19554
19555         PR bootstrap/44427
19556         PR bootstrap/44428
19557         * genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros
19558         endianness-independent.
19559
19560 2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
19561
19562         * c-common.c: Move to c-family/.
19563         * c-common.def: Likewise.
19564         * c-common.h: Likewise.
19565         * c-cppbuiltin.c: Likewise.
19566         * c-dump.c: Likewise.
19567         * c-format.c: Likewise.
19568         * c-format.h : Likewise.
19569         * c-gimplify.c: Likewise.
19570         * c-lex.c: Likewise.
19571         * c-omp.c: Likewise.
19572         * c.opt: Likewise.
19573         * c-opts.c: Likewise.
19574         * c-pch.c: Likewise.
19575         * c-ppoutput.c: Likewise.
19576         * c-pragma.c: Likewise.
19577         * c-pragma.h: Likewise.
19578         * c-pretty-print.c: Likewise.
19579         * c-pretty-print.h: Likewise.
19580         * c-semantics.c: Likewise.
19581         * stub-objc.c: Likewise.
19582
19583         * gengtype.c (get_file_langdir): Special-case files in c-family/.
19584         (get_output_file_with_visibility): Fix name for c-common.h.
19585         * c-config-lang.in: Update paths in gtfiles for files in c-family/.
19586
19587         * c-tree.h: Update include path for moved files.
19588         * c-lang.c: Likewise.
19589         * c-lang.h: Likewise.
19590         * c-parser.c: Likewise.
19591         * c-convert.c: Likewise.
19592         * c-decl.c: Likewise.
19593         * c-objc-common.c: Likewise.
19594         * configure.ac: Make sure c-family/ exists in the build directory.
19595         * configure: Regenerate.
19596         * Makefile.in: Update paths for moved files.  Regroup files per
19597         location and update dependencies.  Move generated_files down after
19598         ALL_GTFILES_H.
19599
19600         * config/spu/spu-c.c: Update paths for moved files.
19601         * config/mep/mep-pragma.c: Likewise.
19602         * config/darwin-c.c: Likewise.
19603         * config/i386/msformat-c.c: Likewise.
19604         * config/i386/i386-c.c: Likewise.
19605         * config/avr/avr-c.c: Likewise.
19606         * config/sol2-c.c: Likewise.
19607         * config/ia64/ia64-c.c: Likewise.
19608         * config/rs6000/rs6000-c.c: Likewise.
19609         * config/arm/arm.c: Likewise.
19610         * config/arm/arm-c.c: Likewise.
19611         * config/h8300/h8300.c: Likewise.
19612         * config/v850/v850-c.c: Likewise.
19613
19614         * config/t-darwin: Fix dependencies for moved files.
19615         * config/t-sol2: Fix dependencies for moved files.
19616         * config/mep/t-mep: Fix dependencies for moved files.
19617         * config/ia64/t-ia64: Fix dependencies for moved files.
19618         * config/rs6000/t-rs6000: Fix dependencies for moved files.
19619         * config/v850/t-v850: Fix dependencies for moved files.
19620         * config/v850/t-v850e: Fix dependencies for moved files.
19621
19622         * config/m32c/m32c-pragma.c
19623
19624         * po/exgettext: Look in c-family/ also.
19625
19626 2010-06-05  Eric Botcazou  <ebotcazou@adacore.com>
19627
19628         * tree-ssa-dce.c (mark_last_stmt_necessary): New function.
19629         (mark_control_dependent_edges_necessary): Call it instead of marking
19630         the last statement manually.
19631         (propagate_necessity): Likewise.
19632
19633 2010-06-05  Jan Hubicka  <jh@suse.cz>
19634
19635         * basic-block.h (compute_dominance_frontiers): Updated.
19636         (compute_idf): Likewise.
19637
19638         * tree-into-ssa.c (insert_phi_nodes): Use bitmap heads
19639         for dominance frontiers.
19640         (rewrite_into_ssa): Update for bitmap heads in dominance frontiers.
19641         (insert_updated_phi_nodes_for): Likewise.
19642         (update_ssa): Likewise.
19643         * cfganal.c (compute_dominance_frontiers_1): Likewise.
19644         (compute_dominance_frontiers): Likewise.
19645         (compute_idf): Likewise.
19646         * df-problems.c (df_md_local_compute): Likewise.
19647
19648 2010-06-05  Anatoly Sokolov  <aesok@post.ru>
19649
19650         * target.h (struct gcc_target): Add memory_move_cost field.
19651         * target-def.h (TARGET_MEMORY_MOVE_COST): New.
19652         (TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
19653         * targhooks.c (default_memory_move_cost): New function.
19654         * targhooks.h (default_memory_move_cost): Declare function.
19655         * reload.h (memory_move_cost): Declare.
19656         (memory_move_secondary_cost): Change type of 'in' argument to bool.
19657         * reginfo.c (memory_move_cost): New function.
19658         (memory_move_secondary_cost): Change type of 'in' argument to bool.
19659         * ira.h (ira_memory_move_cost): Update comment.
19660         * ira.c (ira_memory_move_cost): Update comment.
19661         (setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
19662         with memory_move_cost.
19663         * postreload.c (reload_cse_simplify_set): (Ditto.).
19664         * reload1.c (choose_reload_regs): (Ditto.).
19665         * doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
19666         (MEMORY_MOVE_COST):  Revise documentation.
19667
19668         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
19669         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
19670         * config/i386/i386.h (ix86_memory_move_cost): Make static. Change
19671         type of 'in' argument to bool.
19672         (TARGET_MEMORY_MOVE_COST): Define.
19673
19674 2010-06-05  Jan Hubicka  <jh@suse.cz>
19675
19676         * ipa-pure-const.c (propagate): Fix typo in handling of functions
19677         that cannot return.  Be more careful when merging the results with
19678         previously known ones.
19679
19680 2010-06-05  Matthias Klose  <doko@ubuntu.com>
19681
19682         * gcc.c (cc1_options, cpp_unique_options): Use find-plugindir spec
19683         function to add the -iplugindir option.
19684         (find_plugindir_spec_function): Add new declaration and function.
19685         (static_spec_func): Use it for "find-plugindir".
19686
19687 2010-06-05  Jakub Jelinek  <jakub@redhat.com>
19688
19689         PR c++/44361
19690         * c-typeck.c (mark_exp_read): Handle C_MAYBE_CONST_EXPR.
19691         * c-parser.c (c_parser_postfix_expression): Call mark_exp_read on
19692         statement expression.
19693
19694 2010-06-05  Jan Hubicka  <jh@suse.cz>
19695
19696         * df-problems.c (seen_in_block, seen_in_insn): Convert to bitmap_head.
19697         (df_rd_problem_data): Convert sparse_invalidated_by_call,
19698         dense_invalidated_by_call to bitmap head.
19699         (df_rd_alloc, df_rd_bb_local_compute_process_def,
19700         df_rd_bb_local_compute, df_rd_confluence_n, df_rd_transfer_function,
19701         df_rd_start_dump, df_lr_verify_transfer_functions,
19702         df_live_verify_transfer_functions, df_chain_create_bb,
19703         df_chain_add_problem, df_byte_lr_check_regs, df_byte_lr_alloc,
19704         df_byte_lr_confluence_0, df_byte_lr_confluence_n, df_note_compute,
19705         df_simulate_one_insn_forwards, df_md_alloc,
19706         df_md_bb_local_compute_process_def,
19707         df_md_bb_local_compute_process_def, df_md_local_compute,
19708         df_md_transfer_function df_md_free): Update.
19709
19710 2010-06-05  Joseph Myers  <joseph@codesourcery.com>
19711
19712         PR c/44322
19713         * c-typeck.c (build_unary_op): Merge qualifiers into pointer
19714         target type for ADDR_EXPR; require no changes to qualifiers except
19715         for function types.
19716         * c-tree.h (c_build_type_variant): Remove.
19717
19718 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
19719
19720         * genautomata.c (get_excl_set): Do work per element, not per char.
19721         (check_presence_pattern_sets): Similar.
19722         (check_absence_pattern_sets): Similar.
19723
19724 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
19725
19726         * genautomata.c (curr_state_pass_num): Delete.
19727         (min_issue_delay_pass_states): Delete.
19728         (min_issue_delay): Delete.
19729         (initiate_min_issue_delay_pass_states): Delete.
19730         (output_min_issue_delay_table): Compute min_issue_delay_vect
19731         using a breadth-first search variant.
19732         (output_tables): Don't call initiate_min_issue_delay_pass_states.
19733
19734 2010-06-04  H.J. Lu  <hongjiu.lu@intel.com>
19735
19736         PR boostrap/44421
19737         * df-problems.c (df_lr_bb_local_compute): Updated for embedded bitmaps.
19738         (df_byte_lr_bb_local_compute): Likewise.
19739
19740 2010-06-03  Jason Merrill  <jason@redhat.com>
19741
19742         Implement noexcept operator (5.3.7)
19743         * c-common.c (c_common_reswords): Add noexcept.
19744         * c-common.h (enum rid): Add RID_NOEXCEPT.
19745
19746 2010-06-04  Joseph Myers  <joseph@codesourcery.com>
19747
19748         * config/darwin-driver.c (darwin_default_min_version): Use
19749         GCC-specific formats in diagnostics.
19750         * cppspec.c (lang_specific_driver): Use GCC-specific formats in
19751         diagnostics.
19752         * gcc.c (translate_options, read_specs, add_sysrooted_prefix,
19753         execute, process_command, end_going_arg, do_self_spec, do_spec_1,
19754         eval_spec_function, handle_braces, process_brace_body, main,
19755         perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
19756         getenv_spec_function, compare_version_strings,
19757         version_compare_spec_function): Use GCC-specific formats in
19758         diagnostics.
19759
19760 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
19761
19762         * config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
19763         that operand 0 and operand 1 are equal.
19764         (*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
19765         (*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
19766         and operand 1 are equal.
19767         <default>: Ditto.  Remove ??? comment.
19768         (*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
19769         and operand 1 are equal.
19770         <default>: Ditto.  Remove ??? comment.
19771         (*adddi_4) <default>: Remove assert that operand 0 and operand 1
19772         are equal.
19773         (*add<mode>_4) <default>: Ditto.
19774         (*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
19775
19776 2010-06-04  Nathan Froyd  <froydnj@codesourcery.com>
19777
19778         * config/i386/i386-protos.h (ix86_print_operand): Declare.
19779         * config/i386/i386.c (ix86_print_operand): Make non-static.
19780         * config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
19781         * output.h (output_operand): Declare.
19782         * final.c (output_operand): Make non-static.
19783
19784 2010-06-04  Alexandre Oliva  <aoliva@redhat.com>
19785
19786         PR rtl-optimization/44013
19787         * sched-deps.c (add_dependence_list_and_free): Don't free lists
19788         when processing debug insns.
19789
19790         PR debug/41371
19791         * var-tracking.c (find_loc_in_1pdv): Mark initial value before
19792         recursing.  Check that recursion is bounded.  Rename inner var
19793         to avoid hiding incoming argument.
19794
19795 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
19796
19797         * config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
19798         operands[2] == 255.
19799         (*addqi_3): Ditto.
19800         (*addqi_4): Ditto.
19801         (*addqi_5): Ditto.
19802         (*addqi_ext_1_rex64): Ditto.
19803         (*addqi_ext_1): Ditto.
19804
19805         (*addqi_4): Check for incdec_operand in QImode.
19806
19807         (*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
19808         using SWI mode iterator.
19809         (*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
19810         (*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
19811         mode iterator.
19812         (*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
19813         using SWI mode iterator.
19814
19815 2010-06-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19816
19817         PR c/25880
19818         * c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
19819         * c-format.c (gcc_diag_flag_specs): Add hash.
19820         (gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
19821         (gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
19822         * c-pretty-print.c (pp_c_cv_qualifier): Rename as
19823         pp_c_cv_qualifiers. Handle qualifiers spelling here.
19824         (pp_c_type_qualifier_list): Call the function above.
19825         * c-pretty-print.h (pp_c_cv_qualifiers): Declare.
19826         * c-typeck.c (handle_warn_cast_qual): Print qualifiers.
19827         (WARN_FOR_QUALIFIERS): New macro.
19828         (convert_for_assignment): Use it.
19829
19830 2010-06-04  Kai Tietz  <kai.tietz@onevision.com>
19831
19832         * config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'.
19833
19834 2010-06-04  Jan Hubicka  <jh@suse.cz>
19835
19836         * df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
19837         df_byte_lr_bb_info): Embedd bitmap_head into the structure.
19838         (DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
19839         DF_BYTE_LR_OUT): Update for embedded bitmaps.
19840         * fwprop.c (single_def_use_enter_block): Likewise.
19841         * ddg.c (create_ddg_dep_from_intra_loop_link,
19842         add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
19843         * loop-iv.c (latch_dominating_def): Likewise.
19844         * df-problems.c (df_rd_free_bb_info, df_rd_alloc,
19845         df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
19846         df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
19847         df_rd_transfer_function, df_rd_top_dump,
19848         df_rd_bottom_dump): Update.
19849         (df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
19850         df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
19851         df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
19852         df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
19853         df_lr_verify_solution_start, df_lr_verify_solution_end,
19854         df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
19855         df_live_free_bb_info, df_live_alloc, df_live_reset,
19856         df_live_bb_local_compute, df_live_init, df_live_transfer_function,
19857         df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
19858         df_live_verify_solution_start, df_live_verify_solution_end,
19859         df_live_verify_transfer_functions, df_chain_create_bb,
19860         df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
19861         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
19862         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
19863         df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
19864         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
19865         df_byte_lr_transfer_function, df_byte_lr_top_dump,
19866         df_byte_lr_bottom_dump, df_create_unused_note,
19867         df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
19868         df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
19869         df_md_transfer_function, df_md_init, df_md_confluence_0,
19870         df_md_confluence_n,
19871         df_md_top_dump, df_md_bottom_dump): Update.
19872         (struct df_lr_problem_data): Embedd bitmap headers.
19873
19874 2010-06-04  Jan Hubicka  <jh@suse.cz>
19875
19876         * dce.c (dce_process_block): Do not re-scan already marked
19877         instructions.
19878
19879 2010-06-04  Bernd Schmidt  <bernds@codesourcery.com>
19880
19881         PR rtl-optimization/39871
19882         PR rtl-optimization/40615
19883         PR rtl-optimization/42500
19884         PR rtl-optimization/42502
19885         * ira.c (init_reg_equiv_memory_loc: New function.
19886         (ira): Call it twice.
19887         * reload.h (calculate_elim_costs_all_insns): Declare.
19888         * ira-costs.c: Include "reload.h".
19889         (regno_equiv_gains): New static variable.
19890         (init_costs): Allocate it.
19891         (finish_costs): Free it.
19892         (ira_costs): Call calculate_elim_costs_all_insns.
19893         (find_costs_and_classes): Take estimated elimination costs
19894         into account.
19895         (ira_adjust_equiv_reg_cost): New function.
19896         * ira.h (ira_adjust_equiv_reg_cost): Declare it.
19897         * reload1.c (init_eliminable_invariants, free_reg_equiv,
19898         elimination_costs_in_insn, note_reg_elim_costly): New static functions.
19899         (elim_bb): New static variable.
19900         (reload): Move code out of here into init_eliminable_invariants and
19901         free_reg_equiv.  Call them.
19902         (calculate_elim_costs_all_insns): New function.
19903         (eliminate_regs_1): Declare.  Add extra arg FOR_COSTS;
19904         all callers changed.  If FOR_COSTS is true, don't call alter_reg,
19905         but call note_reg_elim_costly if we turned a valid memory address
19906         into an invalid one.
19907         * Makefile.in (ira-costs.o): Depend on reload.h.
19908
19909 2010-06-04  Julian Brown  <julian@codesourcery.com>
19910
19911         * config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
19912         for pool ranges.
19913
19914 2010-06-04  Richard Guenther  <rguenther@suse.de>
19915
19916         PR lto/41584
19917         * cgraph.h (struct varpool_node): Add lto_file_data field.
19918         * lto-cgraph.c (input_varpool_node): Initialize it.
19919
19920 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
19921
19922         * config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
19923         * config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
19924         predicate in "type" attribute calculation.
19925         (*addsi_1_zext): Ditto.
19926         (*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
19927         (*addsi_2_zext): Ditto.
19928         (*add<mode>_3): Ditto.
19929         (*addsi_3_zext): Ditto.
19930         (*add<mode>_5): Ditto.
19931
19932 2010-06-03  Jan Hubicka  <jh@suse.cz>
19933
19934         * tree-into-ssa.c (mark_block_for_update): Avoid redundant call
19935         of bitmap_bit_p.
19936         * cfganal.c (compute_dominance_frontiers_1): Likewise.
19937
19938 2010-06-03  Jan Hubicka  <jh@suse.cz>
19939
19940         * df-problems.c (df_create_unused_note, df_note_bb_compute):
19941         micro-optimize the checks when to add new note.
19942
19943 2010-06-03  Nathan Froyd  <froydnj@codesourcery.com>
19944
19945         * final.c (output_asm_insn): Call
19946         targetm.asm_out.print_operand_punct_valid_p.  Update comments.
19947         (output_operand): Call targetm.asm_out.print_operand.  Update comments.
19948         (output_address): Call targetm.asm_out.print_operand_address.
19949         Update comments.
19950         * target.h (struct gcc_target): Add print_operand,
19951         print_operand_address, and print_operand_punct_valid_p fields.
19952         * targhooks.h (default_print_operand): Declare.
19953         (default_print_operand_address): Declare.
19954         (default_print_operand_punct_valid_p): Declare.
19955         * targhooks.c (default_print_operand): Define.
19956         (default_print_operand_address): Define.
19957         (default_print_operand_punct_valid_p): Define.
19958         * target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
19959         (TARGET_PRINT_OPERAND_ADDRESS): Likewise.
19960         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
19961         (TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
19962         TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
19963         * vmsdbgout.c (addr_const_to_string): Update comment.
19964         * config/i386/i386.c (print_operand): Rename to...
19965         (ix86_print_operand): ...this.  Make static.
19966         (print_operand_address): Rename to...
19967         (ix86_print_operand_address): ...this.  Make static.  Call
19968         ix86_print_operand instead of PRINT_OPERAND.
19969         (ix86_print_operand_punct_valid_p): New function.
19970         (TARGET_PRINT_OPERAND): Define.
19971         (TARGET_PRINT_OPERAND_ADDRESS): Define.
19972         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
19973         * config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
19974         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
19975         (PRINT_OPERAND): Delete.
19976         (PRINT_OPERAND_ADDRESS): Delete.
19977         * config/i386/i386-protos.h (print_operand): Delete prototype.
19978         (print_operand_address): Delete prototype.
19979
19980 2010-06-03  Richard Guenther  <rguenther@suse.de>
19981
19982         PR tree-optimization/44403
19983         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
19984         Preserve pointer qualifiers.
19985         (vect_create_data_ref_ptr): Likewise.
19986
19987 2010-06-03  H.J. Lu  <hongjiu.lu@intel.com>
19988
19989         PR c++/44294
19990         * defaults.h (MAX_FIXED_MODE_SIZE): New.
19991
19992         * stor-layout.c (MAX_FIXED_MODE_SIZE): Removed.
19993
19994 2010-06-03  Jakub Jelinek  <jakub@redhat.com>
19995
19996         PR debug/44375
19997         * tree-cfg.c (gimple_can_merge_blocks_p): For -O0
19998         return false if merging the bbs would lead to goto_locus
19999         location being lost from the IL.
20000
20001 2010-06-03  Jan Hubicka  <jh@suse.cz>
20002             Jakub Jelinek  <jakub@redhat.com>
20003
20004         * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
20005         set->regs[i] is NULL or has just one entry.
20006
20007 2010-06-03  Jan Hubicka  <jh@suse.cz>
20008
20009         * lto-cgraph.c (lto_varpool_encoder_size): Remove.
20010         * lto-streamer.h (lto_varpool_encoder_size): New inline function.
20011
20012 2010-06-03  Paul Brook  <paul@codesourcery.com>
20013
20014         * config/arm/arm.c (FL_TUNE): Define.
20015         (arm_default_cpu, arm_cpu_select): Remove.
20016         (all_cores): Populate core field.
20017         (arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
20018         (arm_find_cpu): New function.
20019         (arm_handle_option): Lookup cpu/architecture names.
20020         (arm_override_options): Cleanup mcpu/march/mtune handling.
20021         (arm_file_start): Ditto.
20022
20023 2010-06-03  Alan Modra  <amodra@gmail.com>
20024
20025         PR target/44169
20026         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
20027         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
20028         rtx to gen_load_toc_v4_PIC_1b.  Tidy.
20029         (rs6000_emit_load_toc_table): Likewise.
20030
20031 2010-06-02  Jan Hubicka  <jh@suse.cz>
20032
20033         * passes.c (init_optimization_passes): Put ipa reference
20034         after ipa pure-const.
20035
20036 2010-06-02  Jan Hubicka  <jh@suse.cz>
20037
20038         * ipa-reference.c (ipa_reference_local_vars_info_d): Remove
20039         calls_read_all and calls_write_all.
20040         (get_reference_optimization_summary): Fix formatting.
20041         (is_proper_for_analysis): Check that decl is not readonly.
20042         (propagate_bits): Check CONST/PURE/noreturn flags.
20043         (ipa_init): Move all_module_statics to optimization_summary_obstack.
20044         (analyze_function): Ignore indirect edges.
20045         (copy_global_bitmap): For all module statics, do nothing.
20046         (generate_summary): Do not print calls_read_all/calls_write_all.
20047         (read_write_all_from_decl): Take node as argument; check
20048         cgraph_node_cannot_return.
20049         (propagate): Reorganize read_all/write_all computation;
20050         check indirect edges; check ecf flags; use all_module_statics
20051         in the results; do not free all_module_statics.
20052         (stream_out_bitmap): Handle all_module_statics.
20053         (ipa_reference_write_optimization_summary): Likewise; use
20054         varpool/cgraph encoders to get boundaries.
20055         (ipa_reference_read_optimization_summary): Read in all_module_statics;
20056         use it when possible.
20057
20058 2010-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
20059
20060         PR target/44218
20061         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
20062         -mswdiv option.  Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.
20063
20064         * doc/extend.texi (powerpc builtins): Document vec_recip,
20065         vec_rsqrt, vec_rsqrte altivec/vsx builtins.
20066
20067         * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
20068         (rs6000_emit_swrsqrt): Ditto.
20069         (rs6000_emit_swdivsf): Delete.
20070         (rs6000_emit_swdivdf): Ditto.
20071         (rs6000_emit_swrsqrtsf): Ditto.
20072
20073         * config/rs6000/rs6000.c (rs6000_recip_bits): New global to
20074         describe the reciprocal estimate support for each type.
20075         (recip_options): Map -mrecip=<opt> into option bits.
20076         (gen_2arg_fn_t): New typedef for binary rtx gen function.
20077         (rs6000_debug_reg_global): If -mdebug=reg, print the state of the
20078         reciprocal estimate instructions.
20079         (rs6000_init_hard_regno_mode_ok): Key ws constraint off of the
20080         debug -mvsx-scalar-memory switch instead of -mvsx-scalar-double.
20081         Set up rs6000_recip_bits based on the -mrecip* options.  Print the
20082         cost information if -mdebug=cost or -mdebug=reg.
20083         (rs6000_override_options): Set -mrecip-precision for power6, and
20084         power7 machines.  If -mvsx or -mdfp, enable various options that
20085         came in previous instruction set ISAs, unless the option was
20086         explicitly disabled by the command line option.  Parse
20087         -mrecip=<opt> options.
20088         (rs6000_builtin_vectorized_function): Add support for vectorizing
20089         the reciprocal estimate builtins and expansions.
20090         (rs6000_handle_option): Add -mrecip, -mrecip=<opt> support.
20091         (bdesc_2arg): Add reciprocal estimate builtins.
20092         (bdesc_1arg): Add reciprocal square root estimate builtins.
20093         (rs6000_expand_builtin): Rewrite to use a switch statement,
20094         instead of multiple if/then/elses.  Add reciprocal estimate builtins.
20095         (rs6000_init_builtins): Create declarations for reciprocal
20096         estimate builtins.
20097         (rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
20098         sized, prefer traditional floating point registers, if integer
20099         vector types, prefer altivec registers.  Don't actually look at
20100         the memory address any more.
20101         (rs6000_builtin_reciprocal): Add new builtin reciprocal estimate
20102         builtins.
20103         (rs6000_load_constant_and_splat): New helper function to load up
20104         the constant for reciprocal estimate instructions.
20105         (rs6000_emit_madd): New helper function for generating
20106         multiply/add type instructions, based on the current switches.
20107         (rs6000_emit_msub): Ditto.
20108         (rs6000_emit_mnsub): Ditto.
20109         (rs6000_emit_swdiv_high_precision): Replace rs6000_emit_swdivsf to
20110         replace a divide with a reciprocal estimate and fixup, adding
20111         support for machines with high precision and vectors.
20112         (rs6000_emit_swdiv_low_precision): Rewrite rs6000_emit_swdivdf for
20113         low precision machines.
20114         (rs6000_emit_swdiv): New common function to be called to replace a
20115         division with reciprocal estimate and fixup.
20116         (rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf.  Add support
20117         for double and vector types.  Add support for high precision machines.
20118
20119         * config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
20120         the reciprocal estimate instructions can be generated.
20121         (TARGET_FRE): Ditto.
20122         (TARGET_FRSQRTES): Ditto.
20123         (TARGET_FRSQRTE): Ditto.
20124         (RS6000_RECIP_*): New macros for reciprocal estimate support.
20125
20126         * config/rs6000/vector.md (rsqrte<mode>2): New insn for reciprocal
20127         square root estimate on vectors.
20128         (re<mode>2): New insn for reciprocal division estimate on vectors.
20129
20130         * config/rs6000/rs6000-buitlins.def (ALTIVEC_BUILTIN_VRSQRTFP):
20131         New builtin.
20132         (ALTIVEC_BUILTIN_VRECIPFP): Ditto.
20133         (ALTIVEC_BUITLIN_VEC_RE): Ditto.
20134         (ALTIVEC_BUILTIN_VEC_RSQRT): Ditto.
20135         (VSX_BUILTIN_RSQRT_V4SF): Ditto.
20136         (VSX_BUITLIN_RSQRT_V2DF): Ditto.
20137         (RS6000_BUILTIN_RSQRT): Ditto.
20138         (ALTIVEC_BUILTIN_VEC_RSQRTE): Denote that the builtin is a
20139         floating point builtin.
20140
20141         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
20142         macros __RECIP__, __RECIPF__, __RSQRTE__, __RSQRTEF__,
20143         __RECIP_PRECISION__ based on the command line switches.
20144         (altivec_overloaded_builtins): Add reciprocal estimate builtins.
20145
20146         * config/rs6000/rs6000.opt (-mrecip): Document add support for
20147         replacing division instructions with reciprocal estimate and fixup.
20148         (-mrecip=<opt>): New option.
20149         (-mrecip-precision): Ditto.
20150
20151         * config/rs6000/vsx.md (UNSPEC_VSX_RSQRTE): Delete.
20152         (vsx_rsqrte<mode>2): Use UNSPEC_RSQRT not UNSPEC_VSX_RSQRTE.
20153         (vsx_copysignsf3): If -mvsx, use double precision cpsign on single
20154         precision scalar.
20155
20156         * config/rs6000/altivec.md (UNSPEC_RSQRTEFP): Delete.
20157         (UNSPEC_VREFP): Ditto.
20158         (altivec_vnmsubfp*): Make altivec nmsub mirror the scalar and VSX
20159         conterparts with regard to support of -mno-fused-madd and -ffast-math.
20160         (altivec_vrsqrtefp): Use common UNSPEC to allow scalar/vector
20161         reciprocal estimate instructions to be generated.
20162         (altivec_vrefp): Ditto.
20163
20164         * config/rs6000/rs6000.md (RECIPF): New iterator for reciprocal
20165         estimate support.
20166         (rreg): New mode attribute for reciprocal estimate support.
20167         (recip<mode>3): New insn for division using reciprocal estimate
20168         and fixup builtins.
20169         (divide define_split): New define_split to convert floating point
20170         division to use reciprocal estimate if the user used the
20171         appropriate options and the split is run when we can add new
20172         pseudo registers for the fixup.
20173         (rsqrt<mode>2): New insn for reciprocal square root support.
20174         (recipsf3): Move into recip<mode>3.
20175         (recipdf3): Ditto.
20176         (fres): Use TARGET_FRES.
20177         (rsqrtsf2): Move into rsqrt<mode>2.
20178         (rsqrtsf_internal1): Use TARGET_FRSQRTSES.
20179         (copysignsf3): Add support for VSX.
20180         (fred): Use TARGET_FRE.
20181         (fred_fpr): Ditto.
20182         (rsqrtdf_internal1): New function for frsqrte instruciton.
20183
20184         * config/rs6000/altivec.h (vec_recipdiv): Define new vector builtin.
20185         (vec_rsqrt): Ditto.
20186
20187 2010-06-03  Richard Guenther  <rguenther@suse.de>
20188
20189         PR middle-end/44291
20190         * optabs.c (init_one_libfunc): Use IDENTIFIER_HASH_VALUE.
20191         (set_user_assembler_libfunc): Likewise.
20192
20193 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
20194
20195         * mkconfig.sh: Include insn-flags.h and insn-constants.h before
20196         defaults.h.
20197         * except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS
20198         to defaults.h
20199         * expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO,
20200         DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING,
20201         FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE,
20202         STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN,
20203         STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP,
20204         STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT,
20205         STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE,
20206         STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h.
20207         * defaults.h: Updated for above mentioned changes.
20208
20209 2010-06-02  Kai Tietz  <kai.tietz@onevision.com>
20210
20211         * c-common.c: Remove header include of tm_p.h.
20212         * Makefile.in (c-common.o): Remove TM_P_H dependency.
20213
20214 2010-06-02  Jakub Jelinek  <jakub@redhat.com>
20215
20216         * tree.h (struct tree_decl_map): New type.
20217         (tree_decl_map_eq, tree_decl_map_marked_p): Define.
20218         (tree_decl_map_hash): New prototype.
20219         (debug_expr_for_decl, value_expr_for_decl): Change into
20220         tree_decl_map hashtab from tree_map.
20221         (init_ttree): Adjust initialization.
20222         (tree_decl_map_hash): New function.
20223         (decl_debug_expr_lookup, decl_debug_expr_insert,
20224         decl_value_expr_lookup, decl_value_expr_insert): Adjust.
20225
20226 2010-06-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20227
20228         * configure.ac (gcc_cv_ld_sol2_emulation): Test for GNU ld *_sol2
20229         linker emulations.
20230         * configure: Regenerate.
20231         * config.in: Regenerate.
20232
20233         * config/i386/sol2-10.h [TARGET_GNU_LD] (I386_EMULATION): Define.
20234         (X86_64_EMULATION): Define.
20235         (TARGET_LD_EMULATION): Use them.
20236
20237         * config/sparc/sol2-gld-bi.h (SPARC32_EMULATION): Define.
20238         (SPARC64_EMULATION): Define.
20239         (LINK_ARCH_SPEC): Use them.
20240
20241 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
20242
20243         * graphite-clast-to-gimple.c (gcc_type_for_interval): Use
20244         smallest_mode_for_size for computing the precision types of new
20245         graphite IVs.  Do not call lang_hooks.types.type_for_size.
20246
20247 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
20248
20249         * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG
20250         information.
20251         (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information.
20252
20253 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
20254
20255         PR middle-end/44363
20256         * tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable,
20257         return false instead.
20258
20259 2010-06-02  Jan Hubicka  <jh@suse.cz>
20260
20261         PR middle-end/44295
20262         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Do not
20263         create new cgraph node to check callee.
20264
20265 2010-06-02  Richard Guenther  <rguenther@suse.de>
20266
20267         * lto-streamer-in.c (input_gimple_stmt): Fix typo.
20268
20269 2010-06-02  Richard Guenther  <rguenther@suse.de>
20270
20271         * lto-wrapper.c (lto_wrapper_exit): Rename to ...
20272         (lto_wrapper_cleanup): ... this.  Do not exit.
20273         (fatal): Adjust.  Exit here.
20274         (fatal_perror): Likewise.
20275         (fatal_signal): New function.
20276         (main): Set up signal handlers to cleanup temporary files.
20277         * Makefile.in (lto-wrapper.o): Adjust dependencies.
20278
20279 2010-06-02  Richard Guenther  <rguenther@suse.de>
20280
20281         PR tree-optimization/44377
20282         * tree-ssa-structalias.c (find_func_aliases): Fix typo.
20283
20284 2010-06-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
20285
20286         * config/s390/2097.md (z10_fhex): Remove insn reservation.
20287         * config/s390/s390.md (UNSPEC_COPYSIGN): Remove unused constant.
20288         (*mov<mode>_64 TD_TF, *mov<mode>_31 TD_TF, *mov<mode>_64dfp DD_DF,
20289         *mov<mode>_64 DD_DF, *mov<mode>_31, mov<mode>): Remove load zero
20290         instruction.
20291         * config/s390/s390.c: Don't accept fp zeros as valid constants anymore.
20292
20293 2010-06-02  Jan Hubicka  <jh@suse.cz>
20294
20295         * bitmap.c (bitmap_descriptor): Add search_iter.
20296         (bitmap_find_bit): Increment it.
20297         (print_statistics): Print it.
20298
20299 2010-06-02  Nathan Froyd  <froydnj@codesourcery.com>
20300
20301         * tree-vect-slp.c (vect_create_mask_and_perm): Use gimple_build_call
20302         instead of gimple_build_call_vec.  Delete unnecessary local variable.
20303
20304 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
20305
20306         * gimplify.c (gimplify_body): Revert "Do not initialize RTL profiling"
20307         change from yesterday.
20308
20309 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
20310
20311         * c-ada-spec.c: Clean up redundant includes.
20312
20313 2010-06-01  Steven Bosscher  <steven@gcc.gnu.org>
20314
20315         * gimplify.c: Do not include except.h and optabs.h.
20316         (gimplify_body): Do not initialize RTL profiling.
20317         * gimple-low.c: Do not include rtl.h, diagnostic.h, langhooks.h,
20318         langhooks-def.h, timevar.h, except.h, hashtab.h, and expr.h.
20319         * gimple-fold.c: Do not include rtl.h, tm_p.h, ggc.h, basic-block.h,
20320         output.h, expr.h, diagnostic.h, timevar.h, value-prof.h, and
20321         langhooks.h.
20322
20323         * tree-pretty-print.h: Include pretty-print.h.
20324         * gimple-pretty-print.h: Include pretty-print.h.
20325
20326         * tree-pretty-print.c: Do not include diagnostic.h.
20327         * tree-vrp.c: Likewise.
20328         * tree-tailcall.c: Likewise
20329         * tree-scalar-evolution.c: Likewise
20330         * tree-ssa-dse.c: Likewise
20331         * tree-chrec.c: Likewise
20332         * tree-ssa-sccvn.c: Likewise
20333         * tree-ssa-copyrename.c: Likewise
20334         * tree-nomudflap.c: Likewise
20335         * tree-call-cdce.c: Likewise
20336         * tree-stdarg.c: Likewise
20337         * tree-ssa-math-opts.c: Likewise
20338         * tree-nrv.c: Likewise
20339         * tree-ssa-sink.c: Likewise
20340         * tree-browser.c: Likewise
20341         * tree-ssa-loop-ivcanon.c: Likewise
20342         * tree-ssa-loop.c: Likewise
20343         * tree-parloops.c: Likewise
20344         * tree-ssa-address.c: Likewise
20345         * tree-ssa-ifcombine.c: Likewise
20346         * tree-if-conv.c: Likewise
20347         * tree-data-ref.c: Likewise
20348         * tree-affine.c: Likewise
20349         * tree-ssa-phiopt.c: Likewise
20350         * tree-ssa-coalesce.c: Likewise
20351         * tree-ssa-pre.c: Likewise
20352         * tree-ssa-live.c: Likewise
20353         * tree-predcom.c: Likewise
20354         * tree-ssa-forwprop.c: Likewise
20355         * tree-ssa-dce.c: Likewise
20356         * tree-ssa-ter.c: Likewise
20357         * tree-ssa-loop-prefetch.c: Likewise
20358         * tree-optimize.c: Likewise
20359         * tree-ssa-phiprop.c: Likewise
20360         * tree-object-size.c: Likewise
20361         * tree-outof-ssa.c: Likewise
20362         * tree-ssa-structalias.c: Likewise
20363         * tree-switch-conversion.c: Likewise
20364         * tree-ssa-reassoc.c: Likewise
20365         * tree-ssa-operands.c: Likewise
20366         * tree-vectorizer.c: Likewise
20367         * tree-vect-data-refs.c: Likewise
20368         * tree-vect-generic.c: Likewise
20369         * tree-vect-stmts.c: Likewise
20370         * tree-vect-patterns.c: Likewise
20371         * tree-vect-slp.c: Likewise
20372         * tree-vect-loop.c: Likewise
20373         * tree-ssa-loop-ivopts.c: Likewise
20374         * tree-ssa-loop-im.c: Likewise
20375         * tree-ssa-loop-niter.c: Likewise
20376         * tree-ssa-loop-unswitch.c: Likewise
20377         * tree-ssa-loop-manip.c: Likewise
20378         * tree-ssa-loop-ch.c: Likewise
20379         * tree-dump.c: Likewise
20380         * tree-complex.c: Likewise
20381
20382         * tree-into-ssa.c: Do not include diagnostic.h and expr.h.
20383         * tree-ssa-uninit.c: Likewise
20384         * tree-ssa-threadupdate.c: Likewise
20385         * tree-ssa-uncprop.c: Likewise
20386         * tree-ssa-ccp.c: Likewise
20387         * tree-ssa-dom.c: Likewise
20388         * tree-ssa-propagate.c: Likewise
20389         * tree-ssa-alias.c: Likewise
20390         * tree-dfa.c: Likewise
20391         * tree-cfgcleanup.c: Likewise
20392         * tree-sra.c: Likewise
20393         * tree-ssa-copy.c: Likewise
20394         * tree-ssa.c: Likewise
20395         * tree-profile.c: Likewise
20396         * tree-cfg.c: Likewise
20397         * tree-ssa-threadedge.c: Likewise
20398         * tree-vect-loop-manip.c: Likewise
20399
20400         * tree-inline.c: Do not include diagnostic.h and expr.h.
20401         Include rtl.h.
20402         (copy_decl_for_dup_finish): Do not use NULL_RTX.
20403
20404         * tree-loop-linear.c: Do not include diagnostic.h, expr.h and optabs.h.
20405         * tree-loop-distribution.c: Likewise.
20406
20407 2010-06-01  Jan Hubicka  <jh@suse.cz>
20408
20409         * ipa-pure-const.c (local_pure_const): Do NORETURN discovery.
20410
20411 2010-06-01  Jan Hubicka  <jh@suse.cz>
20412
20413         * tree-cfgcleanup.c (fixup_noreturn_call): Break out from ...;
20414         remove return value.
20415         (split_bbs_on_noreturn_calls) .... here.
20416         * tree-optimize.c (execute_fixup_cfg): Fixup noreturn calls too.
20417         * tree-flow.h (fixup_noreturn_call): New.
20418
20419 2010-06-01  Jan Hubicka  <jh@suse.cz>
20420
20421         * emit-rtl.c (remove_insn): Fix thinko in prevoius patch.
20422
20423 2010-06-01  Nathan Froyd  <froydnj@codesourcery.com>
20424
20425         * tree.h (build_nt_call_list): Delete.
20426         * tree.c (build_nt_call_list): Delete.
20427
20428 2010-06-01  Jan Hubicka  <jh@suse.cz>
20429
20430         * fwprop.c: Make emit-rtl.h include last.
20431         * rtlanal.c: Include emit-rtl.h.
20432         * genautomata.c: Output emit-rtl include into insn-automata.c
20433         * df-scan.c: Include emit-rtl.h.
20434         * haifa-sched.c: Indlude emit-rtl.h.
20435         * mode-switching.c: Indlude emit-rtl.h.
20436         * graph.c: Indlude emit-rtl.h.
20437         * sel-sched.c: Include emit-rtl.h.
20438         * sel-sched-ir.c: Include emit-rtl.h.
20439         * ira-build.c: Include emit-rtl.h.
20440         * emit-rtl.c (first_insn, last_insn): Remove defines.
20441         (get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
20442         Move to emit-rtl.h.
20443         (set_new_first_and_last_insn, get_last_insn_anywhere,
20444         get_first_nonnote_insn, get_last_nonnote_insn, try_split,
20445         make_call_insn_raw, add_insn_after, add_insn_before, remove_insn,
20446         delete_insns_since, reorder_insns_nobb, emit_insn_after_1,
20447         emit_debug_insn_before, emit_insn, start_sequence, push_to_sequence,
20448         push_to_sequence2, push_topmost_sequence, end_sequence, copy_insn):
20449         Use accessor functions.
20450         * emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
20451          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
20452         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
20453         mem_expr_equal_p): Move here from rtl.h.
20454         (get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
20455         Move here from emit-rtl.c; make inline.
20456         * cfglayout.h: Include emit-rtl.h.
20457         * rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
20458          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
20459         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
20460         mem_expr_equal_p, get_insns, set_first-insn,
20461         get_last_insn, set_last_insn, get_max_uid): Move to emit-rtl.h.
20462         * reg-stack.c: Include emit-rtl.h.
20463         * dce.c: Likewise.
20464
20465 2010-06-01  Jan Hubicka  <jh@suse.cz>
20466
20467         * cgraph.h (tree_function_versioning): Update prototype.
20468         (cgraph_function_versioning): Update prototype.
20469         * cgraphunit.c (cgraph_copy_node_for_versioning): Accept bbs_to_copy
20470         bitmap.
20471         (cgraph_function_versioning): Accept new_entry_block and bbs_to_copy.
20472         (cgraph_materialize_clone, save_inline_function_body): Update use of
20473         tree_function_versioning.
20474         * tree-inline.c (copy_bb): Look for previous copied block to link
20475         after; fix debug output.
20476         (copy_cfg_body): Accept new_entry_block and bbs_to_copy.
20477         (copy_body): Likewise.
20478         (expand_call_inline): Update use of copy_body.
20479         (tree_function_versioning): Update use of copy body; accept
20480         blocks_to_copy and new_entry.
20481
20482 2010-06-01  Jan Hubicka  <jh@suse.cz>
20483
20484         * gegenrtl.c: Remove unnecesary prototypes.
20485         (gendecl): Remove.
20486         (gendef): Produce static inline.
20487         (gencode): Remove.
20488         (main): Do not decode parameters; generate header only.
20489         * Makefile.in (genrtl.c): Remove.
20490
20491 2010-06-01  Jan Hubicka  <jh@suse.cz>
20492
20493         * tree-switch-conversion.c (build_one_array): Make it readonly.
20494
20495 2010-06-01  Richard Guenther  <rguenther@suse.de>
20496
20497         * optabs.c (init_optabs): Guard all accesses to reinit.
20498         * ipa-pure-const.c (propagate): Fix another typo.
20499         * opts.c (common_handle_option): Split assignment to bool.
20500         * c-opts.c (c_common_handle_option): Likewise.
20501
20502 2010-06-01  Arnaud Charlet  <charlet@adacore.com>
20503             Matthew Gingell  <gingell@adacore.com>
20504
20505         * doc/invoke.texi: Mention -fdump-ada-spec.
20506         * tree-dump.c (dump_files): Add ada-spec.
20507         (FIRST_AUTO_NUMBERED_DUMP): Bump to 8.
20508         * tree-pass.h (tree_dump_index): Add TDI_ada.
20509         * gcc.c: Add support for -C without -E and for -fdump-ada-spec.
20510         (cpp_unique_options): Do not reject -C or -CC when -E isn't present.
20511         (default_compilers) <@c-header>: Allow -fdump-ada-spec on header files.
20512         * c-decl.c: Include c-ada-spec.h.
20513         (collect_source_ref_cb, collect_all_refs, for_each_global_decl): New
20514         functions.
20515         (c_write_global_declarations): Add handling of -fdump-ada-spec.
20516         * c-lex.c (c_lex_with_flags): Add handling of CPP_COMMENT.
20517         * Makefile.in (C_AND_OBJC_OBJS): Add c-ada-spec.o.
20518         * c-ada-spec.h, c-ada-spec.c: New files.
20519
20520 2010-06-01  Richard Guenther  <rguenther@suse.de>
20521
20522         PR lto/43853
20523         * ipa-pure-const.c (get_function_state): Hand back varying state
20524         if we do not have one.
20525         (has_function_state): New function.
20526         (duplicate_node_data): Adjust.
20527         (remove_node_data): Likewise.
20528         (pure_const_write_summary): Likewise.
20529         (propagate): Likewise.  Fix typo.
20530
20531 2010-06-01  Jan Hubicka  <jh@suse.cz>
20532
20533         * tree-cfg.c (verify_stmt): Do not skip could_throw test.
20534         * passes.c (execute_function_todo): Do not make implicit verify_ssa.
20535         (execute_all_ipa_transforms): Do not play with the states.
20536
20537 2010-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
20538
20539         * config/arm/t-linux-androideabi: New.
20540         * config.gcc (arm*-*-linux-androideabi): Include multilib config.
20541
20542 2010-06-01  Jan Hubicka  <jh@suse.cz>
20543
20544         * tree-inline.c (estimate_num_insns): For stdarg functions look
20545         into call statement to count cost of argument passing.
20546
20547 2010-06-01  Kai Tietz  <kai.tietz@onevision.com>
20548
20549         * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
20550         argument for fprintf.
20551         (ix86_output_addr_diff_elt): Likewise.
20552         (x86_function_profiler): Likewise.
20553         * config/cygming.h (LOCAL_LABEL_PREFIX): Fix for x64 no-underscore.
20554         (LPREFIX): Likewise.
20555         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
20556
20557 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
20558
20559         PR target/44338
20560         * config/i386/sse.md (fma4i_fmadd<mode>4256, fma4i_fmsub<mode>4256,
20561         fma4i_fnmadd<mode>4256, fma4i_fnmsub<mode>4256, fma4i_fmadd<mode>4,
20562         fma4i_fmsub<mode>4, fma4i_fnmadd<mode>4, fma4i_fnmsub<mode>4,
20563         fma4i_vmfmadd<mode>4, fma4i_vmfmsub<mode>4, fma4i_vmfnmadd<mode>4,
20564         fma4i_vmfnmsub<mode>4, fma4i_fmaddsubv8sf4, fma4i_fmaddsubv4df4,
20565         fma4i_fmaddsubv4sf4, fma4i_fmaddsubv2df4, fma4i_fmsubaddv8sf4,
20566         fma4i_fmsubaddv4df4, fma4i_fmsubaddv4sf4, fma4i_fmsubaddv2df4):
20567         Guard only with TARGET_FMA4 instead of TARGET_FMA4 &&
20568         TARGET_FUSED_MADD.
20569
20570 2010-05-31  Jan Hubicka  <jh@suse.cz>
20571
20572         * tree.h (tree_range_check_failed): Declare noreturn.
20573
20574 2010-05-31  Jan Hubicka  <jh@suse.cz>
20575
20576         * gimple.c (gimple_call_builtin_p): New function.
20577         * gimple.h (gimple_call_builtin_p): Declare.
20578         * tree-cfg.c (make_edges): Produce edge from BUILT_IN_RETURN
20579         to exit.
20580         (execute_warn_function_return): BUILT_IN_RETURN is return.
20581         (split_critical_edges): Return edges are not critical.
20582         (is_ctrl_altering_stmt): Builtin_in_return is altering.
20583         (gimple_verify_flow_info): Handle built_in_return.
20584         (execute_warn_function_return): Handle built_in_return.
20585         * ipa-pure-const.c (check_call): Ignore builtin_return.
20586
20587 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
20588
20589         PR middle-end/44337
20590         * expr.c (expand_assignment): Don't store anything for out-of-bounds
20591         array accesses with non-MEM.
20592
20593         PR tree-optimization/44182
20594         * tree-inline.c (copy_edges_for_bb): Don't split bb if a stmt that
20595         newly needs to end a bb is followed by debug stmts, instead return
20596         true from the function at the end.
20597         (maybe_move_debug_stmts_to_successors): New function.
20598         (copy_cfg_body): Call it if copy_edges_for_bb returned true.
20599
20600 2010-05-31  Kai Tietz  <kai.tietz@onevision.com>
20601
20602         PR target/44161
20603         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle flag_pic.
20604
20605 2010-05-31  Eric Botcazou  <ebotcazou@adacore.com>
20606
20607         * cgraphunit.c (cgraph_decide_is_function_needed): Really return false
20608         for nested functions in non-optimized compilation.
20609
20610 2010-05-31  Richard Guenther  <rguenther@suse.de>
20611
20612         * tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN.
20613
20614 2010-05-30  Jan Hubicka  <jh@suse.cz>
20615
20616         * predict.c (maybe_hot_edge_p): Calls to functions called once is cold.
20617
20618 2010-05-30  Richard Guenther  <rguenther@suse.de>
20619
20620         PR lto/42975
20621         * tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
20622         (execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
20623         no longer needed.
20624
20625 2010-05-30  Iain Sandoe  <iains@gcc.gnu.org>
20626
20627         * config/darwin.c (output_objc_section_asm_op): Add comment.
20628         (name_needs_quotes): Add '_' to list of valid comment chars.
20629         (machopic_output_function_base_name): Remove unneeded quotes.
20630         (darwin_encode_section_info): Adjust asm whitespace.
20631         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Adjust asm tabs.
20632         (ASM_OUTPUT_LOCAL): Ditto.
20633         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
20634         * config/darwin.h (GLOBAL_ASM_OP): Ditto.
20635         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.
20636
20637 2010-05-30  Eric Botcazou  <ebotcazou@adacore.com>
20638
20639         * config/rs6000/rs6000.c (rs6000_output_function_entry): Use
20640         RS6000_OUTPUT_BASENAME unconditionally.
20641         (rs6000_output_function_epilogue): Likewise.
20642
20643 2010-05-30  Jan Hubicka  <jh@suse.cz>
20644
20645         * toplev.c (wrapup_global_declaration_2): Avoid creation of new varpool
20646         nodes.
20647
20648 2010-05-30  Richard Guenther  <rguenther@suse.de>
20649
20650         * tree-cfg.c (verify_gimple_assign_single): Implement
20651         verification for COND_EXPR rhs.
20652
20653 2010-05-30  Jan Hubicka  <jh@suse.cz>
20654
20655         * cgraph.h (cgraph_dump_file): Declare.
20656         * cgraphunit.c (cgraph_dump_file): Export.
20657         * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less verbose.
20658
20659 2010-05-30  Jan Hubicka  <jh@suse.cz>
20660
20661         * dwarf2out.c (reference_to_unused,
20662         premark_types_used_by_global_vars_helper): Avoid creation of new
20663         varpool nodes.
20664
20665 2010-05-30  Jan Hubicka  <jh@suse.cz>
20666
20667         * cgraph.h (cgraph_node_cannot_return,
20668         cgraph_edge_cannot_lead_to_return): New functions.
20669         * cgraph.c (cgraph_node_cannot_return,
20670         cgraph_edge_cannot_lead_to_return): Use them.
20671         * ipa-pure-const.c (pure_const_names): New static var.
20672         (check_call): Handle calls not leading to return.
20673         (pure_const_read_summary): Dump info read.
20674         (propagate): Dump info about propagation process; ignore side effects
20675         of functions not leading to exit; fix handling of pure functions.
20676
20677 2010-05-30  Jan Hubicka  <jh@suse.cz>
20678
20679         * config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
20680         for tail call epilogues.
20681
20682 2010-05-30  Jan Hubicka  <jh@suse.cz>
20683
20684         * passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
20685         ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initialize
20686         dump files.
20687
20688 2010-05-29  Jan Hubicka  <jh@suse.cz>
20689
20690         * ipa.c (cgraph_remove_unreachable_node): Walk references of correct
20691         node; remove references in node we no longer keep in cgrpah but need
20692         body of.
20693
20694 2010-05-29  Jan Hubicka  <jh@suse.cz>
20695
20696         * cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.
20697
20698 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20699
20700         PR target/44165
20701         * config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.
20702
20703 2010-05-29  Jan Hubicka  <jh@suse.cz>
20704
20705         * tree-vrp.c (debug_value_range, debug_all_value_ranges,
20706         debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
20707         * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
20708         debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
20709         debug_names_replaced_by, debug_update_ssa): Likewise.
20710         * sbitmap.c (debug_sbitmap): Likewise.
20711         * genrecog.c (debug_decision, debug_decision_list): Likewise.
20712         * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
20713         debug_tree_chain): Likewise.
20714         * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
20715         * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
20716         * optabs.c (debug_optab_libfuncs): Likewise.
20717         (verify_loop_closed_ssa): Likewise.
20718         * value-prof.c (verify_histograms): Likewise.
20719         * reload.c (debug_reload_to_stream, debug_reload): Likewise.
20720         * bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
20721         * cfghooks.c (verify_flow_info): Likewise.
20722         * fold-const.c (debug_fold_checksum): Likewise.
20723         * omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
20724         * cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
20725         Likewise.
20726         * omega.c (debug_omega_problem): Likewise.
20727         * cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
20728         * tree-ssa-ccp.c (debug_lattice_value): Likewise.
20729         * dominance.c (verify_dominators, debug_dominance_info,
20730         debug_dominance_tree): Likewise.
20731         * df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,
20732         * df_regno_debug, df_ref_debug,
20733         debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref,
20734         debug_df_defno, debug_df_useno, debug_df_chain): Likewise.
20735         * tree-ssa-dom.c (debug_dominator_optimization_stats): Likewise.
20736         * sel-sched.c (debug_state): Likewise.
20737         * tree-ssa-alias.c (debug_alias_info, debug_points_to_info_for):
20738         Likewise.
20739         * cfganal.c (print_edge_list, verify_edge_list): Likewise.
20740         * dwarf2out.c (debug_dwarf_die, debug_dwarf): Likewise.
20741         * tree-eh.c (verify_eh_edges, verify_eh_dispatch_edge): Likewise.
20742         * gimple-pretty-print.c (debug_gimple_stmt, debug_gimple_seq):
20743         Likewise.
20744         * c-pretty-print.c (debug_c_tree): Likewise.
20745         * sel-sched-dump.c (debug_insn_rtx, debug_vinsn, debug_expr, debug_insn
20746         debug_av_set, debug_lv_set, debug_ilist, debug_blist,
20747         debug_insn_vector, debug_hard_reg_set, debug_mem_addr_value): Likewise.
20748         * ebitmap.c (debug_ebitmap): Likewise.
20749         * function.c (debug_find_var_in_block_tree): Likewise.
20750         * print-rtl.c (debug_rtx): Likewise.
20751         (debug_rtx_count): Likewise.
20752         (debug_rtx_list, debug_rtx_range, debug_rtx_find): Likewise.
20753         * stor-layout.c (debug_rli): Likewise.
20754         * ipa.c (debug_cgraph_node_set, debug_varpool_node_set): Likewise.
20755         * tree-data-ref.c (debug_data_references,
20756         debug_data_dependence_relations, debug_data_reference,
20757         debug_data_dependence_relation, debug_rdg_vertex,
20758         debug_rdg_component, debug_rdg): Likewise.
20759         * tree-affine.c (debug_aff): Likewise.
20760         * tree-dfa.c (debug_referenced_vars, debug_variable, debug_dfa_stats):
20761         Likewise.
20762         * except.c (debug_eh_tree, verify_eh_tree): Likewise.
20763         * emit-rtl.c (verify_rtl_sharing): Likewise.
20764         * tree-ssa-pre.c (debug_pre_expr, debug_bitmap_set,
20765         debug_value_expressions): Likewise.
20766         * tree-ssa-live.c (debug_scope_block, debug_scope_blocks): Likewise.
20767         * sese.c (debug_rename_map, debug_ivtype_map): Likewise.
20768         * print-tree.c (debug_tree, debug_vec_tree): Likewise.
20769         * cfglayout.c (verify_insn_chain): Likewise.
20770         * graphite-clast-to-gimple.c (debug_clast_name_indexes,
20771         debug_clast_stmt, debug_generated_program): Likewise.
20772         * ggc-page.c (debug_print_page_list): Likewise.
20773         * tree-ssa-ter.c (debug_ter): Likewise.
20774         * graphite-dependences.c (debug_pddr): Likewise.
20775         * sched-deps.c (debug_ds): Likewise.
20776         * tree-ssa.c (verify_ssa): Likewise.
20777         * graphite-poly.c (debug_scattering_function, debug_iteration_domain,
20778         debug_scattering_functions, debug_iteration_domains, debug_pdr,
20779         debug_pdrs, debug_pbb_domain, debug_pbb, debug_scop_context,
20780         debug_scop, debug_cloog, debug_scop_params, debug_lst): Likewise.
20781         * tree-inline.c (debug_find_tree): Likewise.
20782         * graphite-ppl.c (debug_ppl_linear_expr, debug_ppl_polyhedron_matrix,
20783         debug_ppl_powerset_matrix): Likewise.
20784         * var-tracking.c (debug_dv): Likewise.
20785         * system.h (DEBUG_FUNCTION, DEBUG_VARIABLE): Define.
20786         * cfgloop.c (verify_loop_structure): Likewise.
20787         * plugin.c (dump_active_plugins, debug_active_plugins): Likewise.
20788         * c-common.c (verify_sequence_points): Likewise.
20789         * sched-rgn.c (debug_regions, debug_region, debug_candidate,
20790         debug_candidates, debug_rgn_dependencies): Likewise.
20791         * tree-ssa-structalias.c (debug_constraint, debug_constraints,
20792         * debug_constraint_graph, debug_solution_for_var,
20793         debug_sa_points_to_info): Likewise.
20794         * sched-vis.c (debug_insn_slim, debug_bb_slim, debug_bb_n_slim):
20795         Likewie.
20796         * tree-cfg.c (debug_cfg_stats, verify_stmts, debug_function,
20797         debug_loops, debug_loop, debug_loop_num): Likewise.
20798         * passes.c (debug_pass): Likewise.
20799         (dump_properties): Likewise; add cfglayout property.
20800         (debug_properties): Likewise.
20801         * tree-ssa-reassoc.c (debug_ops_vector): Likewise.
20802         * varpool.c (debug_varpool): Likewise.
20803         * regcprop.c (debug_value_data): Likewise.
20804         * tree-ssa-operands.c (verify_imm_links, debug_immediate_uses,
20805         debug_immediate_uses_for): Likewise.
20806
20807 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
20808
20809         PR bootstrap/44315
20810         * Makefile.in (build/gencondmd.o): Remove TM_H := $(GTM_H).
20811         Filter out insn-flags.h.
20812
20813 2010-05-29  Jan Hubicka  <jh@suse.cz>
20814
20815         * cgraph.h (struct varpool_node_set_def,
20816         struct cgraph_node_set_def): Remove unused AUX pointer.
20817         (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): Use
20818         VEC_empty macro.
20819
20820 2010-05-29  Jan Hubicka  <jh@suse.cz>
20821
20822         PR middle-end/44324
20823         * ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".
20824
20825 2010-05-29  Richard Guenther  <rguenther@suse.de>
20826
20827         * lto-streamer.c (cached_bp): New global variable.
20828         (bitpack_create): Return the cached bitpack, if available.
20829         (bitpack_delete): Clear and cache the bitpack, if appropriate.
20830         (bp_pack_value): Remove redundant asserts.
20831
20832 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
20833
20834         PR middle-end/44306
20835         * tree-if-conv.c (is_true_predicate): New.
20836         (is_predicated): Use is_true_predicate.
20837         (add_to_predicate_list): Same.  Do not use unshare_expr.
20838         (add_to_dst_predicate_list): Same.
20839
20840 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
20841
20842         * tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
20843         field on edges.
20844         (predicate_bbs): Same.
20845         (clean_predicate_lists): Same.
20846         (find_phi_replacement_condition): Do not AND the predicate from
20847         edge->aux.
20848
20849 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
20850
20851         PR bootstrap/44315
20852         * Makefile.in (build/gencondmd.o): Add a missing `\'.
20853
20854 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20855
20856         PR target/44261
20857         config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
20858         (negdf2): Adjust expander pattern and use negdf2_slow.
20859         (negsf2): Likewise.
20860
20861 2010-05-29  Nathan Froyd  <froydnj@codesourcery.com>
20862
20863         * basic-block.h (struct control_flow_graph): Move last_label_uid field
20864         up.
20865         * df.h (struct df_base_ref): Move regno field up.
20866         * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
20867         * expr.h (struct separate_ops): Move location field up.
20868         * optabs.h (struct optab_d): Move libcall_basename field down.
20869         * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
20870         * config/i386/i386.h (struct machine_function): Convert call_abi field
20871         into a bitfield.  Move cfa field to the end of the structure.
20872
20873 2010-05-29  Jan Hubicka  <jh@suse.cz>
20874
20875         * varpool.c (varpool_get_node): Fix lookup.
20876
20877 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
20878
20879         * config/spu/spu-protos.h: Do not include rtl.h.  Protect
20880         RTL specific prototypes with #ifdef RTX_CODE.
20881         * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
20882         * config/spu/t-spu-elf: Fix dependencies.
20883
20884         * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
20885
20886 2010-05-29  Mike Stump  <mikestump@comcast.net>
20887
20888         PR bootstrap/44315
20889         * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
20890         TM_H when building to avoid dependency loops.
20891
20892 2010-05-29  Jan Hubicka  <jh@suse.cz>
20893
20894         * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
20895         refs and body; not the whole node for masters of materialized clones.
20896
20897 2010-05-29  Mike Stump  <mikestump@comcast.net>
20898
20899         * config/rs6000/rs6000-c.c: Remove c-tree.h include.
20900
20901 2010-05-29  Jan Hubicka  <jh@suse.cz>
20902
20903         * cgraph.c (clone_function_name): Take SUFFIX argument; export.
20904         (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
20905         use of clone_function_name.
20906         * cgraph.h (cgraph_create_virtual_clone,
20907         cgraph_function_versioning): update prototypes.
20908         (clone_function_name): Declare.
20909         * ipa-cp.c (ipcp_insert_stage): Update call of
20910         cgraph_create_virtual_clone.
20911         * omp-low.c (create_omp_child_function_name): Use
20912         cgraph_create_virtual_clone.
20913         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
20914         (cgraph_function_versioning): Take SUFFIX argument; produce new name
20915         and make decl local.
20916
20917 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
20918
20919         * vec.h: Include statistics.h
20920         * Makefile.in: Introduce VEC_H.  Replace all vec.h dependencies
20921         with VEC_H.
20922
20923 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
20924
20925         * c-lex.c: Do not include c-tree.h.
20926         * c-pretty-print.c: Likewise.
20927         * c-opts.c: Likewise.
20928         * c-gimplify.c: Likewise.
20929         * c-common.c: Likewise.
20930         * c-dump.c: Likewise.  Include c-common.h.
20931
20932 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
20933
20934         * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
20935         before including diagnostic-core.h.
20936         (c_cpp_error): New prototype moved from c-tree.h.
20937         Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
20938         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
20939         (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
20940         (c_cpp_error): Prototype moved to c-common.h.
20941         * Makefile.in: Update dependency for C_COMMON_H.
20942
20943 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
20944
20945         * c-common.h: Add FIXME for awkward split of c_register_addr_space.
20946         * c-common.c (c_register_addr_space): Remove here.
20947         * c-decl.c (c_register_addr_space): Re-add here.
20948
20949 2010-05-28  Mike Stump  <mikestump@comcast.net>
20950
20951         * config/darwin-c.c: Remove c-tree.h include.
20952
20953 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
20954
20955         * gcc.c: Include diagnostic.h.
20956         (error_count): Remove.  All users changed to use errorcount.
20957         (programname): Remove.  All users changed to use progname.
20958         (fancy_abort, internal_error, fatal_error, error, warning, inform,
20959         fnotice): Remove.
20960         (execute): Don't include "Internal error" and bug reporting
20961         information in argument of internal_error call.
20962         (process_command): Don't increment error_count after calling
20963         perror_with_name.
20964         (input_filename): Rename to gcc_input_filename.  All users
20965         changed.
20966         (main): Call diagnostic_initialize.  Register delete_temp_files
20967         with atexit.  Use seen_error to test for errors.
20968         * gcc.h: Include diagnostic-core.h.
20969         (fatal_error, error, warning): Remove.
20970         * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
20971         (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
20972         (gcc.o): Update dependencies.
20973
20974 2010-05-28  Jeff Law  <law@redhat.com>
20975
20976         * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
20977         functions.
20978         * ira.h (ira_bad_reload_regno): Declare
20979         * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
20980
20981         * ira-color.c (update_curr_costs): Free updated hard reg costs.
20982         (ira_reassign_conflict_allocnos): Remove bogus asserts.
20983         (allocno_reload_assign): Likewise.
20984
20985 2010-05-28  Nathan Froyd  <froydnj@codesourcery.com>
20986
20987         * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
20988         build1_stat.
20989
20990 2010-05-28  Richard Guenther  <rguenther@suse.de>
20991
20992         PR lto/44312
20993         * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
20994         Stream fixed-point constants mode.
20995         (unpack_ts_type_value_fields): Fix width of TYPE_MODE
20996         and TYPE_PRECISION.
20997         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
20998         Stream fixed-point constants mode.
20999         (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
21000         and TYPE_PRECISION.
21001
21002 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
21003
21004         * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
21005         only place it was called from.
21006         (number_of_latch_executions): Do not return chrec_dont_know when the
21007         may_be_zero is a runtime condition: instead, return a COND_EXPR
21008         including the may_be_zero condition.
21009         * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
21010         of nb_iterations.
21011         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
21012         COND_EXPRs.
21013
21014 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
21015
21016         * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
21017         generate COND_EXPRs for degenerate_phi_result.
21018
21019 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
21020
21021         PR middle-end/44293
21022         * tree-if-conv.c (if_convertible_loop_p): Check the
21023         if-convertibility of phi nodes in non predicated BBs.
21024
21025 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
21026
21027         * gcc.c (error, warning, inform): Remove duplicate ": " in output.
21028
21029 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
21030
21031         PR driver/15303
21032         * gcc.c (inform, warning, inform): New functions.
21033         (fatal_ice): Rename to internal_error; change cmsgid parameter to
21034         gmsgid.  All callers changed.
21035         (notice): Rename to fnotice; add parameter fp.  All callers changed.
21036         (fatal_error): Rename to fatal_signal.  All users changed.
21037         (fatal): Rename to fatal_error; change cmsgid parameter to
21038         gmsgid.  All callers changed.
21039         (process_command): Use warning instead of error for warnings.
21040         (end_going_arg): Don't use _() around argument of error.
21041         (do_spec_1): Use inform for message from %n specs.  Use warning
21042         instead of error for warnings.
21043         (main): Use inform for comparison messages.  Use warning for
21044         message about unused linker input.
21045         (error): Increment error_count.  Print "error: ".
21046         * gcc.h (fatal): Change to fatal_error.
21047         (warning): Declare.
21048         * config/darwin-driver.c (darwin_default_min_version): Use warning
21049         instead of fprintf for warnings.
21050         * cppspec.c (lang_specific_driver): Use fatal_error instead of fatal.
21051
21052 2010-05-28  Julian Brown  <julian@codesourcery.com>
21053
21054         * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
21055         (*thumb2_addsi3_compare0_scratch): New.
21056         * config/arm/constraints.md (Pv): New.
21057         * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
21058         for ARM mode only.
21059         (*addsi3_compare0_scratch): Likewise.
21060
21061 2010-05-28  Jan Hubicka  <jh@suse.cz>
21062
21063         * ipa-reference.c (add_static_var): Remove redundant all_module_statics
21064         check.
21065         (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
21066         only on local statics.
21067
21068 2010-05-28  Iain Sandoe  <iains@gcc.gnu.org>
21069
21070         * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
21071
21072 2010-05-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
21073
21074         PR bootstrap/44314
21075         * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
21076         (OPTION_GLIBC): Define.
21077
21078 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
21079
21080         PR debug/41048
21081         * dwarf2out.c (double_int_type_size_in_bits): New function.
21082         (round_up_to_align): Change first argument and return value to
21083         double_int.
21084         (field_byte_offset): Work internally on double_ints.
21085
21086         PR target/43636
21087         * builtins.c (expand_movstr): Use a temporary pseudo instead
21088         of target even when target is not NULL and not const0_rtx, but
21089         fails movstr predicate.
21090         * config/m32c/blkmov.md (movstr): Add predicate to first operand.
21091
21092 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
21093
21094         * final.c (rest_of_clean_state): Use %m in errors instead of
21095         strerror (errno).
21096         * gengtype.c (read_input_list, close_output_files): Use xstrerror
21097         instead of strerror.
21098         * toplev.c (process_options): Use %m in errors instead of strerror
21099         (errno).
21100         * tree-dump.c (dump_begin): Use %m in errors instead of strerror
21101         (errno).
21102
21103 2010-05-28  Uros Bizjak  <ubizjak@gmail.com>
21104
21105         * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
21106         (ix86_canonical_va_list_type): Make static.  Add declaration.
21107         (ix86_enum_va_list): Make static.  Reindent.
21108         * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
21109         (ix86_canonical_va_list_type): Ditto.
21110         (ix86_enum_va_list): Ditto.
21111
21112 2010-05-28  Richard Guenther  <rguenther@suse.de>
21113
21114         * lto-wrapper.c (run_gcc): With -save-temps generate a
21115         user-visible ltrans filename.  Fixup ltrans unit numbering.
21116
21117 2010-05-28  Kai Tietz  <kai.tietz@onevision.com>
21118
21119         * c-common.c (c_common_nodes_and_builtins): Replace use
21120         of TARGET_ENUM_VA_LIST by target hook enum_va_list.
21121         * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
21122         to ix86_enum_va_list.
21123         * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
21124         * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
21125         (TARGET_ENUM_VA_LIST_P): Add hook description.
21126         * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
21127         * target.h (gcc_target): Add enum_va_list hook.
21128
21129         PR bootstrap/44299
21130         * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
21131         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
21132         * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
21133
21134 2010-05-28  Alan Modra  <amodra@gmail.com>
21135
21136         PR target/44266
21137         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
21138         emit_library_call machinery to set up __tls_get_addr calls.
21139
21140 2010-05-28  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
21141
21142         * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
21143
21144 2010-05-28  Dodji Seketeli  <dodji@redhat.com>
21145
21146         Revert fix for PR c++/44188
21147         * c-common.c (is_typedef_decl): Revert the moving of  this
21148         definition ...
21149         * tree.c (is_typedef_decl): ... here.
21150         (typdef_variant_p): Revert the moving of this  definition
21151         here from cp/tree.c.
21152         * c-common.h (is_typedef_decl): Revert the moving of this
21153         declaration ...
21154         * tree.h (is_typedef_decl): ... here.
21155         (typedef_variant_p): Revert the moving of this  declaration here
21156         from cp/cp-tree.h
21157         * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
21158         (gen_tagged_type_die): Revert the splitting out of ...
21159         (gen_type_die_with_usage): ... this function. Revert the anonymous
21160         tagged type handling.
21161         (gen_typedef_die): Revert emitting DW_TAG_typedef  for
21162         typedefs naming anonymous tagged types.
21163
21164 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
21165
21166         * config/rs6000/rs6000-modes.def (PSImode): Delete.
21167
21168 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
21169
21170         * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
21171         * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
21172         throughout.
21173         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
21174         "xer" to "ca".
21175         Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
21176         XER_REGS to CA_REGS throughout.
21177         * config/rs6000/rs6000.h: Same.
21178         (ADDITIONAL_REGISTER_NAMES): Add "xer".
21179         * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO.  Document
21180         that mode_iterator "P" is the size for arithmetic carries as well.
21181         * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
21182
21183 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
21184
21185         PR bootstrap/44255
21186         * combine.c (struct rtx_subst_pair): Define unconditionally.
21187         (propagate_for_debug_subst): Likewise.  If not AUTO_INC_DEC,
21188         copy_rtx pair->to instead of cleanup_auto_inc_dec it.
21189         Call make_compound_operation on pair->to.
21190         (propagate_for_debug): Don't call make_compound_operation here.
21191         Always use simplify_replace_fn_rtx.
21192
21193 2010-05-27  Sterling Augustine  <sterling@tensilica.com>
21194
21195         * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
21196         * config/xtensa/xtensa.c (override_options): Check
21197           TARGET_FORCE_NO_PIC and set flag_pic.
21198         * config/xtensa/xtensa.opt: Document -mforce-no-pic
21199
21200 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
21201
21202         PR bootstrap/44299
21203         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
21204         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
21205
21206 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
21207
21208         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
21209         toplev.h.
21210         * diagnostic.c: Don't include toplev.h.
21211         (progname): Define.  Moved from toplev.c.
21212         (seen_error): New function.
21213         * diagnostic.h: Include diagnostic-core.h.
21214         (diagnostic_t, emit_diagnostic): Don't declare here.
21215         * toplev.c (progname): Move to toplev.c.
21216         (emit_debug_global_declarations, compile_file, finalize,
21217         do_compile, toplev_main): Use seen_error.
21218         * toplev.h: Include diagnostic-core.h.
21219         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
21220         internal_error, warning, warning_at, error, error_n, error_at,
21221         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
21222         verbatim, fnotice, progname): Move to diagnostic-core.h.
21223         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
21224         (expand_builtin_expect): Use seen_error.
21225         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
21226         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
21227         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
21228         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
21229         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
21230         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
21231         errorcount for errors.
21232         * c-opts.c (c_common_finish): Use seen_error.
21233         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
21234         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
21235         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
21236         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
21237         (get_coverage_counts): Use seen_error.
21238         * dwarf2out.c (dwarf2out_finish): Use seen_error.
21239         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
21240         gimplify_body): Use seen_error.
21241         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
21242         * ipa-pure-const.c (gate_pure_const): Use seen_error.
21243         * ipa-reference.c (gate_reference): Use seen_error.
21244         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
21245         * lambda-code.c: Include diagnostic-core.h instead of
21246         diagnostic.h.
21247         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
21248         * lto-compress.c: Include diagnostic-core.h instead of
21249         diagnostic.h.
21250         * lto-section-in.c: Include diagnostic-core.h instead of
21251         diagnostic.h.
21252         * lto-streamer-out.c: Include diagnostic-core.h instead of
21253         diagnostic.h.
21254         * lto-streamer.c: Include diagnostic-core.h instead of
21255         diagnostic.h.
21256         (gate_lto_out): Use seen_error.
21257         * matrix-reorg.c: Include diagnostic-core.h instead of
21258         diagnostic.h.
21259         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
21260         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
21261         (gate_expand_omp, lower_omp_1): Use seen_error.
21262         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
21263         (rest_of_decl_compilation, rest_of_type_compilation,
21264         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
21265         * tree-cfg.c (label_to_block_fn): Use seen_error.
21266         * tree-inline.c (optimize_inline_calls): Use seen_error.
21267         * tree-mudflap.c (mudflap_finish_file): Use
21268         seen_error.
21269         * tree-optimize.c (gate_all_optimizations,
21270         gate_all_early_local_passes, gate_all_early_optimizations): Use
21271         seen_error.
21272         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
21273         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
21274         (varpool_remove_unreferenced_decls,
21275         varpool_assemble_pending_decls): Use seen_error.
21276         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
21277         (TOPLEV_H, DIAGNOSTIC_H): Update.
21278         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
21279         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
21280         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
21281         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
21282         coverage.o, lambda-code.o): Update dependencies.
21283
21284 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
21285
21286         PR c++/44188
21287         * c-common.c (is_typedef_decl): Move this definition ...
21288         * tree.c (is_typedef_decl): ... here.
21289         (typdef_variant_p): Move definition here from cp/tree.c.
21290         * c-common.h (is_typedef_decl): Move this declaration ...
21291         * tree.h (is_typedef_decl): ... here.
21292         (typedef_variant_p): Move declaration here from cp/cp-tree.h
21293         * dwarf2out.c (is_naming_typedef_decl): New function.
21294         (gen_tagged_type_die): Split out of ...
21295         (gen_type_die_with_usage): ... this function. When an anonymous
21296         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
21297         is emitted for the typedef.
21298         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
21299         anonymous tagged types.
21300
21301 2010-05-27  Jason Merrill  <jason@redhat.com>
21302
21303         * print-tree.c (debug_vec_tree): New fn.
21304         (print_vec_tree): New fn.
21305         * tree.h: Declare them.
21306         * gdbinit.in (pvt): New command.
21307
21308         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
21309
21310         * gdbinit.in (pdd): New command.
21311
21312 2010-05-27  Jan Hubicka  <jh@suse.cz>
21313
21314         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
21315         (update_caller_keys): Return early if there are no callers;
21316         only update fibheap when decresing the key.
21317         (update_callee_keys): Avoid recursion.
21318         (decide_inlining_of_small_functions): When badness does not match;
21319         re-insert into fibheap.
21320
21321 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
21322
21323         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
21324         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
21325         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
21326         (ALL_HOST_OBJS): Now a union of the above two.
21327         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
21328         all files in ALL_HOST_FRONTEND_OBJS.
21329         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
21330
21331         * c-common.c: Pretend to be a backend file by undefining
21332         IN_GCC_FRONTEND (still need rtl.h here).
21333
21334 2010-05-27  Jan Hubicka  <jh@suse.cz>
21335
21336         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
21337         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
21338
21339 2010-05-27  Jan Hubicka  <jh@suse.cz>
21340
21341         * sched-ebb.c: Rename struct deps to struct deps_desc.
21342         * ddg.c: Likewise.
21343         * sel-sched-ir.c: Likewise.
21344         * sched-deps.c: Likewise.
21345         * sched-int.h: Likewise.
21346         * sched-rgn.c: Likewise.
21347
21348 2010-05-27  Jon Beniston  <jon@beniston.com>
21349
21350         PR 43726
21351         * config/lm32/lm32.h: Remove definition of
21352         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
21353
21354 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
21355
21356         PR lto/44230
21357         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
21358
21359 2010-05-27  Richard Guenther  <rguenther@suse.de>
21360
21361         PR tree-optimization/44284
21362         * tree-vect-stmts.c (vectorizable_assignment): Handle
21363         sign-changing conversions as simple copy.
21364
21365 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
21366
21367         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
21368         Bionic C library.
21369         (__gthread_active_p): Check for pthread_create if compiling against
21370         Bionic C library.
21371
21372 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
21373
21374         Support compilation for Android platform.  Reimplement -mandroid.
21375
21376         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
21377         (*android*): Set ANDROID_DEFAULT.
21378         (arm*-*-linux*): Include linux-android.h.
21379         (arm*-*-eabi*): Don't include previous -mandroid implementation.
21380         * config/arm/eabi.h: Remove, move Android-specific parts ...
21381         * config/linux-android.h: ... here.  New file.
21382         * config/arm/eabi.opt: Rename to ...
21383         * config/linux-android.opt: ... this.
21384         (mandroid): Allow -mno-android option.  Initialize based on
21385         ANDROID_DEFAULT.
21386         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
21387         Move logic to corresponding LINUX_TARGET_* macros.
21388         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
21389         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
21390         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
21391         Android definitions.
21392         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
21393         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
21394         Document.
21395
21396 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
21397
21398         Add support for Bionic C library
21399
21400         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
21401         macro.
21402         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
21403         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
21404
21405         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
21406         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
21407         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
21408         to support multiple C libraries.  Handle Bionic.
21409         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
21410         (BIONIC_DYNAMIC_LINKER64): Define.
21411         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
21412         Update.
21413         (TARGET_HAS_SINCOS): Enable for Bionic.
21414
21415         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
21416         the last option specified on command line take effect.
21417         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
21418         (mbionic): New.
21419         (mglibc, muclibc): Update.
21420
21421         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
21422         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
21423         DEFAULT_LIBC.
21424
21425         * doc/invoke.texi (-mglibc, -muclibc): Update.
21426         (-mbionic): Document.
21427
21428 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
21429
21430         * c-common.h (c_register_addr_space): Add prototype.
21431         (ADDR_SPACE_KEYWORD): Remove.
21432         * c-common.c (c_register_addr_space): New function.
21433         (c_addr_space_name): Reimplement.
21434         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
21435
21436         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
21437         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
21438
21439         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
21440         Remove TARGET_ADDR_SPACE_KEYWORDS.
21441
21442 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
21443
21444         * input.c: New file.
21445         * input.h (main_input_filename): Move declaration to toplev.h.
21446         * toplev.c (input_location, line_table): Move to input.c
21447         * toplev.h (main_input_filename): Move declaration from input.h.
21448         * tree.c (expand_location): Move to input.c.
21449         * Makefile.in (OBJS-common): Add input.o.
21450         (input.o): Add dependencies.
21451
21452 2010-05-27  Richard Guenther  <rguenther@suse.de>
21453
21454         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
21455         for non-existant files.
21456         (fork_execute): Mark args_name file as deleted.
21457
21458 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
21459
21460         PR bootstrp/44287
21461         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
21462         (narrow_signed_type): Likewise.
21463
21464 2010-05-26  Jan Hubicka  <jh@suse.cz>
21465
21466         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
21467         edge only when checking is enabled; check using former_clone_of;
21468         check inline clones too.
21469         (cgraph_materialize_clone): Record former_clone_of pointer.
21470         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
21471         combining redirections; dump args_to_skip bitmap
21472         (cgraph_materialize_all_clones): Do no redirection here.
21473         * ipa-inline.c (inline_transform): Do redirection here.
21474         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
21475         cheking only).
21476
21477 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
21478
21479         * config/avr/avr-c.c: Do not include regs.h.
21480         Include cpplib.h for cpp_define and tree.h for c-common.h.
21481         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
21482         * config/avr/t-avr: Fix dependencies for avr-c.o.
21483
21484 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
21485
21486         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
21487         string instead of SYMBOL_REF rtx.
21488         * rtl.h (set_stack_check_libfunc): Move prototype from here...
21489         * libfuncs.h: ...to here.  Adjust for explow.c change.
21490
21491 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
21492
21493         * pretty-print.c: Don't include ggc.h.
21494         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
21495         (identifier_to_locale): Use them for allocation.
21496         * pretty-print.h (identifier_to_locale_alloc,
21497         identifier_to_locale_free): Declare.
21498         * toplev.c (alloc_for_identifier_to_locale): New.
21499         (general_init): Set identifier_to_locale_alloc and
21500         identifier_to_locale_free.
21501         * Makefile.in (pretty-print.o): Update dependencies.
21502
21503 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
21504
21505         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
21506         pointer types if they have different alignment or mode.
21507
21508 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
21509
21510         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
21511         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
21512         * config/sparc/sparc-protos.h (function_value): Remove declaration.
21513         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
21514         sparc_function_value_regno_p): New functions.
21515         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
21516         TARGET_FUNCTION_VALUE_REGNO_P): Define.
21517         (function_value): Rename to...
21518         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
21519         argument to 'outgoing'.
21520         (function_arg_record_value, function_arg_union_value,
21521         function_arg_vector_value): Update comment.
21522
21523 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
21524
21525         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
21526         (fde_needed_for_eh_p): New predicate.
21527         (output_call_frame_info): Use it throughout to decide whether FDEs
21528         are needed for EH purpose.
21529         (dwarf2out_begin_prologue): Reorder assignments.
21530
21531 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
21532
21533         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
21534         special case loop->header.
21535         (is_predicated): New.
21536         (if_convertible_loop_p): Call it.
21537
21538 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
21539
21540         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
21541         iterator in parameter.  Do not generate code during the analysis.
21542         (tree_if_convert_cond_stmt): Removed.
21543         (tree_if_convert_stmt): Removed.
21544         (predicate_bbs): New.
21545         (if_convertible_loop_p): Call predicate_bbs.
21546         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
21547         now contains all the analysis part.
21548
21549 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
21550
21551         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
21552         statements in the analysis part.
21553         (tree_if_convert_stmt): Update comment.
21554         (remove_conditions_and_labels): New.
21555         (combine_blocks): Call remove_conditions_and_labels.
21556         (tree_if_conversion): Update comment.
21557
21558 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
21559
21560         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
21561         than 2 predecessors or more than 2 successors.
21562
21563 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
21564
21565         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
21566         of loops in which the data dependence analysis fails.
21567
21568 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
21569
21570         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
21571         CDI_POST_DOMINATORS.
21572         (tree_if_conversion): Same.
21573
21574 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
21575
21576         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
21577
21578 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
21579
21580         * tree-if-conv.c: Update copyright years.  Fix comments.
21581         Fix indentation.
21582
21583 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
21584
21585         * builtin-types.def (BT_INT128): New primitive type.
21586         (BT_UINT128): Likewise.
21587         * c-common.c (c_common_r): Add __int128 keyword.
21588         (c_common_type_for_size): Handle __int128.
21589         (c_common_type_for_mode): Likewise.
21590         (c_common_signed_or_unsigned_type): Likewise.
21591         (c_common_nodes_and_builtins): Add builtin type
21592         if target supports 128-bit integer scalar.
21593         * c-common.h (enum rid): Add RID_INT128.
21594         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
21595         if target supports 128-bit integer scalar.
21596         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
21597         (finish_declspecs): Likewise.
21598         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
21599         (c_token_starts_declspecs): Likewise.
21600         (c_parser_declspecs): Likewise.
21601         (c_parser_attributes): Likewise.
21602         (c_parser_objc_selector): Likewise.
21603         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
21604         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
21605         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
21606         * tree.c (make_or_reuse_type): Likewise.
21607         (make_unsigned_type): Likewise.
21608         (build_common_tree_nodes_2): Likewise.
21609         * tree.h (enum integer_type_kind): Add itk_int128 and
21610         itk_unsigned_int128.
21611         (int128_integer_type_node): New define.
21612         (int128_unsigned_type_node): New define.
21613         * doc/extend.texi: Add documentation about __int128 type.
21614
21615 2010-05-26  Richard Guenther  <rguenther@suse.de>
21616
21617         * tree-ssa-sccvn.c (copy_nary): Adjust.
21618         (copy_phis): Rename to ...
21619         (copy_phi): ... this.  Adjust.
21620         (copy_references): Rename to ...
21621         (copy_reference): ... this.  Adjust.
21622         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
21623         result into the valid table.
21624
21625 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
21626
21627         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
21628         insn-config.h, insn-codes.h, recog.h, and optabs.h.
21629
21630 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
21631
21632         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
21633
21634 2010-05-26  Richard Guenther  <rguenther@suse.de>
21635
21636         * opts.c (common_handle_option): Handle OPT_Ofast.
21637
21638 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
21639
21640         * diagnostic.c: Don't include opts.h.
21641         (permissive_error_option): Define.
21642         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
21643         for classify_diagnostic.  Don't use memset for
21644         classify_diagnostic.  Initialize new and recently added fields.
21645         (diagnostic_classify_diagnostic): Use context->n_opts instead of
21646         N_OPTS.
21647         (diagnostic_report_diagnostic): Pass context parameter to
21648         diagnostic_report_warnings_p.  Use option_enabled and option_name
21649         hooks from context.
21650         (emit_diagnostic): Use permissive_error_option.
21651         (permerror): Likewise.
21652         * diagnostic.h: Don't include options.h.
21653         (struct diagnostic_context): Add n_opts, opt_permissive,
21654         inhibit_warnings, warn_system_headers, option_enabled and
21655         option_name fields.  Change classify_diagnostic to a pointer.
21656         * opts-diagnostic.h: New file.
21657         * opts.c: Include opts-diagnostic.h.
21658         (common_handle_option): Set global_dc fields for -Wfatal-errors,
21659         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
21660         (option_name): New function.
21661         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
21662         (c_common_handle_option): Set global_dc->permissive for
21663         -fpermissive.
21664         * c-common.c (c_cpp_error): Save and restore
21665         global_dc->warn_system_headers, not variable warn_system_headers.
21666         * toplev.c: Include opts-diagnostic.h.
21667         (general_init): Update call to diagnostic_initialize.  Set
21668         global_dc->show_column, global_dc->option_enabled and
21669         global_dc->option_name.
21670         (process_options): Don't set global_dc fields here.
21671         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
21672         (diagnostic.o, opts.o, toplev.o): Update dependencies.
21673
21674 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
21675
21676         * config/picochip/picochip.md (movsi): Split a movsi from a
21677         const after reload.
21678
21679 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
21680
21681         * ggc-zone.c: Update copyright year.
21682         (poison_region): Mark memory for Valgrind as undefined before
21683         memset () call and inaccessible afterwards.
21684         (ggc_pch_total_size): Change type of i to int.
21685
21686 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
21687
21688         * ggc-common.c (ggc_free_overhead): Allow empty slot.
21689
21690 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
21691
21692         * ggc-common.c: Update copyright year.
21693         (ggc_rlimit_bound): Remove prototype.  Compile only if
21694         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
21695         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
21696         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
21697         (ggc_min_heapsize_heuristic): Likewise.
21698
21699 2010-05-26  Richard Guenther  <rguenther@suse.de>
21700
21701         PR rtl-optimization/44164
21702         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
21703         no-common access-path disambiguation.
21704         (indirect_ref_may_alias_decl_p): Adjust.
21705         (indirect_refs_may_alias_p): Likewise.
21706         (refs_may_alias_p_1): Likewise.
21707
21708 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
21709
21710         * c-typeck.c: Do not include expr.h.
21711
21712 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
21713
21714         * rtl.h (decl_default_tls_model): Move prototype from here...
21715         * output.h: ...to here.
21716         * c-decl.c: Do not include rtl.h.
21717         * c-pragma.c: Likewise.
21718         * c-parser.c: Likewise.
21719         * c-gimplify.c: Likewise.  And also not hard-reg-set.
21720         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
21721         FIXME note for it.  Add a FIXME note for expr.h.
21722         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
21723         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
21724         defined.
21725
21726 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
21727
21728         PR target/44199
21729         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
21730         or total_size is larger than red zone size for non-V4 ABI, emit a
21731         stack_tie resp. frame_tie insn before stack pointer restore.
21732         * config/rs6000/rs6000.md (frame_tie): New insn.
21733
21734 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
21735
21736         * function.h (struct function): Add can_throw_non_call_exceptions bit.
21737         * lto-streamer-in.c (input_function): Stream it in.
21738         * lto-streamer-out.c (output_function): Stream it out.
21739         * function.c (allocate_struct_function): Set it.
21740         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
21741         for flag_non_call_exceptions.
21742         * cfgbuild.c (control_flow_insn_p): Likewise.
21743         (make_edges): Likewise.
21744         * cfgexpand.c (expand_stack_alignment): Likewise.
21745         * combine.c (distribute_notes): Likewise.
21746         * cse.c (cse_extended_basic_block): Likewise.
21747         * except.c (insn_could_throw_p): Likewise.
21748         * gcse.c (simple_mem): Likewise.
21749         * ipa-pure-const.c (check_call): Likewise.
21750         (check_stmt ): Likewise.
21751         * lower-subreg.c (lower-subreg.c): Likewise.
21752         * optabs.c (emit_libcall_block): Likewise.
21753         (prepare_cmp_insn): Likewise.
21754         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
21755         * postreload.c (rest_of_handle_postreload): Likewise.
21756         * reload1.c (reload_as_needed): Likewise.
21757         (emit_input_reload_insns): Likewise.
21758         (emit_output_reload_insns): Likewise.
21759         (fixup_abnormal_edges): Likewise.
21760         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
21761         * store-motion.c (find_moveable_store): Likewise.
21762         * tree-eh.c (stmt_could_throw_p): Likewise.
21763         (tree_could_throw_p): Likewise.
21764         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
21765         * config/arm/arm.c (arm_expand_prologue): Likewise.
21766         (thumb1_expand_prologue): Likewise.
21767         * config/rx/rx.md (cbranchsf4): Likewise.
21768         (cmpsf): Likewise.
21769         * config/s390/s390.c (s390_emit_prologue): Likewise.
21770         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
21771         (inline_forbidden_into_p): New predicate.
21772         (expand_call_inline): Use it to forbid inlining.
21773         (tree_can_inline_p): Likewise.
21774
21775 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
21776
21777         * config/i386/i386-c.c: Do not include rtl.h.
21778         * config/i386/t-i386: Update dependencies.
21779
21780 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
21781
21782         * attribs.c: Do not include rtl.h.
21783         * Makefile.in: Update dependencies.
21784
21785 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
21786
21787         * double-int.h (double_int_and): New.
21788         * combine.c (try_combine): Clean up, use double_int_* and
21789         immed_double_int_const functions.
21790
21791 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21792
21793         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
21794         stderr to /dev/null instead of grep -q.
21795         * configure: Regenerate.
21796
21797 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
21798
21799         * Makefile.in (EXCEPT_H): Fix typo.
21800
21801 2010-05-25  Vladimir Makarov  <vmakarov@redhat.com>
21802
21803         * ira-build.c (update_conflict_hard_reg_costs): New.
21804         (ira_build): Call update_conflict_hard_reg_costs.
21805
21806 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
21807
21808         PR debug/41371
21809         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
21810         ENABLE_CHECKING.
21811         (intersect_loc_chains): Walk the s2var's loc_chain together
21812         with s1node chain as long as the locations are equal, don't
21813         call find_loc_in_1pdv in that case.
21814
21815         PR debug/42801
21816         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
21817         (copy_bind_expr): ... instead of here.
21818         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
21819         if the block hasn't been remapped.
21820         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
21821         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
21822
21823 2010-05-25  Richard Guenther  <rguenther@suse.de>
21824
21825         PR middle-end/44069
21826         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
21827         out-of-bounds array accesses.
21828
21829 2010-05-25  Richard Guenther  <rguenther@suse.de>
21830
21831         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
21832         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
21833         (run_gcc): Re-organize to make cleanup easier.
21834
21835 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
21836
21837         * config/s390/s390.c (optimization_options): Fix and move the
21838         flag_prefetch_loop_arrays override ...
21839         (override_options): ... here.
21840
21841 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
21842
21843         * diagnostic.c: Don't include plugin.h.
21844         (diagnostic_report_diagnostic): Don't handle plugins specially
21845         here.  Pass context to internal_error callback.
21846         * diagnostic.h (struct diagnostic_context): Add context parameter
21847         to internal_error callback.
21848         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
21849         * plugin.h (struct diagnostic_context): Declare.
21850         (warn_if_plugins, plugins_internal_error_function): Declare.
21851         * toplev.c (general_init): Set global_dc->internal_error.
21852         * Makefile.in (diagnostic.o): Update dependencies.
21853
21854 2010-05-25  Iain Sandoe  <iains@gcc.gnu.org>
21855
21856         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
21857         * config/rs6000/t-darwin64: New.
21858         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
21859         build crt2.
21860
21861 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
21862
21863         PR 44203
21864         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
21865         match the original (and intended) behaviour before r159557.  This
21866         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
21867         in two ways.
21868
21869 2010-05-25  Richard Guenther  <rguenther@suse.de>
21870
21871         * doc/invoke.texi: Document -Ofast.
21872         * target.h (struct gcc_target): Add handle_ofast.
21873         * target-def.h (TARGET_HANDLE_OFAST): Add.
21874         (TARGET_INITIALIZER): Adjust.
21875         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
21876         * common.opt (Ofast): Add.
21877
21878 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
21879
21880         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
21881         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
21882
21883 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
21884
21885         PR target/43610
21886         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
21887         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
21888         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
21889         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
21890
21891 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
21892
21893         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
21894         DW_OP_minus with negated offset instead of DW_OP_plus.
21895         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
21896
21897 2010-05-25  Wei Guozhi  <carrot@google.com>
21898
21899         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
21900         tst instruction and a new alternative.
21901         * config/arm/constraints.md (Pu): New constraint.
21902
21903 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
21904
21905         * function.c (assign_stack_local_1): Initialize variable
21906         to avoid warning when bootstrapping at -O3.
21907
21908 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
21909
21910         * configure.ac (all_lang_makefiles): Remove everything related to it.
21911         * configure: Regenerate.
21912         * Makefile.in: Fix reference to ada Make-lang.in.
21913         Remove support for LANG_MAKEFILES.
21914
21915 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
21916             Sandra Loosemore  <sandra@codesourcery.com>
21917
21918         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
21919         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
21920         description.  Add arm_neon_fp16_ok.
21921         (Add Options): Add arm_neon and arm_neon_fp16.
21922
21923 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
21924
21925         * diagnostic.c: Don't include flags.h.
21926         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
21927         context parameters.  Check flags in the context passed as a parameter.
21928         (diagnostic_build_prefix): Add context parameter.  Check
21929         show_column flag in context.
21930         (diagnostic_action_after_output): Check fatal_errors flag in context.
21931         (diagnostic_report_current_module): Check show_column flag in context.
21932         (default_diagnostic_starter): Update call to
21933         diagnostic_build_prefix.
21934         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
21935         (emit_diagnostic): Pass context to permissive_error_kind.
21936         (permerror): Pass context to permissive_error_kind.
21937         * diagnostic.h (struct diagnostic_context): Add show_column,
21938         pedantic_errors, permissive and fatal_errors fields.
21939         (diagnostic_build_prefix): Update prototype.
21940         * langhooks.c
21941         * toplev.c (process_options): Set flags in global_dc from
21942         flag_show_column, flag_pedantic_errors, flag_permissive,
21943         flag_fatal_errors.
21944         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
21945         to diagnostic_build_prefix.
21946         * Makefile.in (diagnostic.o): Update dependencies.
21947
21948 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
21949
21950         * config/i386/ia32intrin.h (__crc32q): Define only if
21951         __SSE4_2__ is defined.
21952
21953 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
21954
21955         PR target/44132
21956         PR middle-end/43602
21957         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
21958         DECL_VISIBILITY_SPECIFIED.
21959         (emutls_decl): Set DECL_PRESERVE_P and copy
21960         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
21961         (emutls_finalize_control_var): New callback.
21962         (emutls_finish): Finalize emutls control variables.
21963         * toplev.c (compile_file): Move the call to emutls_finish ()
21964         before varpool_assemble_pending_decls ().
21965
21966 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
21967
21968         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
21969         added to the preprocessor condition.
21970
21971 2010-05-24  Paul Brook  <paul@codesourcery.com>
21972
21973         * gengtype-lex.l: Add HARD_REG_SET.
21974         * expr.c (expand_expr_real_1): Record writes to hard registers.
21975         * function.c (rtl_data): Add asm_clobbers.
21976         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
21977         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
21978         Use crtl->asm_clobbers.
21979
21980 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
21981
21982         * doc/makefile.texi (Makefile): Mention stages 'profile'
21983         and 'feedback' for profiledbootstrap.
21984
21985 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
21986
21987         PR target/44245
21988         * config/i386/i386.c (def_builtin): Properly check
21989         OPTION_MASK_ISA_64BIT.
21990
21991 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
21992
21993         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
21994         typedefs with different but compatible types.  Allow duplicate
21995         typedefs with the same type except for pedantic non-C1X, but give
21996         warning for variably modified types.
21997         * c-typeck.c (tagged_types_tu_compatible_p,
21998         function_types_compatible_p, type_lists_compatible_p,
21999         comptypes_internal): Add parameter different_types_p; set
22000         *different_types_p for different but compatible types.  All
22001         callers changed.
22002         (comptypes_check_different_types): New.
22003         * c-tree.h (comptypes_check_different_types): Declare.
22004
22005 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
22006
22007         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
22008         * jump.c: Include basic-block.h.
22009         * profile.c: Likewise.
22010         * tree-profile.c: Likewise.
22011         * coverage.c: Likewise.
22012         * basic-block.h (optimize_function_for_size_p): Move to function.h.
22013         (optimize_function_for_speed_p): Likewise.
22014         * function.h (optimize_function_for_size_p,
22015         optimize_function_for_speed_p): Moved here from basic-block.h.
22016         * Makefile.in: Update dependencies.
22017
22018 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
22019
22020         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
22021         before calling make; allow override through $MAKE.
22022         * doc/invoke.texi (Optimize Options): Document override.
22023
22024 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
22025
22026         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
22027         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
22028         (rs6000_mode_dependent_address_ptr): Make static.
22029         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
22030         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
22031         Remove.
22032
22033 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
22034
22035         PR target/43869
22036         * config/i386/i386.c: Make sure that the correct regparm is passed.
22037
22038 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
22039
22040         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
22041         * sbitmap.c: ...to here to internalize sbitmap element access.
22042         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
22043         Explain why basic-block.h is included.
22044         * function.h: Include tm.h for CUMULATIVE_ARGS.
22045         * Makefile.in: Update dependencies.
22046
22047 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
22048
22049         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
22050         New core types.
22051         * sbitmap.h (struct sbitmap_def): Do not typedef here.
22052         * sbitmap.c: Include sbitmap.h.
22053         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
22054         hard-reg-set.h.  Split everything related to regsets out from here...
22055         * regset.h: ...to here.  New file.
22056         * df.h: Include regset.h and sbitmap.h.
22057         * tree-flow.h: Likewise.
22058         * cfgloop.h: Likewise.
22059         * except.h: Do not include sbitmap.h.  Include hashtab.h.
22060         * cgraph.h: Include vec.h and function.h.
22061         * reload.h (struct insn_chain): Change types of live_throughout
22062         and dead_or_set from regset_head to bitmap_head.
22063         (compute_use_by_pseudos): Be defined also if regset.h is not included.
22064         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
22065         spilled_regs from regset_head to bitmap_head to avoid dependency
22066         in regset.h.
22067         * sel-sched-ir.h: Include regset.h.
22068         * reload.c: Include df.h before reload.h.
22069         * caller-save.c: Likewise.
22070         * reload1.c: Likewise.
22071         * ira.c: Likewise.
22072         (mark_elimination): Update type of r to bitmap, consistent with
22073         DF_LR_IN.
22074         * dominance.c: Include bitmap.h.
22075         * modulo-sched.c: Include df.h.
22076         * cfganal.c: Include bitmap.h and sbitmap.h.
22077         * cfgbuild.c: Include sbitmap.h.
22078         * lcm.c: Include sbitmap.h.
22079         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
22080         * domwalk.c: Include sbitmap.h, exclude ggc.h.
22081         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
22082         * cselib.c: Include bitmap.h.
22083         * tree-optimize.c: Include regset.h.
22084         * stmt.c: Include bitmap.h.
22085         * Makefile.in: Update dependencies.
22086
22087 2010-05-22  Jan Hubicka  <jh@suse.cz>
22088
22089         * cgraph.h (struct varpool_node): Add same_comdat_group.
22090         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
22091         pointer.
22092         (output_varpool): Update call of lto_output_varpool_node.
22093         (input_varpool): Read same_comdat_group pointer.
22094         (input_varpool_1): Fixup same_comdat_group pointer.
22095         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
22096         group is needed, all are.
22097         * varpool.c (varpool_remove_node): Remove node from same comdat group
22098         linklist too.
22099         (varpool_analyze_pending_decls): Walk same comdat groups.
22100
22101 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
22102
22103         * rtl.h (union rtunion_def): Remove rt_bit member.
22104         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
22105         * print-rtl (print_rtx): Do not print the member.
22106         * gengtype.c (adjust_field_rtx_def): Do not handle it.
22107         * gengenrtl.c (type_from_format): Likewise.
22108         (accessor_from_format): Likewise.
22109
22110 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
22111
22112         * dbgcnt.c: Include toplev.h instead of errors.h.
22113         * ira-emit.c: Don't include errors.h.
22114         * ira.c: Include toplev.h instead of errors.h.
22115         * lto-compress.c: Include toplev.h instead of errors.h.
22116         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
22117         ira.o, dbgcnt.o): Update dependencies.
22118
22119 2010-05-22  Richard Guenther  <rguenther@suse.de>
22120
22121         * gimple.c (gimple_types_compatible_p): Check type qualifications
22122         before merging pointer to complete and pointer to incomplete type.
22123         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
22124         we use our own resolution algorithm.  The gold linker plugin
22125         doesn't do the job we want it to do here.
22126
22127 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
22128
22129         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
22130         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
22131         (sparc_mode_dependent_address_p): New function.
22132
22133 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
22134
22135         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
22136
22137         * timevar.c: Do not include any core headers.
22138         (timevar_print): De-i18n-ize.
22139         (print_time): Likewise.
22140         * timevar.h (timevar_push, timevar_pop): Make inline functions.
22141
22142 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
22143
22144         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
22145         langhooks-def.h.
22146         (diagnostic_initialize): Initialize x_data not last_function.
22147         (diagnostic_report_current_function): Move to tree-diagnostic.c.
22148         (default_diagnostic_starter): Call
22149         diagnostic_report_current_module not
22150         diagnostic_report_current_function.
22151         (diagnostic_report_diagnostic): Initialize x_data not
22152         abstract_origin.
22153         (verbatim): Likewise.
22154         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
22155         x_data.
22156         (struct diagnostic_context): Change last_function to x_data.
22157         (diagnostic_auxiliary_data): Replace with
22158         diagnostic_context_auxiliary_data and
22159         diagnostic_info_auxiliary_data.
22160         (diagnostic_last_function_changed, diagnostic_set_last_function,
22161         diagnostic_report_current_function): Move to tree-diagnostic.h.
22162         (print_declaration, dump_generic_node, print_generic_stmt,
22163         print_generic_stmt_indented, print_generic_expr,
22164         print_generic_decl, debug_c_tree, dump_omp_clauses,
22165         print_call_name, debug_generic_expr, debug_generic_stmt,
22166         debug_tree_chain, default_tree_printer): Move to
22167         tree-pretty-print.h.
22168         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
22169         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
22170         gimple-pretty-print.h.
22171         * pretty-print.c: Don't include tree.h
22172         (pp_base_format): Don't handle %K here.
22173         (pp_base_tree_identifier): Move to tree-pretty-print.c.
22174         * pretty-print.h (text_info): Change abstract_origin to x_data.
22175         (pp_tree_identifier, pp_unsupported_tree,
22176         pp_base_tree_identifier): Move to tree-pretty-print.h.
22177         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
22178         tree-pretty-print.h: New files.
22179         * tree-pretty-print.c: Include tree-pretty-print.h.
22180         (percent_K_format): New.  Moved from pretty-print.c.
22181         (pp_base_tree_identifier): Move from pretty-print.c.
22182         * c-objc-common.c: Include tree-pretty-print.h.
22183         (c_tree_printer): Handle %K here.
22184         * langhooks.c: Include tree-diagnostic.h.
22185         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
22186         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
22187         (default_tree_printer): Handle %K using percent_K_format.
22188         (general_init): Use default_tree_diagnostic_starter.
22189         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
22190         (free_lang_data): Use default_tree_diagnostic_starter.
22191         * c-pretty-print.c: Include tree-pretty-print.h.
22192         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
22193         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
22194         * dwarf2out.c: Include tree-pretty-print.h.
22195         * except.c: Include tree-pretty-print.h.
22196         * gimple-pretty-print.c: Include tree-pretty-print.h and
22197         gimple-pretty-print.h.
22198         * gimplify.c: Include tree-pretty-print.h.
22199         * graphite-poly.c: Include tree-pretty-print.h and
22200         gimple-pretty-print.h.
22201         * ipa-cp.c: Include tree-pretty-print.h.
22202         * ipa-inline.c: Include gimple-pretty-print.h.
22203         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
22204         * ipa-pure-const.c: Include gimple-pretty-print.h.
22205         * ipa-struct-reorg.c: Include tree-pretty-print.h and
22206         gimple-pretty-print.h.
22207         * ipa-type-escape.c: Include tree-pretty-print.h.
22208         * print-rtl.c: Include tree-pretty-print.h.
22209         * print-tree.c: Include gimple-pretty-print.h.
22210         * sese.c: Include tree-pretty-print.h.
22211         * tree-affine.c: Include tree-pretty-print.h.
22212         * tree-browser.c: Include tree-pretty-print.h.
22213         * tree-call-cdce.c: Include gimple-pretty-print.h.
22214         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
22215         * tree-chrec.c: Include tree-pretty-print.h.
22216         * tree-data-ref.c: Include tree-pretty-print.h and
22217         gimple-pretty-print.h.
22218         * tree-dfa.c: Include tree-pretty-print.h.
22219         * tree-if-conv.c: Include tree-pretty-print.h and
22220         gimple-pretty-print.h.
22221         * tree-inline.c: Include tree-pretty-print.h.
22222         * tree-into-ssa.c: Include tree-pretty-print.h and
22223         gimple-pretty-print.h.
22224         * tree-nrv.c: Include tree-pretty-print.h.
22225         * tree-object-size.c: Include tree-pretty-print.h and
22226         gimple-pretty-print.h.
22227         * tree-outof-ssa.c: Include tree-pretty-print.h and
22228         gimple-pretty-print.h.
22229         * tree-parloops.c: Include tree-pretty-print.h and
22230         gimple-pretty-print.h.
22231         * tree-predcom.c: Include tree-pretty-print.h and
22232         gimple-pretty-print.h.
22233         * tree-scalar-evolution.c: Include tree-pretty-print.h and
22234         gimple-pretty-print.h.
22235         * tree-sra.c: Include tree-pretty-print.h.
22236         * tree-ssa-address.c: Include tree-pretty-print.h.
22237         * tree-ssa-alias.c: Include tree-pretty-print.h.
22238         * tree-ssa-ccp.c: Include tree-pretty-print.h and
22239         gimple-pretty-print.h.
22240         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
22241         * tree-ssa-copy.c: Include tree-pretty-print.h and
22242         gimple-pretty-print.h.
22243         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
22244         * tree-ssa-dce.c: Include tree-pretty-print.h and
22245         gimple-pretty-print.h.
22246         * tree-ssa-dom.c: Include tree-pretty-print.h and
22247         gimple-pretty-print.h.
22248         * tree-ssa-dse.c: Include gimple-pretty-print.h.
22249         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
22250         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
22251         * tree-ssa-live.c: Include tree-pretty-print.h and
22252         gimple-pretty-print.h.
22253         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
22254         gimple-pretty-print.h.
22255         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
22256         gimple-pretty-print.h.
22257         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
22258         gimple-pretty-print.h.
22259         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
22260         gimple-pretty-print.h.
22261         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
22262         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
22263         * tree-ssa-operands.c: Include tree-pretty-print.h and
22264         gimple-pretty-print.h.
22265         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
22266         gimple-pretty-print.h.
22267         * tree-ssa-pre.c: Include tree-pretty-print.h and
22268         gimple-pretty-print.h.
22269         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
22270         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
22271         gimple-pretty-print.h.
22272         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
22273         gimple-pretty-print.h.
22274         * tree-ssa-sink.c: Include gimple-pretty-print.h.
22275         * tree-ssa-ter.c: Include tree-pretty-print.h and
22276         gimple-pretty-print.h.
22277         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
22278         * tree-ssa.c: Include tree-pretty-print.h and
22279         gimple-pretty-print.h.
22280         * tree-stdarg.c: Include gimple-pretty-print.h.
22281         * tree-switch-conversion.c: Include gimple-pretty-print.h.
22282         * tree-tailcall.c: Include tree-pretty-print.h and
22283         gimple-pretty-print.h.
22284         * tree-vect-data-refs.c: Include tree-pretty-print.h and
22285         gimple-pretty-print.h.
22286         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
22287         gimple-pretty-print.h.
22288         * tree-vect-loop.c: Include tree-pretty-print.h and
22289         gimple-pretty-print.h.
22290         * tree-vect-patterns.c: Include gimple-pretty-print.h.
22291         * tree-vect-slp.c: Include tree-pretty-print.h and
22292         gimple-pretty-print.h.
22293         * tree-vect-stmts.c: Include tree-pretty-print.h and
22294         gimple-pretty-print.h.
22295         * tree-vectorizer.c: Include tree-pretty-print.h.
22296         * tree-vrp.c: Include tree-pretty-print.h and
22297         gimple-pretty-print.h.
22298         * value-prof.c: Include tree-pretty-print.h and
22299         gimple-pretty-print.h.
22300         * var-tracking.c: Include tree-pretty-print.h.
22301         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
22302         (tree-diagnostic.o): New dependencies.
22303         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
22304         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
22305         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
22306         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
22307         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
22308         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
22309         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
22310         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
22311         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
22312         tree-ssa-address.o, tree-ssa-loop-niter.o,
22313         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
22314         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
22315         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
22316         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
22317         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
22318         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
22319         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
22320         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
22321         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
22322         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
22323         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
22324         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
22325         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
22326         tree-switch-conversion.o, var-tracking.o, value-prof.o,
22327         cfgexpand.o, pretty-print.o): Update dependencies.
22328
22329 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
22330
22331         * tree-ssa-structalias.c: Remove tm_p.h from include.
22332
22333 2010-05-21  Jeff Law  <law@redhat.com>
22334
22335         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
22336
22337 2010-05-21  Jason Merrill  <jason@redhat.com>
22338
22339         * tree-eh.c (cleanup_is_dead_in): New.
22340         (lower_try_finally): Don't generate a dead cleanup region.
22341         (lower_cleanup): Likewise.
22342
22343 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
22344
22345         PR debug/44223
22346         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
22347         unchain each use from the cyclic next_regno_use chain first.
22348
22349 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
22350
22351         * real: Do not include gmp.h, mpfr.h, and mpc.h.
22352         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
22353         (real_value_negate, real_value_abs): New prototypes.
22354         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
22355         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
22356         new include file for interface between MPFR and REAL_VALUE_TYPE.
22357         * real.c: Include realmpfr.h.
22358         (real_arithmetic2): Remove legacy function.
22359         (real_value_negate): New.
22360         (real_value_abs): New.
22361         (mfpr_from_real, real_from_mpfr): Move from here...
22362         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
22363         * builtins.c: Include realmpfr.h.
22364         * fold-const.c: Include realmpfr.h.
22365         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
22366         (fold_negate_const): Likewise.
22367         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
22368         * toplev.c: Include realmpfr.h.
22369         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
22370         and real_value_negate.
22371         * fixed-value.c (check_real_for_fixed_mode): Likewise.
22372         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
22373         (vfp3_const_double_index): Likewise.
22374         (arm_print_operand): Likewise.
22375         * Makefile.in: Update dependencies.
22376
22377 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
22378
22379         * config/s390/s390.c (override_options): Increase the default
22380         of max-completely-peel-times.
22381
22382 2010-05-21  Julian Brown  <julian@codesourcery.com>
22383             Mark Mitchell  <mark@codesourcery.com>
22384
22385         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
22386         sibling calls for Thumb-1.
22387         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
22388         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
22389         Thumb-2.
22390         (*call_insn, *call_value_insn): Don't use for Thumb-2.
22391         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
22392         for Thumb-2.
22393         (return): New expander.
22394         (*arm_return): New name for ARM return insn.
22395         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
22396
22397 2010-05-19  Joel Sherrill  <joel.sherrill@oarcorp.com>
22398
22399         * config.gcc (sparc64-*-rtems*): New target.
22400
22401 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
22402
22403         * tree.c (build_function_decl_skip_args): Fix grammar.
22404         (build_function_type_list_1): Fix typos, adjust formatting.
22405
22406 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
22407
22408         * tree.h: Include real.h and fixed-value.h as basic datatypes.
22409         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
22410         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
22411         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
22412         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
22413         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
22414         tree-pretty-print.c, tree-loop-distribution.c,
22415         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
22416         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
22417         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
22418         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
22419         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
22420         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
22421         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
22422         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
22423         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
22424         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
22425         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
22426         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
22427         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
22428         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
22429         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
22430         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
22431         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
22432         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
22433         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
22434         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
22435         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
22436         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
22437         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
22438         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
22439         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
22440         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
22441         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
22442         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
22443         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
22444         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
22445         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
22446         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
22447         config/score/score7.c, config/score/score.c, config/arm/arm.c,
22448         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
22449         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
22450         config/bfin/bfin.c: Clean up redundant includes.
22451         * Makefile.in: Update accordingly.
22452
22453 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
22454
22455         PR middle-end/44204
22456         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
22457         statement has no arguments.
22458
22459 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
22460
22461         PR/44139
22462         * varasm.c (emutls_decl): Merge attributes to new decl.
22463
22464 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
22465
22466         PR middle-end/44101
22467         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
22468         around the uniquized constructor if its type requires a conversion.
22469
22470 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
22471
22472         PR debug/44205
22473         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
22474         at -O0 goto_locus of any of the incoming edges differs from
22475         goto_locus of outgoing edge, or gimple_location of any of the
22476         labels differs.
22477
22478 2009-09-14  Vladimir Makarov  <vmakarov@redhat.com>
22479
22480         * ira.c (ira_non_ordered_class_hard_regs): Define.
22481         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
22482         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
22483         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
22484         cost of unaligned hard regs when allocating multi-reg pseudos.
22485
22486 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
22487
22488         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
22489         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
22490         for TARGET_NO_FLOAT.
22491         * config/mips/mips.c (mips_file_start): Expand conditional expression
22492         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
22493         (mips_override_options): Move -mno-float override -msoft-float and
22494         -mhard-float.
22495         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
22496         Condition(TARGET_SUPPORTS_NO_FLOAT).
22497         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
22498         __mips_no_float here.
22499         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
22500         (TARGET_SUPPORTS_NO_FLOAT): Define.
22501         * config/mips/sdemtk.opt: Delete.
22502
22503 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
22504
22505         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
22506
22507 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
22508
22509         PR target/43733
22510         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
22511         * configure: Regenerate.
22512         * config.in: Regenerate.
22513         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
22514         instead of sahf only for 64bit targets.
22515
22516 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
22517
22518         PR debug/44178
22519         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
22520         setup_ref_regs for DEBUG_INSNs.
22521
22522 2010-05-20  Jan Hubicka  <jh@suse.cz>
22523
22524         PR middle-end/44197
22525         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
22526
22527 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
22528
22529         PR bootstrap/43870
22530         * df-scan.c (df_ref_compare): Stabilize sort.
22531
22532 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
22533
22534         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
22535         argument.  Don't use DW_OP_piece if offset is non-zero,
22536         put offset into second DW_OP_bit_piece argument.
22537         (dw_sra_loc_expr): Adjust callers.  For memory expressions
22538         compute offset.
22539
22540 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
22541
22542         PR target/44202
22543         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
22544         settings for 16-bit-constant "addo" alternative.
22545
22546 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
22547
22548         * config/mips/mips-dsp.md (add<DSPV:mode>3,
22549         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
22550
22551         PR target/43764
22552         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
22553         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
22554         Use it.
22555
22556 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
22557
22558         * diagnostic.c (FLOAT, FFS): Don't undefine.
22559         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
22560         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
22561         include ordering.
22562
22563 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
22564
22565         * combine.c (propagate_for_debug): Call make_compound_operation
22566         on the source value.
22567         (try_combine): When implementing a split chosen by find_split_point,
22568         either copy i2src or set it to null.  Assert that i2src is not null
22569         before substituting into CALL_INSN_FUNCTION_USAGE.
22570
22571 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
22572
22573         * double-int.h (double_int_ior): New function.
22574         * tree.h (build_int_cst_wide_type): Remove.
22575         * tree.c (build_int_cst_wide_type): Remove.
22576         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
22577         of build_int_cst_wide_type.
22578         * stor-layout.c (set_sizetype): (Ditto.).
22579         * dojump.c (do_jump): Use build_int_cstu instead of
22580         build_int_cst_wide_type.
22581
22582 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
22583
22584         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
22585         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
22586         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
22587         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
22588         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
22589         propagate the 'data' argument to copy_tree_r.
22590         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
22591         Propagate 'data' argument to walk_tree.
22592         (copy_if_shared): New function.
22593         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
22594         (unmark_visited): New function.
22595         (unshare_body): Call copy_if_shared instead of doing it manually.
22596         (unvisit_body): Call unmark_visited instead of doing it manually.
22597
22598 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
22599
22600         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
22601         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
22602         * hooks.c: Likewise.
22603         * target-def.h (TARGET_FOLD_BUILTIN): Define to
22604         hook_tree_tree_int_treep_bool_null.
22605         * target.h (struct gcc_target): Update signature of fold_builtin
22606         field.
22607         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
22608         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
22609         instead of the call expression.
22610         (fold_builtin_call_array): Pass n and argarray directly.
22611         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
22612         consing a list.
22613         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
22614         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
22615         `i' and use it in place of `arity'.
22616         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
22617         Dereference `args' directly.
22618         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
22619
22620 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22621
22622         * doc/sourcebuild.texi (Effective-Target Keywords): Document
22623         3dnow, sse3, sse2.
22624         (Directives): Document optional dg-require-effective-target
22625         selector.
22626
22627 2010-05-19  Richard Guenther  <rguenther@suse.de>
22628
22629         PR lto/44196
22630         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
22631
22632 2010-05-19  Richard Guenther  <rguenther@suse.de>
22633
22634         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
22635         * common.opt (fwhopr=): New.
22636         * opts.c (common_handle_option): Handle OPT_fwhopr.
22637         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
22638         * collect2.c (main): Match -fwhopr*.
22639         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
22640         Execute ltrans stage in parallel when jobs is bigger than 1.
22641
22642 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22643
22644         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
22645         pentiumpro on Solaris 8/x86 with Sun as.
22646         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
22647         hidden alias bug.
22648         (gcc_cv_as_ix86_quad): Check for .quad directive.
22649         * configure: Regenerate.
22650         * config.in: Regenerate.
22651         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
22652
22653 2010-05-19  Martin Jambor  <mjambor@suse.cz>
22654
22655         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
22656         also for indirect edges.  Actual printing moved...
22657         (ipa_print_node_jump_functions_for_edge): ...here.
22658         (ipa_compute_jump_functions): Renamed to
22659         ipa_compute_jump_functions_for_edge and made static.
22660         (ipa_compute_jump_functions): New function.
22661         (make_edge_direct_to_target): Check if the number of arguments on
22662         the newly direct edge is the same as the number of parametrs of
22663         the callee.
22664         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
22665         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
22666         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
22667         analysis functions unconditionally, call the new
22668         ipa_analyze_params_uses on the node instead of every edge.
22669
22670 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
22671
22672         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
22673         to tree.
22674         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
22675         also checks for a constant int vs.  non-constant but
22676         loop-invariant steps.
22677         (find_or_create_group): Change the sort algorithm to only consider
22678         steps that are constant ints.
22679         (idx_analyze_ref): Adopt code to handle a tree instead of a
22680         HOST_WIDE_INT for step.
22681         (gather_memory_references_ref): Handle tree instead of int and be
22682         prepared to see a NULL_TREE.
22683         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
22684         prefetches if the step cannot be calculated at compile time.
22685         (issue_prefetch_ref): Issue prefetches for non-constant but
22686         loop-invariant steps.
22687
22688 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
22689
22690         Revert:
22691         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
22692
22693         * tree.h (build_call_list): Remove.
22694         * tree.c (build_call_list): Remove.
22695
22696 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
22697
22698         * tree.h (build_call_list): Remove.
22699         * tree.c (build_call_list): Remove.
22700
22701 2010-05-18  Jan Hubicka  <jh@suse.cz>
22702
22703         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
22704
22705 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
22706
22707         PR rtl-optimization/43332
22708         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
22709
22710 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
22711
22712         * tree.h (build_int_cstu): Implement as static inline.
22713         * tree.c (build_int_cstu): Remove function.
22714         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
22715         sign extended.
22716
22717 2010-05-18  Richard Guenther  <rguenther@suse.de>
22718
22719         PR lto/44143
22720         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
22721         (debug): Initialize from -save-temps.
22722         (collect_execute): Print command-line when verbose.
22723         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
22724         for ltrans invocation.  Produce -dumpbase flag again.
22725         (process_args): Remove.
22726         (main): Simplify.
22727         * collect2.c (maybe_run_lto_and_relink): Only pass object
22728         files to lto-wrapper.
22729         * gcc.c (LINK_COMMAND_SPEC): Likewise.
22730
22731 2010-05-18  Jan Hubicka  <jh@suse.cz>
22732
22733         * opts.c (decode_options): Do not disable whopr at ipa_cp.
22734         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
22735
22736 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
22737
22738         PR lto/44184
22739         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
22740         in a GIMPLE_ASM.
22741         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
22742         in a GIMPLE_ASM.
22743
22744 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
22745
22746         PR debug/41371
22747         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
22748         rtx_equal_p inline.
22749
22750 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
22751
22752         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
22753         lto-macho as lto_binary_reader.
22754
22755         * darwin.c (darwin_asm_named_section): Do not add assembler comment
22756         after .section directive; just print it before the directive instead.
22757
22758 2010-05-17  Jan Hubicka  <jh@suse.cz>
22759
22760         * cgraph.c (cgraph_create_virtual_clone): Only check
22761         versionable_function_p when not in wpa and checking is enabled.
22762         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
22763         there are no more functions to materialize.
22764
22765 2010-05-17  Jan Hubicka  <jh@suse.cz>
22766
22767         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
22768         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
22769         New functions.
22770         (output_cgraph): Call output_cgraph_opt_summary.
22771         (input_cgrpah): Call input_cgraph_opt_summary.
22772         (output_cgraph_opt_summary_p, output_node_opt_summary,
22773         input_node_opt_summary, input_cgraph_opt_section): New functions.
22774         * lto-section-in.c (lto_section_name): Add cgraphopt.
22775         * tree-inline.c (tree_function_versioning): Handle parm_num.
22776         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
22777         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
22778
22779 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
22780
22781         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
22782         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
22783         the insn to prefetch ratio heuristic to loops with known trip count.
22784
22785 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
22786
22787         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
22788         (schedule_prefetches): Do not generate a prefetch if the unroll factor
22789         is far from what is required by the prefetch.
22790
22791 2010-05-17  Jan Hubicka  <jh@suse.cz>
22792
22793         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
22794         (ipcp_estimate_growth): Likewise.
22795         (ipcp_const_param_count): Likewise.
22796         (ipcp_insert_stage): Likewise.
22797         * ipa-prop.c (visit_load_for_mod_analysis): New function.
22798         (visit_store_addr_for_mod_analysis): Set used flag.
22799         (ipa_detect_param_modifications): Set used flag for SSE params;
22800         update use of walk_stmt_load_store_addr_ops.
22801         (ipa_print_node_params): Print used flag.
22802         (ipa_write_node_info): Stream used flag.
22803         (ipa_read_node_info): Likewise.
22804         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
22805         (ipa_is_param_used): New function.
22806         (lto_ipa_fixup_call_notes): Remove unused declaration.
22807
22808 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22809
22810         PR target/44074
22811         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
22812         * configure: Regenerate.
22813         * config.in: Regenerate.
22814         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
22815         !HAVE_AS_IX86_REP_LOCK_PREFIX.
22816         Don't emit whitespace.
22817         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
22818         (*rep_movsi): Likewise.
22819         (*rep_movsi_rex64): Likewise.
22820         (*rep_movqi): Likewise.
22821         (*rep_movqi_rex64): Likewise.
22822         (*rep_stosdi_rex64): Likewise.
22823         (*rep_stossi): Likewise.
22824         (*rep_stossi_rex64): Likewise.
22825         (*rep_stosqi): Likewise.
22826         (*rep_stosqi_rex64): Likewise.
22827         (*cmpstrnqi_nz_1): Use {%;} after repz.
22828         (*cmpstrnqi_nz_rex_1): Likewise.
22829         (*cmpstrnqi_1): Likewise.
22830         (*cmpstrnqi_rex_1): Likewise.
22831         (*strlenqi_1): Use {%;} after repnz.
22832         (*strlenqi_rex_1): Likewise.
22833         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
22834         (*sync_compare_and_swap<mode>): Likewise.
22835         (sync_double_compare_and_swap<mode>): Likewise.
22836         (*sync_double_compare_and_swapdi_pic): Likewise.
22837         (sync_old_add<mode>): Likewise.
22838         (sync_add<mode>): Likewise.
22839         (sync_sub<mode>): Likewise.
22840         (sync_<code><mode>): Likewise.
22841
22842 2010-05-17  Martin Jambor  <mjambor@suse.cz>
22843
22844         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
22845         otr_token and polymorphic.
22846         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
22847         (cgraph_clone_edge): Copy the above fields.
22848         * tree.c (get_binfo_at_offset): New function.
22849         * tree.h (get_binfo_at_offset): Declare.
22850         * ipa-prop.h (enum jump_func_type): Added known_type jump function
22851         type, reordered items, updated comments.
22852         (union jump_func_value): Added base_type field, reordered fields.
22853         (enum ipa_lattice_type): Moved down in the file.
22854         (struct ipa_param_descriptor): New field polymorphic.
22855         (ipa_is_param_polymorphic): New function.
22856         * ipa-prop.c: Include gimple.h and gimple-fold.h.
22857         (ipa_print_node_jump_functions): Print known type jump functions.
22858         (compute_complex_pass_through): Renamed to...
22859         (compute_complex_assign_jump_func): this.
22860         (compute_complex_ancestor_jump_func): New function.
22861         (compute_known_type_jump_func): Likewise.
22862         (compute_scalar_jump_functions): Create known type and complex ancestor
22863         jump functions.
22864         (ipa_note_param_call): New parameter polymorphic, set the corresponding
22865         flag in the call note accordingly.
22866         (ipa_analyze_call_uses): Renamed to...
22867         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
22868         variable var only in the block where it is used.
22869         (ipa_analyze_virtual_call_uses): New function.
22870         (ipa_analyze_call_uses): Likewise.
22871         (combine_known_type_and_ancestor_jfs): Likewise.
22872         (update_jump_functions_after_inlining): Implemented handling of a
22873         number of new jump function types combination.
22874         (print_edge_addition_message): Removed.
22875         (make_edge_direct_to_target): New function.
22876         (try_make_edge_direct_simple_call): Likewise.
22877         (try_make_edge_direct_virtual_call): Likewise.
22878         (update_call_notes_after_inlining): Renamed to...
22879         (update_indirect_edges_after_inlining): this.  Moved edge creation for
22880         indirect calls to try_make_edge_direct_simple_call, also calls
22881         try_make_edge_direct_virtual_call for virtual calls.
22882         (ipa_print_node_params): Changed the header message.
22883         (ipa_write_jump_function): Stream also known type jump functions.
22884         (ipa_read_jump_function): Likewise.
22885         (ipa_write_indirect_edge_info): Stream new fields in
22886         cgraph_indirect_call_info.
22887         (ipa_read_indirect_edge_info): Likewise.
22888         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
22889         GIMPLE_FOLD_H.
22890
22891 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22892
22893         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
22894
22895 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
22896
22897         * tree.h (CALL_EXPR_ARGS): Delete.
22898         (call_expr_arglist): Delete.
22899         * tree.c (call_expr_arglist): Delete.
22900         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
22901         targetm.fold_builtin.
22902         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
22903         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
22904         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
22905         arglist parameter.  Use CALL_EXPR_ARG.
22906         (picochip_expand_builtin_3op): Likewise.
22907         (picochip_expand_builtin_2opvoid): Likewise.
22908         (picochip_expand_array_get): Likewise.
22909         (picochip_expand_array_put): Likewise.
22910         (picochip_expand_array_testport): Likewise.
22911         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
22912         rather than arglist.
22913         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
22914         CALL_EXPR_ARGS.
22915         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
22916         than TREE_VALUE and TREE_CHAIN.
22917         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
22918         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
22919         the arglist.
22920
22921 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
22922
22923         PR bootstrap/42347
22924         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
22925         to have no fallthru edge.
22926
22927         PR middle-end/44102
22928         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
22929         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
22930         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
22931         add BARRIER after previous bb if needed.
22932
22933 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
22934
22935         * tree.c (build_function_type_list_1): Remove bogus assert condition.
22936
22937 2010-05-17  Alan Modra  <amodra@gmail.com>
22938
22939         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
22940         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
22941         with copy_reg rtx param.
22942         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
22943         Correct cases where code for ABI_V4 did not initialise the reg
22944         used to access frame.  Also leave frame_reg_rtx as sp for large
22945         frames that save no regs.
22946
22947 2010-05-17  Martin Jambor  <mjambor@suse.cz>
22948
22949         PR middle-end/44133
22950         * tree-sra.c (create_access_replacement): New parameter rename, mark
22951         the replaement for renaming only when it is true.
22952         (get_access_replacement): Pass true in the rename parameter of
22953         create_access_replacement.
22954         (get_unrenamed_access_replacement): New function.
22955         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
22956         replacement declaration from it.
22957
22958 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
22959
22960         * function.c (try_fit_stack_local, add_frame_space): New static
22961         functions.
22962         (assign_stack_local_1): Use them.  Look for opportunities to use
22963         space previously wasted on alignment.
22964         * function.h (struct frame_space): New.
22965         (struct rtl_data): Add FRAME_SPACE_LIST member.
22966         * reload1.c (something_was_spilled): New static variable.
22967         (alter_reg): Set it.
22968         (reload): Test it in addition to testing if the frame size changed.
22969
22970 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
22971
22972         * config/s390/s390.c: Define sane prefetch settings and activate
22973         flag_prefetch_loop_arrays on -O3.
22974         * config/s390/s390.h: Declare that read can use write prefetch.
22975
22976 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
22977
22978         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
22979         build.
22980
22981 2010-05-16  Jan Hubicka  <jh@suse.cz>
22982
22983         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
22984         function body; do not check stdarg field of struct function.
22985
22986 2010-05-16  Jan Hubicka  <jh@suse.cz>
22987
22988         * cgraph.c (dump_cgraph_node): Dump versionable flag.
22989         * cgraph.h (cgraph_local_info): Add versionable flag.
22990         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
22991         (ipcp_versionable_function_p): Use it.
22992         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
22993         versionable flag.
22994
22995 2010-05-16  Jan Hubicka  <jh@suse.cz>
22996
22997         * cgraph.c (cgraph_clone_node): Take decl argument and insert
22998         clone into hash when it is different from orig.
22999         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
23000         * cgraph.h (cgraph_clone_node): Update prototype.
23001         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
23002         (lto_cgraph_encoder_delete): Delete body map.
23003         (lto_cgraph_encoder_size): Move to header.
23004         (lto_cgraph_encoder_encode_body_p,
23005         lto_set_cgraph_encoder_encode_body): New.
23006         (lto_output_node): Do not take written_decls argument; output clone_of
23007         pointer.
23008         (add_node_to): Add include_body_argument; call
23009         lto_set_cgraph_encoder_encode_body on master of the clone.
23010         (add_references): Update use of add_node_to.
23011         (compute_ltrans_boundary): Likewise.
23012         (output_cgraph): Do not create written_decls bitmap.
23013         (input_node): Take nodes argument; stream in clone_of correctly.
23014         (input_cgraph_1): Update use of input_node.
23015         * lto-streamer-out.c (lto_output): Use encoder info to decide
23016         what bodies to output.
23017         * ipa-inline.c (cgraph_clone_inlined_nodes,
23018         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
23019         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
23020         (lto_cgraph_encoder_size): Define here.
23021         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
23022         Declare.
23023
23024 2010-05-16  Richard Guenther  <rguenther@suse.de>
23025
23026         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
23027         -fipa-type-escape.
23028         * ipa-type-escape.c (gate_type_escape_vars): Run when
23029         -fipa-struct-reorg runs.
23030         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
23031         * common.opt (fipa-type-escape): Remove.
23032
23033 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
23034
23035         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
23036         (decode_options): Likewise.
23037         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
23038
23039 2010-05-16  Jan Hubicka  <jh@suse.cz>
23040
23041         * ipa.c (function_and_variable_visibility): Also bring local all
23042         aliases.
23043
23044 2010-05-16  Richard Guenther  <rguenther@suse.de>
23045
23046         * alias.c (nonoverlapping_memrefs_p): Remove use of
23047         IPA type-escape information.
23048
23049 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
23050
23051         * c-common.c (c_common_reswords): Add _Static_assert for C.
23052         * c-parser.c (c_token_starts_declaration,
23053         c_parser_next_token_starts_declaration,
23054         c_parser_static_assert_declaration_no_semi,
23055         c_parser_static_assert_declaration): New.
23056         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
23057         Handle static assertions if static_assert_ok.
23058         (c_parser_external_declaration, c_parser_declaration_or_fndef,
23059         c_parser_compound_statement_nostart, c_parser_label,
23060         c_parser_for_statement, c_parser_objc_methodprotolist,
23061         c_parser_omp_for_loop): All callers of
23062         c_parser_declaration_or_fndef changed.
23063         (c_parser_struct_declaration): Handle static assertions.
23064         (c_parser_compound_statement_nostart): Use
23065         c_parser_next_token_starts_declaration and
23066         c_token_starts_declaration to detect start of declarations.
23067         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
23068         Likewise.
23069
23070 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
23071
23072         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
23073         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
23074         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
23075         TARGET_FUNCTION_VALUE_REGNO_P): Define.
23076         (mmix_function_outgoing_value): Rename to...
23077         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
23078         (mmix_function_value_regno_p): Make static.
23079         (mmix_libcall_value): New function.
23080         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
23081         mmix_function_value_regno_p): Remove declaration.
23082
23083 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
23084
23085         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
23086         BUILT_IN_ALLOCA if stack checking is enabled.
23087
23088 2010-05-16  Richard Guenther  <rguenther@suse.de>
23089
23090         * var-tracking.c (vars_copy_1): Inline ...
23091         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
23092         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
23093         (variable_merge_over_cur): Adjust.  Merge asserts.
23094         (variable_merge_over_src): Likewise.
23095         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
23096         (variable_post_merge_new_vals): Merge asserts.
23097         (variable_post_merge_perm_vals): Likewise.
23098         (find_mem_expr_in_1pdv): Likewise.
23099         (dataflow_set_different_value): Remove.
23100         (onepart_variable_different_p): Merge asserts.
23101         (variable_different_p): Likewise.
23102         (dataflow_set_different_1): Inline ...
23103         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
23104         (emit_notes_for_differences_1): Merge asserts.
23105
23106 2010-05-16  Richard Guenther  <rguenther@suse.de>
23107
23108         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
23109         * optabs.c (libfunc_decl_hash): Likewise.
23110         * varasm.c (emutls_decl): Likewise.
23111
23112 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
23113
23114         * c-decl.c: Don't include gimple.h.
23115         (merge_decls): Do not copy gimple_body.
23116
23117 2010-05-15  Jason Merrill  <jason@redhat.com>
23118
23119         * c.opt: Add -fnothrow-opt.
23120
23121 2010-05-15  Jan Hubicka  <jh@suse.cz>
23122
23123         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
23124         analyzed.
23125         * passes.c (ipa_write_summaries): Write all analyzed nodes.
23126
23127 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
23128
23129         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
23130         * Makefile.in: Add it.
23131         Fix all other Makefile dependencies for changes below.
23132         * tree.h: Include it instead of defining VEC primitives here.
23133         * gimple.h: Likewise.
23134         * rtl.h: Likewise.
23135         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
23136         * except.h: Include vecir.h, break dependence on tree.h.
23137
23138         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
23139         Move from here...
23140         * tree-iterator.c: ...to here.
23141         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
23142
23143         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
23144         tm_p.h.
23145         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
23146         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
23147         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
23148         tree-mudflap.h, and target.h.
23149         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
23150         predict.h, tree-inline.h, gimple.h, and langhooks.h.
23151         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
23152         Add FIXME for why gimple.h is still included (should be unnecessary
23153         since GCC 4.5 gimplification unit-at-a-time).
23154         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
23155         * c-pragma.c: Add FIXME for why function.h needs to be included just
23156         for cfun, at front-end level.
23157         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
23158         Do not include ggc.h, but include vecprim.h for VEC(char).
23159         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
23160         Explain why target.h is included.
23161         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
23162         Explain why gimple.h is included.
23163         * c-ppoutput.c: Do not include tm.h.
23164         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
23165         * c-parses.c: Explain why rtl.h is included, and that this (and only
23166         this) is also why tm.h must be included.
23167         Do not include except.h.
23168         * c-lang.c: Do not include ggc.h.
23169
23170 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
23171
23172         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
23173
23174 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
23175
23176         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
23177         unions by default if those structs and unions have no tags.  Do
23178         not condition anonymous struct and unions handling on flag_iso.
23179         Allow anonymous structs and unions for C1X.
23180         (finish_struct): Do not diagnose lack of named fields when
23181         anonymous structs and unions present for C1X.  Accept flexible
23182         array members in structure with anonymous structs or unions but no
23183         directly named fields.
23184         * doc/extend.texi (Unnamed Fields): Update.
23185
23186 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
23187
23188         * gimple.h (compare_field_offset): Rename into...
23189         (gimple_compare_field_offset): ...this.
23190         * gimple.c (compare_field_offset): Rename into...
23191         (gimple_compare_field_offset): ...this.  Compare the full access if
23192         the offset is self-referential.
23193         (gimple_types_compatible_p): Adjust for above renaming.
23194         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
23195         DECL_NONADDRESSABLE_P flag of fields before merging them.
23196
23197 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
23198
23199         * tree.h (ctor_to_list): Delete.
23200         * tree.c (ctor_to_list): Delete.
23201
23202 2010-05-15  Jan Hubicka  <jh@suse.cz>
23203
23204         * ipa-reference.c: Include toplev.h
23205         (is_proper_for_analysis): Only add to all_module_statics
23206         if it is allocated.
23207         (write_node_summary_p, stream_out_bitmap,
23208         ipa_reference_write_optimization_summary,
23209         ipa_reference_read_optimization_summary): New.
23210         (struct ipa_opt_pass_d pass_ipa_reference): Add
23211         optimization summary streaming.
23212         * lto-cgraph.c (referenced_from_this_partition_p,
23213         reachable_from_this_partition_p): New functions.
23214         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
23215         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
23216         * opts.c (decode_options): Enable ipa_reference.
23217         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
23218         * lto-streamer.h (referenced_from_this_partition_p,
23219         reachable_from_this_partition_p): Declare.
23220
23221 2010-05-15  Richard Guenther  <rguenther@suse.de>
23222
23223         PR tree-optimization/44038
23224         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
23225         taking the address of a V_C_E of a constant.
23226
23227 2010-05-14  Jan Hubicka  <jh@suse.cz>
23228
23229         * tree.h (memory_identifier_string): Remove.
23230         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
23231         (ipa_reference_global_vars_info_d): Remove statics_not_read and
23232         statics_not_written.
23233         (ipa_reference_optimization_summary_d): New structure.
23234         (ipa_reference_optimization_summary_t): New type and vector.
23235         (ipa_reference_vars_info_d): Embedd structures instead of using
23236         pointers.
23237         (reference_vars_to_consider): Remove out of GGC space.
23238         (module_statics_escape): Remove.
23239         (global_info_obstack): Rename to ...
23240         (optimization_summary_obstack): ... this one.
23241         (initialization_status_t): Remove.
23242         (memory_identifier_string): Remove.
23243         (get_reference_vars_info): Fix indenting.
23244         (set_reference_vars_info): Likewise.
23245         (get_reference_optimization_summary): New.
23246         (set_reference_optimization_summary): New.
23247         (get_global_reference_vars_info): Remove.
23248         (ipa_reference_get_read_global): Remove.
23249         (ipa_reference_get_written_global): Remove.
23250         (ipa_reference_get_not_read_global): Update.
23251         (ipa_reference_get_not_written_global): Update.
23252         (is_proper_for_analysis): Outlaw addressable.
23253         (propagate_bits): Update for new datastructures.
23254         (analyze_variable): Remove.
23255         (init_function_info): Update for new datastructures.
23256         (clean_function_local_data): Remove.
23257         (clean_function): Remove.
23258         (copy_global_bitmap): Use optimizations_summary_obstack.
23259         (duplicate_node_data): Duplicate optimization summary only.
23260         (remove_node_data): Remove optimization summary only.
23261         (generate_summary): Do not analyze variables; do not compute
23262         module_statics_escape; do not prune solutions by it.
23263         (read_write_all_from_decl): Fix typos in comments.
23264         (propagate): Doscover readonly and nonaddressable first;
23265         update for new datastructures; share global bitmaps.
23266         * ipa-reference.h (ipa_reference_get_read_global,
23267         ipa_reference_get_written_global): Remove.
23268         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
23269         * Makefile.in: Remove ipa-refereference from GT files.
23270
23271 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
23272
23273         PR debug/44112
23274         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
23275         for all SYMBOL_REF_DECLs.
23276
23277 2010-05-14  Jan Hubicka  <jh@suse.cz>
23278
23279         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
23280         (varpool_all_refs_explicit_p): New inline function.
23281         * ipa-reference.c: Update comment.
23282         (module_statics_written): Remove.
23283         (get_static_decl): Remove.
23284         (ipa_init): Do not initialize module_statics_written.
23285         (analyze_function): Likewise.
23286         (generate_summary): Likewise; do not compute module_statics_readonly
23287         and do not update variable flags.
23288         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
23289         * ipa.c: Inlucde flags.h
23290         (cgraph_local_node_p): New.
23291         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
23292         promote functions to local.
23293         (ipa_discover_readonly_nonaddressable_vars): New function.
23294         (function_and_variable_visibility): Use cgraph_local_node_p.
23295         * varpool.c (varpool_finalize_decl): Set force_output for
23296         DECL_PRESERVE_P vars.
23297
23298 2010-05-14  Jan Hubicka  <jh@suse.cz>
23299
23300         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
23301
23302 2010-05-14  Richard Guenther  <rguenther@suse.de>
23303
23304         PR tree-optimization/44119
23305         * tree-ssa-pre.c (eliminate): Properly mark replacement of
23306         a PHI node necessary.
23307
23308 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
23309
23310         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
23311
23312 2010-05-14  Jason Merrill  <jason@redhat.com>
23313
23314         PR c++/44127
23315         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
23316         (gimple_call_set_nothrow): New.
23317         * gimple.c (gimple_build_call_from_tree): Call it.
23318         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
23319
23320         PR c++/44127
23321         * gimplify.c (gimplify_seq_add_stmt): No longer static.
23322         * gimple.h: Declare it.
23323         * gimple.c (gimple_build_eh_filter): No ops.
23324
23325 2010-05-14  Jan Hubicka  <jh@suse.cz>
23326
23327         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
23328         nodes already in queue.
23329         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
23330         re-enqueueing node.
23331
23332 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
23333
23334         PR debug/44136
23335         * cfgexpand.c (expand_debug_expr): If non-memory op0
23336         has BLKmode, return NULL.
23337
23338 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
23339
23340         * config.gcc: Add support for --with-cpu option for bdver1.
23341         * config/i386/i386.h (TARGET_BDVER1): New macro.
23342         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
23343         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
23344         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
23345         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
23346         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
23347         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
23348         (processor_type): Add PROCESSOR_BDVER1.
23349         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
23350         processor_type in config/i386/i386.h.
23351         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
23352         movaps <reg, reg> instead of movapd <reg, reg> when replacing
23353         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
23354         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
23355         to emit packed xor instead of packed double/packed integer
23356         xor for SSE and AVX when moving a zero value.
23357         * config/i386/sse.md: Add check for
23358         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
23359         movapd/movdqa for SSE and AVX.
23360         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
23361         single logical operations i.e and, or and xor instead of packed double
23362         logical operations for SSE and AVX.
23363         * config/i386/i386-c.c (ix86_target_macros_internal):
23364         Add PROCESSOR_BDVER1.
23365         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
23366         (has_fma4, has_xop): New.
23367         * config/i386/i386.c (bdver1_cost): New variable.
23368         (m_BDVER1): New macro.
23369         (m_AMD_MULTIPLE): Add m_BDVER1.
23370         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
23371         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
23372         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
23373         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
23374         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
23375         x86_tune_sse_partial_reg_dependency,
23376         x86_tune_sse_unaligned_load_optimal,
23377         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
23378         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
23379         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
23380         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
23381         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
23382         Enable/disable for bdver1.
23383         (processor_target_table): Add bdver1_cost.
23384         (cpu_names): Add bdver1.
23385         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
23386          processor_alias_table.
23387         (ix86_expand_vector_move_misalign): Change.
23388         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
23389         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
23390         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
23391         of movupd/movdqu for SSE and AVX.
23392         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
23393         (ix86_tune_adjust_cost): Add code for bdver1.
23394         (standard_sse_constant_opcode): Add check for
23395         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
23396         of packed double xor for SSE and AVX.
23397
23398 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
23399
23400         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
23401         result to unsigned.
23402
23403 2010-05-14  Tristan Gingold  <gingold@adacore.com>
23404
23405         * toplev.c (default_debug_hooks): Remove this variable.
23406         (process_options): Remove assignments to default_debug_hooks.
23407
23408 2010-05-14  Martin Jambor  <mjambor@suse.cz>
23409
23410         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
23411         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
23412         * langhooks.h (struct lang_hooks_for_decls): Removed field
23413         fold_obj_type_ref.
23414         * tree.c (free_lang_data): Remove assignment to
23415         lang_hooks.fold_obj_type_ref.
23416         * tree.def (OBJ_TYPE_REF): Update comment.
23417
23418 2010-05-14  Richard Guenther  <rguenther@suse.de>
23419
23420         PR tree-optimization/44124
23421         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
23422
23423 2010-05-14  Alan Modra  <amodra@gmail.com>
23424
23425         PR target/44075
23426         * config/rs6000/rs6000.c (struct machine_function): Reorder
23427         fields for better packing.  Add lr_save_state.
23428         (rs6000_ra_ever_killed): Return lr_save_state if set.
23429         (rs6000_emit_eh_reg_restore): Set lr_save_state.
23430
23431 2010-05-13  Jan Hubicka  <jh@suse.cz>
23432
23433         * varpool.c (decide_is_variable_needed): Drop code checking
23434         TREE_SYMBOL_REFERENCED.
23435
23436 2010-05-13  Jan Hubicka  <jh@suse.cz>
23437
23438         * final.c (output_addr_const): Do not call mark_decl_referenced.
23439         * cgraphunit.c (process_function_and_variable_attributes): Use
23440         mark_needed_node dirrectly.
23441         (assemble_thunk): Do not call mark_decl_referenced.
23442
23443 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
23444
23445         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
23446
23447 2010-05-13  Jeff Law  <law@redhat.com>
23448
23449         * ira-conflicts.c (print_allocno_conflicts): New function broken out
23450         from...
23451         (print_conflicts): Call print_allocno_conflicts.
23452
23453 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
23454
23455         PR debug/44104
23456         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
23457         if it is NULL.
23458
23459 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
23460
23461         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
23462         t-mingw-w64 or t-mingw-w32 for multilib configuration.
23463         * config/i386/t-mingw-w32: New.
23464         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
23465
23466 2010-05-13  Martin Jambor  <mjambor@suse.cz>
23467
23468         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
23469         gimple-fold.c).
23470         * gimple-fold.c (get_base_binfo_for_type): New function.
23471         (gimple_get_relevant_ref_binfo): Likewise.
23472         (gimple_fold_obj_type_ref_known_binfo): Likewise.
23473         (gimple_fold_obj_type_ref): Likewise.
23474         (fold_gimple_call): Simplify condition for folding virtual calls
23475         and call gimple_fold_obj_type_ref.
23476         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
23477         (gimple_fold_obj_type_ref_known_binfo): Likewise.
23478
23479 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
23480
23481         * config/rs6000/rs6000-protos.h
23482         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
23483         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
23484         (rs6000_debug_mode_dependent_address)
23485         (rs6000_mode_dependent_address_ptr): Likewise.
23486
23487 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
23488
23489         PR debug/43983
23490         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
23491         by SRA.
23492         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
23493         * tree-sra.c (create_access_replacement): Call unshare_expr before
23494         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
23495         * dwarf2out.c: Include tree-flow.h.
23496         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
23497         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
23498         Handle DW_OP_bit_piece.
23499         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
23500         construct_piece_list, adjust_piece_list): New functions.
23501         (add_var_loc_to_decl): Handle SRA optimized variables.
23502         Adjust for var_loc_note to loc field renaming.
23503         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
23504         in VAR_LOCATION note.
23505         (new_loc_descr_op_bit_piece): New function.
23506         (dw_sra_loc_expr): New function.
23507         (dw_loc_list): Use it.  Don't handle the last range after the
23508         loop, handle it inside of the loop.  Adjust for var_loc_note
23509         to loc field renaming.
23510         (add_location_or_const_value_attribute): Only special case
23511         single entry loc lists if loc is NOTE_P.  Adjust for
23512         var_loc_note to loc field renaming.
23513         (dwarf2out_var_location): Don't set newloc->var_loc_note
23514         and newloc->next here.
23515
23516 2010-05-12  Jan Hubicka  <jh@suse.cz>
23517
23518         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
23519         flag.
23520         * cgraph.h (cgraph_only_called_directly_p,
23521         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
23522         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
23523         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
23524         (assemble
23525         * ipa.c (cgraph_remove_unreachable_nodes): Use
23526         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
23527         flags.
23528         * tree-inline.c (copy_bb): Check address_taken flag.
23529         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
23530         externally_visible flag.
23531
23532 2010-05-12  Jason Merrill  <jason@redhat.com>
23533
23534         PR bootstrap/44048
23535         PR target/44099
23536         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
23537         * sdbout.c (plain_type_1): Likewise.
23538         * dwarf2out.c (is_base_type): Likewise.
23539         (gen_type_die_with_usage): Likewise.  Generate
23540         DW_TAG_unspecified_type for any LANG_TYPE.
23541
23542 2010-05-12  Jan Hubicka  <jh@suse.cz>
23543
23544         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
23545         indrect edges too.
23546         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
23547         (cgraph_clone_edge): Update.
23548         (cgraph_node_remove_callees): Remove indirect calls too.
23549         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
23550         (cgraph_create_indirect_edge): Update prototype.
23551         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
23552         is_proper_for_analysis.
23553         (add_new_function, visited_nodes, function_insertion_hook_holder,
23554         get_local_reference_vars_info, mark_address_taken, mark_address,
23555         mark_load, mark_store, check_asm_memory_clobber, check_call,
23556         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
23557         (ipa_init): Do not initialize visited_nodes;
23558         function_insertion_hook_holder.
23559         (analyze_variable): Rewrite.
23560         (analyze_function): Rewrite.
23561         (copy_local_bitmap): Remove.
23562         (duplicate_node_dat): Do not duplicate local info.
23563         (generate_summary): Simplify to only walk cgraph.
23564         (write_node_summary_p, ipa_reference_write_summary,
23565         ipa_reference_read_summary): Remove.
23566         (propagate): Do not remove function insertion;
23567         generate summary.
23568         (pass_ipa_reference): NULLify summary handling fields.
23569         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
23570         (input_edge): Input ecf_flags.
23571         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
23572         (update_indirect_edges_after_inlining): Ignore edges with unknown
23573         param.
23574
23575 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
23576
23577         * implicit-zee.c: New file.
23578         * tree-pass.h (pass_implicit_zee): Declare.
23579         * passes.c (init_optimization_passes): Add zee pass.
23580         * common.opt (fzee): New flag.
23581         * timevar.def (TV_ZEE): Define.
23582         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
23583         and beyond.
23584         * Makefile.in (implicit-zee.o): Add new build file.
23585
23586 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
23587             Nathan Froyd  <froydnj@codesourcery.com>
23588
23589         * c-common.c (sync_resolve_params): Remove write-only variable.
23590
23591 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
23592
23593         * target.h (struct gcc_target): Add mode_dependent_address_p field.
23594         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
23595         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
23596         * targhooks.c (default_mode_dependent_address_p): New function.
23597         * targhooks.h (default_mode_dependent_address_p): Declare function.
23598         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
23599         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
23600         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
23601         target hook. Change return type to bool.
23602         * recog.h (mode_dependent_address_p): Change return type to bool.
23603
23604 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
23605             Nathan Froyd  <froydnj@codesourcery.com>
23606
23607         * tree-mudflap.c (build_function_type_0, build_function_type_1,
23608         build_function_type_2, build_function_type_3): Remove.
23609         (mudflap_init): Use build_function_type_list.
23610
23611 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
23612             Nathan Froyd  <froydnj@codesourcery.com>
23613
23614         * coverage.c (build_fn_info_value): Call build_constructor instead of
23615         build_constructor_from_list.
23616         (build_ctr_info_value): Likewise.
23617         (build_gcov_info): Likewise.
23618
23619 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
23620
23621         * tree.c (build_constructor): Compute TREE_CONSTANT for the
23622         resultant constructor.
23623         (build_constructor_single): Don't set TREE_CONSTANT.
23624         (build_constructor_from_list): Don't compute TREE_CONSTANT.
23625
23626 2010-05-12  Jan Hubicka  <jh@suse.cz>
23627
23628         * cgraph.h (struct varpool_node): Add aux.
23629         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
23630         * varpool.c (varpool_remove_node): Do not remove initializer.
23631         (varpool_reset_queue): Export.
23632         (varpool_finalize_decl): Volatile vars are forced to be output.
23633         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
23634         replaced decl.
23635         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
23636         process_references, varpool_can_remove_if_no_refs): New functions.
23637         (cgraph_remove_unreachable_nodes): Handle variables too.
23638
23639 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
23640
23641         PR target/44088
23642         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
23643
23644 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
23645
23646         PR middle-end/44085
23647         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
23648         change value of ORT_TASK.
23649         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
23650         (omp_notice_threadprivate_variable): New function.
23651         (omp_notice_variable): Call it for threadprivate variables.
23652         If enclosing ctx is a task, print enclosing task rather than
23653         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
23654         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
23655         if task has untied clause.
23656
23657         PR debug/42278
23658         * dwarf2out.c (base_type_die): Don't add name attribute here.
23659         (modified_type_die): Instead of sizetype use
23660         its underlying original type.  If a DW_TAG_base_type doesn't
23661         have name added, add __unknown__.
23662         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
23663         always call force_type_die instead.
23664
23665 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
23666
23667         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
23668         for __stack_chk_guard.
23669
23670 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
23671
23672         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
23673         don't call start_source_file debug hook here...
23674         (finish_options): ... but here, after outputting predefined and
23675         command line defines and undefs.
23676
23677         PR middle-end/44071
23678         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
23679         no fallthru edge.
23680         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
23681         optimizing away empty bb with no successors, move over its
23682         footer chain to fallthru predecessor.
23683         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
23684         (rtl_split_edge): For asm goto call patch_jump_insn even if
23685         splitting fallthru edge.
23686
23687         PR c++/44059
23688         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
23689         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
23690         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
23691         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
23692         on DW.ref.* decls.
23693
23694         PR c++/44062
23695         * c-parser.c (c_parser_expression): Mark LHS of a comma
23696         expression as read if it is a decl, handled component or
23697         COMPOUND_EXPR with that on the RHS.
23698         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
23699         if it is a decl or handled component.
23700
23701 2010-05-11  Jan Hubicka  <jh@suse.cz>
23702
23703         * lto-symtab.c (lto_symtab_free): New function.
23704         * lto-streamer.h (lto_symtab_free): Declare.
23705
23706 2010-05-11  Jan Hubicka  <jh@suse.cz>
23707
23708         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
23709         that if function is needed it is reachable.
23710         (lto_output_node): See if it the function is reachable or referenced.
23711         (output_cgraph): Update call of lto_output_node.
23712         * lto-streamer.h (reachable_from_other_partition_p): Declare.
23713
23714 2010-05-11  Jan Hubicka  <jh@suse.cz>
23715
23716         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
23717         Mark as used.
23718
23719 2010-05-11  Jan Hubicka  <jh@suse.cz>
23720
23721         PR tree-optimize/44063
23722         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
23723         queue.
23724         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
23725         limits.
23726         (estimate_function_body_sizes): Compute sizes even when disregarding.
23727
23728 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
23729
23730         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
23731
23732 2010-05-11  Jan Hubicka  <jh@suse.cz>
23733
23734         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
23735         into every boundary.
23736
23737 2010-05-11  Jan Hubicka  <jh@suse.cz>
23738
23739         * matrix-reorg.c (matrix_reorg): Rebuild edges.
23740
23741 2010-05-11  Jan Hubicka  <jh@suse.cz>
23742
23743         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
23744         lto_streamer_cache_delete): Put nodes into heap.
23745         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
23746         heap.
23747
23748 2010-05-11  Jan Hubicka  <jh@suse.cz>
23749
23750         * cgraphbuild.c (cgraph_rebuild_references): New.
23751         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
23752         out extern inlines.
23753         * cgraph.h (cgraph_rebuild_references): Declare.
23754         * tree-inline.c (tree_function_versioning): Use it.
23755         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
23756
23757 2010-05-11  Jan Hubicka  <jh@suse.cz>
23758
23759         * cgraph.c: Include ipa-utils.h
23760         (cgraph_create_virtual_clone): Update references.
23761         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
23762
23763 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
23764
23765         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
23766         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
23767         cache size.
23768
23769 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
23770
23771         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
23772
23773 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
23774
23775         * gcc.c (execute): For -### don't quote arguments that
23776         contain just alphanumerics and _/-. characters.
23777         * doc/invoke.texi: Document that change for -###.
23778
23779         PR debug/44023
23780         * df-problems.c (struct dead_debug): Add to_rescan field.
23781         (dead_debug_init): Clear to_rescan field.
23782         (dead_debug_finish): Rescan all debug insns in to_rescan
23783         bitmap and free the bitmap.
23784         (dead_debug_insert_before): Instead of rescanning debug insns
23785         immediately queue their rescanning until dead_debug_finish.
23786         (df_note_bb_compute): After dead_debug_add do continue instead
23787         of break.
23788
23789 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
23790
23791         PR debug/44028
23792         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
23793         clear also INSN_REG_USE_LIST.
23794
23795 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23796
23797         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
23798
23799 2010-05-10  Jan Hubicka  <jh@suse.cz>
23800
23801         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
23802         commited change.
23803
23804 2010-05-10  Jan Hubicka  <jh@suse.cz>
23805
23806         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
23807         Allocate encoders.
23808         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
23809         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
23810         (lto_streamer_cache_create): Init alloc pool.
23811         (lto_streamer_cache_delete): Free alloc pool.
23812         * lto-streamer.h: Include alloc pool.
23813         (lto_streamer_cache_d): Use alloc pool.
23814         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
23815
23816 2010-05-10  Jan Hubicka  <jh@suse.cz>
23817
23818         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
23819         * cgraphbuild.c: Include except.h
23820         (record_type_list, record_eh_tables): New function.
23821         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
23822
23823 2010-05-10  Jan Hubicka  <jh@suse.cz>
23824
23825         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
23826         __frame_dummy_init_array_entry, force_to_data): Attribute as used
23827         rather than unused.
23828
23829 2010-05-10  Michael Matz  <matz@suse.de>
23830
23831         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
23832         (can_reassociate_p): Use FLOAT_TYPE_P.
23833         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
23834         (vect_force_simple_reduction): ... this.
23835         * tree-parloops.c (gather_scalar_reductions): Use
23836         vect_force_simple_reduction.
23837         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
23838         vect_is_simple_reduction, add modify argument, if true rewrite
23839         "a-b" into "a+(-b)".
23840         (vect_is_simple_reduction, vect_force_simple_reduction): New
23841         functions.
23842         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
23843
23844 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
23845             Vladimir Makarov  <vmakarov@redhat.com>
23846
23847         PR rtl-optimization/44012
23848         * ira-build.c (remove_unnecessary_allocnos): Nullify
23849         regno_allocno_map of the removed allocno.
23850
23851 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23852
23853         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
23854         to /dev/null.
23855         * configure: Regenerate.
23856
23857 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23858
23859         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
23860         unused.
23861         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
23862         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
23863         support in Sun ld.
23864         * configure: Regenerate.
23865
23866 2010-05-10  Richard Guenther  <rguenther@suse.de>
23867
23868         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
23869         marked if the entry identifier is marked.
23870
23871 2010-05-10  Richard Guenther  <rguenther@suse.de>
23872
23873         * c-common.c (struct c_common_attributes): Add fnspec attribute.
23874         (handle_fnspec_attribute): New function.
23875         * gimple.h (gimple_call_return_flags): Declare.
23876         (gimple_call_arg_flags): Likewise.
23877         * gimple.c (gimple_call_arg_flags): New function.
23878         (gimple_call_return_flags): Likewise.
23879         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
23880         New argument flags.
23881         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
23882         return value flags.
23883         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
23884         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
23885         main work to ...
23886         (make_heapvar_for): ... this new function.
23887         (handle_rhs_call): Handle fnspec attribute argument specifiers.
23888         (handle_lhs_call): Likewise.
23889         (find_func_aliases): Adjust.
23890
23891 2010-05-10  Richard Guenther  <rguenther@suse.de>
23892
23893         PR tree-optimization/44050
23894         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
23895
23896 2010-05-10  Wei Guozhi  <carrot@google.com>
23897
23898         PR target/42879
23899         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
23900
23901 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
23902
23903         PR c/10676
23904         * c-typeck.c (lookup_field): Take a type directly.  Update
23905         recursive calls.
23906         (build_component_ref): Update call to lookup_field.
23907         (set_init_label): Use lookup_field to find initialized field.
23908         Handle returned list of fields like a sequence of designators.
23909
23910 2010-05-09  Richard Guenther  <rguenther@suse.de>
23911
23912         PR middle-end/44024
23913         * fold-const.c (tree_single_nonzero_warnv_p): Properly
23914         handle &FUNCTION_DECL.
23915
23916 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
23917
23918         PR c/4784
23919         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
23920         structures and unions recursively.
23921         (detect_field_duplicates): Move duplicate detection with a hash to
23922         detect_field_duplicates_hash.  Always use a hash if anonymous
23923         structures or unions are present.
23924         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
23925         give errors.
23926
23927 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
23928
23929         PR target/44046
23930         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
23931         detect Atom, Core 2 and Core i7.
23932
23933 2010-05-09  Richard Guenther  <rguenther@suse.de>
23934
23935         * gcc.c (store_arg): Handle temporary file deletion for
23936         joined arguments.
23937
23938 2010-05-09  Richard Guenther  <rguenther@suse.de>
23939
23940         PR middle-end/44043
23941         * ipa-inline.c (estimate_function_body_sizes): Return after
23942         disregarding inline limits.
23943
23944 2010-05-09  Richard Guenther  <rguenther@suse.de>
23945
23946         * gcc.c (store_arg): Revert last change.
23947
23948 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
23949
23950         PR middle-end/28685
23951         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
23952         (optimize_ops_list): Call it.
23953
23954 2010-05-08  Richard Guenther  <rguenther@suse.de>
23955
23956         PR tree-optimization/44030
23957         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
23958         NECESSARY flag if we propagate from a inserted expression.
23959
23960 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
23961
23962         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
23963         domain types as equal if they are both PLACEHOLDER_EXPRs.
23964
23965 2010-05-08  Richard Guenther  <rguenther@suse.de>
23966
23967         * lto-wrapper.c (run_gcc): Remove linker output from
23968         command line for LTRANS invocation.
23969
23970 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
23971
23972         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
23973         lto-macho as lto_binary_reader.
23974         * target.h (struct gcc_target): New hooks lto_start and lto_end.
23975         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
23976         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
23977         in lto_start and lto_end calls.
23978         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
23979         magic numbers.
23980         (scan_prog_file): Update is_elf_or_coff call.
23981         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
23982
23983         * collect2.c (main): Fix enum comparison.
23984
23985         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
23986         Add prototypes.
23987         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
23988         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
23989         and TARGET_ASM_LTO_END.
23990         * darwin.c: Include obstack.h and lto-streamer.h.
23991         (lto_section_names_offset, lto_section_names_obstack,
23992         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
23993         global variables.
23994         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
23995         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
23996         to a temporary file.
23997         (darwin_asm_lto_end): New function.  Restore asm_out_file.
23998         (darwin_asm_named_section): For LTO sections, replace the name with
23999         the offset of the section name in a string table, and build this
24000         table.
24001         (darwin_file_start): Initialize global vars for LTO support.
24002         (darwin_file_end): If output to asm_out_file was redirected, append it
24003         to the proper asm_out_file here.  Add the section names section.
24004
24005 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
24006
24007         * c-pragma.c (pending_weak_d, pending_weak): New.
24008         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
24009         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
24010         handle_pragma_weak): Update the uses of pending_weaks.
24011
24012 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
24013
24014         PR documentation/44016
24015         * doc/standards.texi (Standards): Link to unversioned
24016         cxx0x_status.html page.
24017
24018 2010-05-07  Iain Sandoe  <iains@gcc.gnu.org>
24019
24020         PR target/43708
24021         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
24022         in addition to TREE_USED, to avoid "set but unused" warnings.
24023
24024 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
24025
24026         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
24027         (is_loop_prefetching_profitable): Do not insert prefetches
24028         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
24029         times the prefetch ahead distance.
24030
24031 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
24032
24033         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
24034         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
24035         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
24036         the unroll_factor.
24037
24038 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
24039
24040         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
24041         a diagnostic info when the insn-to-mem ratio is too small.
24042
24043 2010-05-07  Richard Guenther  <rguenther@suse.de>
24044
24045         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
24046         the linker plugin.
24047         (store_arg): Queue temp_filename for deletion instead of
24048         the whole argument.
24049
24050 2010-05-07  Richard Guenther  <rguenther@suse.de>
24051
24052         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
24053         (run_gcc): Handle LTRANS phase invocation.
24054         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
24055
24056 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
24057
24058         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
24059         this is also meaningful on PARM_DECLs and RESULT_DECLs.
24060
24061 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24062
24063         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
24064
24065 2010-05-07  Richard Guenther  <rguenther@suse.de>
24066
24067         PR tree-optimization/44020
24068         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
24069         code when PRE is not yet initialized.
24070
24071 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24072
24073         * config/mips/dbxmdebug.h: Remove.
24074         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
24075
24076 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
24077
24078         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
24079         with null pointer and also warn about ordered comparison of zero with
24080         pointer if -Wextra.
24081
24082 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
24083
24084         * graphite-blocking.c
24085         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
24086         * graphite-clast-to-gimple.c
24087         (clast_to_gcc_expression): Same.
24088         (precision_for_value): Same.
24089         (precision_for_interval): Same.
24090         (gcc_type_for_interval): Same.
24091         (graphite_create_new_guard): Same.
24092         (compute_bounds_for_level): Same.
24093         (graphite_create_new_loop_guard): Same.
24094         * graphite-interchange.c
24095         (build_linearized_memory_access): Same.
24096         (pdr_stride_in_loop): Same.
24097         (memory_strides_in_loop_1): Same.
24098         (memory_strides_in_loop): Same.
24099         (extend_scattering): Same.
24100         (psct_scattering_dim_for_loop_depth): Same.
24101         (pbb_number_of_iterations): Same.
24102         * graphite-poly.h
24103         (debug_iteration_domains): Same.
24104         * graphite-ppl.c
24105         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
24106         (ppl_set_inhomogeneous_gmp): Same.
24107         (ppl_strip_loop): Same.
24108         (ppl_lexico_compare_linear_expressions): Same.
24109         (ppl_read_polyhedron_matrix): Same.
24110         (ppl_max_for_le_pointset): Same.
24111         * graphite-ppl.h
24112         (ppl_read_polyhedron_matrix): Same.
24113         (tree_int_to_gmp): Same.
24114         (gmp_cst_to_tree): Same.
24115         (ppl_set_inhomogeneous): Same.
24116         (ppl_set_inhomogeneous_tree): Same.
24117         (ppl_set_coef): Same.
24118         (ppl_set_coef_tree): Same.
24119         * graphite-sese-to-poly.c
24120         (build_pbb_scattering_polyhedrons): Same.
24121         (build_scop_scattering): Same.
24122         (scan_tree_for_params_right_scev): Same.
24123         (scan_tree_for_params): Same.
24124         (find_params_in_bb): Same.
24125         (find_scop_parameters): Same.
24126         (add_upper_bounds_from_estimated_nit): Same.
24127         (build_loop_iteration_domains): Same.
24128         (add_condition_to_domain): Same.
24129         (pdr_add_memory_accesses): Same.
24130
24131 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
24132
24133         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
24134         CLooG's value_* macros to their respective mpz_* counterparts.
24135         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
24136         (graphite_create_new_loop_guard): Same.
24137         * graphite-interchange.c (build_linearized_memory_access): Same.
24138         (pdr_stride_in_loop): Same.
24139         (memory_strides_in_loop_1): Same.
24140         (1st_interchange_profitable_p): Same.
24141         * graphite-poly.c (extend_scattering): Same.
24142         (psct_scattering_dim_for_loop_depth): Same.
24143         (pbb_number_of_iterations): Same.
24144         (pbb_number_of_iterations_at_time): Same.
24145         * graphite-poly.h (new_1st_loop): Same.
24146         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
24147         (oppose_constraint): Same.
24148         (insert_constraint_into_matrix): Same.
24149         (ppl_set_inhomogeneous_gmp): Same.
24150         (ppl_set_coef_gmp): Same.
24151         (ppl_strip_loop): Same.
24152         (ppl_lexico_compare_linear_expressions): Same.
24153         (ppl_max_for_le_pointset): Same.
24154         (ppl_min_for_le_pointset): Same.
24155         (ppl_build_realtion): Same.
24156         * graphite-ppl.h (gmp_cst_to_tree): Same.
24157         (ppl_set_inhomogeneous): Same.
24158         (ppl_set_inhomogeneous_tree): Same.
24159         (ppl_set_coef): Same.
24160         (ppl_set_coef_tree): Same.
24161         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
24162         (build_scop_scattering): Same.
24163         (add_value_to_dim): Same.
24164         (scan_tree_for_params_right_scev): Same.
24165         (scan_tree_for_params_int): Same.
24166         (scan_tree_for_params): Same.
24167         (find_params_in_bb): Same.
24168         (find_scop_parameters): Same.
24169         (add_upper_bounds_from_estimated_nit): Same.
24170         (build_loop_iteration_domains): Same.
24171         (create_linear_expr_from_tree): Same.
24172         (add_condition_to_domain): Same.
24173         (pdr_add_memory_accesses): Same.
24174
24175 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
24176             Jason Merrill  <jason@redhat.com>
24177
24178         * c-common.c (c_common_reswords): Add nullptr.
24179         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
24180         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
24181         (gen_type_die_with_usage): Likewise.
24182         * dbxout.c (dbxout_type): Likewise.
24183         * sdbout.c (plain_type_1): Likewise.
24184
24185 2010-05-06  Jason Merrill  <jason@redhat.com>
24186
24187         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
24188         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
24189         ret appropriately.
24190         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
24191
24192         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
24193         stripping WITH_SIZE_EXPR.
24194         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
24195         change.
24196
24197 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24198
24199         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
24200         list of obsolete configurations.
24201         Disabled check for obsolete configurations.
24202         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
24203         Removed support for previous versions.
24204         * config/mips/iris.h: Removed.
24205         * config/mips/iris5.h: Removed.
24206         * config/mips/iris6.h: Merged old iris.h contents.
24207         (TARGET_IRIX): Removed.
24208         (DRIVER_SELF_SPECS): Removed mabi=32.
24209         (IDENT_ASM_OP): Removed undef.
24210         (STARTFILE_SPEC): Removed mabi=32.
24211         (ENDFILE_SPEC): Likewise.
24212         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
24213         (MACHINE_TYPE): Update for IRIX 6.5.
24214         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
24215         TARGET_IRIX by TARGET_IRIX6.
24216         (mips_file_start): Likewise.
24217         (mips_output_external): Remove IRIX 5/6 O32 support.
24218         (mips_output_function_prologue): Likewise.
24219         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
24220         TARGET_IRIX6.
24221         (TARGET_CPU_CPP_BUILTINS): Likewise.
24222         (TARGET_IRIX): Removed.
24223         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
24224         (MULTILIB_DIRNAMES): Removed 32.
24225         (MULTILIB_OSDIRNAMES): Removed ../lib.
24226         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
24227         (Specific, mips-sgi-irix5): Document removal.
24228         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
24229         Remove references to older IRIX 6 releases and the O32 ABI.
24230
24231 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
24232
24233         PR bootstrap/43994
24234         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
24235         instead of DF_REF_REAL_REG.
24236
24237 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
24238
24239         PR target/43888
24240         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
24241         handling to still return true for x64 targets.
24242
24243 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
24244
24245         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
24246
24247 2010-05-06  Jan Hubicka  <jh@suse.cz>
24248
24249         PR tree-optimization/43791
24250         * ipa-inline.c (update_caller_keys): Remove bogus
24251         disregard_inline_limits check.
24252
24253 2010-05-06  Michael Matz  <matz@suse.de>
24254
24255         PR tree-optimization/43984
24256         * tree-ssa-pre.c (inserted_phi_names): Remove.
24257         (inserted_exprs): Change to bitmap.
24258         (create_expression_by_pieces): Set bits, don't append to vector.
24259         (insert_into_preds_of_block): Don't handle inserted_phi_names.
24260         (eliminate): Don't look at inserted_phi_names, remove deleted
24261         insns from inserted_exprs.
24262         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
24263         (init_pre, fini_pre): Allocate and free bitmaps.
24264         (execute_pre): Insert insns on edges before elimination.
24265
24266 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
24267
24268         * tree.c (initializer_zerop): Handle STRING_CST.
24269
24270 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24271
24272         PR 40989
24273         * doc/invoke.texi (Wimplicit): Document as C only.
24274         * opts.c (common_handle_option): Add argument kind.
24275         (handle_option): Rename as read_cmdline_option. Factor out code to...
24276         (handle_option): ... here. New.
24277         (handle_options): Rename as read_cmdline_options.
24278         (decode_options): Update call.
24279         (set_option): Use option index instead of option pointer. Classify
24280         diagnostics correctly.
24281         (enable_warning_as_error): Call handle_option.
24282         * opts.h (set_option): Update declaration.
24283         (handle_option): Declare.
24284         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
24285         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
24286         * c-opts.c (set_Wimplicit): Delete.
24287         (c_family_lang_mask): New static constant.
24288         (c_common_handle_option): Add argument kind. Use handle_option
24289         instead of set_Wimplicit.
24290         (c_common_post_options): warn_implicit and warn_implicit_int
24291         are disabled by default.
24292         * c-common.c (warn_implicit): Do not define here.
24293         * c-common.h (warn_implicit): Do not declare here.
24294         (c_common_handle_option): Update declaration.
24295         * lto-opts.c (lto_reissue_options): Update call to set_option.
24296
24297 2010-05-06  Richard Guenther  <rguenther@suse.de>
24298
24299         PR tree-optimization/43571
24300         * domwalk.c (walk_dominator_tree): Walk the dominator
24301         sons in more optimal order.
24302
24303 2010-05-06  Richard Guenther  <rguenther@suse.de>
24304
24305         PR tree-optimization/43934
24306         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
24307         (stmt_cost): Likewise.
24308         (extract_true_false_args_from_phi): New helper.
24309         (determine_max_movement): For PHI nodes verify we can hoist them
24310         and compute their cost.
24311         (determine_invariantness_stmt): Handle PHI nodes.
24312         (move_computations_stmt): Likewise.  Hoist PHI nodes in
24313         if-converted form using COND_EXPRs.
24314         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
24315         (tree_ssa_lim): Likewise.
24316         * tree-flow.h (tree_ssa_lim): Adjust prototype.
24317         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
24318
24319 2010-05-06  Richard Guenther  <rguenther@suse.de>
24320
24321         PR tree-optimization/43987
24322         * tree-ssa-structalias.c (could_have_pointers): For possibly
24323         address-taken variables force pointers to be recorded.
24324         (create_variable_info_for_1): Likewise.
24325         (push_fields_onto_fieldstack): Pass in wheter all fields
24326         must have pointers.
24327         (find_func_aliases): Query types instead of vars whether
24328         they contain pointers where appropriate.
24329
24330 2010-05-06  Jan Hubicka  <jh@suse.cz>
24331
24332         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
24333         (record_reference, mark_address, mark_load, mark_store): Record
24334         references.
24335         (record_references_in_initializer): Update call of record_references.
24336         (rebuild_cgraph_edges): Remove all references before rebuiding.
24337         * cgraph.c (cgraph_create_node): Clear ref list.
24338         (cgraph_remove_node): Remove references.
24339         (dump_cgraph_node): Dump references.
24340         (cgraph_clone_node): Clone references.
24341         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
24342         (struct cgraph_node, varpool_node): Add ref_lst.
24343         * ipa-ref.c: New file.
24344         * ipa-ref.h: New file.
24345         * ipa-ref-inline.h: New file.
24346         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
24347         (referenced_from_other_partition_p): New function.
24348         (lto_output_varpool_node): Take set arugment; call
24349         referenced_from_other_partition.
24350         (lto_output_ref): New.
24351         (add_references): New.
24352         (output_refs): New.
24353         (output_cgraph): Compute boundary based on references; output refs.
24354         (output_varpool): Accept cgraph_node_set argument.
24355         (input_ref): New.
24356         (input_refs): New.
24357         (input_cgraph): Call input_refs.
24358         * lto-section-in.c (lto_section_name): Add refs.
24359         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
24360         (ipa-ref.o): New file.
24361         * varpool.c (varpool_node): Clear ipa ref list.
24362         (varpool_remove_node): Remove references.
24363         (dump_varpool_node): Dump references.
24364         (varpool_assemble_decl): Only compile finalized ones.
24365         (varpool_extra_name_alias): Initialize ref list.
24366         * lto-streamer.c (lto-get_section_name): Add .refs section.
24367         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
24368         (referenced_from_other_partition_p): Declared.
24369
24370 2010-05-06  Ira Rosen  <irar@il.ibm.com>
24371
24372         PR tree-optimization/43901
24373         * tree-vect-stmts.c (vectorizable_call): Assert that vector
24374         type is not NULL if it's transformation phase, and return
24375         FALSE if it's analysis.
24376         (vectorizable_conversion, vectorizable_operation,
24377         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
24378
24379 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
24380
24381         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
24382         Delete.
24383         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
24384         New define.
24385         * config/mips/mips-protos.h
24386         (mips_small_register_classes_for_mode_p): Delete prototype.
24387
24388 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
24389
24390         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
24391         * config/arm/arm.c (multiple_operation_profitable_p,
24392         compute_offset_order): New static functions.
24393         (load_multiple_sequence, store_multiple_sequence): Use them.
24394         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
24395         memory offsets, not register numbers.
24396         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
24397
24398 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
24399
24400         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
24401         (get_pending_sizes, put_pending_size, put_pending_sizes):
24402         Update the uses of pending_sizes.
24403         * c-decl.c (store_parm_decls): Likewise.
24404         * c-tree.h (struct c_arg_info): Likewise.
24405         * tree.h: Update the prototype for get_pending_sizes and
24406         put_pending_sizes.
24407
24408 2010-05-05  Jason Merrill  <jason@redhat.com>
24409
24410         PR debug/43370
24411         * c-common.c (handle_aligned_attribute): Respect
24412         ATTR_FLAG_TYPE_IN_PLACE.
24413
24414         PR testsuite/43758
24415         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
24416         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
24417         (TARGET_INITIALIZER): Use it.
24418         * c-common.c (attribute_takes_identifier_p): Call it.
24419         * c-common.h: Update prototype.
24420         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
24421         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
24422
24423 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
24424
24425         PR debug/43950
24426         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
24427         DW_ID_down_case for Fortran compilation units.
24428
24429 2010-05-05  Jan Hubicka  <jh@suse.cz>
24430
24431         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
24432         handle aliases.
24433
24434 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
24435
24436         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
24437         a variable-sized RESULT_DECL.
24438
24439 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
24440
24441         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
24442
24443 2010-05-05  Jason Merrill  <jason@redhat.com>
24444
24445         PR c++/43787
24446         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
24447         returns GS_OK.
24448         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
24449
24450 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
24451             Jakub Jelinek  <jakub@redhat.com>
24452
24453         PR debug/43478
24454         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
24455         (dead_debug_init, dead_debug_finish): New functions.
24456         (dead_debug_add, dead_debug_insert_before): Likewise.
24457         (df_note_bb_compute): Initialize a dead_debug object, add dead
24458         debug uses to it, insert debug bind insns before death insns,
24459         reset debug insns that refer to pending uses at the end.
24460         * rtl.h (make_debug_expr_from_rtl): New prototype.
24461         * varasm.c (make_debug_expr_from_rtl): New function.
24462
24463 2010-05-05  Jan Hubicka  <jh@suse.cz>
24464
24465         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
24466         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
24467         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
24468         lto_varpool_encoder_deref, lto_varpool_encoder_size,
24469         lto_varpool_encoder_encode_initializer_p,
24470         lto_set_varpool_encoder_encode_initializer): New functions.
24471         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
24472         call output_varpool.
24473         (input_varpool_node): Do not always set analyzed.
24474         (input_cgraph_1): Return vector of cgraph nodes.
24475         (input_varpool_1): Return vector of varpools.
24476         (input_cgraph): Free the vectors.
24477         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
24478         output only initializers needed.
24479         (lto_output): Only call output_cgraph.
24480         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
24481         * lto-section-out.c (lto_new_out_decl_state): Initialize
24482         state->varpool_node_encoder.
24483         * lto-streamer.h (lto_varpool_encoder_d): New.
24484         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
24485         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
24486         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
24487         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
24488         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
24489         Declare.
24490         (output_varpool, input_varpool): Remove declarations.
24491
24492 2010-05-05  Jan Hubicka  <jh@suse.cz>
24493
24494         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
24495         with body can prevail.
24496
24497 2010-05-05  Jan Hubicka  <jh@suse.cz>
24498
24499         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
24500         size.
24501
24502 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
24503
24504         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
24505
24506         * gengtype.h (erro_at_line): Constify pos argument.
24507
24508         * gengtype.c: Include hashtab.h.
24509         (enum gc_used): Document GC_MAYBE_POINTED_TO.
24510         (error_at_line): Constify pos argument.
24511         (do_typedef): Initialize p->opt field.
24512         (get_file_gtfilename): Fix comment typo.
24513         (struct walk_type_data): Constify line field.
24514         (get_output_file_for_structure): New function.
24515         (write_local_func_for_structure): Constify orig_s argument.
24516         Use get_output_file_for_structure.
24517         (write_func_for_structure): Use get_output_file_for_structure.
24518         (INDENT): New define.
24519         (dump_pair, dump_type, dump_type_list, dump_typekind)
24520         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
24521         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
24522         functions.
24523         (seen_types): New variable.
24524         (main): New variable do_dump.  Process "-d" command line option.
24525         Call dump_everything if dump requested.
24526
24527 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
24528
24529         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
24530         in a temporary instead of invoking the macro multiple times.
24531         (track_expr_p): Likewise.
24532
24533 2010-05-04  Neil Vachharajani  <nvachhar@google.com>
24534
24535         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
24536         per new semantics.
24537         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
24538         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
24539         conditions for printing notes.
24540         * common.opt (-Wcoverage-mismatch): Allow negative, default to
24541         true, update documentation.
24542         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
24543
24544 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
24545
24546         PR c/43981
24547         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
24548         on dimen.
24549
24550 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
24551
24552         PR target/43799
24553         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
24554         (*sse_prologue_save_insn1): Likewise.
24555         (SSE prologue save splitter): Likewise.
24556
24557 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
24558
24559         * tree.c (free_lang_data_in_one_sizepos): New inline function.
24560         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
24561         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
24562         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
24563         all decls.  Call it on DECL_FIELD_OFFSET of fields.
24564         (find_decls_types_r): Follow DECL_VALUE_EXPR.
24565         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
24566
24567 2010-05-04  Martin Jambor  <mjambor@suse.cz>
24568
24569         * tree-sra.c (build_access_from_expr_1): The first parameter type
24570         changed to simple tree.
24571         (build_access_from_expr): Likewise, gsi parameter was eliminated.
24572         (scan_assign_result): Renamed to assignment_mod_result, enum elements
24573         renamed as well.
24574         (build_accesses_from_assign): Removed all parameters except for a
24575         simple gimple statement.  Now returns a simple bool.
24576         (scan_function): All non-analysis parts moved to separate functions
24577         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
24578         parameters and updated both callers.
24579         (sra_modify_expr): Removed parameter data.
24580         (sra_modify_function_body): New function.
24581         (perform_intra_sra): Call sra_modify_function_body to modify the
24582         function body.
24583         (replace_removed_params_ssa_names): Parameter data changed into
24584         adjustments vector.
24585         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
24586         changed the parameter dont_convert to convert with the opposite
24587         meaning.
24588         (sra_ipa_modify_assign): Parameter data changed into adjustments
24589         vector, return value changed to bool.
24590         (ipa_sra_modify_function_body): New function.
24591         (sra_ipa_reset_debug_stmts): Updated a comment.
24592         (modify_function): Use ipa_sra_modify_function_body to modify function
24593         body.
24594
24595 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
24596
24597         PR middle-end/43671
24598         * alias.c (true_dependence): Handle the same VALUE in x and mem.
24599         (canon_true_dependence): Likewise.
24600         (write_dependence_p): Likewise.
24601
24602 2010-05-04  Jan Hubicka  <jh@suse.cz>
24603
24604         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
24605         * cgraphbuild.c: Include ipa-utils.h
24606         (record_reference_ctx): New struct.
24607         (record_reference): Simplify to work on initializers; not statements.
24608         (mark_address, mark_load, mark_store): New.
24609         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
24610         walk PHI nodes too.
24611         (record_references_in_initializer): Update use of record_reference.
24612         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
24613         walk PHI nodes too.
24614
24615 2010-05-04  Jan Hubicka  <jh@suse.cz>
24616
24617         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
24618         node will be removed anyway.
24619         (lto_varpool_replace_node): Allow also unanalyzed nodes;
24620         relink aliases of node into prevailing node.
24621         * varpool.c (varpool_remove_node): Remove aliases properly;
24622         when removing node, remove all its aliases too; remove DECL_INITIAL
24623         of removed node; ggc_free the varpool node.
24624
24625 2010-05-04  Richard Guenther  <rguenther@suse.de>
24626
24627         PR tree-optimization/43879
24628         * tree-ssa-structalias.c (alias_get_name): Use
24629         DECL_ASSEMBLER_NAME if available.
24630         (create_function_info_for): Return the varinfo node.
24631         (ipa_pta_execute): Associate same-body aliases and extra names
24632         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
24633
24634 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
24635
24636         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
24637
24638 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
24639
24640         PR bootstrap/43964
24641         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
24642         only if HONOR_REG_ALLOC_ORDER is not defined.
24643
24644 2010-05-04  Richard Guenther  <rguenther@suse.de>
24645
24646         PR tree-optimization/43949
24647         * tree-vrp.c (extract_range_from_binary_expr): Only handle
24648         TRUNC_MOD_EXPR.
24649
24650 2010-04-26  Jason Merrill  <jason@redhat.com>
24651
24652         * c.opt (-fstrict-enums): New.
24653         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
24654
24655 2010-05-03  David Ung  <davidu@mips.com>
24656             James E. Wilson  <wilson@codesourcery.com>
24657
24658         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
24659         emit the trap instruction before the divide for TUNE_74K.
24660
24661 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
24662
24663         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
24664         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
24665         based on the above, for new target hook.
24666
24667         * hooks.c (hook_bool_mode_true): New generic hook.
24668         * hooks.h (hook_bool_mode_true): Add prototype.
24669
24670         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
24671         target hook.
24672         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
24673         target hook, set to hook_bool_mode_false.
24674         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
24675         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
24676         with targetm.small_register_classes_for_mode_p.
24677         (find_reusable_reload): Likewise.
24678         (combine_reloads): Likewise.
24679         * reload1.c (reload_as_needed): Likewise.
24680         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
24681         * ifcvt.c (noce_process_if_block, check_cond_move_block,
24682         dead_or_predicable): Likewise.
24683         * regmove.c (optimize_reg_copy_1): Likewise.
24684         * calls.c (prepare_call_address): Likewise.
24685         (precompute_register_parameters): Likewise.
24686
24687         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
24688         hook definition.
24689         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
24690         implementation of the hook that considers all register classes
24691         small except for SH64.
24692         (sh_override_options): Use the new hook.
24693         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
24694         Add prototype.
24695
24696         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
24697         hook definition.
24698         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
24699         implementation of the hook that considers all register classes
24700         small for THUMB1.
24701         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
24702         Add prototype.
24703
24704         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
24705         hook definition.
24706         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
24707         implementation of the hook that considers all register classes
24708         small for MIPS16.
24709         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
24710         Add prototype.
24711
24712         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
24713         hook definition.
24714         * config/m32c/m32c.h: Likewise.
24715         * config/pdp11/pdp11.h: Likewise.
24716         * config/avr/avr.h: Likewise.
24717         * config/xtensa/xtensa.h: Likewise.
24718         * config/m68hc11/m68hc11.h: Likewise.
24719         * config/mn10300/mn10300.h: Likewise.
24720         * config/mcore/mcore.h: Likewise.
24721         * config/h8300/h8300.h: Likewise.
24722         * config/bfin/bfin.h: Likewise.
24723
24724         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
24725         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
24726
24727 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
24728
24729         * double-int.h (tree_to_double_int): Remove macro.
24730         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
24731         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
24732         (tree_to_double_int): New function.
24733         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
24734         Move ...
24735         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
24736
24737 2010-05-03  Richard Guenther  <rguenther@suse.de>
24738
24739         PR tree-optimization/43971
24740         * tree-ssa-structalias.c (get_constraint_for_1): Fix
24741         constraints in the !flag_delete_null_pointer_checks case.
24742
24743 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
24744
24745         PR debug/43972
24746         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
24747         result mode matches original rtl mode.
24748
24749 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
24750
24751         PR target/43888
24752         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
24753
24754 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
24755
24756         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
24757         when processing flag options.
24758
24759 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
24760
24761         * gcov-iov.c (main): Change format string placeholder
24762         from %#08x to 0x%08x.
24763         * genchecksum.c (dosum): Change format string placeholder
24764         from %#02x to 0x%02x.
24765
24766 2010-05-02  Richard Guenther  <rguenther@suse.de>
24767
24768         PR tree-optimization/43879
24769         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
24770
24771 2010-05-02  Bruno Haible  <bruno@clisp.org>
24772
24773         * doc/extend.texi (Function Attributes): Fix a typo.
24774
24775 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
24776
24777         Revert:
24778         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
24779         placeholder from 0x%x to %#x.
24780         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
24781         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
24782         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
24783         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
24784         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
24785         * config/i386/i386.c (ix86_target_string): Ditto.
24786         * config/i386/i386.c (output_pic_addr_const): Ditto.
24787         (print_operand): Ditto.
24788
24789 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
24790
24791         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
24792         placeholder from 0x%x to %#x.
24793         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
24794         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
24795         (ASM_OUTPUT_DEBUG_DATA): Ditto.
24796         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
24797         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
24798         * optc-gen.awk: Ditto.
24799         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
24800         (HOST_WIDE_INT_PRINT_HEX): Ditto.
24801         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
24802         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
24803
24804 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
24805
24806         * target.h (struct calls): Add function_value_regno_p field.
24807         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
24808         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
24809         * targhooks.c (default_function_value_regno_p): New function.
24810         * targhooks.h (default_function_value_regno_p): Declare function.
24811         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
24812         * builtins.c. (apply_result_size): (Ditto.).
24813         * combine.c. (likely_spilled_retval_p): (Ditto.).
24814         * mode-switching.c. Include 'target.h'.
24815         (create_pre_exit): Use function_value_regno_p hook.
24816         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
24817         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
24818         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
24819
24820         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
24821         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
24822         (ix86_function_value_regno_p): Declare as static, change argument
24823         type to const unsigned int.
24824         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
24825
24826 2010-05-01  Richard Guenther  <rguenther@suse.de>
24827
24828         PR tree-optimization/43949
24829         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
24830         types.
24831         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
24832
24833 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
24834
24835         * rtl.h (CONST_DOUBLE_P): Define.
24836         (rtx_to_double_int): Declare.
24837         * emit-rtl.c (rtx_to_double_int): New function.
24838         * dwarf2out.c (insert_double): New function.
24839         (loc_descriptor, add_const_value_attribute): Clean up, use
24840         rtx_to_double_int and insert_double functions.
24841
24842 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
24843
24844         * doc/extend.texi (Inline): Add missing return keyword to examples.
24845         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
24846         "command-line".
24847
24848 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
24849
24850         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
24851         the variable part of the offset as well.  Use highest_pow2_factor for
24852         all alignment checks.
24853
24854 2010-04-30  Richard Guenther  <rguenther@suse.de>
24855
24856         PR tree-optimization/43879
24857         * tree-ssa-structalias.c (type_could_have_pointers): Functions
24858         can have pointers.
24859
24860 2010-04-30  Jan Hubicka  <jh@suse.cz>
24861
24862         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
24863         varpool.
24864         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
24865
24866 2010-04-30  Jan Hubicka  <jh@suse.cz>
24867
24868         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
24869         New.
24870         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
24871         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
24872         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
24873         cgraph_node_set_needs_ltrans_p): Remove.
24874
24875 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
24876
24877         * sdbout.c: Include vec.h, do not include varray.h.
24878         (deferred_global_decls, sdbout_global_decl,
24879         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
24880         * toplev.c: Do not include varray.h.
24881         (dump_memory_report): Do not dump VARRAY statistics.
24882         * gengtype.c (open_base_file): Ignore varray.h.
24883         * Makefile.in: Update for abovementioned changes.
24884         Remove all traces of varray.c and varray.h.
24885         * varray.c: Remove file.
24886         * varray.h: Remove file.
24887
24888 2010-04-30  Jan Hubicka  <jh@suse.cz>
24889
24890         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
24891         references.
24892
24893 2010-04-30  Jan Hubicka  <jh@suse.cz>
24894
24895         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
24896         needed.
24897
24898 2010-04-30  Richard Guenther  <rguenther@suse.de>
24899
24900         * tree-ssa-structalias.c (get_constraint_for_1): Generate
24901         constraints for CONSTRUCTOR.
24902
24903 2010-04-30  Richard Guenther  <rguenther@suse.de>
24904
24905         PR lto/43946
24906         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
24907         first after all lowering passes.
24908
24909 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
24910
24911         * toplev.c: Include varray.h for statistics dumping.
24912         * tree.h: Do not declare varray_head_tag.
24913         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
24914         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
24915         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
24916         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
24917         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
24918         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
24919         c-common.c, c-common.h, reg-stack.c, basic-block.h,
24920         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
24921         include varray.h.
24922         * Makefile.in: Update for abovementioned changes.
24923
24924 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
24925
24926         PR debug/43942
24927         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
24928
24929 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
24930
24931         * config/picochip/picochip.c (picochip_legitimize_address): Define.
24932         Use this function to do machine-specific conversion.
24933         (picochip_legitimize_reload_address): Likewise.
24934         (picochip_legitimate_address_p): Check valid base register only if
24935         strict.
24936         (picochip_check_conditional_copy): Check for modw only if opnd is
24937         register.
24938         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
24939         to call the function in c.
24940         * config/picochip/picochip-protos.h
24941         (picochip_legitimize_reload_address): Define.
24942         * config/picochip/picochip.md (supported_compare1): Define.
24943
24944 2010-04-30  Jan Hubicka  <jh@suse.cz>
24945
24946         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
24947         (cgraph_global_info): Remove inlined.
24948         (LTO_cgraph_tag_names): Remove.
24949         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
24950         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
24951         simplify cgraph tags and document.
24952         (lto_output_node): Use only LTO_cgraph_unavail_node and
24953         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
24954         for_functions_valid, global info, process and output flags.
24955         (input_overwrite_node): Initialize estimated stack size and
24956         estimated growth.  Do not read flags we no longer store.
24957         (input_node): Likewise do not read info no longer stored.
24958         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
24959         flag.
24960
24961 2010-04-30  Richard Guenther  <rguenther@suse.de>
24962
24963         PR tree-optimization/43879
24964         * tree-ssa-structalias.c (get_constraint_for_1): Properly
24965         handle non-zero initializers.
24966
24967 2010-04-30  Richard Guenther  <rguenther@suse.de>
24968
24969         * builtins.c (fold_builtin_1): Delete free (0).
24970
24971 2010-04-29  Jan Hubicka  <jh@suse.cz>
24972
24973         * gengtype.c (open_base_files): Add lto-streamer.h
24974         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
24975         (pass_ipa_cp): GGC collect.
24976         * toplev. (compile_file): Do not output symbols.
24977         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
24978         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
24979         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
24980         * lto-section-in.c: Include ggc.h
24981         (lto_new_in_decl_state): Alloc in GGC.
24982         (lto_delete_in_decl_state): Likewise.
24983         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
24984         Collect.
24985
24986 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
24987
24988         PR target/42895
24989         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
24990         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
24991         (HONOR_REG_ALLOC_ORDER): Describe new macro.
24992         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
24993         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
24994         account only if HONOR_REG_ALLOC_ORDER is not defined.
24995         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
24996         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
24997
24998 2010-04-29  Jon Grant  <04@jguk.org>
24999
25000         * collect2.c (vflag): Change type from int to bool.
25001         (debug): Likewise.
25002         (helpflag): New global bool.
25003         (main): Set vflag and debug with boolean, not integer truth values.
25004         Accept new "--help" option and output usage text if found.
25005         * collect2.h (vflag): Update prototype.
25006         (debug): Likewise.
25007
25008 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
25009
25010         PR bootstrap/43936
25011         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
25012
25013 2010-04-29  Richard Guenther  <rguenther@suse.de>
25014
25015         PR bootstrap/43935
25016         * plugin.h (invoke_plugin_callbacks): Annotate arguments
25017         with ATTRIBUTE_UNUSED.
25018
25019 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
25020
25021         PR target/43921
25022         * config/i386/i386.c (get_some_local_dynamic_name): Replace
25023         INSN_P with NONDEBUG_INSN_P.
25024         (distance_non_agu_define): Likewise.
25025         (distance_agu_use): Likewise.
25026
25027 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
25028
25029         From Dominique d'Humieres  <dominiq@lps.ens.fr>
25030         PR bootstrap/43858
25031         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
25032         test_set.
25033
25034 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
25035
25036         * plugin.h (invoke_plugin_callbacks): New inline function.
25037         * plugin.c (flag_plugin_added): New global flag.
25038         (add_new_plugin): Initialize above flag.
25039         (invoke_plugin_callbacks): Rename to ...
25040         (invoke_plugin_callbacks_full): ... this.
25041
25042 2010-04-28  Jan Hubicka  <jh@suse.cz>
25043
25044         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
25045         (lto_varpool_replace_node): New.
25046         (lto_symtab_resolve_symbols): Resolve varpool nodes.
25047         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
25048         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
25049         * cgraph.h (varpool_node_ptr): New type.
25050         (varpool_node_ptr): New vector.
25051         (varpool_node_set_def): New structure.
25052         (varpool_node_set): New type.
25053         (varpool_node_set): New vector.
25054         (varpool_node_set_element_def): New structure.
25055         (varpool_node_set_element, const_varpool_node_set_element): New types.
25056         (varpool_node_set_iterator): New type.
25057         (varpool_node): Add prev pointers, add used_from_other_partition,
25058         in_other_partition.
25059         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
25060         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
25061         varpool_get_node, varpool_remove_node): Declare.
25062         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
25063         varpool_node_set_size): New inlines.
25064         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
25065         * tree-pass.h (varpool_node_set_def): Forward declare.
25066         (ipa_opt_pass_d): Summary writting takes vnode sets too.
25067         (ipa_write_optimization_summaries): Update prototype.
25068         * ipa-cp.c (ipcp_write_summary): Update.
25069         * ipa-reference.c (ipa_reference_write_summary): Update.
25070         * lto-cgraph.c (lto_output_varpool_node): New static function.
25071         (output_varpool): New function.
25072         (input_varpool_node): New static function.
25073         (input_varpool_1): New function.
25074         (input_cgraph): Input varpool.
25075         * ipa-pure-const.c (pure_const_write_summary): Update.
25076         * lto-streamer-out.c (lto_output): Update, output varpool too.
25077         (write_global_stream): Kill WPA hack.
25078         (produce_asm_for_decls): Update.
25079         (output_alias_pair_p): Handle variables.
25080         (output_unreferenced_globals): Output only needed partition of varpool.
25081         * ipa-inline.c (inline_write_summary): Update.
25082         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
25083         cgraph.
25084         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
25085         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
25086         varpool_node_set_new, varpool_node_set_add,
25087         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
25088         debug_varpool_node_set): New functions.
25089         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
25090         (execute_one_pass): Process new decls too.
25091         (ipa_write_summaries_2): Pass around vsets.
25092         (ipa_write_summaries_1): Likewise.
25093         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
25094         to add.
25095         (ipa_write_optimization_summaries_1): Pass around vsets.
25096         (ipa_write_optimization_summaries): Likewise.
25097         * varpool.c (varpool_get_node): New.
25098         (varpool_node): Update doubly linked lists.
25099         (varpool_remove_node): New.
25100         (dump_varpool_node): More dumping.
25101         (varpool_enqueue_needed_node): Update doubly linked lists.
25102         (decide_is_variable_needed): Kill ltrans hack.
25103         (varpool_finalize_decl): Kill lto hack.
25104         (varpool_assemble_decl): Skip decls in other partitions.
25105         (varpool_assemble_pending_decls): Update doubly linkes lists.
25106         (varpool_empty_needed_queue): Likewise.
25107         (varpool_extra_name_alias): Likewise.
25108         * lto-streamer.c (lto_get_section_name): Add vars section.
25109         * lto-streamer.h (lto_section_type): Update.
25110         (output_varpool, input_varpool): Declare.
25111
25112 2010-04-28  Mike Stump  <mikestump@comcast.net>
25113
25114         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
25115
25116 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
25117
25118         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
25119         record or union type with RECORD_OR_UNION_TYPE_P predicate.
25120         (lto_input_ts_type_tree_pointers): Likewise.
25121         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
25122         (lto_output_ts_type_tree_pointers): Likewise.
25123
25124 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
25125
25126         Uniquization of constants at the Tree level
25127         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
25128         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
25129         bit to the end.
25130         (tree_output_constant_def): Declare.
25131         * gimplify.c (gimplify_init_constructor): When using block copy, first
25132         uniquize the constant constructor on the RHS.
25133         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
25134         DECL_IN_CONSTANT_POOL flag.
25135         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
25136         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
25137         constant pool.
25138         (assemble_variable): Deal with symbols belonging to the tree constant
25139         pool.
25140         (get_constant_section): Add ALIGN parameter and simplify.
25141         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
25142         (assemble_constant_contents): Use the expression of the VAR_DECL.
25143         (output_constant_def_contents): Use the alignment of the VAR_DECL.
25144         (tree_output_constant_def): New global function.
25145         (mark_constant): Use the expression of the VAR_DECL.
25146         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
25147         its expression.
25148         (output_object_block): Likewise and assemble the expression.
25149
25150 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
25151
25152         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
25153         hash_tree, eq_tree): New tree hash table.
25154         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
25155         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
25156         lto_orig_address_remove): Reimplement.
25157
25158 2010-04-28  Xinliang David Li  <davidxl@google.com>
25159
25160         PR c/42643
25161         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
25162         (compute_uninit_opnds_pos): New function.
25163         (is_non_loop_exit_postdominating): New function.
25164         (compute_control_dep_chain): New function.
25165         (find_pdom): New function.
25166         (convert_control_dep_chain_into_preds): New function.
25167         (find_predicates): New function.
25168         (find_control_equiv_block): New function.
25169         (collect_phi_def_edges): New function.
25170         (find_def_preds): New function.
25171         (find_dom): New function.
25172         (dump_predicates): New function.
25173         (get_cmp_code): New function.
25174         (is_value_included_in): New function.
25175         (find_matching_predicate_in_rest_chains): New function.
25176         (use_pred_not_overlap_with_undef_path_pred): New function.
25177         (is_use_properly_guarded): New function.
25178         (normalize_cond_1): New function.
25179         (is_and_or_or): New function.
25180         (normalize_cond): New function.
25181         (is_gcond_subset_of): New function.
25182         (is_subset_of_any): New function.
25183         (is_or_set_subset_of): New function.
25184         (is_and_set_subset_of): New function.
25185         (is_norm_cond_subset_of): New function.
25186         (is_pred_expr_subset_of): New function.
25187         (is_pred_chain_subset_of): New function.
25188         (is_included_in): New function.
25189         (is_superset_of): New function.
25190         (find_uninit_use): New function.
25191         (warn_uninitialized_phi): New function.
25192         (compute_possibly_undefined_names): New function.
25193         (ssa_undefined_value_p): New function.
25194         (execute_late_warn_uninitialized): New function.
25195         * tree-ssa.c (ssa_undefined_value_p): Removed.
25196         (warn_uninit): Changed to extern.
25197         (warn_uninitialized_phi): Removed.
25198         (warn_uninitialized_vars): Changed to extern.
25199         (execute_late_warn_uninitialized): Removed
25200         * tree-flow.h: Add new prototypes.
25201         * timevar.def: Add new time variable.
25202         * Makefile.in: Add new build file.
25203
25204 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
25205
25206         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
25207         type if available.
25208
25209 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25210
25211         PR target/22224
25212         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
25213
25214 2010-04-28  Martin Jambor  <mjambor@suse.cz>
25215
25216         * cgraph.h (struct cgraph_node): New field indirect_calls.
25217         (struct cgraph_indirect_call_info): New type.
25218         (struct cgraph_edge): Removed field indirect_call. New fields
25219         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
25220         (cgraph_create_indirect_edge): Declare.
25221         (cgraph_make_edge_direct): Likewise.
25222         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
25223         * ipa-prop.h (struct ipa_param_call_note): Removed.
25224         (struct ipa_node_params): Removed field param_calls.
25225         (ipa_create_all_structures_for_iinln): Declare.
25226         * cgraph.c: Described indirect edges and uids in initial comment.
25227         (cgraph_add_edge_to_call_site_hash): New function.
25228         (cgraph_edge): Search also among the indirect edges, use
25229         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
25230         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
25231         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
25232         site hash.
25233         (initialize_inline_failed): Assign a reason to indirect edges.
25234         (cgraph_create_edge_1): New function.
25235         (cgraph_create_edge): Moved some functionality to
25236         cgraph_create_edge_1.
25237         (cgraph_create_indirect_edge): New function.
25238         (cgraph_edge_remove_callee): Add an assert checking for
25239         non-indirectness.
25240         (cgraph_edge_remove_caller): Special-case indirect edges.
25241         (cgraph_remove_edge): Likewise.
25242         (cgraph_set_edge_callee): New function.
25243         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
25244         (cgraph_make_edge_direct): New function.
25245         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
25246         the declaration of the call statement matches.
25247         (cgraph_node_remove_callees): Special-case indirect edges.
25248         (cgraph_clone_edge): Likewise.
25249         (cgraph_clone_node): Clone also the indirect edges.
25250         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
25251         indirect_call, dump count of indirect_calls edges.
25252         * ipa-prop.c (iinlining_processed_edges): New variable.
25253         (ipa_note_param_call): Create indirect edges instead of
25254         creating notes.  New parameter node.
25255         (ipa_analyze_call_uses): New parameter node, pass it on to
25256         ipa_note_param_call.
25257         (ipa_analyze_stmt_uses): Likewise.
25258         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
25259         (print_edge_addition_message): Work on edges rather than on notes.
25260         (update_call_notes_after_inlining): Likewise, renamed to
25261         update_indirect_edges_after_inlining.
25262         (ipa_create_all_structures_for_iinln): New function.
25263         (ipa_free_node_params_substructures): Do not free notes.
25264         (ipa_edge_duplication_hook): Propagate bits within
25265         iinlining_processed_edges bitmap.
25266         (ipa_node_duplication_hook): Do not duplicate notes.
25267         (free_all_ipa_structures_after_ipa_cp): Renamed to
25268         ipa_free_all_structures_after_ipa_cp.
25269         (free_all_ipa_structures_after_iinln): Renamed to
25270         ipa_free_all_structures_after_iinln.
25271         (ipa_write_param_call_note): Removed.
25272         (ipa_read_param_call_note): Removed.
25273         (ipa_write_indirect_edge_info): New function.
25274         (ipa_read_indirect_edge_info): Likewise.
25275         (ipa_write_node_info): Do not stream notes, do stream information
25276         in indirect edges.
25277         (ipa_read_node_info): Likewise.
25278         (lto_ipa_fixup_call_notes): Removed.
25279         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
25280         * ipa-inline.c (pass_ipa_inline): Likewise.
25281         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
25282         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
25283         * tree-inline.c (copy_bb): Removed an unnecessary double check for
25284         is_gimple_call.
25285         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
25286         edges.
25287         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
25288         (output_cgraph): Stream also indirect edges.
25289         (lto_output_edge): Added capability to stream indirect edges.
25290         (input_edge): Likewise.
25291         (input_cgraph_1): Likewise.
25292         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
25293         of indirect edges.
25294
25295 2010-04-28  Richard Guenther  <rguenther@suse.de>
25296
25297         PR tree-optimization/43879
25298         PR tree-optimization/43909
25299         * tree-ssa-structalias.c (struct variable_info): Add
25300         only_restrict_pointers flag.
25301         (new_var_info): Initialize it.  Increment stats.total_vars here.
25302         (create_function_info_for): Do not increment stats.total_vars here.
25303         (get_function_part_constraint): Fix build with C++.
25304         (insert_into_field_list): Remove.
25305         (push_fields_onto_fieldstack): Properly merge fields.
25306         (create_variable_info_for): Split and simplify.
25307         (create_variable_info_for_1): New piece.
25308         (intra_create_variable_infos): Properly make restrict constraints
25309         from parameters.
25310
25311 2010-04-28  Richard Guenther  <rguenther@suse.de>
25312
25313         PR c++/43880
25314         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
25315
25316 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
25317             Jan Hubicka  <hubicka@ucw.cz>
25318
25319         * doc/invoke.texi (-Wsuggest-attribute=const,
25320         -Wsuggest-attribute=pure): Document.
25321         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
25322         (function_always_visible_to_compiler_p,
25323         suggest_attribute, warn_function_pure, warn_function_const):
25324         New functions.
25325         (check_call): Improve debug info.
25326         (analyze_function): Do not check availability.
25327         (add_new_function): Check availability.
25328         (propagate): Output warnings.
25329         (skip_function_for_local_pure_const): New function.
25330         (local_pure_const): Use it; output warnings.
25331         * common.opt (Wsuggest-attribute=const,
25332         Wsuggest-attribute=pure): New.
25333
25334 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
25335
25336         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
25337         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
25338         or DW_CFA_def_cfa_offset{,_sf}.
25339
25340 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
25341
25342         * tree.h: Fix truncated long macros.
25343
25344 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
25345
25346         * collect2.c (TARGET_64BIT): Redefine to target's default.
25347         * tlink.c: Likewise.
25348         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
25349         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
25350         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
25351         for underscoring __USER_LABEL_PREFIX__.
25352         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
25353         (SUB_LINK_ENTRY32): New.
25354         (SUB_LINK_ENTRY64): New.
25355         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
25356         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
25357         (SUB_LINK_ENTRY64): New.
25358         (SUB_LINK_ENTRY): New.
25359         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
25360         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
25361         x64 target is choosen.
25362         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
25363         * configure: Regenerated.
25364         * configure.ac (leading-mingw64-underscores): Option added.
25365
25366 2010-04-27  Jan Hubicka  <jh@suse.cz>
25367
25368         * doc/invoke.texi (-fipa-profile): Document.
25369         * opts.c (decode_options): Enable ipa-profile at -O1.
25370         * timevar.def (TV_IPA_PROFILE): Define.
25371         * common.opt (fipa-profile): Add.
25372         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
25373         flag for clones.
25374         (cgraph_propagate_frequency): Handle only local ones.
25375         * tree-pass.h (pass_ipa_profile): Declare.
25376         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
25377         (pass_ipa_profile): Use TV_IPA_PROFILE.
25378         * ipa.c (ipa_profile): New function.
25379         (gate_ipa_profile): Likewise.
25380         (pass_ipa_profile): New global variable.
25381         * passes.c (pass_ipa_profile): New.
25382
25383 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
25384
25385         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
25386
25387 2010-04-27  Martin Jambor  <mjambor@suse.cz>
25388
25389         PR middle-end/43812
25390         * ipa.c (dissolve_same_comdat_group_list): New function.
25391         (function_and_variable_visibility): Call
25392         dissolve_same_comdat_group_list when comdat group contains external or
25393         newly local nodes.
25394         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
25395         lists are circular and that they contain only DECL_ONE_ONLY nodes.
25396
25397 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
25398
25399         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
25400         (const_hash_1) <VECTOR_CST>: New case.
25401         (compare_constant) <VECTOR_CST>: Likewise.
25402         <ADDR_EXPR>: Deal with LABEL_REFs.
25403         (copy_constant) <VECTOR_CST>: New case.
25404
25405 2010-04-27  Jan Hubicka  <jh@suse.cz>
25406
25407         * cgraph.c (cgraph_propagate_frequency): New function.
25408         * cgraph.h (cgraph_propagate_frequency): Declare.
25409         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
25410         cgraph_propagate_frequency.
25411
25412 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
25413
25414         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
25415
25416 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
25417
25418         PR target/40657
25419         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
25420         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
25421         here to determine which regs to push and how much stack to reserve.
25422
25423 2010-04-27  Jie Zhang  <jie@codesourcery.com>
25424
25425         * doc/gimple.texi (gimple_statement_with_ops): Remove
25426         addresses_taken field.
25427         (gimple_statement_with_memory_ops): Likewise.
25428
25429 2010-04-27  Jan Hubicka  <jh@suse.cz>
25430
25431         * tree-inline.c (eni_inlining_weights): Remove.
25432         (estimate_num_insns): Special case more builtins.
25433
25434 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
25435
25436         PR c/32207
25437         * c-typeck.c (build_binary_op): Move forward check for comparison
25438         pointer with null pointer constant and adjust the diagnostic message.
25439
25440 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
25441
25442         PR lto/42776
25443         * configure.ac (gcc_cv_as_section_has_align): Set if installed
25444         binutils supports extended .section directive needed by LTO, or
25445         warn if older binutils found.
25446         (LTO_BINARY_READER): New AC_SUBST'd variable.
25447         (LTO_USE_LIBELF): Likewise.
25448         * config.gcc (lto_binary_reader): New target-specific configure
25449         variable.
25450         * Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
25451         (LTO_USE_LIBELF): Likewise.
25452         * configure: Regenerate.
25453
25454         * collect2.c (is_elf): Rename from this ...
25455         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
25456          object files in addition to ELF-formatted ones.
25457         (scan_prog_file): Caller updated.  Also allow for LTO info marker
25458         symbol to be prefixed or not by an extra underscore.
25459
25460         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
25461         * config/i386/winnt.c: Also #include lto-streamer.h
25462         (i386_pe_asm_named_section): Specify 1-byte section alignment for
25463         LTO named sections.
25464         (i386_pe_asm_output_aligned_decl_common): Add comment.
25465         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
25466
25467 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
25468
25469         PR target/43889
25470         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
25471         Add missing earlyclobber for second alternative.
25472
25473 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
25474
25475         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
25476         bits for artificial defs at the top of the block.
25477         * fwprop.c (single_def_use_enter_block): Don't call it.
25478
25479 2010-04-26  Jack Howarth  <howarth@bromo.med.uc.edu>
25480
25481         PR 43715
25482         * configure.ac: Use "$gcc_cv_nm -g" on darwin
25483         instead of "$gcc_cv_objdump -T".
25484         Use "-undefined dynamic_lookup" on darwin.
25485         * configure: Regenerate.
25486
25487 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
25488
25489         PR c/43893
25490         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
25491
25492 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
25493
25494         * c-parser.c (struct c_token): Move location field up.
25495         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
25496         (struct c_declspecs): Convert typespec_word, storage_class, and
25497         default_int_p into bitfields.
25498         (struct c_declarator): Move loc field up.
25499
25500 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
25501
25502         * cfgloop.h (struct loop): Move can_be_parallel field up.
25503         * ipa-prop.h (struct ip_node_params): Move bitfields up.
25504         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
25505         down.
25506         (struct iv_cand): Convert pos field into a bitfield.
25507         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
25508         field up.
25509         (struct _stmt_vec_info): Shuffle fields for better packing.
25510
25511 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
25512
25513         * varasm.c (IN_NAMED_SECTION): Remove guard.
25514         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
25515         (IN_NAMED_SECTION_P): ...this.
25516         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
25517         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
25518
25519 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
25520
25521         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
25522         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
25523         of shadowing it.  Fix comments.
25524
25525 2010-04-26  Jan Hubicka  <jh@suse.cz>
25526
25527         * cgraph.c (cgraph_create_node): Set node frequency to normal.
25528         (cgraph_clone_node): Copy function frequency.
25529         * cgraph.h (node_frequency): New enum
25530         (struct cgraph_node): Add.
25531         * final.c (rest_of_clean_state): Update.
25532         * lto-cgraph.c (lto_output_node): Output node frequency.
25533         (input_overwrite_node): Input node frequency.
25534         * tre-ssa-loop-ivopts (computation_cost): Update.
25535         * lto-streamer-out.c (output_function): Do not output function
25536         frequency.
25537         * predict.c (maybe_hot_frequency_p): Update and handle functions
25538         executed once.
25539         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
25540         attribute lookup.
25541         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
25542         (compute_function_frequency): Set noreturn functions to be executed
25543         once.
25544         (choose_function_section): Update.
25545         * lto-streamer-in.c (input_function): Do not input function frequency.
25546         * function.c (allocate_struct_function): Do not initialize function
25547         frequency.
25548         * function.h (function_frequency): Remove.
25549         (struct function): Remove function frequency.
25550         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
25551         (try_update): Update.
25552         * tree-inline.c (initialize_cfun): Do not update function frequency.
25553         * passes.c (pass_init_dump_file): Update.
25554         * i386.c (ix86_compute_frame_layout): Update.
25555         (ix86_pad_returns): Update.
25556
25557 2010-04-26  Jie Zhang  <jie@codesourcery.com>
25558
25559         PR tree-optimization/43833
25560         * tree-vrp.c (range_int_cst_p): New.
25561         (range_int_cst_singleton_p): New.
25562         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
25563         when both operands are constants.  Use range_int_cst_p in
25564         BIT_IOR_EXPR case.
25565
25566 2010-04-26  Jan Hubicka  <jh@suse.cz>
25567
25568         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
25569
25570 2010-04-26  Richard Guenther  <rguenther@suse.de>
25571
25572         PR lto/43080
25573         * gimple.c (gimple_decl_printable_name): Deal gracefully
25574         with a NULL DECL_NAME.
25575
25576 2010-04-26  Richard Guenther  <rguenther@suse.de>
25577
25578         PR lto/42425
25579         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
25580         if emitting debug information and it is either a function
25581         or a namespace decl.
25582
25583 2010-04-26  Ira Rosen  <irar@il.ibm.com>
25584
25585         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
25586         determine if the statement is vectorizable, and a macro to access it.
25587         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
25588         Skip statements that can't be vectorized. If the analysis fails,
25589         mark the statement as unvectorizable if vectorizing basic block.
25590         (vect_compute_data_refs_alignment): Likewise.
25591         (vect_verify_datarefs_alignment): Skip statements marked as
25592         unvectorizable. Add print.
25593         (vect_analyze_group_access): Skip statements that can't be
25594         vectorized. If the analysis fails, mark the statement as
25595         unvectorizable if vectorizing basic block.
25596         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
25597         * tree-vect-stmts.c (vectorizable_store): Fix the number of
25598         generated stmts for SLP.
25599         (new_stmt_vec_info): Initialize the new field.
25600         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
25601         statements marked as unvectorizable.
25602
25603 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
25604
25605         * c-common.c (flag_isoc1x): New.
25606         (flag_isoc99): Update comment.
25607         * c-common.h (flag_isoc1x): New.
25608         (flag_isoc99): Update comment.
25609         * c-cppbuiltin.c (builtin_define_float_constants): Also define
25610         __<type>_DECIMAL_DIG__.
25611         * c-opts.c (set_std_c1x): New.
25612         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
25613         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
25614         * c.opt (-std=c1x, -std=gnu1x): New options.
25615         * doc/cpp.texi: Mention -std=c1x.
25616         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
25617         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
25618         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
25619         * doc/standards.texi: Mention C1X.
25620         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
25621         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
25622         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
25623         Define for C1X.
25624
25625 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
25626
25627         * config/i386/gmon-sol2.c (_mcleanup): Change format string
25628         placeholder from 0x%x to %#x.
25629         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
25630         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
25631         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
25632         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
25633         * config/i386/i386.c (ix86_target_string): Ditto.
25634         (output_pic_addr_const): Ditto.
25635         (print_operand): Ditto.
25636
25637 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
25638
25639         * combine.c (find_split_point): Add third argument.  Use it
25640         to find nested multiply-accumulate instructions.  Adjust calls.
25641         (try_combine): Adjust call to find_split_point.
25642
25643 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
25644
25645         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
25646
25647 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
25648
25649         PR tree-optimization/41442
25650         * fold-const.c (merge_truthop_with_opposite_arm): New function.
25651         (fold_binary_loc): Call it.
25652
25653 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
25654
25655         * toplev.c (general_init): Set default for fdiagnostics-show-option.
25656         * opts.c (common_handle_option): Allow disabling it.
25657         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
25658
25659 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
25660
25661         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
25662         between modes if both types are integral.
25663
25664 2010-04-23  Richard Guenther  <rguenther@suse.de>
25665
25666         PR tree-optimization/43572
25667         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
25668
25669 2010-04-23  Richard Guenther  <rguenther@suse.de>
25670
25671         PR lto/43455
25672         * tree-inline.c (tree_can_inline_p): Also check compatibility
25673         of return types.
25674
25675 2010-04-23  Martin Jambor  <mjambor@suse.cz>
25676
25677         PR tree-optimization/43846
25678         * tree-sra.c (struct access): New flag grp_assignment_read.
25679         (build_accesses_from_assign): Set grp_assignment_read.
25680         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
25681         (enum mark_read_status): New type.
25682         (analyze_access_subtree): Propagate grp_assignment_read, create
25683         accesses also if both direct_read and root->grp_assignment_read.
25684
25685 2010-04-23  Martin Jambor  <mjambor@suse.cz>
25686
25687         PR middle-end/43835
25688         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
25689         function does not have type attributes.
25690
25691 2010-04-23  Richard Guenther  <rguenther@suse.de>
25692
25693         PR lto/42653
25694         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
25695         of FUNCTION_DECLs.
25696
25697 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
25698
25699         * sese.h (create_if_region_on_edge): Remove.
25700
25701         * sese.c (create_if_region_on_edge): Make static.
25702
25703         * tree-inline.c: Do not include ggc.h.
25704
25705         * expr.c: Do not include ggc.h.
25706
25707         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
25708         dependencies.
25709
25710 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
25711
25712         PR target/43744
25713         * config/sh/sh.c (find_barrier): Don't emit a constant pool
25714         in the middle of insns for casesi_worker_2.
25715
25716 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
25717
25718         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
25719
25720 2010-04-22  Ira Rosen  <irar@il.ibm.com>
25721
25722         PR tree-optimization/43842
25723         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
25724         loop unrolling in update of exit phis. Fix comment.
25725         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
25726         least two reduction statements in the loop before starting SLP
25727         analysis.
25728
25729 2010-04-22  Nick Clifton  <nickc@redhat.com>
25730
25731         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
25732
25733 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
25734
25735         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
25736         to simplify a + ~a.
25737
25738 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
25739
25740         * tree-parloops.c (loop_parallel_p): New argument
25741         parloop_obstack.  Pass it down.
25742         (parallelize_loops): New variable parloop_obstack.  Initialize it,
25743         pass it down, free it.
25744
25745         * tree-loop-linear.c (linear_transform_loops): Pass down
25746         lambda_obstack.
25747
25748         * tree-data-ref.h (lambda_compute_access_matrices): New argument
25749         of type struct obstack *.
25750
25751         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
25752         scratch_obstack.  Initialize it, pass down, free it.
25753
25754         * lambda.h (lambda_loop_new): Remove.
25755         (lambda_matrix_new, lambda_matrix_inverse)
25756         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
25757         argument of type struct obstack *.
25758
25759         * lambda-trans.c (lambda_trans_matrix_new): New argument
25760         lambda_obstack.  Pass it down, use obstack allocation for ret.
25761         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
25762         it down.
25763
25764         * lambda-mat.c (lambda_matrix_get_column)
25765         (lambda_matrix_project_to_null): Remove.
25766         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
25767         allocation for mat.
25768         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
25769         lambda_obstack.
25770
25771         * lambda-code.c (lambda_loop_new): New function.
25772         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
25773         (lambda_compute_auxillary_space, lambda_compute_target_space)
25774         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
25775         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
25776         (build_access_matrix): New argument lambda_obstack.  Use obstack
25777         allocation for am.
25778         (lambda_compute_step_signs, lambda_compute_access_matrices): New
25779         argument lambda_obstack.  Pass it down.
25780
25781 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
25782
25783         * optabs.h (expand_widening_mult): Declare.
25784
25785 2010-04-22  Richard Guenther  <rguenther@suse.de>
25786
25787         PR tree-optimization/43845
25788         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
25789         lookup the CALL_EXPR function and arguments.
25790
25791 2010-04-22  Nick Clifton  <nickc@redhat.com>
25792
25793         * config/stormy16/stormy16.c
25794         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
25795         * config/stormy16/stormy16.h: Tidy up formatting.
25796         (DONT_USE_BUILTIN_SETJMP): Remove definition.
25797         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
25798         (ineqbranchsi): Delete pattern.
25799         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
25800         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
25801         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
25802         stormy16-lib2-ucmpsi2.c.
25803
25804 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
25805
25806         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
25807         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
25808         extra set merge_set_noclobber, and use it to relax the final test
25809         slightly.
25810         * df.h (df_simulate_find_noclobber_defs): Declare.
25811         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
25812         conditional defs.
25813         (df_simulate_find_noclobber_defs): New function.
25814
25815 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
25816
25817         * config/i386/i386.md: Use {} around multi-line preparation statements.
25818
25819 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
25820
25821         * c-tree.h (push_init_level, pop_init_level, set_init_index)
25822         (process_init_element): New argument of type struct obstack *.
25823
25824         * c-typeck.c (push_init_level, pop_init_level, set_designator)
25825         (set_init_index, set_init_label, set_nonincremental_init)
25826         (set_nonincremental_init_from_string, find_init_member)
25827         (output_init_element, output_pending_init_elements)
25828         (process_init_element): New argument braced_init_obstack.  Pass it
25829         down.
25830         (push_range_stack, add_pending_init): New argument
25831         braced_init_obstack.  Use obstack allocation.
25832
25833         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
25834         braced_init_obstack.  Pass it down.
25835         (c_parser_braced_init): New variables ret, braced_init_obstack.
25836         Initialize obstack, pass it down and finally free it.
25837
25838 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
25839
25840         PR middle-end/29274
25841         * tree-pass.h (pass_optimize_widening_mul): Declare.
25842         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
25843         gate_optimize_widening_mul): New static functions.
25844         (pass_optimize_widening_mul): New.
25845         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
25846         <case MULT_EXPR>: Remove support for widening multiplies.
25847         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
25848         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
25849         simplify_gen_unary rather than directly building extensions.
25850         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
25851         WIDEN_MULT_EXPR.
25852         * expmed.c (expand_widening_mult): New function.
25853         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
25854
25855 2010-04-21  Jan Hubicka  <jh@suse.cz>
25856
25857         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
25858         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
25859         * lto-wpa-fixup.c: Remove.
25860         * Makefile.in (lto-wpa-fixup.o): Remove.
25861         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
25862         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
25863         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
25864
25865 2010-04-21  Jan Hubicka  <jh@suse.cz>
25866
25867         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
25868         add write_optimization_summary, read_optimization_summary.
25869         (ipa_write_summaries_of_cgraph_node_set): Remove.
25870         (ipa_write_optimization_summaries): Declare.
25871         (ipa_read_optimization_summaries): Declare.
25872         * ipa-cp.c (pass_ipa_cp): Update.
25873         * ipa-reference.c (pass_ipa_reference): Update.
25874         * ipa-pure-const.c (pass_ipa_pure_const): Update.
25875         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
25876         Update.
25877         * ipa-inline.c (pass_ipa_inline): Update.
25878         * ipa.c (pass_ipa_whole_program): Update.
25879         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
25880         * passes.c (ipa_write_summaries_1): Do not test wpa.
25881         (ipa_write_optimization_summaries_1): New.
25882         (ipa_write_optimization_summaries): New.
25883         (ipa_read_summaries): Do not test ltrans.
25884         (ipa_read_optimization_summaries_1): New.
25885         (ipa_read_optimization_summaries): New.
25886
25887 2010-04-21  Jan Hubicka  <jh@suse.cz>
25888
25889         * lto-cgraph.c (lto_output_node): Do not output comdat groups
25890         for boundary nodes.
25891         (output_cgraph): Do not arrange comdat groups for boundary nodes.
25892
25893 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
25894
25895         PR debug/40040
25896         * dwarf2out.c (add_name_and_src_coords_attributes): Add
25897         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
25898
25899 2010-04-21  Jan Hubicka  <jh@suse.cz>
25900
25901         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
25902
25903 2010-04-21  Jan Hubicka  <jh@suse.cz>
25904
25905         * varpool.c (decide_is_variable_needed): Variable is always needed
25906         during ltrans.
25907
25908 2010-04-21  Jan Hubicka  <jh@suse.cz>
25909
25910         * opts.c (decode_options): Enable pure-const pass for whopr.
25911
25912 2010-04-21  Jan Hubicka  <jh@suse.cz>
25913
25914         * cgraph.c (dump_cgraph_node): Dump also assembler name.
25915         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
25916         at WPA dumping.
25917         (cgraph_decide_inlining): Do not expect callee to be removed in all
25918         cases.
25919
25920 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
25921
25922         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
25923
25924 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
25925
25926         * config/i386/i386.md (x86_shrd): Add athlon_decode and
25927         amdfam10_decode attributes.
25928
25929 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
25930
25931         PR middle-end/43570
25932         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
25933         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
25934         (lower_copyprivate_clauses): Use private var in outer
25935         context instead of original var.  Make sure the types
25936         are correct for VLAs.
25937
25938 2010-04-21  Richard Guenther  <rguenther@suse.de>
25939
25940         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
25941         to non-pointer objects.
25942
25943 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
25944
25945         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
25946         last chain entry if it starts with the still current label.
25947         (add_location_or_const_value_attribute): Check that
25948         loc_list->first->next is NULL instead of comparing ->first with ->last.
25949         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
25950         to add_var_loc_to_decl.
25951
25952         * dwarf2out.c (output_call_frame_info): For dw_cie_version
25953         >= 4 add also address size and segment size fields into CIE header.
25954
25955         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
25956         long as address size is the same as sizeof (void *) and
25957         segment size is 0.
25958         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
25959         address size or segment size is unexpected, return DW_EH_PE_omit.
25960         (classify_object_over_fdes): If get_cie_encoding returned
25961         DW_EH_PE_omit, return -1.
25962         (init_object): If classify_object_over_fdes returned -1,
25963         pretend there were no FDEs at all.
25964
25965 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
25966
25967         * config/i386/i386.md (bswap<mode>2): Macroize expander from
25968         bswap{si,di}2 using SWI48 mode iterator.
25969         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
25970         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
25971         set modrm attribute of bswap insn to 0 and remove length attribute.
25972         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
25973         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
25974         set mode attribute to <MODE> and remove length attribute.
25975
25976 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
25977
25978         PR rtl-optimization/43520
25979         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
25980         zero available registers.
25981
25982 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
25983
25984         * builtins.c (fold_builtin_cproj): Fold more cases.
25985
25986 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
25987
25988         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
25989         (fold_builtin_1): Fold builtin cproj.
25990         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
25991         Use ATTR_CONST_NOTHROW_LIST.
25992
25993 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
25994
25995         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
25996         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
25997         ffsi2_no_cmove for !TARGET_CMOVE.
25998         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
25999         (ffssi2): Remove expander.
26000         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
26001         mode iterator.
26002         (ctz<mode>2): Ditto from ctz{si,di}2.
26003         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
26004         mode iterator.
26005         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
26006         mode iterator.
26007
26008 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
26009
26010         * dwarf2out.c (AT_linkage_name): Define.
26011         (clone_as_declaration): Handle DW_AT_linkage_name.
26012         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
26013         of DW_AT_MIPS_linkage_name.
26014         (move_linkage_attr): Likewise.
26015         (dwarf2out_finish): Likewise.
26016
26017 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
26018
26019         PR middle-end/41952
26020         * fold-const.c (fold_comparison): New folding rule.
26021
26022 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
26023
26024         * double-int.h (double_int_setbit): Declare.
26025         * double-int.c (double_int_setbit): New function.
26026         * rtl.h (immed_double_int_const): Declare.
26027         * emit-rtl.c (immed_double_int_const): New function.
26028         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
26029         and immed_double_int_const functions.
26030         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
26031         expand_copysign_bit): (Ditto.).
26032         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
26033         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
26034         * dojump.c (prefer_and_bit_test): (Ditto.).
26035         * expr.c (convert_modes, reduce_to_bit_field_precision,
26036         const_vector_from_tree): (Ditto.).
26037         * expmed.c (mask_rtx, lshift_value): (Ditto.).
26038
26039 2010-04-20  Jan Hubicka  <jh@suse.cz>
26040
26041         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
26042         (dump_cgraph_node): Dump new flags.
26043         * cgraph.h (struct cgraph_node): Add flags
26044         reachable_from_other_partition and in_other_partition.
26045         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
26046         other partition can not be removed.
26047         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
26048         the other partition must be output; silence sanity checking on
26049         leaking functions bodies from other paritition.
26050         * lto-cgraph.c (reachable_from_other_partition_p): New function.
26051         (lto_output_node): Output new flags; do not sanity check that inline
26052         clones are output; drop lto_forced_extern_inline_p code; do not mock
26053         visibility flags at partition boundaries.
26054         (add_node_to): New function.
26055         (output_cgraph): Use it to sort functions so masters appear before
26056         clones.
26057         (input_overwrite_node): Input new flags.
26058         * passes.c (ipa_write_summaries): Do not call
26059         lto_new_extern_inline_states.
26060         * lto-section-out.c (forced_extern_inline,
26061         lto_new_extern_inline_states lto_delete_extern_inline_states,
26062         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
26063         * lto-streamer.h (lto_new_extern_inline_states,
26064         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
26065         lto_forced_extern_inline_p): Kill.
26066
26067 2010-04-20  Richard Guenther  <rguenther@suse.de>
26068
26069         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
26070         from vars that can have pointers.
26071         (process_constraint): Dump useless constraints.
26072
26073 2010-04-20  Richard Guenther  <rguenther@suse.de>
26074
26075         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
26076         (dump_sa_points_to_info): Remove asserts.
26077         (init_base_vars): nothing_id isn't an escape point nor does it
26078         have pointers.
26079
26080 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
26081
26082         * tree.h (TYPE_REF_IS_RVALUE): Define.
26083         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
26084         should_move_die_to_comdat, prune_unused_types_walk): Handle
26085         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
26086         (modified_type_die, gen_reference_type_die): Emit
26087         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
26088         if TYPE_REF_IS_RVALUE and -gdwarf-4.
26089
26090 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26091
26092         PR target/43635
26093         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
26094         calls for -fpic -m31 if they have been sibcall optimized.
26095
26096 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
26097
26098         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
26099         ar.lc fixed and call-used.
26100
26101         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
26102
26103 2010-04-19  Jan Hubicka  <jh@suse.cz>
26104
26105         * opts.c (decode_options): Disable whpr incompatible passes.
26106         * lto/lto.c (lto_1_to_1_map): Skip clones.
26107         (read_cgraph_and_symbols): Do not mark everything as needed.
26108         (do_whole_program_analysis): Do map only after optimizing;
26109         set proper cgraph_state; use passmanager.
26110
26111 2010-04-19  DJ Delorie  <dj@redhat.com>
26112
26113         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
26114         POINTER_PLUS_EXPR and fix them.
26115
26116 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
26117
26118         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
26119         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
26120         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
26121         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
26122         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
26123         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
26124         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
26125         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
26126         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
26127         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
26128         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
26129
26130 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
26131
26132         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
26133         (check_cond_move_block): Likewise.
26134         (cond_move_process_if_block): Likewise.
26135         (noce_find_if_block): Improve formatting.
26136         (find_if_header): Pass 0 to memset and tweak conditions.
26137         (cond_exec_find_if_block): Fix long lines and tweak conditions.
26138
26139 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
26140
26141         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
26142         for -gdwarf-4.
26143
26144         PR middle-end/43337
26145         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
26146         with non-local decl doesn't need chain.
26147
26148 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
26149
26150         * ira-color.c (allocno_reload_assign): Avoid accumulating
26151         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
26152
26153 2010-04-19  Martin Jambor  <mjambor@suse.cz>
26154
26155         * gimple.h (create_tmp_reg): Declare.
26156         * gimplify.c (create_tmp_reg): New function.
26157         (gimplify_return_expr): Use create_tmp_reg.
26158         (gimplify_omp_atomic): Likewise.
26159         (gimple_regimplify_operands): Likewise.
26160         * tree-dfa.c (make_rename_temp): Likewise.
26161         * tree-predcom.c (predcom_tmp_var): Likewise.
26162         (reassociate_to_the_same_stmt): Likewise.
26163         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
26164         (get_replaced_param_substitute): Likewise.
26165         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
26166         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
26167         * tree-ssa-pre.c (get_representative_for): Likewise.
26168         (create_expression_by_pieces): Likewise.
26169         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
26170         (create_tailcall_accumulator): Likewise.
26171
26172 2010-04-19  Martin Jambor  <mjambor@suse.cz>
26173
26174         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
26175         new_stmt.
26176         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
26177
26178 2010-04-19  Richard Guenther  <rguenther@suse.de>
26179
26180         PR tree-optimization/43796
26181         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
26182         from SCEV in the lattice.
26183         (vrp_visit_phi_node): Dump change.
26184
26185 2010-04-19  Richard Guenther  <rguenther@suse.de>
26186
26187         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
26188         * configure: Re-generated.
26189
26190 2010-04-19  Richard Guenther  <rguenther@suse.de>
26191
26192         PR tree-optimization/43783
26193         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
26194         constant ARRAY_REF operands two and three if possible.
26195
26196 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
26197
26198         PR target/43766
26199         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
26200
26201 2010-04-19  Jie Zhang  <jie@codesourcery.com>
26202
26203         PR target/43662
26204         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
26205
26206 2010-04-19  Ira Rosen  <irar@il.ibm.com>
26207
26208         PR tree-optimization/37027
26209         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
26210         and macro to access it.
26211         (vectorizable_reduction): Add argument.
26212         (vect_get_slp_defs): Likewise.
26213         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
26214         statements for possible use in SLP.
26215         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
26216         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
26217         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
26218         add new argument.
26219         (vectorizable_reduction): Likewise.
26220         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
26221         vect_get_slp_defs.
26222         (vectorizable_type_demotion, vectorizable_type_promotion,
26223         vectorizable_store): Likewise.
26224         (vect_analyze_stmt): Update call to vectorizable_reduction.
26225         (vect_transform_stmt): Likewise.
26226         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
26227         (vect_build_slp_tree): Fix indentation. Check that there are no loads
26228         from different interleaving chains in same node.
26229         (vect_slp_rearrange_stmts): New function.
26230         (vect_supported_load_permutation_p): Allow load permutations for
26231         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
26232         inside SLP nodes if necessary.
26233         (vect_analyze_slp_instance): Handle reductions.
26234         (vect_analyze_slp): Try to build SLP instances originating from groups
26235         of reductions.
26236         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
26237         (vect_get_constant_vectors): Create initial vectors for reductions
26238         according to reduction code. Add new argument.
26239         (vect_get_slp_defs): Add new argument, pass it to
26240         vect_get_constant_vectors.
26241         (vect_schedule_slp_instance): Remove SLP tree root statements.
26242
26243 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
26244
26245         * tree.h (ENUM_IS_SCOPED): Define.
26246         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
26247         for ENUM_IS_SCOPED enums.
26248
26249 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
26250
26251         * fold-const.c (fold_comparison): Use ssizetype.
26252         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
26253         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
26254         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
26255         * tree-object-size.c (compute_object_sizes): Use size_type_node.
26256
26257         * tree.h (initialize_sizetypes): Remove parameter.
26258         (build_common_tree_nodes): Remove second parameter.
26259         * stor-layout.c (initialize_sizetypes): Remove parameter.
26260         Always create an unsigned type.
26261         (set_sizetype): Assert that the passed type is unsigned and simplify.
26262         * tree.c (build_common_tree_nodes): Remove second parameter.
26263         Adjust call to initialize_sizetypes.
26264         * c-decl.c (c_init_decl_processing): Remove second argument in call to
26265         build_common_tree_nodes.
26266
26267 2010-04-18  Matthias Klose  <doko@ubuntu.com>
26268
26269         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
26270
26271 2010-04-18  Ira Rosen  <irar@il.ibm.com>
26272
26273         PR tree-optimization/43771
26274         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
26275         load permutation doesn't have gaps.
26276
26277 2010-04-18  Jan Hubicka  <jh@suse.cz>
26278
26279         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
26280         (sse_prologue_save_insn expander): Use new pattern.
26281         (sse_prologue_save_insn1): New pattern and splitter.
26282         (sse_prologue_save_insn): Update to deal also with 64bit aligned
26283         blocks.
26284         * i386.c (setup_incoming_varargs_64): Do not compute jump
26285         destination here.
26286         (ix86_gimplify_va_arg): Update alignment needed.
26287         (ix86_local_alignment): Do not align all local arrays to 128bit.
26288
26289 2010-04-17  Jan Hubicka  <jh@suse.cz>
26290
26291         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
26292
26293 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
26294
26295         * arm.md (negdi2): Remove redundant code to force values into a
26296         register.
26297
26298 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
26299
26300         * arm/bpabi.S: Add EABI alignment attributes to objects.
26301         * arm/bpabi-v6m.S: Likewise.
26302         * arm/crti.asm: Likewise.
26303         * arm/crtn.asm: Likewise.
26304         * arm/lib1funcs.asm: Likewise.
26305         * arm/libunwind.S: Likewise.
26306
26307 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
26308
26309         * arm-protos.h (tune_params): New structure.
26310         * arm.c (current_tune): New variable.
26311         (arm_constant_limit): Delete.
26312         (struct processors): Add pointer to the tune parameters.
26313         (arm_slowmul_tune): New tuning option.
26314         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
26315         (all_cores): Adjust to pick up the tuning model.
26316         (arm_constant_limit): New function.
26317         (arm_override_options): Select the appropriate tuning model.  Delete
26318         initialization of arm_const_limit.
26319         (arm_split_constant): Use the new constant-limit model.
26320         (arm_rtx_costs): Pick up the current tuning model.
26321         * arm.md (is_strongarm, is_xscale): Delete.
26322         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
26323         for Xscale variant architectures.
26324         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
26325
26326 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
26327
26328         * config/arm/arm.c (arm_gen_constant): Remove unused variable
26329         can_shift.
26330         (arm_rtx_costs_1): Remove unused variable extra_cost.
26331         (arm_unwind_emit_set): Use variable offset.
26332         (thumb1_output_casesi): Remove unused variable flags.
26333
26334 2010-04-16  Jeff Law  <law@redhat.com>
26335
26336         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
26337         needing assignment rather than doing a two-phase assignment.  Remove
26338         unused variable 'm'.
26339
26340 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
26341
26342         PR bootstrap/43767
26343         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
26344
26345 2010-04-16  Doug Kwan  <dougkwan@google.com>
26346
26347         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
26348         (next_operand_entry_id): New static variable.
26349         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
26350         (add_to_ops_vec): Assigned unique ID to operand entry.
26351         (struct oecount_s): New field ID.
26352         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
26353         (undistribute_ops_list): Assign unique IDs to oecounts.
26354         (init_reassoc): reset next_operand_entry_id.
26355
26356 2010-04-16  Doug Kwan  <dougkwan@google.com>
26357
26358         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
26359         missing left parenthesis.
26360
26361 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
26362
26363         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
26364         *btdi_rex64 using SWI48 mode iterator.
26365         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
26366         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
26367         *jcc_btdi_mask_rex64.
26368
26369 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
26370
26371         * double-int.h (tree_to_double_int): Convert to macro.
26372         * double-int.c (tree_to_double_int): Remove.
26373
26374 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
26375
26376         PR debug/43762
26377         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
26378         with want_address 2 and in case a single element list might be
26379         possible, call it again with want_address 0.
26380
26381 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
26382
26383         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
26384         case 'W' print operands for HI mode.
26385         * config/h8300/h8300.h (Y0, Y2) : New constraints.
26386         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
26387         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
26388         * config/h8300/predicate.md (bit_register_indirect_operand): New.
26389
26390         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
26391
26392         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
26393         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
26394         #xx:3 and #xx:4 mode.
26395
26396         * config/h8300/h8300.md (inverted load with HImode dest): Add
26397         support for H8300SX.
26398
26399         * config/h8300/predicate.md (bit_operand): Allow immediate values that
26400         satisfy 'U' constraint.
26401
26402 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26403
26404         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
26405         * configure: Regenerate.
26406         * config.in: Regenerate.
26407         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
26408         works.
26409
26410 2010-04-16  Richard Guenther  <rguenther@suse.de>
26411
26412         * tree.h (struct tree_decl_minimal): Move pt_uid ...
26413         (struct tree_decl_common): ... here.
26414         (DECL_PT_UID): Adjust.
26415         (SET_DECL_PT_UID): Likewise.
26416         (DECL_PT_UID_SET_P): Likewise.
26417
26418 2010-04-16  Richard Guenther  <rguenther@suse.de>
26419
26420         PR tree-optimization/43572
26421         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
26422         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
26423         * tree-flow.h (is_call_clobbered): Remove.
26424         * tree-flow-inline.h (is_call_clobbered): Likewise.
26425         * tree-dfa.c (dump_variable): Do not dump call clobber state.
26426         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
26427         (execute_return_slot_opt): Adjust.
26428         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
26429         check for call clobbered vars here.
26430         (find_tail_calls): Move tailcall verification to the
26431         proper place.
26432
26433 2010-04-16  Diego Novillo  <dnovillo@google.com>
26434
26435         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
26436
26437 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
26438
26439         PR target/40603
26440         * config/arm/arm.md (cbranchqi4): New pattern.
26441         * config/arm/predicates.md (const0_operand,
26442         cbranchqi4_comparison_operator): New predicates.
26443
26444 2010-04-16  Richard Guenther  <rguenther@suse.de>
26445
26446         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
26447         (dump_gimple_stmt): Likewise.
26448
26449 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
26450
26451         * recog.h (struct recog_data): New field is_operator.
26452         (struct insn_operand_data): New field is_operator.
26453         * recog.c (extract_insn): Set recog_data.is_operator.
26454         * genoutput.c (output_operand_data): Emit code to set the
26455         is_operator field.
26456         * reload.c (find_reloads): Use it rather than testing for an
26457         empty constraint string.
26458
26459         PR target/41514
26460         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
26461         If the previous insn is a cbranchsi4_insn with the same arguments,
26462         omit the compare instruction.
26463
26464         * config/arm/arm.md (addsi3_cbranch): If destination is a high
26465         register, inputs must be low registers and we need a low register
26466         scratch.  Handle alternative 2 like alternative 3.
26467
26468 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
26469
26470         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
26471         don't call get_addr on both.  If one expression is a VALUE and
26472         the other a REG, check VALUE's locs if the REG isn't among them.
26473
26474 2010-04-16  Christian Bruel  <christian.bruel@st.com>
26475
26476         * config/sh/sh.h (sh_frame_pointer_required): New function.
26477         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
26478         (flag_omit_frame_pointer) Set.
26479         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
26480         (rounded_frame_size): Adjust size with outgoing_args_size.
26481         (sh_set_return_address): Must return from stack pointer.
26482         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
26483         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
26484         (ACCUMULATE_OUTGOING_ARGS): Define.
26485         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
26486         * config/sh/sh.opt (maccumulate-outgoing-args): New option.
26487
26488 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
26489
26490         PR target/43471
26491         * config/sh/sh.c (sh_legitimize_reload_address): Use
26492         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
26493         Remove a unneeded check for offset_base.
26494
26495 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
26496
26497         * configure: Regenerated.
26498
26499 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26500
26501         * config/s390/s390.c (s390_call_save_register_used): Switch back
26502         to HARD_REGNO_NREGS.
26503
26504 2010-04-15  Richard Guenther  <rguenther@suse.de>
26505
26506         * alias.c (alias_set_subset_of): Handle alias-set zero
26507         child properly.
26508
26509 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
26510             Julian Brown  <julian@codesourcery.com>
26511
26512         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
26513         alternatives according to use of high and low regs.
26514         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
26515         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
26516         optimizing for size on Thumb-2.
26517
26518 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
26519
26520         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
26521
26522 2010-04-15  Richard Guenther  <rguenther@suse.de>
26523
26524         * tree-ssa-structalias.c (struct variable_info): Add
26525         is_fn_info flag.
26526         (new_var_info): Initialize it.
26527         (dump_constraints): Support printing last added constraints.
26528         (debug_constraints): Adjust.
26529         (dump_constraint_graph): Likewise.
26530         (make_heapvar_for): Check for NULL cfun.
26531         (get_function_part_constraint): New function.
26532         (get_fi_for_callee): Likewise.
26533         (find_func_aliases): Properly implement IPA PTA constraints.
26534         (process_ipa_clobber): New function.
26535         (find_func_clobbers): Likewise.
26536         (insert_into_field_list_sorted): Remove.
26537         (create_function_info_for): Properly allocate vars for IPA mode.
26538         Do not use insert_into_field_list_sorted.
26539         (create_variable_info_for): Properly generate constraints for
26540         global vars in IPA mode.
26541         (dump_solution_for_var): Always dump the solution.
26542         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
26543         (find_what_var_points_to): Adjust.
26544         (pt_solution_set): Change.
26545         (pt_solution_ior_into): New function.
26546         (pt_solution_empty_p): Export.
26547         (pt_solution_includes_global): Adjust.
26548         (pt_solution_includes_1): Likewise.
26549         (pt_solutions_intersect_1): Likewise.
26550         (dump_sa_points_to_info): Check some invariants.
26551         (solve_constraints): Move constraint dumping ...
26552         (compute_points_to_sets): ... here.
26553         (ipa_pta_execute): ... and here.
26554         (compute_may_aliases): Do not re-compute points-to info
26555         locally if IPA info is available.
26556         (ipa_escaped_pt): New global var.
26557         (ipa_pta_execute): Properly implement IPA PTA.
26558         * tree-into-ssa.c (dump_decl_set): Support dumping
26559         decls not in referenced-vars.
26560         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
26561         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
26562         (dump_points_to_solution): Likewise.
26563         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
26564         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
26565         (remap_gimple_stmt): Reset call clobber/use information if necessary.
26566         (copy_decl_to_var): Copy DECL_PT_UID.
26567         (copy_result_decl_to_var): Likewise.
26568         * tree.c (make_node_stat): Initialize DECL_PT_UID.
26569         (copy_node_stat): Copy it.
26570         * tree.h (DECL_PT_UID): New macro.
26571         (SET_DECL_PT_UID): Likewise.
26572         (DECL_PT_UID_SET_P): Likewise.
26573         (struct tree_decl_minimal): Add pt_uid member.
26574         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
26575         (pt_solution_empty_p): Declare.
26576         (pt_solution_set): Adjust.
26577         (ipa_escaped_pt): Declare.
26578         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
26579         * gimple-pretty-print.c (pp_points_to_solution): New function.
26580         (dump_gimple_call): Dump call clobber/use information.
26581         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
26582         * tree-pass.h (TDF_ALIAS): New dump option.
26583         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
26584         * doc/invoke.texi (-fipa-pta): Update documentation.
26585
26586 2010-04-15  Richard Guenther  <rguenther@suse.de>
26587
26588         * Makefile.in (OBJS-common): Add gimple-fold.o.
26589         (gimple-fold.o): New rule.
26590         * tree.h (maybe_fold_offset_to_reference,
26591         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
26592         prototypes ...
26593         * gimple.h: ... here.
26594         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
26595         may_propagate_address_into_dereference): Move prototypes ...
26596         * gimple.h: ... here.
26597         * tree-ssa-ccp.c (get_symbol_constant_value,
26598         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
26599         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
26600         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
26601         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
26602         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
26603         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
26604         gimplify_and_update_call_from_tree): Move ...
26605         * gimple-fold.c: ... here.  New file.
26606         (ccp_fold_builtin): Rename to ...
26607         (gimple_fold_builtin): ... this.
26608         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
26609
26610 2010-04-15  Richard Guenther  <rguenther@suse.de>
26611
26612         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
26613         fit_double_type, force_fit_type_double, add_double_with_sign,
26614         neg_double, mul_double_with_sign, lshift_double, rshift_double,
26615         lrotate_double, rrotate_double, div_and_round_double): Move ...
26616         * double-int.c: ... here.
26617         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
26618         add_double, neg_double, mul_double_with_sign, mul_double,
26619         lshift_double, rshift_double, lrotate_double, rrotate_double,
26620         div_and_round_double): Move prototypes ...
26621         * double-int.h: ... here.
26622
26623 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
26624
26625         PR target/43742
26626         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
26627         matching constraints to ensure inputs match the output.
26628
26629 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
26630
26631         PR target/43742
26632         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
26633         in an input-only operand.
26634
26635 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
26636
26637         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
26638         (double_int_not, double_int_lshift, double_int_rshift): Declare.
26639         (double_int_negative_p): Convert to static inline function.
26640         * double-int.c (double_int_lshift, double_int_lshift): New functions.
26641         (double_int_negative_p): Remove.
26642         * tree.h (lshift_double, rshift_double):
26643         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
26644         * fold-const.c (fold_convert_const_int_from_real,
26645         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
26646         (lshift_double): Change type of arith argument to bool.
26647         (rshift_double): Change type of arith argument to bool. Correct
26648         comment.
26649         * expmed.c (mask_rtx, lshift_value): (Ditto.).
26650
26651 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
26652
26653         PR target/21803
26654         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
26655         at the start and end of the then/else blocks, and omit them from the
26656         conversion.
26657         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
26658         argument; all callers changed.  Pass zero to old_insns_match_p instead.
26659         (flow_find_head_matching_sequence): New function.
26660         (old_insns_match_p): Check REG_EH_REGION notes for calls.
26661         * basic-block.h (flow_find_cross_jump,
26662         flow_find_head_matching_sequence): Declare functions.
26663
26664 2010-04-14  Jason Merrill  <jason@redhat.com>
26665
26666         PR c++/36625
26667         * c-common.c (attribute_takes_identifier_p): New fn.
26668         * c-common.h: Declare it.
26669
26670 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
26671
26672         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
26673         splitter condition.
26674         (*udivmod<mode>4): Ditto.
26675
26676 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
26677
26678         * config/i386/i386.md (maxmin_int): Rename code attribute from
26679         maxminiprefix and update all users.
26680         (maxmin_float): Ditto from maxminfprefix.
26681         (logic): Ditto from logicprefix.
26682         (absneg_mnemonic): Ditto from absnegprefix.
26683         * config/i386/mmx.md: Update all users of maxminiprefix,
26684         maxminfprefix and logicprefix for rename.
26685         * config/i386/sse.md: Ditto.
26686         * config/i386/sync.md (sync_<code><mode>): Update for
26687         logicprefix rename.
26688
26689 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26690
26691         PR 42966
26692         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
26693         warnings converted to errors.
26694
26695 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
26696
26697         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
26698         used insn_type variable.
26699         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
26700         to avoid set-but-not-used warning.
26701
26702 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
26703
26704         * df-core.c (df_ref_debug): Change format string placeholder
26705         from 0x%x to %#x.
26706         * dwarf2asm.c (dw2_asm_output_data_raw,
26707         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
26708         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
26709         * dwarf2out.c (output_cfi, output_cfi_directive,
26710         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
26711         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
26712         Ditto.
26713         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
26714         * print-rtl.c (print_rtx): Ditto.
26715
26716 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
26717
26718         PR middle-end/42694
26719         * builtins.c (expand_builtin_pow_root): New function to expand pow
26720         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
26721         series of sqrt and cbrt calls under -ffast-math.
26722         (expand_builtin_pow): Call it.
26723
26724 2010-04-14  Michael Matz  <matz@suse.de>
26725
26726         PR tree-optimization/42963
26727         * tree-cfg.c (touched_switch_bbs): New static variable.
26728         (group_case_labels_stmt): New function broken out from ...
26729         (group_case_labels): ... here, use the above.
26730         (start_recording_case_labels): Allocate touched_switch_bbs.
26731         (end_recording_case_labels): Deallocate it, call
26732         group_case_labels_stmt.
26733         (gimple_redirect_edge_and_branch): Remember index of affected BB.
26734
26735 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
26736
26737         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
26738         from insn template.
26739
26740 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
26741
26742         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
26743
26744 2010-04-13  Jan Hubicka  <jh@suse.cz>
26745
26746         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
26747         of optimized out static functions.
26748         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
26749         cost computation.  Also sanity check for overflows.
26750         (update_caller_keys): Update cgraph_edge_badness call; properly
26751         update fibheap and sanity check that it is up to date.
26752         (add_new_edges_to_heap): Update cgraph_edge_badness.
26753         (cgraph_decide_inlining_of_small_function): Likewise;
26754         add sanity checking that badness in heap is up to date;
26755         improve dumping of reason; Update badness of calls to the
26756         offline copy of function currently inlined; dump badness
26757         of functions not inlined because of unit growth limits.
26758
26759 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
26760
26761         PR middle-end/32628
26762         * c-common.c (pointer_int_sum): Disregard overflow that occured only
26763         because of sign-extension change when converting to sizetype here...
26764         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
26765
26766         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
26767         the folding to constants.  Remove redundant final conversion.
26768         (fold_binary) <associate>: Do not associate if the re-association of
26769         constants alone overflows.
26770         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
26771         to the end of the list.
26772         (multiple_of_p) <COND_EXPR>: New case.
26773
26774 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26775
26776         * opt-functions.awk (opt_sanitized_name): New.
26777         (opt_enum): New.
26778         * optc-gen.awk: Use it
26779         * opth-gen.awk: Use it.
26780
26781 2010-04-13  Martin Jambor  <mjambor@suse.cz>
26782
26783         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
26784         (sra_modify_assign): Delete stmts loading dead data even if racc has no
26785         children.  Call replace_uses_with_default_def_ssa_name to handle
26786         SSA_NAES on lhs.
26787
26788 2010-04-13  Michael Matz  <matz@suse.de>
26789
26790         PR middle-end/43730
26791         * builtins.c (expand_builtin_interclass_mathfn): Also create
26792         a register if the predicate doesn't match.
26793
26794 2010-04-13  Diego Novillo  <dnovillo@google.com>
26795
26796         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
26797         * c-pch.c: Include timevar.h.
26798         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
26799         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
26800         * ggc-common.c: Include timevar.h.
26801         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
26802         * timevar.def (TV_PCH_SAVE): Define.
26803         (TV_PCH_CPP_SAVE): Define.
26804         (TV_PCH_PTR_REALLOC): Define.
26805         (TV_PCH_PTR_SORT): Define.
26806         (TV_PCH_RESTORE): Define.
26807         (TV_PCH_CPP_RESTORE): Define.
26808
26809 2010-04-13  Michael Matz  <matz@suse.de>
26810
26811         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
26812         into MINUS_EXPRs.
26813         (can_reassociate_p): New function.
26814         (break_up_subtract_bb, reassociate_bb): Use it.
26815
26816 2010-04-13  Richard Guenther  <rguenther@suse.de>
26817
26818         PR bootstrap/43737
26819         * builtins.c (c_readstr): Fix assert.
26820
26821 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
26822
26823         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
26824         when generating cltd insn.
26825
26826         (*ashl<mode>3_1): Remove special handling for register operand 2.
26827         (*ashlsi3_1_zext): Ditto.
26828         (*ashlhi3_1): Ditto.
26829         (*ashlhi3_1_lea): Ditto.
26830         (*ashlqi3_1): Ditto.
26831         (*ashlqi3_1_lea): Ditto.
26832         (*<shiftrt_insn><mode>3_1): Ditto.
26833         (*<shiftrt_insn>si3_1_zext): Ditto.
26834         (*<shiftrt_insn>qi3_1_slp): Ditto.
26835         (*<rotate_insn><mode>3_1): Ditto.
26836         (*<rotate_insn>si3_1_zext): Ditto.
26837         (*<rotate_insn>qi3_1_slp): Ditto.
26838
26839 2010-04-13  Richard Guenther  <rguenther@suse.de>
26840
26841         * tree-ssa-structalias.c (callused_id): Remove.
26842         (call_stmt_vars): New.
26843         (get_call_vi): Likewise.
26844         (lookup_call_use_vi): Likewise.
26845         (lookup_call_clobber_vi): Likewise.
26846         (get_call_use_vi): Likewise.
26847         (get_call_clobber_vi): Likewise.
26848         (make_transitive_closure_constraints): Likewise.
26849         (handle_const_call): Adjust to do per-call call-used handling.
26850         (handle_pure_call): Likewise.
26851         (find_what_var_points_to): Remove general callused handling.
26852         (init_base_vars): Likewise.
26853         (init_alias_vars): Initialize call_stmt_vars.
26854         (compute_points_to_sets): Process call-used and call-clobbered
26855         vars for call statements.
26856         (delete_points_to_sets): Free call_stmt_vars.
26857
26858 2010-04-13  Richard Guenther  <rguenther@suse.de>
26859
26860         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
26861         Only add RW dependence for dependence distance zero.
26862         Adjust maximal vectorization factor according to dependences.
26863         Move alignment handling ...
26864         (vect_find_same_alignment_drs): ... here.  New function.
26865         (vect_analyze_data_ref_dependences): Adjust.
26866         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
26867         (vect_analyze_data_refs): Adjust minimal vectorization factor
26868         according to data references.
26869         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
26870         dependences before determining the vectorization factor.
26871         Analyze alignment after determining the vectorization factor.
26872         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
26873         dependences before alignment.
26874         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
26875         Adjust prototype.
26876         (vect_analyze_data_refs): Likewise.
26877         (MAX_VECTORIZATION_FACTOR): New define.
26878
26879 2010-04-13  Duncan Sands  <baldrick@free.fr>
26880
26881         * except.h (lang_eh_type_covers): Remove.
26882         * except.c (lang_eh_type_covers): Likewise.
26883
26884 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26885             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
26886
26887         * config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
26888         * config/s390/s390.c: Replace UNTIS_PER_WORD with
26889         UNITS_PER_LONG where it is ABI relevant.
26890         (s390_return_addr_rtx): Likewise.
26891         (s390_back_chain_rtx): Likewise.
26892         (s390_frame_area): Likewise.
26893         (s390_frame_info): Likewise.
26894         (s390_initial_elimination_offset): Likewise.
26895         (save_gprs): Likewise.
26896         (s390_emit_prologue): Likewise.
26897         (s390_emit_epilogue): Likewise.
26898         (s390_function_arg_advance): Likewise.
26899         (s390_function_arg): Likewise.
26900         (s390_va_start): Likewise.
26901         (s390_gimplify_va_arg): Likewise.
26902         (s390_function_profiler): Likewise.
26903         (s390_optimize_prologue): Likewise.
26904         (s390_rtx_costs): Likewise.
26905         (s390_secondary_reload): Likewise.
26906         (s390_promote_function_mode): Likewise.
26907         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
26908         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
26909         registers available.
26910         (s390_unwind_word_mode): New function.
26911         (s390_function_value): Split 64 bit values into register pair if
26912         used as return value.
26913         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
26914         function call parameters.  Handle parallels.
26915         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
26916         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
26917         (DWARF_CIE_DATA_ALIGNMENT): New macro.
26918         (s390_expand_setmem): Remove unused variable src_addr.
26919         * longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
26920         deal with 64 bit registers.
26921         * config/s390/s390.h: Define __zarch__ predefined macro.
26922         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
26923         (UNITS_PER_LONG): New macro.
26924         * libjava/include/s390-signal.h: Define extended ucontext
26925         structure containing the upper halfs of the 64 bit registers.
26926
26927 2010-04-13  Simon Baldwin  <simonb@google.com>
26928
26929         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
26930
26931 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
26932
26933         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
26934         rvalue on the RHS if the LHS is of a non-renamable type.
26935         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
26936
26937 2010-04-13  Matthias Klose  <doko@ubuntu.com>
26938
26939         * gcc.c (cc1_options): Handle -iplugindir before processing
26940         the cc1 spec. Only add -iplugindir once.
26941         (cpp_unique_options): Add -iplugindir option if -fplugin* options
26942         found.
26943         * common.opt (iplugindir): Remove `Separate' property, initialize.
26944         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
26945         option.
26946         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
26947         (distclean): Remove plugin dir.
26948         * doc/invoke.texi: Document -iplugindir.
26949
26950 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
26951
26952         * doc/plugins.texi (Loading Plugins): Document short
26953         -fplugin=foo option.
26954         (Plugin API): Mention default_plugin_dir_name function.
26955
26956         * gcc.c (find_file_spec_function): Add new declaration.
26957         (static_spec_func): Use it for "find-file".
26958         (find_file_spec_function): Add new function.
26959         (cc1_options): Add -iplugindir option if -fplugin* options found.
26960
26961         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
26962
26963         * plugin.c (add_new_plugin): Updated comment, and handle short
26964         plugin name.
26965         (default_plugin_dir_name): Added new function.
26966
26967         * common.opt (iplugindir): New option to set the plugin directory.
26968
26969 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
26970
26971         * config/i386/i386.md (any_rotate): New code iterator.
26972         (rotate_insn): New code attribute.
26973         (rotate): Ditto.
26974         (SWIM124): New mode iterator.
26975         (<rotate_insn>ti3): New expander.
26976         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
26977         any_rotate code iterator.
26978         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
26979         using any_rotate code iterator and SWIM124 mode iterator.
26980         (ix86_rotlti3): New insn_and_split pattern.
26981         (ix86_rotrti3): Ditto.
26982         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
26983         ix86_rotl{di,ti}3 patterns.
26984         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
26985         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
26986         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
26987         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
26988         code iterator and SWI mode iterator.
26989         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
26990         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
26991         code iterator.
26992         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
26993         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
26994         (bswap rotatert splitter): Add splitter.
26995         (bswap splitter): Macroize splitter using any_rotate code iterator.
26996         Add insn predicate to split only for TARGET_USE_XCHGB or when
26997         optimizing function for size.
26998
26999 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
27000
27001         * config/pa/pa.c (emit_move_sequence): Remove use of
27002         deleted variable flag_argument_noalias.
27003
27004 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27005
27006         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
27007         configurations.
27008         Add to unsupported targets list.
27009         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
27010         sparc*-sun-solaris2.[567]* from target lists.
27011         * configure: Regenerate.
27012         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
27013         removal.
27014         Remove Solaris 7 patch references.
27015         (Specific, sparc-sun-solaris2.7): Removed.
27016         (sparc-sun-solaris2*): Update Solaris 7 example.
27017         (sparc64-*-solaris2*): Likewise.
27018
27019 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27020
27021         * config.build (alpha*-dec-osf4*): Remove.
27022         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
27023         of obsolete configurations.
27024         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
27025         support.
27026         * config/alpha/t-osf4: Renamed to ...
27027         * config/alpha/t-osf5: ... this.
27028         * config/alpha/osf.h: Renamed to ...
27029         * config/alpha/osf5.h: ... this.
27030         Merged old osf5.h contents.
27031         Update comments.
27032         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
27033         (EXTRA_SPECS): Removed.
27034         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
27035         reflect removal of Tru64 UNIX V4.0/V5.0 support.
27036         Document that.
27037
27038 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27039
27040         * doc/contrib.texi (Contributors, Rainer Orth): Update.
27041
27042 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
27043
27044         PR/43702
27045         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
27046         __thiscall convention.
27047
27048 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
27049
27050         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
27051         orig_base.
27052         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
27053
27054 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
27055
27056         * function.c (assign_parms_initialize_all): Add unused attribute
27057         to fntype.
27058
27059 2010-04-12  Richard Guenther  <rguenther@suse.de>
27060
27061         * gsstruct.def (GSS_CALL): New.
27062         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
27063         * gimple.h: Include tree-ssa-alias.h.
27064         (struct gimple_statement_call): New.
27065         (union gimple_statement_struct_d): Add gimple_call member.
27066         (gimple_call_reset_alias_info): Declare.
27067         (gimple_call_use_set): New function.
27068         (gimple_call_clobber_set): Likewise.
27069         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
27070         * gimple.c (gimple_call_reset_alias_info): New function.
27071         (gimple_build_call_1): Call it.
27072         * lto-streamer-in.c (input_gimple_stmt): Likewise.
27073         * tree-inline.c (remap_gimple_stmt): Likewise.
27074         (expand_call_inline): Remove callused handling.
27075         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
27076         * tree-dfa.c (dump_variable): Likewise.
27077         * tree-parloops.c (parallelize_loops): Likewise.
27078         * tree-ssa.c (init_tree_ssa): Likewise.
27079         (delete_tree_ssa): Likewise.
27080         * tree-flow-inline.h (is_call_used): Remove.
27081         * tree-flow.h (struct gimple_df): Remove callused member.
27082         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
27083         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
27084         (ref_maybe_used_by_call_p_1): Simplify.
27085         (call_may_clobber_ref_p_1): Likewise.
27086         * tree-ssa-structalias.c (compute_points_to_sets): Set
27087         the call stmt used and clobbered sets.
27088         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
27089         (find_tail_calls): Verify the tail call.
27090
27091 2010-04-12  Richard Guenther  <rguenther@suse.de>
27092
27093         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
27094         single-iteration always-inline inlining.
27095         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
27096         (cgraph_decide_inlining): Do not handle always-inline specially.
27097         (try_inline): Remove always-inline cycle detection special case.
27098         Do not recurse on always-inlines.
27099         (cgraph_early_inlining): Do not iterate if not optimizing.
27100         (cgraph_gate_early_inlining): remove.
27101         (pass_early_inline): Run unconditionally.
27102         (gate_cgraph_decide_inlining): New function.
27103         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
27104         not inlining or optimizing.
27105         (cgraph_decide_inlining_of_small_functions): Also consider
27106         always-inline functions.
27107         (cgraph_default_inline_p): Return true for nodes which should
27108         disregard inline limits.
27109         (estimate_function_body_sizes): Assume zero size and time for
27110         nodes which are marked as disregarding inline limits.
27111         (cgraph_decide_recursive_inlining): Do not perform recursive
27112         inlining on always-inline nodes.
27113
27114 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
27115
27116         PR bootstrap/43699
27117         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
27118         for exprs satisfying handled_component_p.
27119
27120 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
27121
27122         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
27123         non-constant aggregate elements.
27124
27125         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
27126         is a real initialization.
27127
27128 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
27129
27130         PR c/36774
27131         * c-decl.c (start_function): Move forward check for nested function.
27132
27133 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
27134
27135         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
27136         * config/sh/sh.c: Include reload.h.
27137         (sh_legitimize_reload_address): New.
27138         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
27139         sh_legitimize_reload_address.
27140
27141 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
27142
27143         * config/sh/sh.md (*movqi_pop): New insn pattern.
27144         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
27145
27146 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
27147
27148         * config/i386/i386.md (any_shiftrt): New code iterator.
27149         (shiftrt_insn): New code attribute.
27150         (shiftrt): Ditto.
27151         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
27152         using any_shiftrt code iterator.
27153         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
27154         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
27155         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
27156         pattern from corresponding peephole2 patterns.
27157         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
27158         using any_shiftrt code iterator.
27159         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
27160         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
27161         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
27162         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
27163         *{ashr,lshr}<mode>3_cmp_zext.
27164         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
27165
27166 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
27167
27168         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
27169         scratch register.
27170         (*lshr<mode>3_cconly): Ditto.
27171
27172 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
27173
27174         * config/i386/i386.md (lshr<mode>3): Macroize expander from
27175         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
27176         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
27177         pattern from *lshr{di,ti}3_1 and corresponding splitters using
27178         DWI mode iterator.
27179         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
27180         from corresponding peephole2 patterns.
27181         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
27182         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
27183         and *lshrdi3_1_rex64 using SWI mode iterator.
27184         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
27185         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
27186         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
27187         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
27188         and *lshrdi3_cmp_rex64 using SWI mode iterator.
27189         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
27190         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
27191         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
27192         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
27193         SWI mode iterator.
27194
27195 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
27196
27197         * config/i386/i386.md (ashr<mode>3): Macroize expander from
27198         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
27199         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
27200         pattern from *ashr{di,ti}3_1 and corresponding splitters using
27201         DWI mode iterator.
27202         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
27203         from corresponding peephole2 patterns.
27204         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
27205         (ashrsi3_cvt): Rename from ashrsi3_31.
27206         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
27207         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
27208         and x86_64_shift_adj_3 using SWI48 mode iterator.
27209         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
27210         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
27211         and *ashrdi3_1_rex64 using SWI mode iterator.
27212         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
27213         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
27214         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
27215         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
27216         and *ashrdi3_cmp_rex64 using SWI mode iterator.
27217         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
27218         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
27219         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
27220         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
27221         SWI mode iterator.
27222         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
27223         * config/i386/i386.c (ix86_split_ashr): Update for renamed
27224         x86_shift<mode>_adj_3 expanders.
27225
27226 2010-04-10  Wei Guozhi  <carrot@google.com>
27227
27228         PR target/42601
27229         * config/arm/arm.c (arm_pic_static_addr): New function.
27230         (legitimize_pic_address): Call arm_pic_static_addr when it detects
27231         a static symbol.
27232         (arm_output_addr_const_extra): Output expression for new pattern.
27233         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
27234
27235 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
27236
27237         * ira-costs.c (record_reg_classes): Ignore alternatives that are
27238         not enabled.
27239
27240         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
27241         * web.c: Include "insn-config.h" and "recog.h".
27242         (union_match_dups): New function.
27243         (web_main): Call it.
27244         (union_defs): Don't try to recognize match_dups.
27245
27246         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
27247         if doing so would replace the entire pattern.
27248
27249 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
27250
27251         PR target/43707
27252         PR target/43709
27253         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
27254         and splitter pattern.  Change splitter operand 1 predicate to
27255         nonmemory_operand.
27256
27257 2010-04-09  Martin Jambor  <mjambor@suse.cz>
27258
27259         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
27260         lattices are addresses of CONST_DECLs with the same initial value.
27261         (ipcp_print_all_lattices): Print values of CONST_DECLs.
27262         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
27263
27264 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
27265             Bernd Schmidt  <bernds@codesourcery.com>
27266
27267         * loop-invariant.c (replace_uses): New static function.
27268         (move_invariant_reg): Use it to ensure we can replace the uses.
27269
27270 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
27271
27272         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
27273         function template.
27274         (picochip_override_options): Enable section anchors only above -O1.
27275         (picochip_reorg): Fixed a couple of build warnings.
27276
27277 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27278
27279         * configure.ac (plugin -rdynamic test): Log result.
27280         * configure: Regenerate.
27281         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
27282         (RDYNAMIC_SPEC): Define.
27283         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
27284
27285 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27286
27287         * configure.ac: Determine Sun ld version numbers.
27288         (comdat_group): Restrict GNU ld version checks to gld.
27289         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
27290         (enable_comdat): Support --enable-comdat.
27291         * configure: Regenerate.
27292         * doc/install.texi (Configuration): Document --enable-comdat.
27293
27294 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27295
27296         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
27297         * config/sol2-gld.h: ... here.
27298         * config.gcc (sparc*-*-solaris2*): Reflect this.
27299         (i[34567]86-*-solaris2*): Use it.
27300
27301 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
27302
27303         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
27304         setup_clocks_p.
27305         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
27306
27307 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
27308
27309         PR 42965
27310         * diagnostic.c (diagnostic_initialize): Initialize
27311         some_warnings_are_errors.
27312         (diagnostic_finish): New.
27313         (diagnostic_action_after_output): Call it before exiting.
27314         (diagnostic_report_diagnostic): Do not print message here. Set
27315         some_warnings_are_errors.
27316         * diagnostic.h (diagnostic_context): Delete
27317         issue_warnings_are_errors_message. Add some_warnings_are_errors.
27318         (diagnostic_finish): Declare.
27319         * toplev.c (toplev_main): Call it before exit.
27320
27321 2010-04-09  Jason Merrill  <jason@redhat.com>
27322
27323         PR c++/42623
27324         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
27325         for incomplete type.
27326
27327         PR c++/41788
27328         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
27329         based on a warning flag.
27330
27331 2010-04-09  Richard Guenther  <rguenther@suse.de>
27332
27333         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
27334
27335 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
27336
27337         PR bootstrap/43684
27338         * varasm.c (default_assemble_visibility): Wrap vars that are
27339         set, but unused, by targets without GAS.
27340         * config/rs6000/rs6000.c (paired_emit_vector_compare):
27341         Remove set, but unused, vars.
27342         (rs6000_legitimize_tls_address): Likewise.
27343         (altivec_expand_dst_builtin): Likewise.
27344         * config/darwin.c (machopic_classify_symbol): Likewise.
27345         (machopic_indirection_name): Likewise.
27346
27347 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
27348
27349         * config/i386/i386.md (DWI): New mode iterator.
27350         (S): New mode attribute.
27351         (shift_operand): Ditto.
27352         (shift_immediate_operand): Ditto.
27353         (ashl_input_operand): Ditto.
27354         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
27355         using SDWIM mode iterator.
27356         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
27357         pattern from *ashl{di,ti}3_1 and corresponding splitters using
27358         DWI mode iterator.
27359         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
27360         from corresponding peephole2 patterns.
27361         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
27362         and x86_64_shift_adj_1 using SWI48 mode iterator.
27363         (x86_shift<mode>_adj_2): Ditto.
27364         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
27365         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
27366         using SWI48 mode iterator.
27367         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
27368         *ashldi3_cmp_rex64 using SWI mode iterator.
27369         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
27370         *ashldi3_cconly_rex64 using SWI mode iterator.
27371         * config/i386/i386.c (ix86_split_ashl): Update for renamed
27372         x86_shift<mode>_adj_{1,2}.
27373         (ix86_split_ashr): Ditto.
27374         (ix86_split_lshr): Ditto.
27375
27376 2010-04-09  Richard Guenther  <rguenther@suse.de>
27377
27378         * target.h (builtin_conversion): Pass in input and output types.
27379         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
27380         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
27381         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
27382         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
27383
27384         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
27385         Handle AVX modes.
27386         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
27387
27388 2010-04-09  Richard Guenther  <rguenther@suse.de>
27389
27390         PR target/43152
27391         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
27392
27393 2010-04-09  Richard Guenther  <rguenther@suse.de>
27394
27395         * tree-vectorizer.h (struct _stmt_vec_info): Document
27396         that vectype is the type of the LHS.
27397         (supportable_widening_operation, supportable_narrowing_operation):
27398         Get both input and output vector types as arguments.
27399         (vect_is_simple_use_1): Declare.
27400         (get_same_sized_vectype): Likewise.
27401         * tree-vect-loop.c (vect_determine_vectorization_factor):
27402         Set STMT_VINFO_VECTYPE to the vector type of the def.
27403         (vectorizable_reduction): Adjust.
27404         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
27405         Adjust.  Specify the output vector type.
27406         (vect_pattern_recog_1): Adjust.
27407         * tree-vect-stmts.c (get_same_sized_vectype): New function.
27408         (vectorizable_call): Adjust.
27409         (vectorizable_conversion): Likewise.
27410         (vectorizable_operation): Likewise.
27411         (vectorizable_type_demotion): Likewise.
27412         (vectorizable_type_promotion): Likewise.
27413         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
27414         the def.
27415         (vect_is_simple_use_1): New function.
27416         (supportable_widening_operation): Get both input and output
27417         vector types.
27418         (supportable_narrowing_operation): Likewise.
27419         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
27420
27421 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
27422
27423         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
27424         __thiscall and _thiscall as predefined macros.
27425         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
27426         thiscall attribute handling.
27427         (ix86_comp_type_attributes): Likewise.
27428         (ix86_function_regparm): Likewise.
27429         (ix86_return_pops_args): Likewise.
27430         (init_cumulative_args): Likewise.
27431         (find_drap_reg): Likewise.
27432         (ix86_static_chain): Likewise.
27433         (x86_this_parameter): Likewise.
27434         (x86_output_mi_thunk): Likewise.
27435         (ix86_attribute_table): Add description for thiscall attribute.
27436         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
27437         * doc/extend.texi: Add documentation for thiscall.
27438
27439 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
27440
27441         PR c++/28584
27442         * c.opt (Wint-to-pointer-cast): Available in C++.
27443         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
27444
27445 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
27446
27447         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
27448         * calls.c (expand_call): Pass the function type to aggregate_value_p.
27449         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
27450         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
27451         function type instead.  Reorder and simplify checks.
27452
27453         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
27454
27455 2010-04-08  Jing Yu  <jingyu@google.com>
27456             Zdenek Dvorak  <ook@ucw.cz>
27457
27458         PR tree-optimization/42720
27459         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
27460         loop unswitch conditions here from ...
27461         (tree_unswitch_single_loop): ... here.
27462
27463 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
27464
27465         * tree-if-conv.c: Fix comments and simplify logic.
27466
27467 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
27468
27469         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
27470         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
27471         (main_tree_if_conversion): Update call to tree_if_conversion.
27472
27473 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
27474
27475         PR 42485
27476         * doc/invoke.texi (-b,-V): Delete.
27477         * doc/tm.texi: Do not mention -b.
27478         * gcc.c (display_help): Delete -b and -V.
27479         (process_command): Delete -b and -V.
27480         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
27481
27482 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
27483             Wolfgang Gellerich  <gellerich@de.ibm.com>
27484
27485         Implement target hook for loop unrolling
27486         * target.h (loop_unroll_adjust): Add a new target hook function.
27487         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
27488         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
27489         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
27490         (s390_loop_unroll_adjust): Implement the new target hook for s390.
27491         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
27492         target hook.
27493         (decide_unroll_stupid): Likewise.
27494
27495 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27496
27497         PR target/43643
27498         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
27499
27500 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27501
27502         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
27503         (Specific, *-*-solaris2*): Likewise.
27504         Don't prefer Sun as over GNU as.
27505
27506 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
27507
27508         * config/s390/s390.c (override_options): Adjust the z10 defaults
27509         for max-unroll-times, max-completely-peeled-insns
27510         and max-completely-peel-times.
27511
27512 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
27513
27514         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
27515         instructions for z10.
27516         (s390_expand_setmem): Likewise.
27517         (s390_expand_cmpmem): Likewise.
27518
27519 2010-04-08  Richard Guenther  <rguenther@suse.de>
27520
27521         PR tree-optimization/43679
27522         * tree-ssa-pre.c (eliminate): Only propagate copies.
27523
27524 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
27525
27526         PR bootstrap/43681
27527         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
27528         set but not used variable warning.
27529
27530 2010-04-08  Wei Guozhi  <carrot@google.com>
27531
27532         PR target/41653
27533         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
27534         (arm_size_rtx_costs): Call the new function when optimized for size.
27535
27536 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
27537
27538         PR debug/43670
27539         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
27540         op0 is not a MEM, just return NULL instead of assertion
27541         failure.
27542         (discover_nonconstant_array_refs): Don't walk debug stmts.
27543
27544 2010-04-08  Doug Kwan  <dougkwan@google.com>
27545
27546         * configure.ac: Recognize gold and do not use its version number
27547         to test ld features.
27548         * configure: Regenerate.
27549
27550 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
27551
27552         PR middle-end/40815
27553         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
27554         (negate_value): Move code to push elements to broken_up_substracts ...
27555         (eliminate_plus_minus_pair): ... here.  Push operands that have no
27556         negative pair to plus_negates.
27557         (repropagate_negates, init_reassoc, fini_reassoc): Update.
27558
27559 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
27560
27561         * doc/install.texi (Configuration): Move description of
27562         --enable-lto, --with-libelf*, --enable-gold from Java section to
27563         general section.
27564
27565         * doc/generic.texi (Working with declarations)
27566         (Function Properties, C and C++ Trees): Fix typos.
27567         * doc/sourcebuild.texi (Top Level): Likewise.
27568
27569 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
27570
27571         PR c/18624
27572         * tree.h (DECL_READ_P): Define.
27573         (struct tree_decl_common): Add decl_read_flag.
27574         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
27575         a set but not used warning.
27576         (merge_decls): Merge DECL_READ_P flag.
27577         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
27578         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
27579         * c-common.c (handle_used_attribute, handle_unused_attribute):
27580         Likewise.
27581         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
27582         New prototypes.
27583         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
27584         New functions.
27585         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
27586         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
27587         c_parser_binary_expression, c_parser_cast_expression,
27588         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
27589         Call default_function_array_read_conversion instead of
27590         default_function_array_conversion where needed.
27591         (c_parser_unary_expression, c_parser_conditional_expression,
27592         c_parser_postfix_expression_after_primary, c_parser_initelt):
27593         Likewise.  Call mark_exp_read where needed.
27594         (c_parser_statement_after_labels, c_parser_asm_operands,
27595         c_parser_typeof_specifier, c_parser_sizeof_expression,
27596         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
27597         where needed.
27598         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
27599         New.
27600         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
27601         (warn_unused_but_set_parameter): Default to warn_unused
27602         && extra_warnings.
27603         * doc/invoke.texi: Document -Wunused-but-set-variable and
27604         -Wunused-but-set-parameter.
27605
27606         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
27607         used count variable.
27608         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
27609         when operandN variables aren't used in the body of the expander
27610         or splitter.
27611         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
27612         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
27613         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
27614         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
27615         FOR_EACH_IMM_USE_ON_STMT): Likewise.
27616         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
27617         * tree.c (PROCESS_ARG): Likewise.
27618
27619 2010-04-07  Simon Baldwin  <simonb@google.com>
27620
27621         * diagnostic.h (diagnostic_override_option_index): New macro to
27622         set a diagnostic's option_index.
27623         * c-tree.h (c_cpp_error): Add warning reason argument.
27624         * opts.c (_warning_as_error_callback): New.
27625         (register_warning_as_error_callback): Store callback for
27626         warnings enabled via enable_warning_as_error.
27627         (enable_warning_as_error): Call callback, minor code tidy.
27628         * opts.h (register_warning_as_error_callback): Declare.
27629         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
27630         response to -Werror=.
27631         (c_common_init_options): Register warning_as_error_callback in opts.c.
27632         * common.opt: Add -Wno-cpp option.
27633         * c-common.c (struct reason_option_codes_t): Map cpp warning
27634         reason codes to gcc option indexes.
27635         * (c_option_controlling_cpp_error): New function, lookup the gcc
27636         option index for a cpp warning reason code.
27637         * (c_cpp_error): Add warning reason argument, call
27638         c_option_controlling_cpp_error for diagnostic_override_option_index.
27639         * doc/invoke.texi: Document -Wno-cpp.
27640
27641 2010-04-07  Richard Guenther  <rguenther@suse.de>
27642
27643         * ipa-reference.c (mark_load): Use get_base_address.
27644         (mark_store): Likewise.
27645
27646         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
27647         inserting GIMPLE_NOPs into the IL.
27648         * tree-ssa-structalias.c (get_constraint_for_component_ref):
27649         Explicitly strip handled components and indirect references.
27650
27651         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
27652         folding address expressions.
27653         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
27654         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
27655         operand_equal_p to compare decls.
27656         (ptr_deref_may_alias_decl_p): Likewise.
27657         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
27658         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
27659         Handle reversed comparison ops.
27660         * tree-sra.c (asm_visit_addr): Use get_base_address.
27661         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
27662         * ipa-reference.c (mark_address): Use get_base_address.
27663
27664 2010-04-07  Richard Guenther  <rguenther@suse.de>
27665
27666         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
27667         Propagate constants everywhere.
27668
27669 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
27670
27671         PR debug/43516
27672         * tree.c (MAX_INT_CACHED_PREC): Define.
27673         (nonstandard_integer_type_cache): New array.
27674         (build_nonstandard_integer_type): Cache results for precision
27675         <= MAX_INT_CACHED_PREC.
27676
27677 2010-04-07  Richard Guenther  <rguenther@suse.de>
27678
27679         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
27680         -fargument-noalias-global, -fargument-noalias-anything): Remove.
27681         * common.opt: Likewise.
27682         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
27683         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
27684         (nonoverlapping_memrefs_p): Likewise.
27685         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
27686         * opts.c (common_handle_option): Handle OPT_fargument_alias,
27687         OPT_fargument_noalias, OPT_fargument_noalias_anything and
27688         OPT_fargument_noalias_global for backward compatibility.
27689
27690 2010-04-07  Richard Guenther  <rguenther@suse.de>
27691
27692         PR tree-optimization/43270
27693         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
27694         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
27695         * tree-ssa-pre.c (phi_translate_1): Adjust.
27696         (fully_constant_expression): Split out vn_reference handling to ...
27697         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
27698         Fold reads from constant strings.
27699         (vn_reference_lookup): Handle fully constant references.
27700         (vn_reference_lookup_pieces): Likewise.
27701         * Makefile.in (expmed.o-warn): Add -Wno-error.
27702
27703 2010-04-07  Martin Jambor  <mjambor@suse.cz>
27704
27705         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
27706
27707 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
27708
27709         PR driver/41594
27710         * gcc.c: Add -static-libstdc++ to list of recognized options.
27711
27712 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27713
27714         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
27715
27716 2010-04-07  Richard Guenther  <rguenther@suse.de>
27717
27718         PR middle-end/42617
27719         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
27720         bases build simple mem attributes to retain points-to information.
27721
27722 2010-04-07  Richard Guenther  <rguenther@suse.de>
27723
27724         PR middle-end/42617
27725         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
27726         preserve points-to related information.
27727
27728 2010-04-07  Richard Guenther  <rguenther@suse.de>
27729
27730         PR middle-end/42617
27731         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
27732         discard plain indirect references.
27733         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
27734         * tree.c (tree_nop_conversion): Likewise.
27735
27736 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
27737
27738         PR debug/43628
27739         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
27740
27741 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
27742
27743         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
27744         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
27745
27746 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
27747
27748         * tree-if-conv.c: Fix indentation and comments.
27749
27750 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
27751
27752         * tree-if-conv.c: Sort static functions in topological order.
27753
27754 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
27755
27756         * tree-if-conv.c: Fix indentation and comments.
27757
27758 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
27759
27760         PR middle-end/43519
27761         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
27762         lang_hooks.types.type_for_size instead of
27763         build_nonstandard_integer_type.
27764         When converting an unsigned type to signed, double its precision.
27765         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
27766         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
27767         (graphite_create_new_loop_guard): When ub + 1 wraps around,
27768         use lb <= ub.
27769
27770 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
27771
27772         PR middle-end/43519
27773         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
27774         POINTER_PLUS_EXPR for pointer types.
27775
27776 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
27777
27778         PR middle-end/43519
27779         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
27780         * graphite-clast-to-gimple.c: Include langhooks.h.
27781         (max_signed_precision_type): New.
27782         (max_precision_type): Takes two types as arguments.
27783         (precision_for_value): New.
27784         (precision_for_interval): New.
27785         (gcc_type_for_interval): New.
27786         (gcc_type_for_value): New.
27787         (gcc_type_for_clast_term): New.
27788         (gcc_type_for_clast_red): New.
27789         (gcc_type_for_clast_bin): New.
27790         (gcc_type_for_clast_expr): Split up into several functions.
27791         (gcc_type_for_clast_eq): Rewritten.
27792         (compute_bounds_for_level): New.
27793         (compute_type_for_level_1): New.
27794         (compute_type_for_level): New.
27795         (gcc_type_for_cloog_iv): Removed.
27796         (gcc_type_for_iv_of_clast_loop): Rewritten.
27797         (graphite_create_new_loop): Compute the lower and upper bound types
27798         with gcc_type_for_clast_expr.
27799         (graphite_create_new_loop_guard): Same.
27800         (find_cloog_iv_in_expr): Removed.
27801         (compute_cloog_iv_types_1): Removed.
27802         (compute_cloog_iv_types): Removed.
27803         (gloog): Do not call compute_cloog_iv_types.
27804         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
27805         GBB_CLOOG_IV_TYPES.
27806         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
27807         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
27808         (GBB_CLOOG_IV_TYPES): Removed.
27809
27810 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
27811
27812         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
27813         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
27814         (detect_commutative_reduction): Same.
27815
27816 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
27817
27818         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
27819         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
27820         argument.
27821         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
27822         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
27823         (rewrite_commutative_reductions_out_of_ssa): Same.
27824         * passes.c (execute_function_todo): Call verify_ssa for every pass
27825         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
27826         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
27827         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
27828         with an extra argument.
27829         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
27830         verify_ssa only when the extra argument is true.
27831         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
27832         with an extra argument.
27833         (tree_transform_and_unroll_loop): Same.
27834
27835 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
27836
27837         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
27838         for all the passes of the LNO having LOOP_CLOSED_SSA.
27839         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
27840         * tree-loop-distribution.c (pass_loop_distribution): Same.
27841         * tree-pass.h (TODO_verify_loops): Removed.
27842         * tree-ssa-loop.c (pass_tree_loop_init): Same.
27843         (pass_lim): Same.
27844         (pass_tree_unswitch): Same.
27845         (pass_predcom): Same.
27846         (pass_vectorize): Same.
27847         (pass_linear_transform): Same.
27848         (pass_graphite_transforms): Same.
27849         (pass_iv_canon): Same.
27850         (pass_complete_unroll): Same.
27851         (pass_complete_unrolli): Same.
27852         (pass_parallelize_loops): Same.
27853         (pass_loop_prefetch): Same.
27854         (pass_iv_optimize): Same.
27855
27856 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
27857
27858         PR middle-end/32824
27859         * passes.c (init_optimization_passes): Move pass_lim before
27860         pass_copy_prop and pass_dce_loop.
27861
27862 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
27863
27864         PR target/43667
27865         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
27866         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
27867         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
27868         MULTI_* defines for 4 argument vpermil2p* builtins.
27869
27870 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
27871
27872         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
27873         * config/i386/i386.c (x86_maybe_negate_const_int): New.
27874         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
27875         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
27876         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
27877         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
27878         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
27879         Use x86_maybe_negate_const_int to output insn mnemonic.
27880         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
27881         check from instruction predicate.  Update comments.
27882         * config/i386/sync.md (sync_add<mode>): Use
27883         x86_maybe_negate_const_int to output insn mnemonic.
27884
27885 2010-04-06  Jan Hubicka  <jh@suse.cz>
27886
27887         PR tree-optimization/42906
27888         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
27889         IGNORE_SELF argument.  Set visited_control_parents for fully
27890         processed BBs.
27891         (find_obviously_necessary_stmts): Update call of
27892         mark_control_dependent_edges_necessary.
27893         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
27894
27895 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
27896
27897         * config/i386/i386.md: Remove comment about 'e' and 'E'
27898         operand modifier.
27899
27900 2010-04-06  Richard Guenther  <rguenther@suse.de>
27901
27902         PR tree-optimization/43627
27903         * tree-vrp.c (extract_range_from_unary_expr): Widenings
27904         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
27905         not varying.
27906
27907 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
27908
27909         * BASE-VER: Change to 4.6.0.
27910
27911         PR target/43638
27912         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
27913         handling.
27914
27915 2010-04-06  Richard Guenther  <rguenther@suse.de>
27916
27917         PR middle-end/43661
27918         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
27919
27920 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
27921
27922         * doc/invoke.texi (Optimize Options): Document that LTO
27923         won't remove object access purely due to incompatible
27924         declarations.
27925
27926 2010-04-04  Matthias Klose  <doko@ubuntu.com>
27927
27928         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
27929         Initialize variable.
27930
27931 2010-04-03  Richard Guenther  <rguenther@suse.de>
27932
27933         PR middle-end/42509
27934         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
27935         require a non-NULL MEM_OFFSET.
27936
27937 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
27938
27939         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
27940         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
27941         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
27942         config/alpha/predicates.md, config/arm/arm.md,
27943         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
27944         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
27945         config/darwin9.h, config/darwin.c, config/darwin.h,
27946         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
27947         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
27948         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
27949         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
27950         config/mips/mips.md, config/mn10300/mn10300.c,
27951         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
27952         config/rs6000/aix.h, config/rs6000/dfp.md,
27953         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
27954         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
27955         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
27956         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
27957         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
27958         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
27959         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
27960         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
27961         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
27962         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
27963         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
27964         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
27965         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
27966         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
27967         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
27968         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
27969         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
27970         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
27971         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
27972         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
27973         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
27974         opt-functions.awk, opth-gen.awk, params.def, passes.c,
27975         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
27976         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
27977         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
27978         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
27979         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
27980         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
27981         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
27982         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
27983         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
27984         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
27985         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
27986         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
27987         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
27988         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
27989
27990 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
27991
27992         PR other/43620
27993         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
27994         * aclocal.m4: Regenerate.
27995
27996 2010-04-02  Richard Guenther  <rguenther@suse.de>
27997
27998         PR tree-optimization/43629
27999         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
28000         if we have seen a constant value.
28001
28002 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
28003
28004         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
28005
28006 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
28007
28008         PR target/43469
28009         * arm.c (legitimize_tls_address): Adjust call to
28010         gen_tls_load_dot_plus_four.
28011         (arm_note_pic_base): New function.
28012         (arm_cannot_copy_insn_p): Use it.
28013         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
28014         constraint.
28015
28016 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
28017
28018         PR bootstrap/43531
28019
28020         Revert:
28021         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
28022
28023         * Makefile.in ($(out_object_file)): Depend on
28024         gt-$(basename $(notdir $(out_file))).h.
28025
28026 2010-04-01  Ralf Corsépius  <ralf.corsepius@rtems.org>
28027
28028         * config.gcc (lm32-*-rtems*): Add t-lm32.
28029
28030 2010-04-01  Joel Sherrill  <joel.sherrill@oarcorp.com>
28031
28032         * config.gcc: Add lm32-*-rtems*.
28033         * config/lm32/rtems.h: New file.
28034
28035 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
28036
28037         PR target/42609
28038         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
28039
28040 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
28041
28042         * dwarf2out.c (output_compilation_unit_header): For
28043         -gdwarf-4 use version 4 instead of version 3.
28044         (output_line_info): For version 4 and above emit additional
28045         maximum ops per insn header field.
28046         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
28047
28048         * dwarf2out.c (is_c_family, is_java): Remove.
28049         (lower_bound_default): New function.
28050         (add_bound_info, gen_descr_array_type_die): Use it.
28051
28052 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
28053
28054         PR debug/43325
28055         * dwarf2out.c (gen_variable_die): Allow debug info for variable
28056         re-declaration when it happens in a function.
28057
28058 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
28059
28060         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
28061         (cgraph_remove_function_insertion_hook): Same.
28062         (cgraph_call_function_insertion_hooks): Same.
28063
28064 2010-04-01  Richard Guenther  <rguenther@suse.de>
28065
28066         PR middle-end/43614
28067         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
28068         and TREE_THIS_VOLATILE.
28069         (copy_ref_info): Likewise.
28070         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
28071         * tree.c (build6_stat): Ignore side-effects of all but arg5
28072         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
28073         TARGET_MEM_REF.
28074
28075 2010-04-01  Richard Guenther  <rguenther@suse.de>
28076
28077         PR tree-optimization/43607
28078         * ipa-type-escape.c (check_call): Do not access non-existing
28079         arguments.
28080
28081 2010-04-01  Richard Guenther  <rguenther@suse.de>
28082
28083         PR middle-end/43602
28084         Revert
28085         2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
28086                     Jack Howarth  <howarth@bromo.med.uc.edu>
28087
28088         * tree-profile.c (tree_init_ic_make_global_vars): Make static
28089         variables TLS.
28090
28091 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28092
28093         * doc/install.texi (Prerequisites): Document libelf usability on
28094         IRIX 5/6 and Solaris 2.
28095         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
28096         Update GNU as, GNU ld requirements.
28097         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
28098         Document Sun Studio compiler download.
28099         Update and simplify as, ld recommendations.
28100         (Specific, *-*-solaris2.7): Note obsoletion, removal.
28101
28102 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28103
28104         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
28105         with_tune_32 to pentium4.
28106
28107 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
28108
28109         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
28110
28111 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28112
28113         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
28114         obsoletion, removal.
28115         Update IDO URL.
28116         Document GNU as requirement.
28117         Update configure requirements.
28118         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
28119         Recomment IRIX 6.5.18+.
28120         Document IDF/IDL requirement.
28121         Document GNU as requirement.
28122         Document GNU ld bootstrap failure.
28123         Remove freeware.sgi.com reference.
28124
28125 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28126
28127         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
28128         UNIX V4.0, V5.0 obsoletion, removal.
28129         Remove --with-gc=simple reference.
28130         Update VM requirements during bootstrap.
28131         Remove -oldas bootstrap description.
28132         Update binutils reference.
28133         Remove comparison failure note.
28134
28135 2010-03-31  Richard Guenther  <rguenther@suse.de>
28136             Zdenek Dvorak  <ook@ucw.cz>
28137             Sebastian Pop  <sebastian.pop@amd.com>
28138
28139         PR middle-end/43464
28140         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
28141         with multiple arguments.
28142         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
28143
28144 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
28145
28146         * graphite-dependences.c (print_pddr): Call print_pdr with an
28147         extra argument.
28148         * graphite-poly.c (debug_pdr): Add an extra argument for the
28149         verbosity level.
28150         (print_pdr): Same.
28151         (print_pbb_domain): Same.
28152         (print_pbb): Same.
28153         (print_scop_context): Same.
28154         (print_scop): Same.
28155         (print_cloog): Same.
28156         (debug_pbb_domain): Same.
28157         (debug_pbb): Same.
28158         (print_pdrs): Same.
28159         (debug_pdrs): Same.
28160         (debug_scop_context): Same.
28161         (debug_scop): Same.
28162         (debug_cloog): Same.
28163         (print_scop_params): Same.
28164         (debug_scop_params): Same.
28165         (print_iteration_domain): Same.
28166         (print_iteration_domains): Same.
28167         (debug_iteration_domain): Same.
28168         (debug_iteration_domains): Same.
28169         (print_scattering_function): Same.
28170         (print_scattering_functions): Same.
28171         (debug_scattering_function): Same.
28172         (debug_scattering_functions): Same.
28173         * graphite-poly.h (debug_pdr): Update declaration.
28174         (print_pdr): Same.
28175         (print_pbb_domain): Same.
28176         (print_pbb): Same.
28177         (print_scop_context): Same.
28178         (print_scop): Same.
28179         (print_cloog): Same.
28180         (debug_pbb_domain): Same.
28181         (debug_pbb): Same.
28182         (print_pdrs): Same.
28183         (debug_pdrs): Same.
28184         (debug_scop_context): Same.
28185         (debug_scop): Same.
28186         (debug_cloog): Same.
28187         (print_scop_params): Same.
28188         (debug_scop_params): Same.
28189         (print_iteration_domain): Same.
28190         (print_iteration_domains): Same.
28191         (debug_iteration_domain): Same.
28192         (debug_iteration_domains): Same.
28193         (print_scattering_function): Same.
28194         (print_scattering_functions): Same.
28195         (debug_scattering_function): Same.
28196         (debug_scattering_functions): Same.
28197
28198 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
28199
28200         * graphite-poly.c (print_scattering_function_1): New.
28201         (print_scattering_function): Call it.
28202         (print_scop_params): Remove spaces at the end of lines.
28203         (print_cloog): New.
28204         (debug_cloog): New.
28205         * graphite-poly.h (print_cloog): Declared.
28206         (debug_cloog): Declared.
28207
28208 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
28209
28210         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
28211         in loop->header.
28212         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
28213         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
28214         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
28215         to switch between adding the IV bump in loop->latch or in loop->header.
28216
28217 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
28218
28219         * graphite-poly.c (print_scattering_function): Pretty print following
28220         the scoplib format.
28221         (print_pdr): Same.
28222         (print_pbb_domain): Same.
28223         (dump_gbb_cases): Same.
28224         (dump_gbb_conditions): Same.
28225         (print_pdrs): Same.
28226         (print_pbb): Same.
28227         (print_scop_params): Same.
28228         (print_scop_context): Same.
28229         (print_scop): Same.
28230         (print_pbb_body): New.
28231         (lst_indent_to): New.
28232         (print_lst): Start new lines with a #.
28233         * graphite-poly.h (pbb_bb): New.
28234         (pbb_index): Use pbb_bb.
28235         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
28236         disjuncts.
28237         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
28238
28239 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
28240
28241         * dwarf2out.c (size_of_die): For -gdwarf-4 use
28242         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
28243         and 0 instead of 1 for dw_val_class_flag.
28244         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
28245         dw_val_class_range_list, dw_val_class_loc_list,
28246         dw_val_class_lineptr and dw_val_class_macptr, use
28247         DW_FORM_flag_present for dw_val_class_flag and
28248         DW_FORM_exprloc for dw_val_class_loc.
28249         (output_die): For -gdwarf-4 print dw_val_class_loc
28250         size as uleb128 instead of 1 or 2 bytes and don't print
28251         anything for dw_val_class_flag.
28252
28253         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
28254         instead of cselib_lookup following by tweaking locs->setting_insn.
28255
28256         PR bootstrap/43596
28257         * cselib.c (cselib_process_insn): Clear cselib_current_insn
28258         even before returning from label, setjmp call or volatile asm
28259         handling.
28260
28261 2010-03-31  Richard Guenther  <rguenther@suse.de>
28262
28263         PR middle-end/43600
28264         * cgraphunit.c (cgraph_output_in_order): Do not allocate
28265         temporary data on stack.
28266
28267 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28268
28269         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
28270         (PUSHSECTION_ASM_OP): Remove.
28271         (POPSECTION_ASM_OP): Remove.
28272         (PUSHSECTION_FORMAT): Remove.
28273         * config/sol2.h (PUSHSECTION_FORMAT): Define.
28274         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
28275         * config/sol2.c (solaris_output_init_fini): Use it.
28276
28277 2010-03-31  Jie Zhang  <jie@codesourcery.com>
28278
28279         PR 43574
28280         * opt-functions.awk (var_type_struct): Use signed char type
28281         for simple variables.
28282
28283 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28284
28285         * config/sol2.c: Include output.h.
28286         (solaris_assemble_visibility): New function.
28287         * config/t-sol2 (sol2.o): Add output.h dependency.
28288         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
28289         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
28290         Redefine.
28291
28292 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
28293
28294         PR target/43580
28295         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
28296         V2SImode or XFmode on PRE_DEC.
28297
28298         PR debug/43557
28299         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
28300         BLKmode.
28301
28302 2010-03-31  Jie Zhang  <jie@codesourcery.com>
28303
28304         PR 43562
28305         * reload.h (caller_save_initialized_p): Declare.
28306         * toplev.c (backend_init_target): Don't call
28307         init_caller_save but set caller_save_initialized_p to false.
28308         * caller-save.c (caller_save_initialized_p): Define.
28309         (init_caller_save): Check caller_save_initialized_p.
28310         * ira.c (ira): Call init_caller_save if flag_caller_saves.
28311
28312 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28313
28314         PR target/39048
28315         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
28316         and soft-fp/t-softfp to tmake_file.
28317         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
28318         (LIBGCC2_TF_CEXT): Define.
28319         (TF_SIZE): Define.
28320
28321 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
28322
28323         PR debug/42977
28324         * cselib.c (n_useless_values): Document handling of debug locs.
28325         (n_useless_debug_values, n_debug_values): New variables.
28326         (new_elt_loc_list): Don't add to debug values, keep count.
28327         (promote_debug_loc): New.
28328         (cselib_reset_table): Zero new variables.
28329         (entry_and_rtx_equal_p): Promote debug locs.
28330         (discard_useless_locs): Increment n_useless_debug_values for
28331         debug values.
28332         (remove_useless_values): Adjust n_useless_values and n_debug_values
28333         with n_useless_debug_values.
28334         (add_mem_for_addr): Promote debug locs.
28335         (cselib_lookup_mem): Likewise.
28336         (cselib_lookup_addr): Renamed to...
28337         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
28338         (cselib_log_lookup): ... this.  Turn into...
28339         (cselib_lookup_addr): ... new wrapper.
28340         (cselib_lookup_from_insn): New.
28341         (cselib_invalidate_regno): Increment n_useless_debug_values for
28342         debug values.
28343         (cselib_invalidate_mem): Likewise.
28344         (cselib_process_insn): Take n_deleted and n_debug_values into
28345         account to guard remove_useless_value call.
28346         (cselib_finish): Zero n_useless_debug_values.
28347         * cselib.h (cselib_lookup_from_insn): Declare.
28348         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
28349         (sched_analyze_2): Likewise.
28350
28351 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
28352
28353         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
28354         functions.
28355         (adjust_mems): Replace narrowing SUBREG of expression containing
28356         just PLUS, MINUS, MULT and ASHIFT of registers and constants
28357         with operations in the narrower mode.
28358
28359         PR debug/43593
28360         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
28361         regs_invalidated_by_call instead all call_used_reg_set registers.
28362
28363 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
28364
28365         PR middle-end/43430
28366         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
28367         pointer comparisons with types_compatible_p.
28368         * tree-vect-stmts.c (vectorizable_call): Same.
28369         (vectorizable_condition): Same.
28370
28371 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
28372
28373         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
28374         stack check if the mask would be zero.
28375
28376 2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
28377             Jack Howarth  <howarth@bromo.med.uc.edu>
28378
28379         * tree-profile.c (tree_init_ic_make_global_vars): Make static
28380         variables TLS.
28381
28382 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
28383
28384         PR other/25232
28385         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
28386         and __unordtf2.
28387         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
28388         Include ___unordxf2 and ___unordtf2.
28389         * config/i386/libgcc-glibc.ver: Do not define inheritance from
28390         GCC_4.4.0 here.
28391
28392 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
28393
28394         * config/lm32/t-lm32: New file.
28395         * config.gcc: Use the above file when targetting lm32.
28396
28397 2010-03-28  Duncan Sands  <baldrick@free.fr>
28398
28399         * Makefile.in (PLUGIN_HEADERS): Add except.h.
28400
28401 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
28402
28403         PR middle-end/43431
28404         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
28405         Improve vectorization cost model diagnostic.
28406
28407 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
28408
28409         PR middle-end/43436
28410         * tree-vect-data-refs.c (vect_analyze_data_refs): When
28411         compute_data_dependences_for_loop returns false, early exit
28412         and output an extra diagnostic for the failed data reference
28413         analysis.
28414
28415 2010-03-29  Richard Guenther  <rguenther@suse.de>
28416
28417         PR tree-optimization/43560
28418         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
28419         (can_sm_ref_p): Treat stores to readonly locations as trapping.
28420
28421 2010-03-29  Jie Zhang  <jie@codesourcery.com>
28422
28423         PR 43564
28424         * toplev.c (process_options): Set optimization_default_node
28425         and optimization_current_node.
28426         * opts.c (decode_options): Don't set optimization_default_node
28427         and optimization_current_node.
28428
28429 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
28430
28431         * config/rtems.h: Abandon -qrtems_debug.
28432
28433 2010-03-28  Jan Hubicka  <jh@suse.cz>
28434
28435         PR tree-optimization/43505
28436         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
28437         map should not be copied.
28438
28439 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
28440
28441         PR middle-end/41674
28442         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
28443         cdtors, set DECL_PRESERVE_P.
28444         * ipa.c (cgraph_externally_visible_p): Return true if declaration
28445         should be preseved.
28446
28447 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
28448
28449         PR tree-optimization/43528
28450         * stor-layout.c (place_field): Check that constant fits into
28451         unsigned HWI when skipping calculation of MS bitfield layout.
28452
28453 2010-03-27  Jan Hubicka  <jh@suse.cz>
28454
28455         PR middle-end/43391
28456         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
28457         notice_global_symbol work.
28458
28459 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
28460
28461         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
28462         instead of dwarf2out_decl.
28463         (struct var_loc_node): Remove section_label field.
28464         (dwarf2out_function_decl): New function.
28465         (dwarf2out_var_location): Don't set section_label field.
28466         (dwarf2out_begin_function): Don't empty decl_loc_table here.
28467
28468 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
28469
28470         PR tree-optimization/43544
28471         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
28472         First argument for builtin vectorized function hook is now a
28473         tree to be able to distinguish between machine specific and
28474         standard builtins.
28475         * targhooks.c (default_builtin_vectorized_function): Ditto.
28476         * targhooks.h (default_builtin_vectorized_function): Ditto.
28477         * target.h (struct gcc_target): Ditto.
28478         * tree-vect-stmts.c (vectorizable_function): Ditto.
28479         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
28480         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
28481         Ditto.
28482
28483 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
28484
28485         PR c/43381
28486         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
28487         nested binding iff it is a FUNCTION_DECL.
28488         (store_parm_decls_newstyle): Pass nested=true to bind for
28489         FUNCTION_DECLs amongst parameters.
28490
28491 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
28492
28493         * var-tracking.c (vt_expand_loc_callback): Don't run
28494         cselib_expand_value_rtx_cb in dummy mode if
28495         cselib_dummy_expand_value_rtx_cb returned false.
28496
28497         * var-tracking.c (emit_note_insn_var_location): For one part
28498         notes with offset 0, don't add EXPR_LIST around the location.
28499         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
28500         add_location_or_const_value_attribute): Adjust for that change.
28501
28502         PR debug/43540
28503         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
28504         into first operand and location into second.
28505         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
28506         dw_cfi_oprnd_loc for DW_CFA_expression.
28507         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
28508         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
28509         assume first argument is regnum and second argument is location.
28510
28511 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
28512
28513         PR target/42113
28514         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
28515         of scratch register to DImode.  Split to DImode comparison operator.
28516         Use SImode subreg of scratch register in the multiplication.
28517         (*cmp_sadd_sidi): Ditto.
28518         (*cmp_ssub_si): Ditto.
28519         (*cmp_ssub_sidi): Ditto.
28520
28521 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
28522
28523         PR target/43524
28524         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
28525         Remove invalid assert and wrong comment.
28526
28527 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
28528
28529         PR debug/43516
28530         * flags.h (final_insns_dump_p): New extern.
28531         * final.c (final_insns_dump_p): New variable.
28532         (rest_of_clean_state): Set it before -fdump-final-insns=
28533         dumping, clear afterwards.
28534         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
28535         MEM_ALIAS_SET on MEMs.
28536
28537 2010-03-26  David S. Miller  <davem@davemloft.net>
28538
28539         * configure.ac: Fix sparc GOTDATA_OP bug check.
28540         * configure: Rebuild.
28541
28542 2010-03-26  Alan Modra  <amodra@gmail.com>
28543
28544         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
28545
28546 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28547
28548         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
28549         TLS_SECTION_ASM_FLAG.
28550
28551 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
28552
28553         PR bootstrap/43511
28554         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
28555         Clear first_function_block_is_cold.
28556
28557         PR c/43385
28558         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
28559         argument if the argument is truth_value_p.
28560
28561 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
28562
28563         * config/rs6000/constraints.md: Update copyright year for my changes.
28564
28565         PR target/43484
28566         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
28567         used in reg+reg addressing, swap registers.
28568
28569 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
28570
28571         PR debug/43293
28572         * target.h (struct gcc_target): Add code_end hook.
28573         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
28574         if not yet defined.
28575         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
28576         * toplev.c (compile_file): Call targetm.asm_out.code_end
28577         hook before unwind info/debug info output.
28578         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
28579         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
28580         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
28581         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
28582         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
28583         * config/i386/i386.c (ix86_file_end): Renamed to...
28584         (ix86_code_end): ... this.  Make static.  Don't call
28585         file_end_indicate_exec_stack.  Emit unwind info using
28586         final_start_function/final_end_function.
28587         (darwin_x86_file_end): Remove.
28588         (TARGET_ASM_CODE_END): Define.
28589         * config/i386/i386.h (TARGET_ASM_FILE_END,
28590         NEED_INDICATE_EXEC_STACK): Don't define.
28591         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
28592         (TARGET_ASM_FILE_END): Define to darwin_file_end.
28593         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
28594         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
28595
28596         PR target/43498
28597         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
28598         at the beginning and final_end_function at the end.
28599         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
28600
28601 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28602
28603         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
28604         and Sun as TLS syntax.
28605         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
28606         * configure: Regenerate.
28607         * config.in: Regenerate.
28608         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
28609         (default_elf_asm_named_section): Use it.
28610         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
28611         (i386_output_dwarf_dtprel): Likewise.
28612         (output_addr_const_extra): Likewise.
28613         (output_pic_addr_const): Lowercase @GOTTPOFF.
28614         (output_addr_const_extra): Likewise.
28615         (output_pic_addr_const): Lowercase @GOTNTPOFF.
28616         (output_addr_const_extra): Likewise.
28617         (output_pic_addr_const): Lowercase @INDNTPOFF.
28618         (output_addr_const_extra): Likewise.
28619         (output_pic_addr_const): Lowercase @NTPOFF.
28620         (output_addr_const_extra): Likewise.
28621         (output_pic_addr_const): Lowercase @TPOFF.
28622         (output_addr_const_extra): Likewise.
28623         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
28624         (*tls_global_dynamic_64): Likewise.
28625         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
28626         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
28627
28628         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
28629         (ASM_OUTPUT_TLS_COMMON): Use it.
28630         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
28631
28632         PR target/38118
28633         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
28634         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
28635         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
28636         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
28637         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
28638         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
28639
28640 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28641
28642         * config/i386/i386.c (override_options): Don't accept
28643         -mtls-dialect=sun any longer.
28644         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
28645         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
28646         (*tls_local_dynamic_base_32_sun): Likewise.
28647         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
28648
28649 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
28650
28651         PR debug/43508
28652         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
28653         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
28654
28655         PR debug/43479
28656         * ira.c (adjust_cleared_regs): New function.
28657         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
28658
28659         PR debug/19192
28660         PR debug/43479
28661         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
28662         from gimple_block.
28663         * expr.c (expand_expr_real): Restore previous
28664         curr_insn_source_location and curr_insn_block after
28665         expand_expr_real_1 call.
28666         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
28667         instead of expand_expr_real_1.
28668
28669 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
28670
28671         PR rtl-optimization/43413
28672         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
28673         hard regs too.
28674
28675 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
28676
28677         PR target/43348
28678         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
28679         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
28680
28681 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
28682
28683         * config/i386/i386.c (ix86_target_string): Add -mfma.
28684         Fix a typo in comment.
28685
28686 2010-03-22  Mike Stump  <mikestump@comcast.net>
28687
28688         PR target/23071
28689         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
28690         Don't overly align based upon packed packed fields.
28691
28692 2010-03-22  Jason Merrill  <jason@redhat.com>
28693
28694         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
28695         Use () rather than [], and move before the element type.
28696
28697 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28698
28699         * doc/configfiles.texi (Configuration Files): Removed
28700         fixinc/Makefile*, intl/Makefile.*.
28701         * doc/makefile.texi: Fixed markup. Abstract from version
28702         control system used.
28703         (Makefile): Removed obsolete java/parse.y example.
28704         * doc/sourcebuild.texi: Likewise.
28705         (Top Level): Added config, gnattools, libdecnumber, libgcc,
28706         libgomp, libssp.  Removed fastjar.
28707         (Miscellaneous Docs): Clarify location.
28708         Added COPYING3, COPYING3.LIB.
28709         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
28710
28711 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28712
28713         PR target/38085
28714         * config/i386/i386.c (x86_function_profiler)
28715         [!NO_PROFILE_COUNTERS]: Fix typo.
28716         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
28717         instead of callq.
28718
28719 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
28720             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28721
28722         * doc/sourcebuild.texi (Test Directives): Split into six
28723         subsections, with most of the current text in new subsections
28724         Directives, Selectors, and Final Actions.
28725         (Directives): Split list of test directives into multiple
28726         subsubsections.
28727         (Selectors): Describe use and syntax of selectors.
28728         (Effective-Target Keywords): Describe all existing keywords.
28729         (Add Options): Describe features for dg-add-options.
28730         (Require Support): Describe variants of dg-require-support.
28731         (Final Actions): Describe commands to use in dg-final.
28732
28733 2010-03-22  Michael Matz  <matz@suse.de>
28734
28735         PR middle-end/43475
28736         * recog.c (validate_replace_rtx_group): Replace also in
28737         REG_EQUAL and REG_EQUIV notes.
28738
28739 2010-03-22  Richard Guenther  <rguenther@suse.de>
28740
28741         PR tree-optimization/43390
28742         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
28743         sure vector extracts are type correct.
28744
28745 2010-03-22  Richard Guenther  <rguenther@suse.de>
28746
28747         PR middle-end/40106
28748         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
28749         x * sqrt (x) even when optimizing for size if the target
28750         has native support for sqrt.
28751
28752 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
28753
28754         * varasm.c (make_decl_rtl_for_debug): Also clear
28755         flag_mudflap for the duration of make_decl_rtl call.
28756
28757         PR debug/43443
28758         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
28759         locs from preserved VALUEs.
28760
28761 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
28762
28763         PR middle-end/42718
28764         * pa.md (movmemsi): Set align to one if zero.
28765         (movmemdi): Likewise.
28766
28767 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
28768
28769         PR target/42321
28770         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
28771         with their corresponding prologue pushes.
28772
28773 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
28774
28775         PR target/43156
28776         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
28777         at the begining or end.
28778         (spu_expand_epilogue): Likewise.
28779
28780 2010-03-20  Richard Guenther  <rguenther@suse.de>
28781
28782         PR rtl-optimization/43438
28783         * combine.c (make_extraction): Properly zero-/sign-extend an
28784         extraction of the low part of a CONST_INT.  Also handle
28785         CONST_DOUBLE.
28786
28787 2010-03-19  Mike Stump  <mikestump@comcast.net>
28788
28789         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
28790         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
28791         (override_options): Use SUBTARGET32_DEFAULT_CPU.
28792
28793 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
28794
28795         PR c/43211
28796         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
28797         an error.
28798
28799 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
28800
28801         PR rtl-optimization/42258
28802         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
28803         use that may match DEF.
28804
28805         PR target/40697
28806         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
28807         the cost of loading the constant rather than assuming
28808         COSTS_N_INSNS (1).
28809         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
28810         outer code is AND, do the same tests as the andsi3 expander and
28811         return COSTS_N_INSNS (1) if and is cheap.
28812
28813         * optabs.c (avoid_expensive_constant): Fix formatting.
28814
28815 2010-03-19  Michael Matz  <matz@suse.de>
28816
28817         PR c++/43116
28818         * attribs.c (decl_attributes): When rebuilding a function pointer
28819         type use the same qualifiers as the original pointer type.
28820
28821 2010-03-19  Martin Jambor  <mjambor@suse.cz>
28822
28823         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
28824         and is_gimple_ip_invariant_address.
28825
28826 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
28827
28828         Revert
28829         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
28830
28831         * config/arm/arm.c (arm_override_options): Turn off
28832         flag_dwarf2_cfi_asm for AAPCS variants.
28833
28834 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
28835
28836         PR target/43399
28837         * config/arm/arm.c (emit_multi_reg_push): Update comments.
28838         Use PRE_MODIFY instead of PRE_DEC.
28839         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
28840         (vfp_emit_fstmd): Likewise.
28841
28842 2010-03-19  Michael Matz  <matz@suse.de>
28843
28844         PR target/43305
28845         * builtins.c (expand_builtin_interclass_mathfn,
28846         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
28847         if that fails.
28848
28849 2010-03-19  Richard Guenther  <rguenther@suse.de>
28850
28851         PR tree-optimization/43415
28852         * tree-ssa-pre.c (phi_translate): Split out worker to ...
28853         (phi_translate_1): ... this.
28854         (phi_translate): Move all caching here.  Cache all NARY
28855         and REFERENCE translations.
28856
28857 2010-03-19  David S. Miller  <davem@davemloft.net>
28858
28859         With help from Eric Botcazou.
28860         * config/sparc/sparc.c: Include dwarf2out.h.
28861         (emit_pic_helper): Delete.
28862         (pic_helper_symbol_name): Delete.
28863         (pic_helper_emitted_p): Delete.
28864         (pic_helper_needed): New.
28865         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
28866         (get_pc_thunk_name): New.
28867         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
28868         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
28869         Set pic_helper_needed to true.  Don't call emit_pic_helper.
28870         (sparc_expand_prologue): Update load_pic_register call.
28871         (sparc_output_mi_thunk): Likewise.
28872         (sparc_file_end): Emit a hidden comdat symbol for the PIC
28873         thunk if possible.  Output CFI information as needed.
28874
28875 2010-03-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
28876             Jack Howarth  <howarth@bromo.med.uc.edu>
28877
28878         PR target/36399
28879         * config/i386/i386.h: Fix ABI on darwin x86-32.
28880
28881 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
28882
28883         * tree.h: Declare make_decl_rtl_for_debug.
28884         * varasm.c (make_decl_rtl_for_debug): New.
28885         * dwarf2out.c (rtl_for_decl_location): Call it.
28886         * cfgexpand.c (expand_debug_expr): Call it.
28887
28888 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
28889
28890         PR bootstrap/43399
28891         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
28892         mem_mode.
28893
28894         PR bootstrap/43403
28895         * var-tracking.c (vt_init_cfa_base): Do nothing if
28896         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
28897
28898 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
28899
28900         PR debug/42873
28901         * var-tracking.c (canonicalize_vars_star): New.
28902         (dataflow_post_merge_adjust): Use it.
28903
28904 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
28905
28906         PR debug/43058
28907         * var-tracking.c (non_suitable_const): New function.
28908         (add_uses): For DEBUG_INSNs with constants, don't record any
28909         value, instead just the constant value itself.
28910         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
28911         is not VAR_LOC_UNKNOWN_P, set var to the constant.
28912         (emit_notes_in_bb): Likewise.
28913         (emit_note_insn_var_location): For onepart variables if
28914         cur_loc is a VOIDmode constant, use DECL_MODE.
28915
28916 2010-03-18  Martin Jambor  <mjambor@suse.cz>
28917
28918         PR middle-end/42450
28919         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
28920         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
28921         all non-clones.  Moved call redirection...
28922         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
28923         (cgraph_materialize_all_clones): Dispose of all
28924         combined_args_to_skip bitmaps.
28925         (verify_cgraph_node): Do not check for edges pointing to wrong
28926         nodes in inline clones.
28927         * tree-inline.c (copy_bb): Call
28928         cgraph_redirect_edge_call_stmt_to_callee.
28929         * ipa.c (cgraph_remove_unreachable_nodes): Call
28930         cgraph_node_remove_callees even when there are used clones.
28931
28932 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
28933
28934         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
28935
28936 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
28937
28938         PR target/43383
28939         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
28940         for 32bit.
28941
28942 2010-03-18  Michael Matz  <matz@suse.de>
28943
28944         PR middle-end/43419
28945         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
28946         into sqrt(x) if we need to preserve signed zeros.
28947
28948 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
28949             Eric Botcazou  <ebotcazou@adacore.com>
28950
28951         PR rtl-optimization/43360
28952         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
28953         note if we don't know its invariant status.
28954
28955 2010-03-18  Michael Matz  <matz@suse.de>
28956
28957         PR tree-optimization/43402
28958         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
28959         PHI chains of ssa names registered for update.
28960
28961 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
28962
28963         PR target/42427
28964         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
28965         non-offsettable and pre_modify update addressing.
28966         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
28967         and "2" alternatives "#".
28968         (*movdd_softfloat32): Make all alternatives "#";
28969         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
28970         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
28971         (*movdf_softfloat32): Make all alternatives "#";
28972         (movdi): Use the new DIFD mode iterator to create a common splitter
28973         for movdi, movdf and movdd patterns.
28974
28975 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
28976
28977         * common.opt (dumpdir): Remove redundant tab.
28978
28979 2010-03-17  Martin Jambor  <mjambor@suse.cz>
28980
28981         PR tree-optimization/43347
28982         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
28983         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
28984
28985 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
28986
28987         PR rtl-optimization/42216
28988         * regrename.c (create_new_chain): New function, broken out from...
28989         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
28990         appending a use to an empty chain.
28991         (build_def_use): Remove previous changes that convert OP_INOUT to
28992         OP_OUT operands; instead detect the case where an OP_INOUT operand
28993         uses a previously untracked register and create an empty chain for it.
28994
28995 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
28996
28997         * doc/extend.texi (Function Attributes): Rewrite unfinished
28998         sentence in ms_abi documentation.
28999
29000 2010-03-17  Alan Modra  <amodra@gmail.com>
29001
29002         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
29003         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
29004         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
29005         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
29006
29007 2010-03-16  Richard Henderson  <rth@redhat.com>
29008
29009         PR middle-end/43365
29010         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
29011         (lower_try_finally): Save and restore eh_seq around the expansion
29012         of the try-finally.
29013
29014 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
29015
29016         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
29017         statements before splitting block.
29018
29019 2010-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29020
29021         * doc/sourcebuild.texi (Testsuites): Fix markup.
29022         Use pathnames relative to gcc/testsuite.
29023         (Test Directives): Move description of how timeout is determined.
29024         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
29025         (C Tests): Correct gcc.misc-tests directory.
29026         Framework tests now live in gcc.test-framework.
29027
29028 2010-03-16  Richard Guenther  <rguenther@suse.de>
29029
29030         PR middle-end/43379
29031         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
29032         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
29033
29034 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
29035             Alexandre Oliva  <aoliva@redhat.com>
29036
29037         PR tree-optimization/42917
29038         * lambda-code.c (remove_iv): Skip debug statements.
29039         (lambda_loopnest_to_gcc_loopnest): Likewise.
29040         (not_interesting_stmt): Debug statements are not interesting.
29041
29042 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
29043
29044         PR debug/43051
29045         PR debug/43092
29046         * cselib.c (cselib_preserve_constants,
29047         cfa_base_preserved_val): New static variables.
29048         (preserve_only_constants): New function.
29049         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
29050         clear its REG_VALUES.  If cselib_preserve_constants, don't
29051         empty the whole hash table, but preserve there VALUEs with constants,
29052         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
29053         (cselib_preserve_cfa_base_value): New function.
29054         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
29055         (cselib_init): Change argument to int bitfield.  Set
29056         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
29057         is in it.
29058         (cselib_finish): Clear cselib_preserve_constants and
29059         cfa_base_preserved_val.
29060         * cselib.h (enum cselib_record_what): New enum.
29061         (cselib_init): Change argument to int.
29062         (cselib_preserve_cfa_base_value): New prototype.
29063         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
29064         * dse.c (dse_step1): Likewise.
29065         * cfgcleanup.c (thread_jump): Likewise.
29066         * sched-deps.c (sched_analyze): Likewise.
29067         * gcse.c (local_cprop_pass): Likewise.
29068         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
29069         If FN is non-NULL, call the callback always and whenever it returns
29070         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
29071         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
29072         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
29073         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
29074         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
29075         * var-tracking.c: Include recog.h.
29076         (bb_stack_adjust_offset): Remove.
29077         (vt_stack_adjustments): Don't call it, instead just gather the
29078         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
29079         (adjust_stack_reference): Remove.
29080         (compute_cfa_pointer): New function.
29081         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
29082         (struct adjust_mem_data): New type.
29083         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
29084         functions.
29085         (get_address_mode): New function.
29086         (replace_expr_with_values): Use it.
29087         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
29088         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
29089         (adjust_sets): Remove.
29090         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
29091         Use get_address_mode.
29092         (get_adjusted_src): Remove.
29093         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
29094         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
29095         (add_with_sets): Don't call adjust_sets.
29096         (fp_setter, vt_init_cfa_base): New functions.
29097         (vt_initialize): Change return type to bool.  Move most of pool etc.
29098         initialization to the beginning of the function from end.  Pass
29099         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
29100         If !frame_pointer_needed, call vt_stack_adjustment before mos
29101         vector is filled, call vt_init_cfa_base if argp/framep has been
29102         eliminated to sp.  If frame_pointer_needed and argp/framep has
29103         been eliminated to hard frame pointer, set
29104         hard_frame_pointer_adjustment and call vt_init_cfa_base after
29105         encountering fp setter in the prologue.  For MO_ADJUST, call
29106         log_op_type before pusing the op into mos vector, not afterwards.
29107         Call adjust_insn before cselib_process_insn/add_with_sets,
29108         call cancel_changes (0) afterwards.
29109         (variable_tracking_main_1): Adjust for vt_initialize calling
29110         vt_stack_adjustments and returning whether it succeeded or not.
29111
29112 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
29113
29114         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
29115         debug statements.
29116
29117 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
29118
29119         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
29120         has been set.
29121         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
29122         drap_reg has not been set.
29123
29124 2010-03-15  Michael Matz  <matz@suse.de>
29125
29126         PR middle-end/43300
29127         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
29128         use it to expand block copies.
29129         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
29130         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
29131         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
29132
29133 2010-03-15  Richard Guenther  <rguenther@suse.de>
29134
29135         PR tree-optimization/43367
29136         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
29137         elimination check.
29138
29139 2010-03-15  Richard Guenther  <rguenther@suse.de>
29140
29141         PR tree-optimization/43317
29142         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
29143
29144 2010-03-15  Martin Jambor  <mjambor@suse.cz>
29145
29146         PR tree-optimization/43141
29147         * tree-sra.c (create_abstract_origin): New function.
29148         (modify_function): Call create_abstract_origin.
29149
29150 2010-03-15  Chris Demetriou  <cgd@google.com>
29151
29152         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
29153         wasn't copied.
29154
29155 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
29156
29157         PR middle-end/43354
29158         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
29159         call insert_out_of_ssa_copy for default definitions.
29160
29161 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
29162
29163         * graphite-clast-to-gimple.c (my_long_long): Defined.
29164         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
29165         * graphite-sese-to-poly.c (my_long_long): Defined.
29166         (scop_ivs_can_be_represented): Use it.
29167
29168 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
29169
29170         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
29171         graphite-max-bbs-per-function, and loop-block-tile-size.
29172         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
29173         with "maximum".
29174         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
29175
29176 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
29177
29178         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
29179         forward declaration.
29180         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
29181         (add_upper_bounds_from_estimated_nit): New.
29182         (build_loop_iteration_domains): Use it.
29183
29184 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
29185
29186         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
29187
29188 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
29189
29190         PR middle-end/43306
29191         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
29192         should be an INTEGER_CST.  Also handle CASE_CONVERT.
29193
29194 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
29195
29196         * graphite.c (graphite_initialize): To bound the number of bbs per
29197         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
29198         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
29199         * doc/invoke.texi: Document it.
29200
29201 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
29202
29203         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
29204         * graphite-sese-to-poly.h (build_poly_scop): Same.
29205
29206 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
29207
29208         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
29209         the number of parameters in the scop.  Use as an upper bound
29210         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
29211         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
29212         * doc/invoke.texi: Document it.
29213
29214 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
29215
29216         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
29217         * doc/c-tree.texi: Remove.
29218         * doc/generic.texi: Merge c-tree.texi here.
29219         * doc/gccint.texi (Trees): Remove menu entry.
29220         (c-tree.texi): Remove @include.
29221         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
29222         * doc/languages.texi (Reading RTL): Ditto.
29223
29224 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
29225
29226         PR target/42869
29227         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
29228
29229 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
29230
29231         PR middle-end/42431
29232         * config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
29233         code added to work around reload clobbering CONST insns.
29234
29235 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
29236
29237         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
29238         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
29239         (cselib_preserve_only_values): Remove retain argument, don't
29240         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
29241         * cselib.h (cselib_preserve_only_values): Remove retain argument.
29242         * var-tracking.c (micro_operation): Move insn field before union.
29243         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
29244         (struct variable_tracking_info_def): Remove n_mos field, change
29245         mos into a vector of micro_operations.
29246         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
29247         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
29248         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
29249         changing into a vector.
29250         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
29251         come before all other uops generated by add_stores.
29252         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
29253         argument removal.
29254         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
29255         a vector.  Run just one pass over the bbs instead of separate counting
29256         and computation phase.
29257         (vt_finalize): Free VTI (bb)->mos vector instead of array.
29258
29259         PR debug/43329
29260         * tree-inline.c (remap_decls): Put old_var rather than origin_var
29261         into *nonlocalized_list vector.
29262         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
29263         even if origin is non-NULL.
29264         (gen_variable_die): Likewise.
29265         (process_scope_var): Don't change origin.
29266         (gen_decl_die): Likewise.
29267         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
29268         before adding new edges instead of after it, fix moving over
29269         debug stmts.
29270
29271 2010-03-11  David S. Miller  <davem@davemloft.net>
29272
29273         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
29274         of four.
29275         * configure: Rebuild.
29276
29277 2010-03-11  Martin Jambor  <mjambor@suse.cz>
29278
29279         PR tree-optimization/43257
29280         * tree.c (assign_assembler_name_if_neeeded): New function.
29281         (free_lang_data_in_cgraph): Assembler name assignment moved to the
29282         above new function.
29283         * tree.h (assign_assembler_name_if_neeeded): Declare.
29284         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
29285         the function if needed.
29286
29287 2010-03-11  Chris Demetriou  <cgd@google.com>
29288
29289         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
29290         include/stdint-gcc.h, and include/stdint.h world-readable.
29291
29292 2010-03-11  Richard Guenther  <rguenther@suse.de>
29293
29294         PR tree-optimization/43255
29295         * tree-vrp.c (process_assert_insertions_for): Do not insert
29296         asserts for trivial conditions.
29297
29298 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
29299
29300         PR tree-optimization/43280
29301         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
29302         generation.  Move calculation of size out of the if branch.
29303         (find_bswap): Modify compare number generation.
29304
29305 2010-03-11  Richard Guenther  <rguenther@suse.de>
29306
29307         PR lto/43200
29308         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
29309         (input_gimple_stmt): Fixup handled component types during
29310         operand read.  Also fix up decls in ADDR_EXPRs.
29311
29312 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
29313
29314         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
29315         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
29316
29317 2010-03-10  Jan Hubicka  <jh@suse.cz>
29318
29319         PR c/43288
29320         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
29321         * varasm.c (get_variable_section): Don't do that here...
29322         (make_decl_rtl): ... and here.
29323         (do_assemble_alias): Produce decl RTL.
29324         (assemble_alias): Likewise.
29325
29326 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
29327
29328         PR debug/43290
29329         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
29330         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
29331         of fde->vdrap_reg.
29332         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
29333         (based_loc_descr): Only express drap or vdrap regno based expressions
29334         using DW_OP_fbreg when not optimizing.
29335         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
29336         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
29337         REG_CFA_SET_VDRAP note.
29338
29339 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
29340
29341         PR tree-optimization/43236
29342         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
29343         error in calculation of base address in reverse iteration case.
29344         (generate_builtin): Take number of latch executions if the statement
29345         is in the latch.
29346
29347 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
29348
29349         PR middle-end/42859
29350         * tree-eh.c: Include pointer-set.h.
29351         (lower_eh_dispatch): Filter out duplicate case labels and
29352         remove the unneeded edge when the label is unused.  Return
29353         true when some edges are removed.
29354         (execute_lower_eh_dispatch): When any lowering resulted in
29355         removing an edge, also delete unreachable blocks.
29356
29357 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
29358
29359         PR bootstrap/43287
29360         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
29361         UNSPEC_MACHOPIC_OFFSET.
29362
29363 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
29364
29365         PR target/43294
29366         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
29367         (m68k_delegitimize_address): New function.
29368
29369 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
29370
29371         PR debug/43299
29372         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
29373
29374         PR debug/43299
29375         * var-tracking.c (adjust_sets): New function.
29376         (count_with_sets, add_with_sets): Use it.
29377         (get_adjusted_src): New inline function.
29378         (add_stores): Use it.
29379
29380         PR debug/43304
29381         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
29382         call cselib_dummy_expand_value_rtx_cb instead of
29383         cselib_expand_value_rtx_cb.
29384
29385         PR debug/43293
29386         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
29387         * config/i386/i386.c: Include debug.h and dwarf2out.h.
29388         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
29389         and .cfi_endproc around the pic thunks.
29390         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
29391         all queued unwind info register saves are saved before the call.
29392         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
29393         considered as sp-=4 for unwind info and the pop as sp+=4 which
29394         also clobbers dest, but doesn't actually restore it.
29395
29396         PR debug/43290
29397         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
29398         RTX_FRAME_RELATED_P.
29399
29400 2010-03-09  Jie Zhang  <jie@codesourcery.com>
29401
29402         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
29403         whitespaces in output template.
29404
29405 2010-03-09  Jie Zhang  <jie@codesourcery.com>
29406
29407         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
29408         out array boundary.
29409
29410 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
29411
29412         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
29413         builtins.exp in a separate job.
29414
29415 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
29416
29417         * graphite-sese-to-poly.c (add_param_constraints): Use
29418         lower_bound_in_type and upper_bound_in_type.
29419
29420 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
29421
29422         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
29423         instead of unsigned_type_node.
29424
29425 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
29426             Reza Yazdani  <reza.yazdani@amd.com>
29427
29428         PR middle-end/43065
29429         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
29430         on pointer type parameters.
29431
29432 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
29433
29434         PR middle-end/42644
29435         PR middle-end/42130
29436         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
29437         handle conversions from pointer to integers.
29438         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
29439         induction variable, to be able to work with code generated by CLooG.
29440         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
29441         (build_poly_scop): Bail out if we cannot codegen a loop.
29442
29443 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
29444
29445         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
29446         code generation with gloog_error.
29447
29448 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
29449
29450         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
29451         Call fold_convert on all the returned values.
29452         (expand_scalar_variables_expr): Pass to
29453         expand_scalar_variables_ssa_name the type of the resulting expression.
29454
29455 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
29456
29457         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
29458         ppl_min_for_le_pointset.
29459         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
29460         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
29461
29462 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
29463
29464         * graphite-dependences.c (map_into_dep_poly): Removed.
29465         (dependence_polyhedron_1): Use combine_context_id_scat.
29466
29467 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
29468
29469         * graphite-poly.h (struct poly_scattering): Add layout documentation.
29470         (struct poly_bb): Same.
29471         (combine_context_id_scat): New.
29472
29473 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
29474
29475         PR middle-end/42326
29476         * sese.c (name_defined_in_loop_p): Return false for default
29477         definitions.
29478
29479 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
29480
29481         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
29482         and clean up the logic.
29483
29484 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
29485
29486         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
29487         early return.
29488
29489 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
29490
29491         * var-tracking.c (remove_cselib_value_chains): Define only for
29492         ENABLE_CHECKING.
29493         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
29494         delete_slot_part, emit_notes_for_differences_1): Don't call
29495         remove_cselib_value_chains here.
29496         (set_slot_part, emit_notes_for_differences_2): Don't call
29497         add_cselib_value_chains here.
29498         (preserved_values): New vector.
29499         (preserve_value): New function.
29500         (add_uses, add_stores, vt_add_function_parameters): Use it
29501         instead of cselib_preserve_value.
29502         (changed_values_stack): New vector.
29503         (check_changed_vars_0): New function.
29504         (check_changed_vars_1, check_changed_vars_2): Use it.
29505         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
29506         changed_values_stack VALUEs.
29507         (vt_emit_notes): For all preserved_values call
29508         add_cselib_value_chains.  If ENABLE_CHECKING call
29509         remove_cselib_value_chains before verifying value_chains is empty.
29510         Initialize and free changed_values_stack.
29511         (vt_initialize): Initialize preserved_values.
29512         (vt_finalize): Free preserved_values.
29513
29514 2010-03-08  Richard Guenther  <rguenther@suse.de>
29515
29516         PR tree-optimization/43269
29517         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
29518         region detection.
29519
29520 2010-03-08  Martin Jambor  <mjambor@suse.cz>
29521
29522         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
29523         (ipa_is_param_called): Removed.
29524         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
29525         (ipa_print_node_params): Do not print the called flag.
29526         (ipa_write_node_info): Do not stream the called flag.
29527         (ipa_read_node_info): Likewise.
29528
29529 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
29530
29531         PR debug/43176
29532         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
29533         * cselib.c (struct expand_value_data): Add dummy field.
29534         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
29535         dummy to false.
29536         (cselib_dummy_expand_value_rtx_cb): New function.
29537         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
29538         any rtl.
29539         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
29540         * var-tracking.c: Include pointer-set.h.
29541         (variable): Change n_var_parts to char from int.  Add
29542         cur_loc_changed and in_changed_variables fields.
29543         (variable_canonicalize): Remove.
29544         (shared_var_p): New inline function.
29545         (unshare_variable): Maintain cur_loc_changed and
29546         in_changed_variables fields.  If var was in changed_variables,
29547         replace it there with new_var.  Just copy cur_loc instead of
29548         resetting it to something else.
29549         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
29550         (dataflow_set_union): Don't call variable_canonicalize.
29551         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
29552         of their DEBUG_EXPR_TREE_DECLs.
29553         (canonicalize_loc_order_check): Verify that cur_loc is NULL
29554         and in_changed_variables and cur_loc_changed is false.
29555         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
29556         and cur_loc_changed.  Don't update cur_loc here.
29557         (variable_merge_over_src): Don't call variable_canonicalize.
29558         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
29559         removing loc that is equal to cur_loc, clear cur_loc,
29560         set cur_loc_changed and ensure variable_was_changed is called.
29561         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
29562         compare pointers in cur_loc check, if it is equal to loc,
29563         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
29564         (variable_different_p): Remove compare_current_location argument,
29565         don't compare cur_loc.
29566         (dataflow_set_different_1): Adjust variable_different_p caller.
29567         (variable_was_changed): If dv had some var in changed_variables
29568         already, reset in_changed_variables flag for it and propagate
29569         cur_loc_changed over to the new variable.  On empty var
29570         always set cur_loc_changed.  Set in_changed_variables on whatever
29571         var is added to changed_variables.
29572         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
29573         Use shared_var_p.  When removing loc that is equal to cur_loc,
29574         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
29575         end, don't set it to something else, just call variable_was_changed.
29576         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
29577         loc being removed, clear cur_loc and set cur_loc_changed.
29578         Set cur_loc_changed if all locations have been removed.
29579         (struct expand_loc_callback_data): New type.
29580         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
29581         allocated.  Always create SUBREGs if simplify_subreg failed.
29582         Prefer to use cur_loc, when that fails and still in
29583         changed_variables (and seen first time) recompute it.  Set
29584         cur_loc_changed of variables which had to change cur_loc and
29585         compute elcd->cur_loc_changed if any of the subexpressions used
29586         had to change cur_loc.
29587         (vt_expand_loc): Adjust to pass arguments in
29588         expand_loc_callback_data structure.
29589         (vt_expand_loc_dummy): New function.
29590         (emitted_notes): New variable.
29591         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
29592         that weren't used for any other decl in current
29593         emit_notes_for_changes call call vt_expand_loc_dummy to update
29594         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
29595         first loc_chain location if NULL before.  Always use just
29596         cur_loc instead of first loc_chain location.  When cur_loc_changed
29597         is false, when not --enable-checking=rtl just don't emit any note.
29598         When rtl checking, compute the note and assert it is the same
29599         as previous note.  Clear cur_loc_changed and in_changed_variables
29600         at the end before removing from changed_variables.
29601         (check_changed_vars_3): New function.
29602         (emit_notes_for_changes): Traverse changed_vars to call
29603         check_changed_vars_3 on each changed var.
29604         (emit_notes_for_differences_1): Clear cur_loc_changed and
29605         in_changed_variables.  Recompute cur_loc of new_var.
29606         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
29607         (vt_emit_notes): Initialize and destroy emitted_notes.
29608
29609 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
29610
29611         PR rtl-optimization/42220
29612         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
29613         Use verify_reg_tracked to determine if we should use OP_OUT rather
29614         than OP_INOUT.
29615         (build_def_use): If we see an in-out operand for a register that we
29616         know nothing about, treat is an output if possible, fail the block if
29617         not.
29618
29619 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
29620
29621         PR debug/42897
29622         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
29623         permanently.
29624
29625 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
29626
29627         PR debug/42897
29628         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
29629         uses of relevant DEFs that are dead outside the loop too.
29630
29631 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
29632
29633         * var-tracking.c (dataflow_set_merge): Swap src and src2.
29634         Reverted:
29635         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
29636         PR debug/41371
29637         * var-tracking.c (values_to_unmark): New variable.
29638         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
29639         values_to_unmark vector.  Moved body to...
29640         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
29641         instead queue it into values_to_unmark vector.
29642         (vt_find_locations): Free values_to_unmark vector.
29643
29644 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
29645
29646         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
29647         (site.exp): Export them when plugins are enabled.
29648
29649 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
29650
29651         PR middle-end/42326
29652         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
29653         that contain scevs.
29654         (chrec_fold_multiply): Same.
29655
29656 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
29657
29658         PR c/43248
29659         * c-decl.c (build_compound_literal): Return early if init is
29660         an error_mark_node.
29661
29662 2010-03-04  Martin Jambor  <mjambor@suse.cz>
29663
29664         PR tree-optimization/43164
29665         PR tree-optimization/43191
29666         * tree-sra.c (type_consists_of_records_p): Reject records with
29667         zero-size bit-fields at the end.
29668
29669 2010-03-04  Mike Stump  <mikestump@comcast.net>
29670
29671         * Makefile.in (TAGS): Remove *.y.
29672
29673 2010-03-04  Richard Guenther  <rguenther@suse.de>
29674
29675         PR tree-optimization/40761
29676         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
29677         in reverse order.
29678         (my_rev_post_order_compute): New function.
29679         (init_pre): Call it.
29680
29681 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
29682
29683         PR middle-end/43209
29684         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
29685         decrease the cost of an IV candidate when the cost is infinite.
29686
29687 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
29688
29689         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
29690         Use '3DNow!' for the extension of that name, ensure normal space
29691         after the string.
29692         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
29693
29694 2010-03-03  Jeff Law  <law@redhat.com>
29695
29696         * PR middle-end/32693
29697         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
29698         than gen_rtx_SUBREG.
29699         (extract_bit_field_1): Likewise.
29700
29701 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
29702
29703         * doc/sourcebuild.texi (Test directives): Document that arguments
29704         include-opts and exclude-opts are now optional for dg-skip-if,
29705         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
29706
29707 2010-03-03  Jason Merrill  <jason@redhat.com>
29708
29709         PR c++/12909
29710         * cgraph.h (varpool_node): Add extra_name field.
29711         * varpool.c (varpool_extra_name_alias): New.
29712         (varpool_assemble_decl): Emit extra name aliases.
29713         (varpool_mark_needed_node): Look past an extra name alias.
29714         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
29715         * lto-streamer-in.c (lto_input_tree): Read it.
29716         * lto-streamer-out.c (output_unreferenced_globals): Write it.
29717
29718 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
29719
29720         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
29721         (sparc*-*-solaris2*): ...this.
29722
29723 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
29724
29725         PR debug/43229
29726         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
29727         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
29728         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
29729         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
29730
29731         PR debug/43237
29732         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
29733         fallthrough to default handling, just with want_address 0 instead of 2.
29734         For single element lists, add_AT_loc directly, otherwise create an
29735         artificial variable DIE and stick location list to it.
29736
29737         PR debug/43177
29738         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
29739         (VAL_EXPR_HAS_REVERSE): Define.
29740         (reverse_op): New function.
29741         (add_stores): For reversible operations add an extra MO_VAL_USE.
29742
29743 2010-03-02  Jason Merrill  <jason@redhat.com>
29744
29745         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
29746
29747 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
29748
29749         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
29750         (sparc64-*-linux*): Likewise.
29751         (sparc64-*-solaris2*): Include assembler files before linker ones.
29752         (sparc-*-solaris2*): Simplify and reorder to match previous case.
29753         * config/sparc/gas.h: Delete.
29754         * config/sparc/sol2-64.h: Add copyright notice.
29755         * config/sparc/sol2-gas-bi.h: Likewise.
29756         * config/sparc/sol2-gld.h: Likewise.
29757         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
29758         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
29759         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
29760         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
29761         (sparc_elf_asm_named_section): Rename into...
29762         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
29763
29764 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
29765
29766         * config/alpha/alpha.c (override_options): Fix -mtune error message.
29767
29768 2010-03-02  Jeff Law  <law@redhat.com>
29769
29770         PR middle-end/42431
29771         * reload1.c (rtx_p, substitute_stack): Declare.
29772         (substitute): Record addresses of changed rtxs.
29773         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
29774         Restore the original rtx when complete.
29775         (reload): Free subsitute_stack when complete.
29776
29777 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
29778
29779         * doc/gccint.texi (menu): Add Testsuites as a chapter.
29780         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
29781         new chapter.
29782         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
29783         LTO Testing, gcov Testing, profopt Testing, compat Testing,
29784         Torture Tests): Change from subsection to section.
29785
29786 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
29787             Steven Bosscher  <steven@gcc.gnu.org>
29788
29789         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
29790         instead of bb.
29791
29792 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
29793
29794         PR middle-end/42640
29795         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
29796         the assignment from the new induction variable to the assignment
29797         of the value from the original loop PHI function.
29798
29799 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
29800             Daniel Jacobowitz  <dan@codesourcery.com>
29801
29802         * doc/sourcebuild.texi (Test directives): Clarify options to
29803         dg-skip-if.
29804
29805 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29806
29807         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
29808         Disable cfi directives unless GCC and gas agree on using read-only
29809         .eh_frame sections for 64-bit.
29810         * configure: Regenerate.
29811
29812 2010-03-01  Richard Guenther  <rguenther@suse.de>
29813
29814         PR tree-optimization/43220
29815         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
29816         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
29817
29818 2010-03-01  Richard Guenther  <rguenther@suse.de>
29819             Martin Jambor  <mjambor@suse.cz>
29820
29821         PR middle-end/41250
29822         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
29823         gimplified parameters.
29824
29825 2010-03-01  Christian Bruel  <christian.bruel@st.com>
29826
29827         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
29828
29829 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
29830
29831         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
29832
29833 2010-03-01  Richard Guenther  <rguenther@suse.de>
29834
29835         PR middle-end/43213
29836         * expr.c (expand_assignment): Use the alias-oracle to tell
29837         if the rhs aliases the result decl.
29838
29839 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29840
29841         PR pch/14940
29842         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
29843         to sol_gt_pch_get_address.
29844         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
29845         64-bit, SPARC and x86.
29846         (sol_gt_pch_get_address): New function.
29847
29848 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
29849
29850         * toplev.h (inform_n, error_n): Declare.
29851         * diagnostic.c (inform_n, error_n): New function.
29852
29853 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
29854
29855         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
29856         has no rtl yet when processing local_decls, queue it and recheck
29857         if deferred stack allocation hasn't assigned it rtl.
29858
29859 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
29860
29861         * config/sh/sh.c (unspec_bbr_uid): New.
29862         (gen_block_redirect): Use it instead of INSN_UID.
29863         (gen_far_branch): Likewise.
29864
29865 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
29866
29867         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
29868         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
29869
29870 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
29871
29872         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
29873         (Warning Options): -Wno-conversion-null is valid for
29874         Objective-C++ as well.
29875         * doc/tm.texi (Named Address Spaces): Likewise.
29876         * doc/plugins.texi (Plugins): Replace TABs with spaces.
29877         * doc/tree-ssa.texi (Tree SSA): Likewise.
29878
29879 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
29880
29881         PR bootstrap/43202
29882         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
29883         by default.  Don't set the default arch for
29884         i[34567]86-*-darwin*|x86_64-*-darwin*.
29885
29886 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
29887
29888         PR bootstrap/43202
29889         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
29890         default.  Set the default 32bit/64bit archs with $with_arch
29891         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
29892
29893 2010-02-27  Richard Guenther  <rguenther@suse.de>
29894
29895         PR tree-optimization/43186
29896         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
29897         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
29898         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
29899         unroller iterations.
29900
29901 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
29902
29903         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
29904         required and i[34567]86-*-* targets don't support 64bit ISA.
29905
29906 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
29907
29908         PR ada/43096
29909         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
29910         the same alias set.
29911
29912 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
29913
29914         * config.gcc: Set the default arch at least to Prescott for
29915         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
29916         if SSE math is enabled.
29917
29918 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
29919
29920         * diagnostic.c (diagnostic_initialize): Update.
29921         (diagnostic_report_diagnostic): Test inhibit_notes_p for
29922         informative notes.
29923         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
29924         (diagnostic_inhibit_notes): New.
29925         * toplev.c (process_options): inhibit notes with -fcompare-debug.
29926
29927 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
29928
29929         PR c/20631
29930         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
29931         * doc/standards.texi: Likewise.
29932         * doc/extend.texi: Likewise.
29933         * doc/trouble.texi: Likewise.
29934         * doc/cppopts.texi: Likewise.
29935         * doc/install.texi: Likewise.
29936         * c.opt (std=c90,std=gnu90): New options.
29937         * c-opts.c (c_common_handle_option): Handle them.
29938
29939 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
29940
29941         PR c/24577
29942         * c-decl.c (undeclared_variable): Use an informative note.
29943
29944 2010-02-26  Richard Guenther  <rguenther@suse.de>
29945
29946         PR tree-optimization/43186
29947         * gimple.h (gimple_fold): Remove.
29948         * gimple.c (gimple_fold): Remove.  Inline into single user ...
29949         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
29950         Try harder for conditions.
29951
29952 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
29953
29954         PR debug/43190
29955         * function.c (used_types_insert): Don't skip through named pointer
29956         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
29957         and it is different from the main variant's type.
29958
29959 2010-02-26  Nick Clifton  <nickc@redhat.com>
29960
29961         * config/rx/rx.md (sminsi3): Remove bogus alternative.
29962
29963 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
29964
29965         * config.gcc: Support --with-fpmath=sse for x86.
29966
29967         * config/i386/ssemath.h: New.
29968
29969         * doc/install.texi (--with-fpmath=sse): Documented.
29970
29971 2010-02-26  Richard Guenther  <rguenther@suse.de>
29972
29973         PR tree-optimization/43188
29974         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
29975         vector types of over-aligned element type.
29976
29977 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
29978
29979         PR target/43175
29980         * config/i386/i386.c (expand_vec_perm_blend): Use correct
29981         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
29982
29983 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
29984
29985         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
29986
29987 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
29988
29989         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
29990         * var-tracking.c: Include diagnostic.h.
29991         (debug_dv): New function.
29992         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
29993
29994         PR debug/43160
29995         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
29996         (add_value_chain, add_value_chains, remove_value_chain,
29997         remove_value_chains): Handle DEBUG_EXPRs.
29998         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
29999
30000         PR debug/43161
30001         * regcprop.c (struct queued_debug_insn_change): New type.
30002         (struct value_data_entry): Add debug_insn_changes field.
30003         (struct value_data): Add n_debug_insn_changes field.
30004         (debug_insn_changes_pool): New variable.
30005         (free_debug_insn_changes, apply_debug_insn_changes,
30006         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
30007         (kill_value_one_regno): Call free_debug_insn_changes if needed.
30008         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
30009         fields.
30010         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
30011         changes for them.
30012         (copyprop_hardreg_forward_1): Don't call apply_change_group for
30013         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
30014         changes, call cprop_find_used_regs via note_stores.
30015         (copyprop_hardreg_forward): When copying vd from predecessor
30016         which has any queued DEBUG_INSN changes, make sure the pointers are
30017         cleared.  At the end call df_analyze and then if there are any
30018         DEBUG_INSN changes queued at the end of some basic block for still
30019         live registers, apply them.
30020         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
30021
30022 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
30023
30024         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
30025         (arm*-*-*): Ditto.
30026
30027 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
30028
30029         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
30030         targets.  Set the default with_cpu/with_arch from arch/cpu.
30031         Allow x86-64 and native for with_cpu/with_arch.
30032
30033 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
30034
30035         * ebitmap.c: Change calls to verify_popcount with calls to
30036         sbitmap_verify_popcount.
30037         (ebitmap_clear_bit): Fixed map->cacheindex test and
30038         map>cache update when bit clearing results in an empty
30039         element.
30040
30041 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
30042
30043         PR target/43154
30044         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
30045         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
30046         and support both V2DF and V2DI modes.
30047         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
30048         support both V2DF and V2DI modes.
30049         (general): Delete trailing whitespace from a few patterns.
30050
30051         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
30052         V2DF/V2DI interleave high/low builtins.
30053
30054         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
30055         new VSX builtins.
30056
30057         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
30058         interleave high/low functions.
30059
30060 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
30061
30062         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
30063         #pragma extern_prefix.
30064
30065 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
30066
30067         PR debug/43166
30068         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
30069         BLKmode, assert op0 is a MEM and just adjust its mode.
30070
30071         PR debug/43165
30072         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
30073         if bitpos isn't multiple of mode's bitsize.
30074
30075 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
30076
30077         * c.opt (-ftemplate-depth=): New.
30078         (-ftemplate-depth-): Deprecate.
30079         * optc-gen.awk: Handle -ftemplate-depth=.
30080         * opth-gen.awk: Likewise.
30081         * c-opts.c (c_common_handle_option): Likewise.
30082         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
30083
30084 2010-02-24  Jason Merrill  <jason@redhat.com>
30085
30086         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
30087
30088 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30089
30090         * cfg.c (alloc_aux_for_block): Remove inline.
30091         (alloc_aux_for_edge): Likewise.
30092
30093 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30094
30095         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
30096
30097 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30098
30099         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
30100         * config/i386/sol2-gas.h: New file.
30101         * config.gcc (i[34567]86-*-solaris2*): Use it.
30102
30103 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
30104
30105         PR c/43128
30106         * c-typeck.c (ep_convert_and_check): New.
30107         (build_conditional_expr): Use it.
30108         (build_binary_op): Likewise.
30109
30110 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
30111
30112         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
30113
30114         PR debug/43150
30115         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
30116         bounds even for -O+.
30117         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
30118         expr needs to have DECL_NAME set.
30119
30120 2010-02-24  Nick Clifton  <nickc@redhat.com>
30121
30122         * config/mep/mep.c: Include gimple.h.
30123         (mep_function_uses_sp): Delete unused function.
30124         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
30125         parameters.  Use unsigned integers to count args.  Return a
30126         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
30127
30128 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
30129
30130         PR target/43107
30131         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
30132         greater or equal to nelt instead of 2 * nelt.
30133         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
30134         with nelt - 1.
30135
30136 2010-02-23  Jason Merrill  <jason@redhat.com>
30137
30138         PR debug/42800
30139         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
30140         in cfun->local_decls even if they have register types.
30141
30142         PR c++/42837
30143         * stor-layout.c (place_field): Don't warn about unnecessary
30144         DECL_PACKED if the type is packed.
30145
30146 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
30147
30148         PR target/43139
30149         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
30150         GOTOFF relocs, even when the base reg isn't pic pointer.
30151
30152 2010-02-23  Michael Matz  <matz@suse.de>
30153
30154         PR debug/43077
30155         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
30156         (expand_gimple_basic_block): Generate and use debug temps if there
30157         are debug uses left after the last real use of TERed ssa names.
30158         Unlink debug immediate uses when they are expanded.
30159
30160 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
30161
30162         PR 43123
30163         * config/i386/i386.c (override_options): Reorganise to provide
30164         better error messages.
30165
30166 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
30167
30168         PR middle-end/43083
30169         * graphite-scop-detection.c (create_single_exit_edge): Move
30170         the call to find_single_exit_edge to....
30171         (create_sese_edges): ...here.  Don't handle multiple edges
30172         exiting the function.
30173         (build_graphite_scops): Don't handle multiple edges
30174         exiting the function.
30175
30176 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
30177
30178         PR middle-end/43097
30179         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
30180         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
30181
30182 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
30183
30184         PR middle-end/43026
30185         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
30186
30187 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
30188
30189         PR c++/43126
30190         * c-typeck.c (convert_arguments): Print declaration location.
30191         * c-common.c (validate_nargs): Rename as
30192         builtin_function_validate_nargs.
30193         (check_builtin_function_arguments): Update.
30194
30195 2010-02-22  Richard Guenther  <rguenther@suse.de>
30196
30197         PR lto/43045
30198         * tree-inline.c (declare_return_variable): Use the type of
30199         the call stmt lhs if available.
30200
30201 2010-02-22  Duncan Sands  <baldrick@free.fr>
30202
30203         * passes.c (register_pass): Always consider all pass lists when
30204         ref_pass_instance_number is zero.
30205
30206 2010-02-22  Richard Guenther  <rguenther@suse.de>
30207
30208         PR tree-optimization/42749
30209         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
30210         parameter.  Do arithmetic in the original type.
30211         (update_accumulator_with_ops): Likewise.
30212         (adjust_accumulator_values): Adjust.
30213
30214 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
30215
30216         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
30217         (QI to BLKmode splitter): New splitter.
30218
30219 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
30220
30221         * config/i386/i386.c (initial_ix86_tune_features): Turn on
30222         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
30223
30224 2010-02-22  Richard Guenther  <rguenther@suse.de>
30225
30226         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
30227
30228 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
30229
30230         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
30231         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
30232         ($(T)crti.o, $(T)crtn.o): Remove rules.
30233
30234 2010-02-21  Tobias Burnus  <burnus@net-b.de>
30235
30236         PR fortran/35259
30237         * doc/invoke.texi (-fassociative-math): Document that this
30238         option is automatically enabled for Fortran.
30239
30240 2010-02-20  David S. Miller  <davem@davemloft.net>
30241
30242         * configure.ac: Test if linker and assembler properly support
30243         GOTDATA_OP relocations.
30244         * configure: Rebuild.
30245         * config.in: Likewise.
30246         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
30247         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
30248         (movsi_high_pic): Likewise.
30249         (movdi_lo_sum_pic): Likewise.
30250         (movdi_high_pic): Likewise.
30251         (movsi_pic_gotdata_op): New pattern.
30252         (movdi_pic_gotdata_op): Likewise.
30253         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
30254         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
30255
30256 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
30257
30258         PR target/43067
30259         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
30260         attribute to ssemul.
30261         (xop_mulv2div2di3_high): Ditto.
30262
30263 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
30264
30265         PR c++/35669
30266         * c.opt (Wconversion-null): New option.
30267         * doc/invoke.texi (Wconversion-null): Document.
30268
30269 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
30270
30271         * common.opt (Wlarger-than-): Add Undocumented.
30272
30273 2010-02-19  Mike Stump  <mikestump@comcast.net>
30274
30275         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
30276
30277 2010-02-19  Jason Merrill  <jason@redhat.com>
30278
30279         PR target/40332
30280         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
30281         * configure: Likewise.
30282
30283 2010-02-20  Alan Modra  <amodra@gmail.com>
30284
30285         PR middle-end/42344
30286         * cgraph.h (cgraph_make_decl_local): Declare.
30287         * cgraph.c (cgraph_make_decl_local): New function.
30288         (cgraph_make_node_local): Use it.
30289         * cgraphunit.c (cgraph_function_versioning): Likewise.
30290         * ipa.c (function_and_variable_visibility): Likewise.
30291
30292 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
30293
30294         PR bootstrap/43121
30295         * except.c (sjlj_emit_function_enter): Don't call
30296         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
30297         directly.
30298         * rtl.h (add_reg_br_prob_note): Remove prototype.
30299
30300 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
30301
30302         PR 41779
30303         * c-common.c (conversion_warning): Remove widening conversions
30304         before checking the conversion of integers to reals.
30305
30306 2010-02-19  Mike Stump  <mikestump@comcast.net>
30307
30308         PR middle-end/43125
30309         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
30310
30311         PR objc/43061
30312         * cgraphunit.c (process_function_and_variable_attributes): Check
30313         DECL_PRESERVE_P instead of looking up attribute "used".
30314         * ipa-pure-const.c (check_decl): Likewise.
30315         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
30316         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
30317         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
30318         instead of attribute "used".
30319         * config/sol2-c.c (solaris_pragma_init): Likewise.
30320         (solaris_pragma_fini): Likewise.
30321
30322 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
30323
30324         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
30325         Use XCNEW instead of xcalloc.
30326         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
30327         XNEW instead of xmalloc.
30328         (get_fields): Use XNEWVEC instead of xmalloc.
30329
30330         PR debug/43084
30331         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
30332         populate vars array.
30333         (create_new_general_access): For debug stmts just reset value.
30334         (get_stmt_accesses): For accesses within debug stmts just record them
30335         using add_access_to_acc_sites instead of preventing the peeling or
30336         counting them as accesses.
30337
30338         PR middle-end/42233
30339         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
30340
30341 2010-02-19  Richard Guenther  <rguenther@suse.de>
30342
30343         PR tree-optimization/42916
30344         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
30345         instructions.
30346
30347 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
30348
30349         * configure.ac: Replace all uses of changequote in macro arguments
30350         with proper quoting.
30351
30352 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
30353
30354         PR middle-end/42233
30355         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
30356
30357 2010-02-19  Richard Guenther  <rguenther@suse.de>
30358
30359         PR tree-optimization/42944
30360         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
30361         test for aliasing with errno.
30362
30363 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
30364
30365         PR middle-end/42233
30366         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
30367         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
30368         * dojump.c: Include output.h.
30369         (inv): New inline function.
30370         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
30371         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
30372         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
30373         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
30374         argument, pass it down to other calls.
30375         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
30376         add REG_BR_PROB note to the conditional jump.
30377         * cfgexpand.c (add_reg_br_prob_note): Removed.
30378         (expand_gimple_cond): Don't call it, add the probability
30379         as last argument to jumpif_1/jumpifnot_1.
30380         * Makefile.in (dojump.o): Depend on output.h.
30381         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
30382         callers.
30383         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
30384         * stmt.c (do_jump_if_equal): Likewise.
30385         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
30386         * loop-unswitch.c (compare_and_jump_seq): Likewise.
30387         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
30388         Likewise.
30389         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
30390         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
30391         jumpifnot_1 callers.
30392         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
30393         callers.
30394         (store_expr): Adjust jumpifnot caller.
30395         (store_constructor): Adjust jumpif caller.
30396
30397         PR middle-end/42233
30398         * gimplify.c (gimple_boolify): For __builtin_expect call
30399         gimple_boolify also on its first argument.
30400
30401 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
30402
30403         * configure.ac (gnu-unique-object): Wrap regexps using [] in
30404         changequote block.
30405         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
30406         * configure: Regenerated.
30407
30408 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
30409
30410         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
30411         lang_hooks.types_compatible_p instead of comptypes.
30412
30413 2010-02-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
30414
30415         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
30416         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
30417         if __prefer_thumb__ is defined.
30418
30419 2010-02-18  Martin Jambor  <mjambor@suse.cz>
30420
30421         PR tree-optimization/43066
30422         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
30423         array with zero-sized element type.
30424
30425 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
30426
30427         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
30428         rtx, allocate struct var_loc_node here and return it to the
30429         caller, and only if it is actually needed.
30430         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
30431         move it earlier and return immediately if it returns NULL.
30432
30433 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
30434
30435         * config/sparc/gas.h: New file.  Restore
30436         TARGET_ASM_NAMED_SECTION to its ELF default.
30437         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
30438         check !HAVE_GNU_AS.
30439         * config/sparc/sparc.c (sparc_elf_asm_named_section):
30440         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
30441         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
30442         after sparc/sysv4.h.
30443
30444 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
30445
30446         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
30447
30448 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
30449
30450         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
30451         patterns from predicated pattern.
30452
30453 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
30454
30455         PR target/43103
30456         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
30457         for insn mnemonic suffix.
30458
30459 2010-02-17  Richard Guenther  <rguenther@suse.de>
30460
30461         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
30462         to loop PHI nodes.
30463
30464 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
30465
30466         PR debug/42918
30467         * caller-save.c (save_call_clobbered_regs): If BB ends with
30468         a DEBUG_INSN, move any notes in between last real insn and the last
30469         DEBUG_INSN after the last DEBUG_INSN.
30470
30471 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
30472
30473         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
30474         Fix return type.  Fix argument type.  Explain meaning of return value.
30475
30476 2010-02-16  Richard Guenther  <rguenther@suse.de>
30477
30478         PR tree-optimization/41043
30479         * tree-vrp.c (vrp_var_may_overflow): Only ask SCEV for real loops.
30480         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
30481         statements ...
30482         (vrp_visit_phi_node): ... but only for loop PHI nodes.
30483
30484 2010-02-16  Ira Rosen  <irar@il.ibm.com>
30485
30486         PR tree-optimization/43074
30487         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
30488         * tree-vect-loop.c (vect_analyze_loop_operations): Add
30489         vectorizable cycles in hybrid SLP check.
30490         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
30491
30492 2010-02-16  Richard Guenther  <rguenther@suse.de>
30493
30494         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
30495         (true_dependence): If memrefs_conflict_p computes must-alias
30496         trust it.  Move TBAA check after offset-based disambiguation.
30497         (canon_true_dependence): Likewise.
30498
30499 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
30500
30501         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
30502         * doc/invoke.texi: Document it.
30503         * var-tracking.c: Include toplev.h and params.h.
30504         (vt_find_locations): Return bool indicating success.  Compute
30505         hash sizes unconditionally.  Check new parameter, report.
30506         (variable_tracking_main_1): Check vt_find_locations results and
30507         retry.  Renamed from...
30508         (variable_tracking_main): ... this.  New wrapper to preserve
30509         flag_var_tracking_assignments.
30510         * Makefile.in (var-tracking.o): Adjust dependencies.
30511
30512 2010-02-16  Jack Howarth  <howarth@bromo.med.uc.edu>
30513             Jakub Jelinek  <jakub@redhat.com>
30514
30515         PR target/42854
30516         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
30517         if weak_import attribute is present.
30518         * config/darwin.c (machopic_select_section): Likewise.
30519
30520 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
30521
30522         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
30523         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
30524         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
30525         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
30526
30527         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
30528         types.
30529
30530         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
30531         Fix argument types.
30532
30533         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
30534         Rewrite text to refer to the names.
30535
30536 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
30537
30538         * config/i386/i386-builtin-types.def
30539         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
30540         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
30541         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
30542         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
30543         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
30544         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
30545         IX86_BUILTIN_VPERMIL2PS256.
30546         (MULTI_ARG_4_DF2_DI_I): Defined.
30547         (MULTI_ARG_4_DF2_DI_I1): Defined.
30548         (MULTI_ARG_4_SF2_SI_I): Defined.
30549         (MULTI_ARG_4_SF2_SI_I1): Defined.
30550         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
30551         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
30552         __builtin_ia32_vpermil2ps256.
30553         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
30554         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
30555         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
30556         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
30557         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
30558         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
30559         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
30560         CODE_FOR_xop_vpermil2v8sf3.
30561         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
30562         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
30563         * config/i386/xopintrin.h (_mm_permute2_pd): New.
30564         (_mm256_permute2_pd): New.
30565         (_mm_permute2_ps): New.
30566         (_mm256_permute2_ps): New.
30567
30568 2010-02-15  Nick Clifton  <nickc@redhat.com>
30569
30570         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
30571         boolean parameters.  Use emit_jump_insn when emitting a pop
30572         instruction containing a return insn.
30573         (push): Use 'true' rather than '1' as second parameter to F.
30574         (h8300_expand_prologue): Likewise.
30575         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
30576         (h8300_expand_epilogue): Likewise.
30577
30578 2010-02-15  Richard Guenther  <rguenther@suse.de>
30579
30580         PR middle-end/43068
30581         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
30582         if that is zero.
30583
30584 2010-02-15  Nick Clifton  <nickc@redhat.com>
30585
30586         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
30587         delta.
30588
30589 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
30590
30591         * intl.c (fake_ngettext): New function.
30592         * intl.h (fake_ngettext): Declare.
30593         (ngettext): Define macro.
30594         * collect2.c (notice_translated): New function.
30595         (main): Use notice_translated and ngettext.
30596         * collect2.h (notice_translated): Declare.
30597
30598 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
30599
30600         * reorg.c (delete_computation): Comment fixes.
30601         * caller-save.c (setup_save_areas): Idem.
30602         * sel-sched-dump.c (dump_lv_set): Idem.
30603         * rtl.def: Idem.
30604
30605 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
30606
30607         * config/s390/s390.c (s390_sched_init): New function.
30608         (TARGET_SCHED_INIT): Target hook defined.
30609
30610 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
30611             Jack Howarth  <howarth@bromo.med.uc.edu>
30612             Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
30613
30614         PR target/42982
30615         Partial revert of unintended change in fix for PR41605.
30616         * config/darwin.h: Fix typo.
30617         * config/darwin9.h: Same.
30618
30619 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
30620
30621         * c-pch.c (pch_init): Clear v.
30622
30623 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
30624
30625         PR middle-end/42930
30626         * graphite-scop-detection.c (graphite_can_represent_scev): Call
30627         graphite_can_represent_init for MULT_EXPR.
30628
30629 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
30630
30631         PR middle-end/42914
30632         PR middle-end/42530
30633         * graphite-sese-to-poly.c (remove_phi): New.
30634         (translate_scalar_reduction_to_array): Call remove_phi.
30635
30636 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
30637
30638         PR middle-end/42771
30639         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
30640         * graphite-clast-to-gimple.h (gloog): Update declaration.
30641         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
30642         * graphite-poly.h (struct poly_bb): Add missing comments.
30643         (struct scop): Add poly_scop_p field.
30644         (POLY_SCOP_P): New.
30645         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
30646         * graphite.c (graphite_transform_loops): Build the polyhedral
30647         representation for each scop before code generation.
30648         * sese.c (rename_variables_in_operand): Removed.
30649         (rename_variables_in_expr): Return the renamed expression.
30650         (rename_sese_parameters): New.
30651         * sese.h (rename_sese_parameters): Declared.
30652
30653 2010-02-11  Richard Guenther  <rguenther@suse.de>
30654
30655         PR tree-optimization/42998
30656         * tree-ssa-pre.c (create_expression_by_pieces): Treat
30657         POINTER_PLUS_EXPR properly.
30658
30659 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
30660             Changpeng Fang  <changpeng.fang@amd.com>
30661
30662         PR middle-end/40886
30663         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
30664         the cost of an IV candidate when the IV is used in a test against zero.
30665
30666         * gcc.dg/tree-ssa/ivopts-3.c: New.
30667
30668 2010-02-11  Richard Guenther  <rguenther@suse.de>
30669
30670         PR lto/41664
30671         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
30672         pointer-vs-decl case by swapping refs.  Handle some cases
30673         of pointer-vs-decl disambiguations more conservatively.
30674         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
30675         to false after expanding.
30676
30677 2010-02-11  Richard Guenther  <rguenther@suse.de>
30678
30679         PR driver/43021
30680         * gcc.c (process_command): Handle LTO file@offset case more
30681         appropriately.
30682
30683 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
30684
30685         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
30686         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
30687         of DEBUG_INSNs.
30688         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
30689
30690         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
30691         if MEM's mode size isn't DWARF2_ADDR_SIZE.
30692         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
30693         Optimize eq/ne comparisons when both arguments are known to be
30694         zero-extended.
30695         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
30696         Don't mask operands unnecessarily if they are known to be already
30697         zero-extended.
30698
30699 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
30700
30701         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
30702         instead of loop.
30703
30704 2010-02-10  Richard Guenther  <rguenther@suse.de>
30705
30706         PR tree-optimization/43017
30707         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
30708         for wrapping signed arithmetic.
30709
30710 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
30711
30712         PR debug/43010
30713         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
30714         if no debug info should be emitted for it.
30715
30716 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
30717
30718         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
30719         note when flag_exceptions is set.
30720
30721 2010-02-10  Duncan Sands  <baldrick@free.fr>
30722
30723         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
30724
30725 2010-02-10  Richard Guenther  <rguenther@suse.de>
30726
30727         PR c/43007
30728         * tree.c (get_unwidened): Handle constants.
30729         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
30730
30731 2010-02-10  Martin Jambor  <mjambor@suse.cz>
30732
30733         PR lto/42985
30734         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
30735         check for variable argument counts independently.
30736
30737 2010-02-10  Christian Bruel  <christian.bruel@st.com>
30738
30739         PR target/42841
30740         * config/sh/sh.c (find_barrier): Increase length for non delayed
30741         conditional branches.
30742
30743 2010-02-10  Christian Bruel  <christian.bruel@st.com>
30744
30745         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
30746
30747 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
30748
30749         * builtins.c (set_builtin_user_assembler_name): Also handle
30750         ffs if int is smaller than word.
30751
30752 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
30753
30754         PR middle-end/42973
30755         * ira-conflicts.c (get_dup): Remove.
30756         (process_reg_shuffles): Add new parameter.  Use it as an
30757         additional guard for copy generation.
30758         (add_insn_allocno_copies): Rewrite.
30759
30760 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
30761
30762         * common.opt (fsched2-use-traces): Preserved for backward
30763         compatibility.
30764         * doc/invoke.texi: Remove the documentation about option
30765         -fsched2-use-traces.
30766         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
30767         flag_sched2_use_traces.
30768         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
30769         the backward compatibility flag section.
30770
30771 2010-02-09  Richard Guenther  <rguenther@suse.de>
30772
30773         PR tree-optimization/43008
30774         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
30775         make HEAP variables initialized from global memory if they
30776         are not known builtin functions.
30777         (find_func_aliases): Adjust.
30778
30779 2010-02-09  Richard Guenther  <rguenther@suse.de>
30780
30781         PR tree-optimization/43000
30782         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
30783         arithmetic manually.
30784
30785 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
30786
30787         PR tree-optimization/42931
30788         * tree-loop-linear.c (try_interchange_loops): Don't call
30789         double_int_mul if estimated_loop_iterations failed.
30790
30791 2010-02-08  Martin Jambor  <mjambor@suse.cz>
30792
30793         PR middle-end/42898
30794         * tree-sra.c (build_accesses_from_assign): Do not mark in
30795         should_scalarize_away_bitmap if stmt has volatile ops.
30796         (sra_modify_assign): Do not process assigns piecemeal if if stmt
30797         has volatile ops.
30798
30799 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
30800
30801         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
30802
30803 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
30804
30805         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
30806         before the pattern.
30807
30808 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
30809
30810         PR middle-end/42946
30811         * df-core.c (df_finish_pass): Change type of saved_flags to int.
30812
30813 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
30814
30815         PR middle-end/42988
30816         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
30817         to unknown_dependence.
30818         (graphite_legal_transform_dr): Handle the unknown_dependence.
30819         (graphite_carried_dependence_level_k): Same.
30820
30821 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
30822
30823         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
30824
30825 2010-02-07  Richard Guenther  <rguenther@suse.de>
30826
30827         PR middle-end/42991
30828         * expr.c (get_inner_reference): Always initialize *pbitsize.
30829
30830 2010-02-07  Richard Guenther  <rguenther@suse.de>
30831
30832         PR middle-end/42956
30833         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
30834         new ARRAY_REFs on variable size element or minimal index arrays.
30835         Complete.
30836         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
30837         gimple_fold_indirect_ref.
30838
30839 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
30840
30841         PR target/42957
30842         * arm.c (arm_override_options): Just return if the user has specified
30843         an invalid fpu name.
30844
30845 2010-02-03  Jason Merrill  <jason@redhat.com>
30846
30847         PR c++/42870
30848         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
30849         i386_pe_maybe_record_exported_symbol.
30850
30851 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
30852
30853         PR target/42924
30854         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
30855         (pa_delegitimize_address): New function.
30856
30857 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
30858
30859         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
30860         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
30861
30862 2010-02-05  Richard Guenther  <rguenther@suse.de>
30863
30864         PR lto/42762
30865         * lto-streamer-in.c (get_resolution): Deal with references
30866         to undefined functions.
30867
30868 2010-02-05  Richard Guenther  <rguenther@suse.de>
30869
30870         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
30871         (fold_const_aggregate_ref): Likewise.
30872         (ccp_fold_stmt): Substitute loads.
30873         (maybe_fold_reference): Verify types before substituting.
30874         Unshare properly.
30875         (fold_gimple_assign): Unshare properly.
30876         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
30877
30878 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
30879
30880         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
30881         for rs6000_gen_cell_microcode.
30882
30883 2010-02-04  Richard Guenther  <rguenther@suse.de>
30884
30885         PR rtl-optimization/42952
30886         * dse.c (const_or_frame_p): Remove MEM handling.
30887
30888 2010-02-04  Nick Clifton  <nickc@redhat.com>
30889
30890         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
30891         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
30892         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
30893         (mn10300_asm_output_mi_thunk): New function.
30894         (mn10300_can_output_mu_thunk): New function.
30895         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
30896         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
30897         (FUNCTION_ARG): Delete incorrect comment.
30898
30899 2010-02-03  Jason Merrill  <jason@redhat.com>
30900
30901         PR c++/40138
30902         * fold-const.c (operand_equal_p): Handle erroneous types.
30903
30904 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
30905
30906         * config/h8300/h8300.md (can_delay): Fix attibute condition.
30907
30908 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
30909
30910         PR rtl-optimization/42941
30911         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
30912         of xmalloc.
30913
30914 2010-02-03  Jason Merrill  <jason@redhat.com>
30915
30916         PR c++/35652
30917         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
30918
30919 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
30920
30921         PR debug/42896
30922         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
30923         (cselib_reset_table): Renamed from...
30924         (cselib_reset_table_with_next_value): ... this.
30925         (cselib_get_next_uid): Renamed from...
30926         (cselib_get_next_unknown_value): ... this.
30927         * cselib.c (next_uid): Renamed from...
30928         (next_unknown_value): ... this.
30929         (cselib_clear_table): Adjust.
30930         (cselib_reset_table): Adjust.  Renamed from...
30931         (cselib_reset_table_with_next_value): ... this.
30932         (cselib_get_next_uid): Adjust.  Renamed from...
30933         (cselib_get_next_unknown_value): ... this.
30934         (get_value_hash): Use hash.
30935         (cselib_hash_rtx): Likewise.
30936         (new_cselib_val): Adjust.  Set and dump uid.
30937         (cselib_lookup_mem): Pass next_uid as hash.
30938         (cselib_subst_to_values): Likewise.
30939         (cselib_log_lookup): Dump uid.
30940         (cselib_lookup): Pass next_uid as hash.  Adjust.
30941         (cselib_process_insn): Adjust.
30942         (cselib_init): Initialize next_uid.
30943         (cselib_finish): Adjust.
30944         (dump_cselib_table): Likewise.
30945         * dse.c (canon_address): Dump value uid.
30946         * print-rtl.c (print_rtx): Print value uid.
30947         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
30948         (dvuid): New type.
30949         (dv_uid): New function, sort of renamed from...
30950         (dv_htab_hash): ... this, reimplemented in terms of it and...
30951         (dv_uid2hash): ... this.  New.
30952         (variable_htab_eq): Drop excess assertions.
30953         (tie_break_pointers): Removed.
30954         (canon_value_cmp): Compare uids.
30955         (variable_post_merge_New_vals): Print uids.
30956         (vt_add_function_parameters): Adjust.
30957         (vt_initialize): Reset table.  Adjust.
30958
30959 2010-02-03  Richard Guenther  <rguenther@suse.de>
30960
30961         PR tree-optimization/42944
30962         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
30963         (call_may_clobber_ref_p_1): Likewise.  Properly handle
30964         malloc and calloc clobbering errno.
30965
30966 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
30967
30968         * doc/invoke.texi: Fix name of sched1 dump.
30969
30970         * opts.c (decode_options): Set flag_tree_switch_conversion
30971         only conditionally on optimize >= 2.
30972
30973         * gcse.c: Assorted comment fixes in pass description.
30974
30975 2010-02-03  Anthony Green  <green@moxielogic.com>
30976
30977         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
30978         nop padding in order to maintain alignment of storage location of
30979         target function address.
30980         (moxie_trampoline_init): Store target function address at newly
30981         aligned location.
30982         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
30983         to 32.
30984         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
30985
30986 2010-02-03  Richard Guenther  <rguenther@suse.de>
30987
30988         PR middle-end/42927
30989         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
30990
30991 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30992
30993         * config.gcc: Reenable check for obsolete targets.
30994         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
30995         mips-sgi-irix6.[0-4]*.
30996
30997 2010-02-02  Nick Clifton  <nickc@redhat.com>
30998
30999         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
31000         constant size of 4 as being the same as 0.
31001         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
31002         can take values in the range 0..4.
31003
31004 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
31005
31006         PR java/41991
31007         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
31008         as _darwin10_Unwind_FindEnclosingFunction().
31009         * libgcc-libsystem.ver: New.
31010
31011 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
31012
31013         PR target/41399
31014         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
31015         implicitly set registers.
31016
31017 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
31018
31019         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
31020         (arm_override_options): Allow automatic selection of the thread
31021         pointer register if thumb2.
31022         (legitimize_pic_address): Improve code sequences for Thumb2.
31023         (arm_call_tls_get_addr): Likewise.
31024         (legitimize_tls_address): Likewise.
31025         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
31026         (pic_load_addr_32bit): ... this.  New named pattern.
31027         * thumb2.md (pic_load_addr_thumb2): Delete.
31028         (pic_load_dot_plus_four): Delete.
31029         (tls_load_dot_plus_four): New named pattern.
31030
31031 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31032
31033         PR libgomp/29986
31034         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
31035         Document fix for TLS bug.
31036
31037 2010-01-31  Richard Guenther  <rguenther@suse.de>
31038
31039         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
31040         conservatively correct.
31041
31042 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
31043
31044         PR target/42850
31045         Revert:
31046         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
31047
31048         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
31049
31050 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
31051
31052         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
31053
31054 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
31055
31056         * config.gcc: Adjust order of makefile fragments for mingw targets.
31057
31058 2010-01-31  Richard Guenther  <rguenther@suse.de>
31059
31060         PR middle-end/42898
31061         * gimplify.c (gimplify_init_constructor): For volatile LHS
31062         initialize a temporary.
31063
31064 2010-01-31  Matthias Klose  <doko@ubuntu.com>
31065
31066         * configure.ac: Fix __stack_chk_fail check for cross builds configured
31067         --with-headers
31068         * configure: Regenerate.
31069
31070 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
31071
31072         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
31073         the same alias set and their sizes different constantness.
31074         (aliasing_component_refs_p): Revert 2009-10-24 change.
31075
31076 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31077
31078         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
31079         unused.
31080
31081 2010-01-29  Richard Guenther  <rguenther@suse.de>
31082
31083         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
31084         Assert we successfully updated the call.
31085
31086 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
31087
31088         PR rtl-optimization/42889
31089         * df.h (df_set_bb_dirty_nonlr): New prototype.
31090         * df-core.c (df_set_bb_dirty_nonlr): New function.
31091         * df-scan.c (df_insn_rescan): Call it instead of
31092         df_set_bb_dirty for DEBUG_INSNs.
31093
31094 2010-01-29  Richard Guenther  <rguenther@suse.de>
31095
31096         PR middle-end/37448
31097         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
31098         quadratic behavior in most cases.
31099
31100 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
31101
31102         PR target/42891
31103         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
31104         in the call to gen_x86_movsicc_0_m1.
31105
31106 2010-01-28  Richard Guenther  <rguenther@suse.de>
31107
31108         PR tree-optimization/42871
31109         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
31110
31111 2010-01-28  Richard Guenther  <rguenther@suse.de>
31112
31113         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
31114         into call arguments.
31115
31116 2010-01-28  Richard Guenther  <rguenther@suse.de>
31117
31118         PR middle-end/42883
31119         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
31120         the forwarder if the destination is an EH landing pad.
31121
31122 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
31123
31124         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
31125         block list passed to gimple_duplicate_sese_tail.
31126         (parallelize_loops): Avoid parallelization when the function
31127         has_nonlocal_label.
31128         Avoid parallelization when the preheader is IRREDUCIBLE.
31129         Try to optimize when estimated_loop_iterations_int is unresolved.
31130         Add the loop's location to the dump file.
31131         * tree-cfg.c (add_phi_args_after_redirect): Remove.
31132         (gimple_duplicate_sese_tail): Remove the check for the latch.
31133         Redirect nexits to the exit block.
31134         Remove handling of the incoming edges to the latch.
31135         Redirect the backedge from the copied latch to the exit bb.
31136
31137 2010-01-28  Michael Matz  <matz@suse.de>
31138
31139         PR target/42881
31140         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
31141         Wrap force_reg into a sequence, emit it before user.
31142
31143 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
31144
31145         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
31146         (arm_rev): New.
31147         (arm_legacy_rev): Likewise.
31148         (thumb_legacy_rev): Likewise.
31149
31150 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
31151
31152         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
31153         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
31154         on MEM's address failed, try avoid_constant_pool_reference and
31155         recurse if it returned something different.
31156         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
31157         address, try avoid_constant_pool_reference and recurse if it
31158         returned something different.
31159         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
31160         address and avoid_constant_pool_reference returned something
31161         different, don't set have_address.
31162
31163 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
31164
31165         PR debug/42861
31166         * var-tracking.c (val_store): Add modified argument, obey it.
31167         Adjust callers.
31168         (count_uses): Move down logging of main.
31169         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
31170         don't need resolution.
31171         (emit_notes_in_bb): Likewise.
31172
31173 2010-01-27  Richard Guenther  <rguenther@suse.de>
31174
31175         PR middle-end/42878
31176         * tree-inline.c (remap_decl): Delay remapping of SSA name
31177         default definitions until we need them.
31178
31179 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
31180
31181         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
31182         (rs6000_delegitimize_address): New function.
31183
31184         * config/s390/s390.c (s390_delegitimize_address): Call
31185         delegitimize_mem_from_attrs.
31186
31187         PR middle-end/42874
31188         * tree-inline.c (cannot_copy_type_1): Removed.
31189         (copy_forbidden): Don't forbid copying of functions containing
31190         records/unions with variable length fields.
31191
31192 2010-01-27  Christian Bruel  <christian.bruel@st.com>
31193
31194         Revert:
31195         PR target/42841
31196         * config/sh/sh.c (find_barrier): Increase length for non delayed
31197         conditional branches.
31198
31199 2010-01-27  Matthias Klose  <doko@ubuntu.com>
31200
31201         * configure.ac (gnu-unique-object): Fix ldd version check.
31202         * configure: Regenerate.
31203
31204 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31205
31206         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
31207         HAVE_GNU_AS value.
31208         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
31209         Test for HAVE_GNU_AS value.
31210
31211 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31212
31213         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
31214         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
31215         INT64_TYPE): Define.
31216         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
31217         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
31218         INT_LEAST64_TYPE): Define.
31219         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
31220         UINT_LEAST64_TYPE): Define.
31221         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
31222         INT_FAST64_TYPE): Define.
31223         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
31224         UINT_FAST64_TYPE): Define.
31225         (INTMAX_TYPE, UINTMAX_TYPE): Define.
31226         (INTPTR_TYPE, UINTPTR_TYPE): Define.
31227         (SIG_ATOMIC_TYPE): Define.
31228
31229 2010-01-26  Richard Guenther  <rguenther@suse.de>
31230
31231         * df-scan.c (df_scan_set_bb_info): Remove assert.
31232         (df_insn_rescan_debug_internal): Merge asserts.
31233         (df_install_ref): Likewise.
31234         (df_mark_reg): Use bitmap_set_range.
31235         (df_hard_reg_used_p): Remove assert.
31236         (df_hard_reg_used_count): Likewise.
31237
31238 2010-01-26  Richard Guenther  <rguenther@suse.de>
31239
31240         PR rtl-optimization/42685
31241         * web.c (web_main): Ignore DEBUG_INSNs.
31242
31243 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
31244
31245         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
31246
31247         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
31248         Fix types of fndecl and arglist parameters.
31249
31250 2010-01-26  Richard Guenther  <rguenther@suse.de>
31251
31252         PR middle-end/42806
31253         * tree-eh.c (unsplit_eh): Skip debug insns.
31254
31255 2010-01-26  Richard Guenther  <rguenther@suse.de>
31256
31257         PR tree-optimization/42250
31258         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
31259
31260 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
31261
31262         PR fortran/42866
31263         * omp-low.c (expand_omp_sections): Only use single_pred if
31264         l2_bb is single_pred_p.
31265
31266 2010-01-25  Christian Bruel  <christian.bruel@st.com>
31267
31268         PR target/42841
31269         * config/sh/sh.c (find_barrier): Increase length for non delayed
31270         conditional branches.
31271         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
31272
31273 2010-01-24  David S. Miller  <davem@davemloft.net>
31274
31275         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
31276         define if not using GAS.
31277         * config/sparc/sparc.c (sparc_elf_asm_named_section):
31278         Likewise.  Delete SECTION_MERGE code, which is only applicable
31279         when using GAS.
31280
31281 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
31282
31283         PR c++/42748
31284         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
31285         mangling of va_list in system headers.
31286
31287 2010-01-23  Toon Moene  <toon@moene.org>
31288
31289         * tree-predcom.c (combine_chains): Return NULL, not false.
31290
31291 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
31292
31293         * tree-loop-distribution.c (distribute_loop): Fix declaration and
31294         initialization of variable res to agree with return type.
31295
31296 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
31297
31298         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
31299         * tree-sra.c: Add include of expr.h.
31300
31301 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
31302
31303         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
31304         insert the debug stmt on the single non-EH edge from the stmt.
31305
31306 2010-01-22  Richard Henderson  <rth@redhat.com>
31307
31308         PR tree-opt/42833
31309         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
31310         the RHS until after generate_subtree_copies has insertted its
31311         code before the current statement.
31312
31313 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
31314
31315         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
31316
31317         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
31318
31319 2010-01-21  Martin Jambor  <mjambor@suse.cz>
31320
31321         PR tree-optimization/42585
31322         * tree-sra.c (struct access): New field grp_total_scalarization.
31323         (dump_access): Dump the new field.
31324         (should_scalarize_away_bitmap): New variable.
31325         (cannot_scalarize_away_bitmap): Likewise.
31326         (sra_initialize): Allocate new bitmaps.
31327         (sra_deinitialize): Free new bitmaps.
31328         (create_access_1): New function.
31329         (create_access): Parts moved to create_access_1.
31330         (type_consists_of_records_p): New function.
31331         (completely_scalarize_record): Likewise.
31332         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
31333         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
31334         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
31335         access.
31336         (analyze_all_variable_accesses): Completely scalarize small eligible
31337         records.
31338
31339 2010-01-21  Martin Jambor  <mjambor@suse.cz>
31340
31341         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
31342
31343 2010-01-21  Andrew Haley  <aph@redhat.com>
31344
31345         * gcc.c (process_command): Move lang_specific_driver before
31346         setting cc_libexec_prefix.
31347
31348 2010-01-21  Richard Guenther  <rguenther@suse.de>
31349
31350         PR middle-end/19988
31351         * fold-const.c (negate_expr_p): Pretend only negative
31352         real constants are easily negatable.
31353
31354 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
31355             Jason Merrill  <jason@redhat.com>
31356
31357         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
31358         (TYPE_TRANSPARENT_AGGR): this, for union and record.
31359         * calls.c (initialize argument_information): Handle it.
31360         * c-common.c (handle_transparent_union_attribute): Use new name.
31361         * c-decl.c (finish_struct): Ditto.
31362         * c-typeck.c (type_lists_compatible_p): Ditto.
31363         (convert_for_assignment): Use new name and also handle record.
31364         * function.c (aggregate_value_p): Handle it.
31365         (pass_by_reference): Ditto.
31366         (assign_parm_data_types): Ditto.
31367         * print-tree.c (print_node): Ditto.
31368         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
31369         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
31370         * tree.c (first_field): New fn.
31371
31372 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
31373
31374         PR target/42818
31375         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
31376         even when linking statically, for now.
31377
31378 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
31379
31380         PR debug/42715
31381         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
31382         without a cselib val.
31383         (count_uses): Accept MO_VAL_SET with no val on stores.
31384         (add_stores): Likewise.
31385
31386 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
31387
31388         * var-tracking.c (check_value_val): Add a compile time assertion.
31389         (dv_is_decl_p): Simplify.
31390         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
31391         gcc_assert if ENABLE_CHECKING.
31392
31393 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
31394
31395         PR debug/42782
31396         * var-tracking.c: Include tree-flow.h.
31397         (mem_dies_at_call): New.
31398         (dataflow_set_preserve_mem_locs): Use it.
31399         (dataflow_set_remove_mem_locs): Likewise.
31400         (dump_var): Renamed from dump_variable.  Adjust all callers.
31401         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
31402         * Makefile.in (var-tracking.o): Adjust deps.
31403
31404 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
31405
31406         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
31407
31408 2010-01-20  Richard Guenther  <rguenther@suse.de>
31409
31410         PR tree-optimization/42717
31411         * tree-ssa-dce.c (get_live_post_dom): Remove.
31412         (forward_edge_to_pdom): Take an arbitrary edge to copy
31413         degenerate PHI args from.
31414         (remove_dead_stmt): Use the first post-dominator even if it
31415         does not contain live statements as redirection destination.
31416
31417 2010-01-20  Richard Guenther  <rguenther@suse.de>
31418
31419         * tree-inline.c (estimate_num_insns): Handle EH builtins.
31420
31421 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
31422
31423         * sel-sched.c (create_speculation_check): Remove set but not used
31424         variable twin.
31425         (try_transformation_cache): Remove set but not used variable ds.
31426         (calculate_privileged_insns): Remove set but not used variables
31427         cur_insn and min_spec_insn.
31428         (find_best_expr): Remove set but not used variable avail_n.
31429         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
31430         variable e.
31431         * cgraphunit.c (assemble_thunk): Remove set but not used variable
31432         false_label.
31433         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
31434         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
31435         new_scop_exit_edge.
31436
31437 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
31438
31439         PR bootstrap/42786
31440         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
31441         cpu types.  Add support for *-sse3 cpu types.
31442         (x86_64-*-*): Ditto.
31443
31444 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
31445
31446         PR middle-end/42803
31447         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
31448         argument, call initializer_constant_valid_p_1 instead of
31449         initializer_constant_valid_p, pass CACHE to it, return NULL
31450         immediately if first call returns NULL.
31451         (initializer_constant_valid_p_1): New function.
31452         (initializer_constant_valid_p): Use it.
31453
31454 2010-01-20  Thomas Quinot  <quinot@adacore.com>
31455
31456         * tree.def (PLACEHOLDER_EXPR): Fix comment.
31457
31458 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
31459
31460         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
31461         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
31462         (loc_list_from_tree): Don't handle unsigned division.  Handle
31463         signed modulo using DW_OP_{over,over,div,mul,minus}.
31464         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
31465         modulo instead of signed.
31466
31467 2010-01-20  DJ Delorie  <dj@redhat.com>
31468
31469         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
31470         (Fpa): Pass it
31471         (h8300_emit_stack_adjustment): Propogate it.
31472         (push): Pass it.
31473         (h8300_expand_prologue): Likewise.
31474         (h8300_expand_epilogue): Likewise.
31475
31476 2010-01-19  Michael Matz  <matz@suse.de>
31477
31478         PR tree-optimization/41783
31479         * tree-data-ref.c (toplevel): Include flags.h.
31480         (dump_data_dependence_relation):  Also dump the inputs if the
31481         result will be unknown.
31482         (split_constant_offset_1): Look through some conversions.
31483         * tree-predcom.c (determine_roots_comp): Restart a new chain if
31484         the offset from last element is too large.
31485         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
31486         (reassociate_to_the_same_stmt): Handle vector registers.
31487         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
31488         (e.g. conversions).
31489         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
31490         wide_prolog_niters argument, emit widening instructions.
31491         (vect_do_peeling_for_alignment): Adjust caller, use widened
31492         variant of the iteration cound.
31493         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
31494
31495 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
31496
31497         PR target/38697
31498         * config/arm/neon-testgen.m (emit_automatics): New parameter
31499         features. Adjust for Fixed_return_reg feature.
31500         (test_intrinsic): Call emit_automatics with new feature.
31501         * config/arm/neon.ml: Update copyright years.
31502         (features): New Fixed_return_reg feature.
31503         (ops): Update feature for Vget_low.
31504
31505 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
31506
31507         PR tree-optimization/42719
31508         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
31509         stmt uses.
31510
31511         PR debug/42728
31512         * fwprop.c (all_uses_available_at): Return false if def_set dest
31513         is a REG that is used in def_insn.
31514
31515 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
31516
31517         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
31518
31519         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
31520         Add argument names.
31521
31522         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
31523
31524         * target.h (struct gcc_target) <secondary_reload>: Change type
31525         of last argument to secondary_reload_info *.
31526
31527 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
31528
31529         PR target/42774
31530         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
31531         memory references with unaligned offsets.  Remove CQImode handling.
31532         (unaligned_memory_operand): Return 1 for memory references with
31533         unaligned offsets.  Remove CQImode handling.
31534
31535 2010-01-18  Richard Guenther  <rguenther@suse.de>
31536
31537         PR middle-end/39954
31538         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
31539         builtin calls.
31540
31541 2010-01-18  Richard Guenther  <rguenther@suse.de>
31542
31543         PR tree-optimization/42781
31544         * tree-ssa-structalias.c (find_what_var_points_to): Skip
31545         restrict processing only if the original variable was artificial.
31546
31547 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
31548
31549         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
31550         find number of popped argument bytes.
31551
31552         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
31553         Fix the text that describes the return value for invalid insns.
31554
31555         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
31556
31557         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
31558         Clarify what 'cost of the -dependence' is.  Fix quoting.
31559
31560         * toplev.c (default_get_pch_validity): Rename argument to "sz".
31561         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
31562
31563 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
31564
31565         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
31566         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
31567
31568 2010-01-17  Richard Guenther  <rguenther@suse.de>
31569
31570         PR middle-end/42248
31571         * function.c (split_complex_args): Take a VEC to modify.
31572         (assign_parms_augmented_arg_list): Build a VEC instead of
31573         a chain of PARM_DECLs.
31574         (assign_parms_unsplit_complex): Take a VEC of arguments.
31575         Do not fixup unmodified parms.
31576         (assign_parms): Deal with the VEC.
31577         (gimplify_parameters): Likewise.
31578
31579 2010-01-17  Richard Guenther  <rguenther@suse.de>
31580
31581         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
31582         node existence check.
31583         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
31584         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
31585         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
31586         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
31587         (gimple_execute_on_growing_pred): Likewise.
31588
31589 2010-01-17  Richard Guenther  <rguenther@suse.de>
31590
31591         PR tree-optimization/42773
31592         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
31593         (compute_antic_aux): Likewise.
31594         (compute_partial_antic_aux): Likewise.
31595
31596 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
31597
31598         PR debug/42767
31599         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
31600         and US_TRUNCATE.
31601
31602 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
31603
31604         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
31605         appearance.
31606
31607         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
31608         Fix markup for strict argument.
31609
31610         (TARGET_SCHED_REORDER2): Fix argument types.
31611
31612         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
31613         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
31614
31615         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
31616         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
31617
31618         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
31619         Add argument name.
31620
31621         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
31622         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
31623         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
31624         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
31625         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
31626
31627         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
31628
31629         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
31630
31631         (TARGET_ASM_RELOC_RW_MASK): Add return type.
31632         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
31633
31634         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
31635
31636         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
31637         Use prototype.
31638
31639         (TARGET_ASM_NAMED_SECTION): Fix argument list.
31640
31641         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
31642         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
31643
31644         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
31645
31646         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
31647
31648         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
31649         referring to it.  Fix language.
31650
31651         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
31652
31653         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
31654
31655         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
31656
31657         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
31658
31659         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
31660         '@var{stream}.  Remove stray 'and'.
31661
31662         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
31663
31664         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
31665
31666         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
31667
31668         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
31669         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
31670
31671         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
31672         Fix description of return value.
31673         Rename argument "sz" to "len."
31674
31675         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
31676         Clarify meaning of 'true' return value.
31677
31678         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
31679
31680         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
31681         rep_mode versus mode_rep.
31682
31683         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
31684
31685         (TARGET_BUILTIN_DECL): Fix name.
31686
31687         (TARGET_COMMUTATIVE_P): Fix type of first argument.
31688
31689         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
31690
31691         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
31692
31693         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
31694
31695         (TARGET_RELAXED_ORDERING): Use @deftypevr.
31696
31697         (TARGET_GET_DRAP_RTX): Note that this is a hook.
31698         Clarify language.
31699
31700         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
31701         Rename argument tm_fn to md_fn.
31702
31703         (TARGET_OPTION_PRINT): Fix argument list.
31704
31705 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
31706
31707         PR target/42664
31708         * config/i386/i386.c (ix86_fixup_binary_operands):
31709         Revert FMA4 fixup of operands.
31710
31711 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
31712
31713         PR gcc/42525
31714         * Makefile.in (write_entries_to_file, install-plugin):
31715         Use \012 instead of \n with tr.
31716
31717 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
31718
31719         * configure.ac (HAVE_AS_REF): New C macro.
31720         * configure: Regenerate.
31721         * config.in: Likewise.
31722         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
31723         if HAVE_AS_REF.
31724         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
31725         if HAVE_AS_REF.
31726
31727 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
31728
31729         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
31730
31731         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
31732
31733         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
31734
31735         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
31736
31737         (TARGET_IN_SMALL_DATA_P): Fix argument type.
31738
31739         (TARGET_BINDS_LOCAL_P): Fix argument type.
31740
31741         (TARGET_ASM_FILE_END): Use prototype.
31742
31743         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
31744
31745         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
31746
31747         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
31748
31749         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
31750
31751         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
31752         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
31753
31754         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
31755         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
31756
31757         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
31758         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
31759         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
31760         (TARGET_ADDR_SPACE_CONVERT): Likewise.
31761
31762         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
31763
31764         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
31765
31766         (TARGET_INIT_BUILTINS): Use prototype.
31767
31768         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
31769         Put 'const char *' in braces.  Fix parameter types.
31770         (TARGET_INVALID_CONVERSION): Fix parameter types.
31771         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
31772         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
31773
31774         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
31775         Fix argument type.
31776
31777         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
31778
31779         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
31780
31781 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
31782
31783         * doc/tm.texi (TARGET_HELP): Fix return type.
31784
31785         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
31786         in braces.  Fix argument types.
31787
31788         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
31789
31790         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
31791
31792         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
31793
31794         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
31795         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
31796
31797         (TARGET_MANGLE_TYPE): Fix argument types.
31798
31799         (TARGET_IRA_COVER_CLASSES): Use prototype.
31800
31801         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
31802
31803         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
31804
31805         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
31806
31807         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
31808
31809         (TARGET_CALLEE_COPIES): Fix argument types.
31810
31811         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
31812
31813         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
31814
31815         (TARGET_FUNCTION_VALUE): Fix argument types.
31816
31817         (TARGET_RETURN_IN_MSB): Fix argument type.
31818
31819         (TARGET_RETURN_IN_MEMORY): Fix argument types.
31820
31821         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
31822
31823         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
31824
31825         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
31826         agree with return type.
31827
31828         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
31829
31830 2010-01-15  Jing Yu  <jingyu@google.com>
31831
31832         PR rtl-optimization/42691
31833         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
31834         a pseudo to a constant and are merged, and adjust comments.
31835
31836 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
31837
31838         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
31839
31840 2010-01-15  Richard Guenther  <rguenther@suse.de>
31841
31842         PR middle-end/42739
31843         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
31844         labels of computed or non-local gotos to the destination.
31845         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
31846         landing pad label is the first label.
31847
31848 2010-01-15  Richard Guenther  <rguenther@suse.de>
31849
31850         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
31851
31852 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
31853
31854         PR target/42747
31855         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
31856         to allow generation of the xssqrtdp instruction on power7.
31857         (sqrtdf2_fpr): Ditto.
31858
31859 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
31860
31861         PR middle-end/42674
31862         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
31863         functions with noreturn attribute.
31864
31865         PR c++/42608
31866         * varasm.c (declare_weak): Add weak attribute to decl if it
31867         doesn't have one already.
31868         (assemble_external): Only add decls to weak_decls if they also
31869         have weak attribute.
31870
31871 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
31872
31873         * var-tracking.c (var_reg_delete): Don't delete the association
31874         between REGs and values or one-part variables if the register
31875         isn't clobbered.
31876
31877 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
31878
31879         PR debug/42657
31880         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
31881         because its first operand is a non-localized variable.
31882
31883 2010-01-14  Martin Jambor  <mjambor@suse.cz>
31884
31885         PR tree-optimization/42706
31886         * tree-sra.c (encountered_recursive_call): New variable.
31887         (encountered_unchangable_recursive_call): Likewise.
31888         (sra_initialize): Initialize both new variables.
31889         (callsite_has_enough_arguments_p): New function.
31890         (scan_function): Call decl and flags check only for IPA-SRA, check
31891         whether there is a recursive call and whether it has enough arguments.
31892         (all_callers_have_enough_arguments_p): New function.
31893         (convert_callers): Look for recursive calls only when
31894         encountered_recursive_call is set.
31895         (ipa_early_sra): Bail out either if
31896         !all_callers_have_enough_arguments_p or
31897         encountered_unchangable_recursive_call.
31898
31899 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
31900
31901         * sel-sched.c: Add 2010 to copyright years.
31902         * sel-sched-ir.c: Likewise.
31903         * sel-sched-ir.h: Likewise.
31904
31905 2010-01-14  Martin Jambor  <mjambor@suse.cz>
31906
31907         PR tree-optimization/42714
31908         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
31909         constructors specially.
31910
31911 2010-01-14  Andi Kleen  <ak@linux.intel.com>
31912
31913         * config/i386/drivers-i386.c (detect_caches_intel):
31914         Add l2sizekb parameter and fill in.
31915         (host_detect_local_cpu): Add l2sizekb, fill in.
31916         Add Atom small cache heuristic.
31917
31918 2010-01-14  Andi Kleen  <ak@linux.intel.com>
31919
31920         * config/i386/drivers-i386.c (detect_caches_cpuid4):
31921         Add level3 parameter and fill in.
31922         (detect_caches_intel): Handle level3 cache.
31923
31924 2010-01-14  Andi Kleen  <ak@linux.intel.com>
31925
31926         * config/i386/drivers-i386.c (host_detect_local_cpu):
31927         Fix core duo detection.
31928
31929 2010-01-14  Andi Kleen  <ak@linux.intel.com>
31930
31931         * config/i386/drivers-i386.c (host_detect_local_cpu):
31932         Fix Atom detection.
31933
31934 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
31935
31936         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
31937         (rs6000_variable_issue_1): this.  Use...
31938         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
31939
31940 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
31941
31942         * sel-sched-ir.c (sel_restore_other_notes): Rename to
31943         sel_restore_notes.  Update all callers.  Call reemit_notes
31944         for all insns.
31945
31946 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
31947
31948         PR rtl-optimization/42246
31949         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
31950         loops.
31951
31952 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
31953
31954         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
31955         all successors is the same as number of successors in current region.
31956
31957 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
31958
31959         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
31960         to rename is not separable.  Otherwise check that its LHS is not NULL.
31961
31962 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
31963
31964         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
31965
31966 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
31967
31968         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
31969         available registers when failed to discover LHS register class.
31970         Fix indentation.  Update comment.
31971
31972 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
31973             Alexander Monakov  <amonakov@ispras.ru>
31974
31975         PR rtl-optimization/42389
31976         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
31977         to can_issue_more.
31978         (advance_state_on_fence): Likewise.
31979         (sel_target_adjust_priority): Print debug output only when
31980         sched_verbose >= 4, not 2.
31981         (get_expr_cost): Do not issue all unique insns on the next cycle.
31982         (fill_insns): Initialize can_issue_more from the value saved
31983         with the fence.
31984         * sel-sched-ir.c (flist_add): New parameter issue_more.
31985         Init FENCE_ISSUE_MORE with it.
31986         (merge_fences): Likewise.
31987         (init_fences): Update call to flist_add.
31988         (add_to_fences, add_clean_fence_to_fences)
31989         (add_dirty_fence_to_fences): Likewise.
31990         (move_fence_to_fences): Update call to merge_fences.
31991         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
31992         sched groups.
31993         * sel-sched-ir.h (struct _fence): New field issue_more.
31994         (FENCE_ISSUE_MORE): New accessor macro.
31995
31996 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
31997
31998         PR rtl-optimization/42388
31999         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
32000         that have no predecessors nor successors.  Do not call move_bb_info
32001         for empty blocks outside of current region.
32002
32003 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
32004
32005         PR rtl-optimization/42294
32006         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
32007         * sel-sched.c (move_exprs_to_boundary): Transitively add all
32008         originators' originators.
32009
32010 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
32011
32012         PR rtl-optimization/39453
32013         PR rtl-optimization/42246
32014         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
32015         for pipelining_p.
32016         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
32017
32018 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
32019             Alexander Monakov  <amonakov@ispras.ru>
32020
32021         PR middle-end/42245
32022         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
32023         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
32024         argument.  Update all callers.
32025         (tidy_control_flow): ... and here.  Recompute topological order
32026         of basic blocks in region if necessary.
32027         (sel_redirect_edge_and_branch): Change return type.  Return true
32028         if topological order might have been invalidated.
32029         (purge_empty_blocks): Export and move from...
32030         * sel-sched.c (purge_empty_blocks): ... here.
32031         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
32032         (maybe_tidy_empty_bb): Delete prototype.
32033         (purge_empty_blocks): Declare.
32034
32035 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
32036
32037         PR rtl-optimization/42249
32038         * sel-sched.c (try_replace_dest_reg): When chosen register
32039         and original register is the same, do not bail out early, but
32040         still check all original insns for validity of replacing destination
32041         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
32042         in this case.
32043
32044 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
32045
32046         PR c/42721
32047         Port from no-undefined-overflow branch:
32048         2009-03-09  Richard Guenther  <rguenther@suse.de>
32049
32050         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
32051
32052 2010-01-14  Richard Guenther  <rguenther@suse.de>
32053
32054         PR lto/42665
32055         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
32056
32057 2010-01-14  Ira Rosen  <irar@il.ibm.com>
32058
32059         PR tree-optimization/42709
32060         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
32061         as scalar type in creation of constant vector operand.
32062
32063 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
32064
32065         PR testsuite/42414
32066         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
32067         (check-parallel-%): Match `testsuite' directory component only
32068         at the end.
32069
32070 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
32071
32072         PR translation/39521
32073         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
32074         strings with _().
32075
32076 2010-01-13  Richard Guenther  <rguenther@suse.de>
32077
32078         PR tree-optimization/42730
32079         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
32080         offset zero.
32081
32082 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
32083
32084         PR target/pr42542
32085         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
32086         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
32087         them signed.
32088
32089 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
32090
32091         * config/bfin/libgcc-bfin.ver: Regenerate based on current
32092         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
32093         ___umulsi3_highpart.
32094
32095         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
32096         rather than schedule_insns if the pass is enabled.
32097
32098 2010-01-13  Martin Jambor  <mjambor@suse.cz>
32099
32100         PR tree-optimization/42704
32101         * tree-sra.c (sra_modify_assign): Do not delete assignments to
32102         SSA_NAMEs.
32103
32104 2010-01-13  Martin Jambor  <mjambor@suse.cz>
32105
32106         PR tree-optimization/42703
32107         * tree-sra.c (analyze_access_subtree): Check that we can build a
32108         reference to the original data within the aggregate.
32109
32110 2010-01-13  Richard Guenther  <rguenther@suse.de>
32111
32112         PR tree-optimization/42705
32113         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
32114
32115 2010-01-13  Richard Guenther  <rguenther@suse.de>
32116
32117         PR middle-end/42716
32118         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
32119
32120 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
32121
32122         PR debug/41371
32123         * var-tracking.c (values_to_unmark): New variable.
32124         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
32125         values_to_unmark vector.  Moved body to...
32126         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
32127         instead queue it into values_to_unmark vector.
32128         (vt_find_locations): Free values_to_unmark vector.
32129
32130 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
32131
32132         * config/s390/s390.c (override_options): Set
32133         default of max-pending-list-length to 256
32134
32135 2010-01-13  Richard Guenther  <rguenther@suse.de>
32136
32137         PR lto/42678
32138         * tree-pass.h (PROP_gimple_lcx): New.
32139         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
32140         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
32141         before the final cleanup_eh.
32142         (dump_properties): Dump PROP_gimple_lcx.
32143         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
32144         (tree_lower_complex_O0): Remove.
32145         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
32146         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
32147         tree_lower_complex, schedule TODO_update_ssa.
32148         * lto-streamer-out.c (output_function): Stream the functions
32149         properties.
32150         * lto-streamer-in.c (input_function): Likewise.
32151         (lto_read_body): Do not override them here.
32152
32153 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
32154
32155         PR c/42708
32156         * c-typeck.c (build_c_cast): Fold value cast to union type before
32157         wrapping it in a CONSTRUCTOR.
32158
32159 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
32160
32161         PR rtl-optimization/42699
32162         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
32163         involved.
32164
32165 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32166
32167         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
32168         SUBTARGET_WARN_UNUSED_SPEC): Move ...
32169         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
32170         SUBTARGET_WARN_UNUSED_SPEC): ... here
32171         * config/mips/iris5.h (LIBGCC_SPEC): Define.
32172
32173 2010-01-12  Julian Brown  <julian@codesourcery.com>
32174
32175         * config/arm/neon-schedgen.ml (Utils): Don't try to
32176         open missing module.
32177         (find_with_result): New.
32178
32179 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
32180
32181         PR debug/42662
32182         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
32183         sharing when canonicalizing ({lt,ge}u (plus a b) b).
32184
32185         PR tree-optimization/42645
32186         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
32187         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
32188         decl_map, set processing_debug_stmt to -1 and return name without
32189         any remapping.
32190
32191 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
32192
32193         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
32194         binutils version, and reword target configuration description.
32195
32196 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
32197
32198         * config/avr/avr.h (LINKER_NAME): Remove.
32199
32200 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
32201
32202         PR target/42416
32203         * config/rs6000/rs6000.c (rs6000_override_options): On targets
32204         that support VSX, warn for -mno-altivec if vsx is not disabled,
32205         and disable vsx.
32206
32207 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
32208             Shujing Zhao  <pearly.zhao@oracle.com>
32209
32210         PR translation/42469
32211         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
32212         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
32213         character between option name and help text.
32214         * c.opt (imultilib): Likewise.
32215
32216 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
32217
32218         * lto-streamer-out.c (output_unreferenced_globals): Output static
32219         variables.
32220
32221 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
32222
32223         PR rtl-optimization/42621
32224         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
32225         optimizing for size.
32226         (duplicate_computed_gotos): Remove now-redundant check.
32227
32228 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
32229
32230         PR target/37454
32231         * configure.ac: Save and restore LDFLAGS and LIBS
32232         * configure: Regenerate.
32233
32234 2010-01-10  Richard Guenther  <rguenther@suse.de>
32235
32236         PR middle-end/42667
32237         * builtins.c (fold_builtin_strlen): Add type argument and
32238         convert the resulting length to it.
32239         (fold_builtin_1): Adjust.
32240
32241 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
32242
32243         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
32244         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
32245         1 insn.
32246         (num_insns_constant_wide): Adjust for that change.
32247
32248 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
32249
32250         PR debug/42631
32251         * web.c (union_defs): Add used argument, to combine uses of
32252         uninitialized regs.
32253         (entry_register): Adjust type and tests of used argument.
32254         (web_main): Widen used for new use.  Pass it to union_defs.
32255         * df.h (union_defs): Adjust prototype.
32256
32257 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
32258
32259         PR debug/42630
32260         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
32261         uses in new incoming argument.  Free body.
32262         (reset_debug_uses_in_loop): New.
32263         (analyze_insn_to_expand_var): Call the latter if the former found
32264         anything.  Fix whitespace.  Reject invalid dest overlaps before
32265         going through all insns in the loop.
32266
32267 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
32268
32269         PR debug/42629
32270         * haifa-sched.c (dying_use_p): Debug insns don't count.
32271
32272 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
32273
32274         PR middle-end/42363
32275         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
32276         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
32277         (verify_gimple_call): Reject LHS in noreturn calls.
32278
32279 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
32280
32281         PR debug/42604
32282         PR debug/42395
32283         * tree-vect-loop-manip.c (adjust_info): New type.
32284         (adjust_vec): New pointer to vector.
32285         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
32286         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
32287         (slpeel_update_phis_for_duplicate_loop): Use them.
32288         (slpeel_update_phi_nodes_for_guard1): Likewise.
32289         (slpeel_update_phi_nodes_for_guard2): Likewise.
32290         (slpeel_tree_peel_loop_to_edge): Likewise.
32291         (vect_update_ivs_after_vectorizer): Likewise.
32292
32293 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
32294
32295         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
32296         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
32297
32298 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
32299
32300         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
32301         bogus uninitialized warning.
32302
32303 2010-01-09  Richard Guenther  <rguenther@suse.de>
32304
32305         PR middle-end/42512
32306         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
32307         the evolution is compatible with the initial condition.
32308
32309 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
32310
32311         * gcc.c (process_command): Update copyright notice dates.
32312         * gcov.c (print_version): Likewise.
32313         * gcov-dump.c (print_version): Likewise.
32314         * mips-tfile.c (main): Likewise.
32315         * mips-tdump.c (main): Likewise.
32316
32317 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
32318
32319         PR target/41885
32320         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
32321         (rotlhi3): Delete.
32322         (rotlhi3_8): Delete.
32323         (rotlsi3): Delete.
32324         (rotlsi3_8): Delete.
32325         (rotlsi3_16): Delete.
32326         (rotlsi3_24): Delete.
32327         (rotl<mode>3): New.
32328         (*rotw<mode>3): New.
32329         (*rotb<mode>3): New.
32330         * config/avr/avr.c (avr_rotate_bytes): New function.
32331         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
32332
32333 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
32334
32335         PR target/37454
32336         * configure.ac: Modify -rdynamic check.
32337         * configure: Regenerate.
32338
32339 2010-01-08  DJ Delorie  <dj@redhat.com>
32340
32341         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
32342         register popping order.
32343
32344 2010-01-08  Richard Guenther  <rguenther@suse.de>
32345
32346         PR lto/42528
32347         * c.opt (fsigned-char): Also let LTO handle this option.
32348         (funsigned-char): Likewise.
32349
32350 2010-01-07  Richard Guenther  <rguenther@suse.de>
32351
32352         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
32353         (gimple_op): Likewise.
32354         (gimple_op_ptr): Likewise.
32355         (gimple_assign_set_lhs): Remove gcc_assert.
32356         (gimple_assign_set_rhs1): Likewise.
32357         (gimple_assign_set_rhs2): Likewise.
32358         (gimple_call_set_lhs): Likewise.
32359         (gimple_call_set_fn): Likewise.
32360         (gimple_call_set_fndecl): Likewise.
32361         (gimple_call_fndecl): Likewise.
32362         (gimple_call_return_type): Likewise.
32363         (gimple_call_set_chain): Likewise.
32364         (gimple_call_num_args): Likewise.
32365         (gimple_call_set_arg): Likewise.
32366         (gimple_cond_set_code): Likewise.
32367         (gimple_cond_set_lhs): Likewise.
32368         (gimple_cond_set_rhs): Likewise.
32369         (gimple_cond_set_true_label): Likewise.
32370         (gimple_cond_set_false_label): Likewise.
32371         (gimple_label_set_label): Likewise.
32372         (gimple_goto_set_dest): Likewise.
32373         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
32374         (gimple_debug_bind_get_value): Likewise.
32375         (gimple_debug_bind_get_value_ptr): Likewise.
32376         (gimple_debug_bind_set_var): Likewise.
32377         (gimple_debug_bind_set_value): Likewise.
32378         (gimple_debug_bind_reset_value): Likewise.
32379         (gimple_debug_bind_has_value_p): Likewise.
32380         (gimple_return_retval_ptr): Remove gcc_assert.
32381         (gimple_return_retval): Likewise.
32382         (gimple_return_set_retval): Likewise.
32383         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
32384         (safe_referenced_var_iterator): Remove.
32385         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
32386         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
32387         (fill_referenced_var_vec): Remove.
32388         (first_readonly_imm_use): Remove redundant gcc_assert.
32389         (phi_arg_index_from_use): Combine gcc_asserts.
32390         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
32391         (first_imm_use_stmt): Remove redundant gcc_assert.
32392         * tree-cfg.c (verify_gimple_call): Verify function and chain
32393         operands.  Verify arguments.
32394         (verify_types_in_gimple_stmt): Verify condition code and labels.
32395
32396 2010-01-07  Richard Guenther  <rguenther@suse.de>
32397
32398         PR tree-optimization/42641
32399         * sese.c (rename_map_elt_info): Use the SSA name version, do
32400         not hash pointers.
32401
32402 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
32403
32404         PR tree-optimization/42625
32405         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
32406         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
32407
32408 2010-01-07  Duncan Sands  <baldrick@free.fr>
32409
32410         * Makefile.in (PLUGIN_HEADERS): Add version.h.
32411
32412 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
32413
32414         PR target/42511
32415         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
32416         note itself is not function_invariant_p.
32417
32418 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
32419
32420         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
32421         Do not add the DF_NOTE problem.
32422         * store-motion.c (execute_rtl_store_motion): Likewise.
32423
32424 2010-01-07  Martin Jambor  <mjambor@suse.cz>
32425
32426         PR tree-optimization/42157
32427         * tree-sra.c (compare_access_positions): Stabilize sort if both
32428         accesses have integer types, return zero immediately if they are the
32429         same.
32430
32431 2010-01-06  Richard Henderson  <rth@redhat.com>
32432
32433         PR middle-end/41883
32434         * haifa-sched.c (add_to_note_list): Merge into ...
32435         (concat_note_lists): ... here, and ...
32436         (unlink_other_notes, rm_other_notes): Merge into...
32437         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
32438         NOTE_INSN_EPILOGUE_BEG.
32439
32440 2010-01-06  Richard Guenther  <rguenther@suse.de>
32441
32442         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
32443         not inline regular functions into always-inline functions.
32444
32445 2010-01-06  Nick Clifton  <nickc@redhat.com>
32446
32447         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
32448         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
32449         used together.
32450         (OVERRIDE_OPTIONS): Delete.
32451         (OPTIMIZATION_OPTIONS): Define.
32452         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
32453         * config/rx/rx.c (rx_handle_option): Issue an error message if
32454         -mcpu=rx200 and -fpu are used together.
32455         (rx_set_optimization_options): New function.  Issue an error
32456         message if an optimization attribute attempts to reset the FPU/
32457         math optimization pairing.
32458         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
32459         * config/rx/rx.opt: Set the default to 32-bit doubles.
32460         * config/rx/t-rx: Add multilibs for -nofpu option.
32461         * doc/invoke.texi: Update documentation of RX options.
32462
32463 2010-01-06  Richard Guenther  <rguenther@suse.de>
32464
32465         * tree-ssa-pre.c (name_to_id): New global.
32466         (alloc_expression_id): Simplify SSA name handling.
32467         (lookup_expression_id): Likewise.
32468         (init_pre): Zero name_to_id.
32469         (fini_pre): Free it.
32470
32471 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
32472
32473         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
32474
32475 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
32476
32477         PR target/42542
32478         * config/i386/sse.md (smaxv2di3): New.
32479         (umaxv2di3): Likewise.
32480         (sminv2di3): Likewise.
32481         (uminv2di3): Likewise.
32482
32483 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
32484
32485         PR target/42564
32486         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
32487         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
32488         (legitimize_tls_address): Likewise.
32489         (sparc_tls_referenced_p): Likewise.
32490         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
32491         and adjust calls to legitimize_pic_address.
32492         (legitimate_constant_p) Use sparc_tls_referenced_p.
32493         (legitimate_pic_operand_p): Likewise.
32494         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
32495         (sparc_tls_symbol_ref_1): Delete.
32496         (sparc_tls_referenced_p): Make static, recognize specific patterns.
32497         (legitimize_tls_address): Make static, handle CONST patterns.
32498         (legitimize_pic_address): Make static, remove unused parameter and
32499         adjust recursive calls.
32500         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
32501         and adjust call to legitimize_pic_address.
32502         (sparc_output_mi_thunk): Likewise.
32503
32504 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
32505             H.J. Lu  <hongjiu.lu@intel.com>
32506
32507         PR target/42542
32508         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
32509         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
32510         operands to make them signed.
32511
32512         Revert:
32513         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
32514
32515         PR target/42542
32516         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
32517         GTU to GT for V4SI and V2DI.
32518
32519         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
32520         (umin<mode>3): Removed.
32521         (uminv8hi3): New.
32522         (uminv4si3): Likewise.
32523
32524 2010-01-05  Martin Jambor  <mjambor@suse.cz>
32525
32526         PR tree-optimization/42462
32527         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
32528         current_function_decl to helper functions and macros.
32529
32530 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32531
32532         PR bootstrap/41771
32533         * flags.h: Don't include real.h.
32534         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
32535         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
32536         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
32537         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
32538         * dominance.c: Update copyright.
32539         * gimple.c (walk_gimple_op): Remove inline.
32540         * tree-ssa-reassoc.c: Include real.h.
32541         * Makefile.in (FLAGS_H): Remove $(REAL_H).
32542         (tree-ssa-reassoc.o): Depend on $(REAL_H).
32543
32544 2010-01-05  Nick Clifton  <nickc@redhat.com>
32545
32546         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
32547         register to push into the stack frame when the accumulator has to
32548         be saved during interrupts.
32549
32550 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
32551
32552         * doc/invoke.texi: Remove the documentation about option
32553         -Wunreachable-code.
32554         * common.opt (Wunreachable-code):  Preserved for backward
32555         compatibility.
32556         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
32557         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
32558         the backward compatibility flag section.
32559
32560 2010-01-05  Richard Guenther  <rguenther@suse.de>
32561
32562         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
32563
32564 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
32565
32566         PR other/42611
32567         * cfgexpand.c (expand_one_var): Diagnose too large variables.
32568
32569         PR tree-optimization/42508
32570         * tree-sra.c (convert_callers): Check for recursive call
32571         by comparing cgraph nodes instead of decls.
32572         (modify_function): Call ipa_modify_formal_parameters also
32573         on all same_body aliases.
32574
32575         * cgraphunit.c (cgraph_materialize_all_clones): Compare
32576         cgraph nodes when checking for same_body aliases.
32577
32578 2010-01-05  Richard Guenther  <rguenther@suse.de>
32579
32580         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
32581         allocation and lookup.
32582         (get_or_alloc_expr_for_constant): Likewise.
32583         (phi_translate): Sink allocation.
32584
32585 2010-01-04  Richard Guenther  <rguenther@suse.de>
32586
32587         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
32588         a new entry only if needed.
32589         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
32590         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
32591         hashtable lookup.
32592         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
32593         the result array.
32594         (phi_translate): Handle CONSTANTs early.
32595
32596 2010-01-04  Martin Jambor  <mjambor@suse.cz>
32597
32598         PR tree-optimization/42398
32599         * tree-sra.c (struct access): Removed flag grp_different_types.
32600         (dump_access): Do not dump the removed flag.
32601         (sort_and_splice_var_accesses): Do not set the removed flag.
32602         (sra_modify_expr): Check for type compatibility directly.
32603
32604 2010-01-04  Martin Jambor  <mjambor@suse.cz>
32605
32606         PR tree-optimization/42366
32607         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
32608         edges with variable number of parameters.
32609         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
32610         flag instead of asserting it.
32611         (ipa_read_node_info): Read uses_analysis_done flag.
32612
32613 2010-01-04  Richard Guenther  <rguenther@suse.de>
32614
32615         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
32616         iterative_hash_* as intended.
32617         (vn_reference_compute_hash): Likewise.  Simplify hashing
32618         SSA names.
32619         (vn_reference_lookup_2): Likewise.
32620         (vn_nary_op_compute_hash): Likewise.
32621         (vn_phi_compute_hash): Likewise.
32622         (expressions_equal_p): Remove strange code.
32623         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
32624         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
32625         (bitmap_insert_into_set_1): Take value-id as parameter.
32626         (add_to_value): Pass it.
32627         (bitmap_insert_into_set): Likewise.
32628         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
32629
32630 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
32631
32632         PR driver/42442
32633         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
32634         (do_self_spec): For switches with SWITCH_IGNORE set set also
32635         SWITCH_IGNORE_PERMANENTLY.
32636         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
32637         of SWITCH_IGNORE.
32638
32639 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
32640
32641         * lto-streamer-out.c (output_unreferenced_globals): Output the full
32642         tree of an unreferenced global var.
32643
32644 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
32645
32646         PR target/42542
32647         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
32648         GTU to GT for V4SI and V2DI.
32649
32650         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
32651         (umin<mode>3): Removed.
32652         (uminv8hi3): New.
32653         (uminv4si3): Likewise.
32654
32655 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
32656
32657         PR lto/42581
32658         * collect2.c (main): Turn on trace in collect2 if -v is passed
32659         to gcc with LTO.
32660
32661 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
32662
32663         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
32664         description of expression operand.
32665
32666 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
32667
32668         * configure.ac: Add install-html to target_list for Make-hooks.
32669         * configure: Regenerate.
32670         * fortran/Make-lang.in (F95_HTMLFILES): New.
32671         (fortran.html): Use it.
32672         (fortran.install-html): New.
32673         * Makefile.in (install-html): Add lang.install-html.
32674         * java/Make-lang.in (JAVA_HTMLFILES): New.
32675         (java.html): Use it.
32676         (java.install-html): New.
32677         * objc/Make-lang.in (objc.install-html): New.
32678         * objcp/Make-lang.in (obj-c++.install-html): New.
32679         * cp/Make-lang.in (c++.install-html): New.
32680         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
32681         * lto/Make-lang.in (lto.install-html): New.
32682
32683 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
32684
32685         PR lto/42520
32686         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
32687
32688 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
32689
32690         PR rtl-optimization/41862
32691         * store-motion.c (store_killed_in_insn, compute_store_table,
32692         remove_reachable_equiv_notes, replace_store_insn,
32693         build_store_vectors): Ignore all DEBUG_INSNs.
32694
32695 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
32696
32697         PR lto/41564
32698         * common.opt: Add dumpdir.
32699
32700         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
32701         isn't specified.
32702         (option_map): Add --dumpdir.
32703
32704         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
32705
32706         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
32707
32708         * opts.c (decode_options): Try dump_dir_name first if
32709         dump_base_name isn't an absolute path.
32710         (common_handle_option): Handle OPT_dumpdir.
32711
32712         * toplev.c (dump_dir_name): New.
32713         (print_switch_values): Also ignore -dumpdir.
32714
32715         * toplev.h (dump_dir_name): New.
32716
32717 2010-01-03  Richard Guenther  <rguenther@suse.de>
32718
32719         PR tree-optimization/42589
32720         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
32721         double-word expansion of bswap32.
32722
32723 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
32724
32725         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
32726         with BLOCK_FOR_INSN.
32727         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
32728         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
32729         noce_process_if_block): Likewise.
32730         * gcse.c (compute_local_properties, insert_expr_in_table,
32731         insert_set_in_table, canon_list_insert, find_avail_set,
32732         pre_insert_copy_insn): Likewise.
32733
32734         * basic-block.h (BLOCK_NUM): Move from here...
32735         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
32736
32737 2010-01-03  Richard Guenther  <rguenther@suse.de>
32738
32739         PR tree-optimization/42438
32740         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
32741         contains_may_not_return_call flag.
32742         (BB_MAY_NOTRETURN): New.
32743         (valid_in_sets): Trapping nary operations are not valid
32744         in blocks that may not return.
32745         (insert_into_preds_of_block): Remove check for trapping expressions.
32746         (compute_avail): Compute also BB_MAY_NOTRETURN.
32747
32748 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
32749
32750         * doc/invoke.texi: Add 2010 to copyright years.
32751
32752 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
32753
32754         * config/sparc/sparc.c: Fix formatting nits.
32755
32756 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
32757             Alexander Monakov  <amonakov@ispras.ru>
32758
32759         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
32760
32761 2010-01-02  Richard Guenther  <rguenther@suse.de>
32762
32763         PR middle-end/42577
32764         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
32765         (simplify_switch_using_ranges): Mark to be removed edges
32766         as non-executable.
32767
32768 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
32769
32770         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
32771
32772         * collect2.c (scan_libraries): Add missing argument in call to
32773         scan_prog_file.
32774
32775 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
32776
32777         PR target/42448
32778         * config/alpha/predicates.md (aligned_memory_operand): Return false
32779         for CQImode.
32780         (unaligned_memory_operand): Return true for CQImode.
32781         * config/alpha/alpha.c (get_aligned_mem): Assert that location
32782         doesn not cross aligned SImode word boundary.
32783
32784 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
32785
32786         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
32787         Remove.
32788         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
32789         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
32790
32791 2010-01-02  Richard Guenther  <rguenther@suse.de>
32792
32793         PR lto/41597
32794         * toplev.c (compile_file): Emit LTO marker properly.  Change
32795         it to __gnu_lto_v1.
32796         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
32797
32798 2010-01-01  Richard Guenther  <rguenther@suse.de>
32799
32800         PR debug/42455
32801         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
32802
32803 2010-01-01  Richard Guenther  <rguenther@suse.de>
32804
32805         PR c/42570
32806         * c-decl.c (grokdeclarator): For zero-size arrays force
32807         structural equality checks as layout_type does.
32808
32809 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
32810
32811         * builtins.c: Update copyright to 2010.
32812
32813 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
32814
32815         PR lto/42531
32816         * lto-streamer-out.c (produce_asm): Revert the last change.
32817         (copy_function): Likewise.
32818
32819         * lto-streamer.c (lto_get_section_name): Skip any leading
32820         asterisk in name.
32821
32822 2010-01-01  Richard Guenther  <rguenther@suse.de>
32823
32824         PR middle-end/42559
32825         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
32826         for LABEL_DECLs.
32827
32828 \f
32829 Copyright (C) 2010 Free Software Foundation, Inc.
32830
32831 Copying and distribution of this file, with or without modification,
32832 are permitted in any medium without royalty provided the copyright
32833 notice and this notice are preserved.