OSDN Git Service

checking in Nathan's patch because I accidently checked in part of it
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-10-27  Nathan Froyd  <froydnj@codesourcery.com>
2
3         * config/ia64/ia64-protos.h (ia64_function_arg): Delete.
4         (ia64_function_arg_advance): Delete.
5         * config/ia64/ia64.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
6         (FUNCTION_ARG_ADVANCE): Delete.
7         * config/ia64/ia64.c (ia64_function_arg): Rename to...
8         (ia64_function_arg_1): ...this.  Make static.  Take const_tree and
9         bool arguments.
10         (ia64_function_arg, ia64_function_incoming_arg): New functions.
11         (ia64_function_arg_advance): Make static.  Take a const_tree and
12         a bool.
13         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
14         (TARGET_FUNCTION_ARG_ADVANCE): Define.
15
16 2010-10-27  Steve Ellcey  <sje@cup.hp.com>
17
18         * doc/tm.texi.in (TARGET_GET_RAW_RESULT_MODE): New.
19         (TARGET_GET_RAW_ARG_MODE): New.
20         * doc/tm.texi: Regenerate.
21         * target.def (get_raw_result_mode): New.
22         (get_raw_arg_mode): New.
23         * targhooks.c (default_get_reg_raw_mode): New.
24         * targhooks.h (default_get_reg_raw_mode): New.
25         * builtins.c (apply_args_size): Use targetm.calls.get_raw_arg_mode.
26         (apply_result_size): Ditto.
27         * config/ia64/ia64.c (ia64_get_reg_raw_mode): New.
28         (TARGET_GET_RAW_RESULT_MODE): Define.
29         (TARGET_GET_RAW_ARG_MODE): Ditto.
30
31 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
32
33         * config/sparc/sol2-unwind.h (sparc64_fallback_frame_state): Adjust
34         for newer Solaris 10 release.
35         (sparc_fallback_frame_state): Likewise.
36
37 2010-10-27  Jason Merrill  <jason@redhat.com>
38
39         * gimplify.c (gimplify_decl_expr): Handle anonymous artificial
40         variables sooner.
41
42 2010-10-27  Jie Zhang  <jie@codesourcery.com>
43             Maxim Kuvyrkov  <maxim@codesourcery.com>
44
45         * haifa-sched.c (ISSUE_POINTS): Remove.
46         (max_issue): Don't issue more than issue_rate instructions.
47
48 2010-10-27  Ian Lance Taylor  <iant@google.com>
49
50         PR target/46197
51         * config/i386/i386.md (UNSPECV_SPLIT_STACK_RETURN): New.
52         (split_stack_return): Replace UNSPEC_STACK_CHECK with
53         UNSPECV_SPLIT_STACK_RETURN.
54
55 2010-10-27  H.J. Lu  <hongjiu.lu@intel.com>
56
57         * config/i386/i386-protos.h (init_cumulative_args): Add an int.
58
59         * config/i386/i386.c (block_info): New.
60         (BLOCK_INFO): Likewise.
61         (call_avx256_state): Likewise.
62         (check_avx256_stores): Likewise.
63         (move_or_delete_vzeroupper_2): Likewise.
64         (move_or_delete_vzeroupper_1): Likewise.
65         (move_or_delete_vzeroupper): Likewise.
66         (use_avx256_p): Likewise.
67         (function_pass_avx256_p): Likewise.
68         (flag_opts): Add -mvzeroupper.
69         (ix86_option_override_internal): Turn on MASK_VZEROUPPER by
70         default for TARGET_AVX.  Turn off MASK_VZEROUPPER if TARGET_AVX
71         is disabled.
72         (ix86_function_ok_for_sibcall): Disable sibcall if we need to
73         generate vzeroupper.
74         (init_cumulative_args): Add an int to indicate caller.  Set
75         use_avx256_p, callee_return_avx256_p and caller_use_avx256_p
76         based on return type.
77         (ix86_function_arg): Set use_avx256_p, callee_pass_avx256_p and
78         caller_pass_avx256_p based on argument type.
79         (ix86_expand_epilogue): Emit vzeroupper if 256bit AVX register
80         is used, but not returned by caller.
81         (ix86_expand_call): Emit vzeroupper if 256bit AVX register is
82         used.
83         (ix86_local_alignment): Set use_avx256_p if 256bit AVX register
84         is used.
85         (ix86_minimum_alignment): Likewise.
86         (ix86_expand_special_args_builtin): Set target to
87         GEN_INT (vzeroupper_intrinsic) for CODE_FOR_avx_vzeroupper.
88         (ix86_reorg): Run the vzeroupper optimization if needed.
89
90         * config/i386/i386.h (ix86_args): Add caller.
91         (INIT_CUMULATIVE_ARGS): Updated.
92         (machine_function): Add use_vzeroupper_p, use_avx256_p,
93         caller_pass_avx256_p, caller_return_avx256_p,
94         callee_pass_avx256_p and callee_return_avx256_p.
95
96         * config/i386/i386.opt (-mvzeroupper): New.
97
98         * config/i386/predicates.md (vzeroupper_operation): Removed.
99
100         * config/i386/sse.md (avx_vzeroupper): Removed.
101         (*avx_vzeroupper): Removed.
102         (avx_vzeroupper): New.
103
104         * doc/invoke.texi: Document -mvzeroupper.
105
106 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
107
108         * config/i386/t-mingw32 (SHLIB_LC): Add -lmingwthrd.
109         * config/i386/t-mingw-w32 (SHLIB_LC): Likewise.
110         * config/i386/t-mingw-w64 (SHLIB_LC): Likewise.
111
112 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
113             Olivier Hainque  <hainque@adacore.com>
114
115         * config/i386/w32-unwind.h (i386_w32_fallback_frame_state): Fix regnum
116         of EBP.  Do not restore reg #9.  Remove +1 adjustment to EIP and set
117         fs->signal_frame instead.
118
119 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
120
121         * c-parser.c (c_parser_objc_at_property_declaration): Recognize
122         RID_ASSIGN, RID_COPY, RID_RETAIN, RID_READWRITE and RID_NONATOMIC.
123         Do not use objc_set_property_attr, but use local variables
124         instead.  Detect repeated usage of setter, getter and ivar
125         attributes.  Improved error processing when a setter name does not
126         end in ':'.  Do not check for CPP_CLOSE_PAREN after we determined
127         that the token is a keyword.  Updated call to
128         objc_add_property_declaration.
129
130 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
131
132         * c-parser.c (c_parser_objc_at_property): Renamed to
133         c_parser_objc_at_property_declaration.  Updated calls to
134         objc_add_property_variable, now objc_add_property_declaration.
135         Code rewritten to be much more robust in recovering from syntax
136         errors.  Added comments.
137         (c_parser_objc_property_attrlist): Removed.
138         (c_parser_external_declaration): Updated calls to
139         c_parser_objc_at_property, now
140         c_parser_objc_at_property_declaration.
141         (c_parser_objc_methodprotolist): Same change.
142         
143 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
144
145         * config/i386/i386.md (split_stack_return): Put back
146         unspec_volatile.
147
148 2010-10-26  Jan Hubicka  <jh@suse.cz>
149
150         * ipa.c (process_references): Enqueue all referenced nodes;
151         mark as reachable only non-external nodes.
152         (cgraph_remove_unreachable_nodes): All referenced nodes should
153         be enqueued; remove bogues node->needed check.
154
155 2010-10-26  Jan Hubicka  <jh@suse.cz>
156
157         * cgraphbuild.c (build_cgraph_edges): Use ipa-reference to represent OMP.
158
159 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
160
161         * config/i386/i386.md (split_stack_return): Replace
162         unspec_volatile with unspec.
163
164 2010-10-26  Jonathan Wakely  <jwakely.gcc@gmail.com>
165
166         * doc/install.texi: Fix typo in --with-sysroot description.
167
168 2010-10-26  Jan Hubicka  <jh@suse.cz>
169
170         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
171         Use info provided by linker plugin.
172
173 2010-10-26  Jason Merrill  <jason@redhat.com>
174
175         * varasm.c (constructor_static_from_elts_p): Don't require a
176         CONSTRUCTOR to have elements to be suitable for static
177         initialization.  Allow ARRAY_TYPE as well.
178
179 2010-10-26  Jan Hubicka  <jh@suse.cz>
180
181         PR middle-end/45736
182         * cgraph.c (cgraph_set_readonly_flag): Rename to...
183         (cgraph_set_const_flags) ... this one; get also looping argument;
184         clear constructor/destructor flags.
185         (cgraph_set_pure_flag): Likewise.
186         (cgraph_set_looping_const_or_pure_flag): Remove.
187         (cgraph_can_remove_if_no_direct_calls_and_refs): Do not try
188         to optimize away static ctors/dtors; it does not work on inline clones;
189         external functions can always be rmeoved.
190         (cgraph_will_be_removed_from_program_if_no_direct_calls): Assert on inline
191         clones; in LTO external functions always can go.
192         (cgraph_used_from_object_file_p): Handle EXTERNAL functions correctly.
193         (cgraph_mark_address_taken_node): Assert that we are not taking address of
194         inline clone.
195         (cgraph_can_remove_if_no_direct_calls_p): We always eventually remove
196         external functions.
197         * ipa-cp.c (ipcp_cloning_candidate_p): Do not clone functions with address taken.
198         (ipcp_initialize_node_lattices): Only local functions can be handled without cloning.
199         * cgraph.h (cgraph_set_readonly_flag,
200         cgraph_set_looping_const_or_pure_flag): Remove.
201         (cgraph_set_const_flag): Declare.
202         (cgraph_set_pure_flag): Update.
203         * ipa-pure-const (propagate_pure_const, local_pure_const): Update
204         flags setting code.
205         * ipa.c (cgraph_remove_unreachable_nodes): Fix formating; do not look at inline
206         clones; fix handling of external definitions.
207         (cgraph_postorder): Do not look at inline clones in the first pass.
208         (function_and_variable_visibility): Drop constructors/destructor
209         flags at pure and const functions.
210         * tree-profile.c (tree_profiling): Update.
211         * ipa-inline.c (cgraph_clone_inlined_nodes): Always clone functions with
212         address taken; external functions do not account to whole program size.
213         (cgraph_decide_inlining): Likewise; do not try to inline functions already
214         inlined.
215
216 2010-10-26  Jie Zhang  <jie@codesourcery.com>
217
218         * doc/invoke.texi: Improve documentation of
219         -fstrict-volatile-bitfields.
220
221 2010-10-26  Ira Rosen  <irar@il.ibm.com>
222
223         PR tree-optimization/46167
224         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Check that there
225         is basic block for the statement.
226
227 2010-10-26  Paul Koning  <ni1d@arrl.net>
228
229         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Update to
230         current definition of struct_real_format.
231
232 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
233
234         PR target/44948
235         * config/i386/i386.c (ix86_old_function_arg_boundary): New.
236         (ix86_function_arg_boundary): Always align parameters on stack
237         in 64bit and align parameters with alignment >= 16byte on stack 
238         in 32bit.  Warn alignment change.
239
240 2010-10-26  Ian Lance Taylor  <iant@google.com>
241
242         PR middle-end/45687
243         * ipa-prop.c (ipa_modify_call_arguments): Correct type of MEM_REF
244         offset.
245
246 2010-10-25  Rodrigo Rivas Costa <rodrigorivascosta@gmail.com>
247
248         Implement opaque-enum-specifiesr for C++0x
249         * tree.h (ENUM_IS_OPAQUE): New.
250         * dwarf2out.c (gen_enumeration_type_die): Use ENUM_IS_OPAQUE.
251
252 2010-10-26  Jie Zhang  <jie@codesourcery.com>
253
254         * stor-layout.c (layout_decl): Use the field's type to
255         determine the mode and keep DECL_BIT_FIELD for a volatile
256         bit-field.
257         * config/arm/arm.c (arm_override_options): Default to
258         -fstrict-volatile-bitfields.
259
260 2010-10-25  Paul Koning  <ni1d@arrl.net>
261
262         * config/pdp11/pdp11.md: Add define_constants for register
263         numbers, branch offset limits.
264         * config/pdp11/pdp11.c: Use named constants instead of numbers.
265         * config/pdp11.pdp11.h: Ditto.
266
267 2010-10-25  Changpeng Fang  <changpeng.fang@amd.com>
268
269         * Changelog (2010-10-22  Changpeng Fang): Correct the Changelog entries.
270
271 2010-10-25  Eric Botcazou  <ebotcazou@adacore.com>
272
273         * configure.ac: Use $cpu_type instead of $target to define the nop.
274         * configure: Regenerate.
275
276 2010-10-25  Jie Zhang  <jie@codesourcery.com>
277
278         * combine.c (try_combine): If insns need to be kept around, check that
279         they can be copied in the merged instruction.
280
281 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
282
283         * reg-stack.c (convert_regs_1): Return boolean value, true if the CFG
284         has been modified.
285         (convert_regs_2): Likewise.  Adjust calls to convert_regs_1.
286         (convert_regs): Adjust calls to convert_regs_2.  Clean up the CFG if
287         it has been modified.
288
289 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
290
291         * config/sparc/sparc.c (sparc_type_code) <NULLPTR_TYPE>: New case.
292
293 2010-10-24  Paul Koning  <ni1d@arrl.net>
294
295         * config/pdp11/pdp11.md: Change length attribute to be in bytes.
296         * config/pdp11/pdp11.c (output_jump): Ditto.
297
298 2010-10-24  Ian Lance Taylor  <iant@google.com>
299
300         * config/i386/i386.c (ix86_va_start): Remove extraneous blank
301         line.
302
303 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
304
305         * cfglayout.c (fixup_reorder_chain): When ensuring that there is at
306         least one insn with a locus corresponding to an edge's goto_locus,
307         disregard non-fallthru edges to the exit block and merge the blocks
308         created for the same goto_locus.
309
310 2010-10-23  Joseph Myers  <joseph@codesourcery.com>
311
312         * gcc.c (n_switches_alloc_debug_check): New.
313         (set_option_handlers): New.
314         (process_command): Use set_option_handlers.
315         (do_self_spec): Pass spec-generated options through option
316         handlers.
317         (main): Also save and restore n_switches_alloc when swapping
318         switch arrays.
319
320 2010-10-23  Richard Henderson  <rth@redhat.com>
321
322         PR target/46144
323         * config/i386/sse.md (*avx_absneg<AVXMODEF2P>2): New.
324         (*sse_absneg<SSEMODEF2P>2): Rename from *absneg<VEC_FLOAT_MODE>2.
325         Honor matching operands when splitting to XOR.
326
327 2010-10-23  Ian Lance Taylor  <iant@google.com>
328
329         * tree-vrp.c (extract_range_from_binary_expr): If
330         flag_non_call_exceptions don't eliminate division by zero.
331         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
332
333 2010-10-23  Nathan Froyd  <froydnj@codesourcery.com>
334
335         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Define
336         __BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__, __ORDER_BIG_ENDIAN__, and
337         __ORDER_PDP_ENDIAN__.
338         * libgcc2.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
339         (struct DWstruct): Define based on __BYTE_ORDER__.
340         * config/fixed-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
341         (struct INTstruct): Define based on __BYTE_ORDER__.
342         * config/dfp-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
343         (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Test __BYTE_ORDER__.
344         * system.h (LIBGCC2_WORDS_BIG_ENDIAN): Poison identifier.
345         * config/arc/arc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
346         * config/arm/arm.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
347         * config/ia64/ia64.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
348         * config/iq2000/iq2000.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
349         * config/lm32/lm32.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
350         * config/m32r/m32r.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
351         * config/mcore/mcore.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
352         * config/mep/mep.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
353         * config/mips/mips.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
354         * config/rs6000/sysv4.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
355         * config/rx/rx.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
356         * config/score/score.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
357         * config/sh/sh.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
358         * config/sparc/sparc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
359         * config/xtensa/xtensa.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
360         * doc/tm.texi.in (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
361         * doc/tm.texi: Regenerate.
362         * doc/cpp.texi (__BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__): Document.
363         (__ORDER_BIG_ENDIAN__, __ORDER_PDP_ENDIAN__): Likewise.
364
365 2010-10-23  Jie Zhang  <jie@codesourcery.com>
366
367         PR rtl-optimization/37360
368         * config/mips/mips.c (cached_can_issue_more): New local variable.
369         (mips_sched_reorder_1): New.
370         (mips_sched_reorder): Use mips_sched_reorder_1.
371         (mips_sched_reorder2): New.
372         (mips_variable_issue): Set cached_can_issue_more.
373         (TARGET_SCHED_REORDER2): Define to mips_sched_reorder2
374         instead of mips_sched_reorder.
375
376         Revert
377         2008-09-09  Andrey Belevantsev  <abel@ispras.ru>
378         PR rtl-optimization/37360
379         * haifa-sched.c (max_issue): Do not assert that we never issue more
380         insns than issue_rate.  Add comment.
381
382 2010-10-22  Eric Botcazou  <ebotcazou@adacore.com>
383
384         * gimplify.c (gimplify_variable_sized_compare): Preserve the source
385         location info of the expression.
386
387 2010-10-22  DJ Delorie  <dj@redhat.com>
388
389         * doc/extend.texi (Named Address Spaces): Document the M32C named
390         address space.
391
392         * config/m32c/m32c-pragma.c (m32c_register_pragmas): Register the
393         __far address space.
394         * config/m32c/m32c.h (ADDR_SPACE_FAR): New.  Add support for
395         "__far" address space for R8C and M16C processor variants.
396         * config/m32c/m32c.c (m32c_addr_space_legitimate_address_p): New.
397         (far_addr_space_p): New.
398         (encode_pattern_1): Add sign and zero extend support.
399         (m32c_hard_regno_nregs_1): Large pointers in A16 mode are SImode.
400         (m32c_extra_constraint_p2): Add SF constraint.
401         (m32c_legitimate_address_p): Support __far addresses.
402         (m32c_addr_space_pointer_mode): New.
403         (m32c_addr_space_address_mode): New.
404         (m32c_addr_space_legitimate_address_p): New.
405         (m32c_addr_space_legitimize_address): New.
406         (m32c_addr_space_subset_p): New.
407         (m32c_addr_space_convert): New.
408         (conversions): Add __far operand patterns.
409         (m32c_prepare_move): Force constants into registers for __far
410         moves.
411         (m32c_split_move): __far moves are always split.
412         * config/m32c/addsub.md (addsi3_1): Support SImode symbols.
413         * config/m32c/mov.md (mov<mode>_far_op1): New.
414         (mov<mode>_far_op2): New.
415         (movqi_op): Add __far (SF) support.
416         (movhi_op): Likewise.
417         (movsi_splittable): Split A1A0 also.
418
419 2010-10-22  Artjoms Sinkarovs <artyom.shinakroff@gmail.com>
420             Andrew Pinski <pinskia@gmail.com>
421
422         * c-typeck.c (build_array_ref): Handle subscripting of vectors.
423         * doc/extend.texi: New paragraph
424
425 2010-10-22  Paul Koning  <ni1d@arrl.net>
426
427         * config.pdp11/pdp11.h (DBX_DEBUGGING_INFO): Define.
428
429 2010-10-22  DJ Delorie  <dj@redhat.com>
430
431         * config/m32c/m32c-lib1.S (m32c_jsri16): Make reentrant.
432
433 2010-10-22  Paul Koning  <ni1d@arrl.net>
434
435         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Define.
436
437 2010-10-22  Richard Henderson  <rth@redhat.com>
438
439         * config/i386/i386.c (ix86_builtin_vectorized_function): Add
440         cases for __builtin_fma and __builtin_fmaf.
441
442 2010-10-22  Richard Henderson  <rth@redhat.com>
443
444         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Produce
445         NEG+USE for vectors as well.
446         * config/i386/i386.md (*absneg<VEC_FLOAT_MODE>2): New pattern
447         and splitter.
448
449 2010-10-22  Joseph Myers  <joseph@codesourcery.com>
450
451         * gcc.c (DEFAULT_SWITCH_CURTAILS_COMPILATION,
452         SWITCH_CURTAILS_COMPILATION): Remove.
453         * doc/tm.texi.in (SWITCH_CURTAILS_COMPILATION): Remove
454         documentation.
455         * doc/tm.texi: Regenerate.
456         * system.h (SWITCH_CURTAILS_COMPILATION): Poison.
457
458 2010-10-22  Changpeng Fang  <changpeng.fang@amd.com>
459
460         * config/i386/bdver1.md: New file.
461         * config/i386/i386.md (include "bdver1.md"): Invoke the
462         pipeline description for bdver1.
463         (x86_sahf_1): Add "bdver1_decode" attribute.
464         (*cmpfp_i_mixed): Likewise.
465         (*cmpfp_i_sse): Likewise.
466         (*cmpfp_i_i387): Likewise.
467         (*cmpfp_iu_mixed): Likewise.
468         (*cmpfp_iu_sse): Likewise.
469         (*cmpfp_iu_387): Likewise.
470         (*swap<mode>,*swap<mode>_1): Likewise.
471         (fixuns_trunc<mode>hi2): Likewise.
472         (fix_trunc<mode>si_sse): Likewise.
473         (x86_fnstcw_1): Likewise.
474         (x86_fldcw_1): Likewise.
475         (*floatsi<mode>2_vector_mixed_with_temp): Likewise.
476         (*floatsi<mode>2_vector_mixed): Likewise.
477         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Likewise.
478         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Likewise.
479         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Likewise.
480         (*floatsi<mode>2_vector_sse_with_temp): Likewise.
481         (*floatsi<mode>2_vector_sse): Likewise.
482         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Likewise.
483         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Likewise.
484         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Likewise.
485         (*mul<mode>3_1): Likewise.
486         (*mulsi3_1_zext): Likewise.
487         (*mulhi3_1): Likewise.
488         (*mulqi3_1): Likewise.
489         (*<u>mul<mode><dwi>3_1): Likewise.
490         (*<u>mulqihi3_1): Likewise.
491         (*<s>muldi3_highpart_1): Likewise.
492         (*<s>mulsi3_highpart_1): Likewise.
493         (*<s>mulsi3_highpart_zext): Likewise.
494         (x86_64_shld): Likewise.
495         (x86_shld): Likewise.
496         (x86_64_shrd): Likewise.
497         (x86_shrd): Likewise.
498         (sqrtxf2): Likewise.
499         (sqrt_extend<mode>xf2_i387): Likewise.
500         (*sqrt<mode>2_sse): Likewise.
501         * config/i386/sse.md (sse_cvtsi2ss): Add "bdver1_decode" attribute.
502         (sse_cvtsi2ssq): Likewise.
503         (sse_cvtss2si): Likewise.
504         (sse_cvtss2si_2): Likewise.
505         (sse_cvtss2siq): Likewise.
506         (sse_cvtss2siq_2): Likewise.
507         (sse_cvttss2si): Likewise.
508         (sse_cvttss2siq): Likewise.
509         (sse2_cvtpi2pd): Likewise.
510         (sse2_cvttpd2pi): Likewise.
511         (sse2_cvtsi2sd): Likewise.
512         (sse2_cvtsi2sdq): Likewise.
513         (sse2_cvtsd2si): Likewise.
514         (sse2_cvtsd2si_2): Likewise.
515         (sse2_cvtsd2siq): Likewise.
516         (sse2_cvtsd2siq_2): Likewise.
517         (sse2_cvttsd2si): Likewise.
518         (sse2_cvttsd2siq): Likewise.
519         (*sse2_cvtpd2dq): Likewise.
520         (*sse2_cvttpd2dq): Likewise.
521         (sse2_cvtsd2ss): Likewise.
522         (sse2_cvtss2sd): Likewise.
523         (*sse2_cvtpd2ps): Likewise.
524         (sse2_cvtps2pd): Likewise.
525
526 2010-10-22  Richard Guenther  <rguenther@suse.de>
527
528         PR middle-end/46137
529         * gimple-fold.c (gimplify_and_update_call_from_tree): Properly
530         remove the virtual operands if they are not needed.
531
532 2010-10-22  Changpeng Fang  <changpeng.fang@amd.com>
533
534         * config/i386/i386.c (processor_costs bdver1_cost): Update
535         insn costs and architectural parameters for bdver1.
536
537 2010-10-22  Richard Guenther  <rguenther@suse.de>
538
539         * gimple.h (gimple_register_canonical_type): Declare.
540         * gimple.c (gimple_canonical_types): New global hashtable.
541         (struct gimple_type_leader_entry_s): New type.
542         (gimple_type_leader): New global cache.
543         (gimple_lookup_type_leader): New function.
544         (gtc_visit): Query the proper cache.
545         (gimple_types_compatible_p): Likewise.
546         (gimple_register_type): Use the new cache instead of TYPE_CANONICAL.
547         (gimple_canonical_type_eq): New function.
548         (gimple_register_canonical_type): Likewise.
549         (print_gimple_types_stats): Adjust for gimple_canonical_types.
550         (free_gimple_type_tables): Likewise.  Free gimple_type_leader.
551         * tree-ssa.c (useless_type_conversion_p): Do not dispatch to
552         gimple_types_compatible_p for LTO.
553
554 2010-10-22  Uros Bizjak  <ubizjak@gmail.com>
555
556         PR target/46098
557         * config/i386/sse.md (*avx_movu<ssemodesuffix><avxmodesuffix>):
558         Rename from avx_movu<ssemodesuffix><avxmodesuffix>.
559         (avx_movu<ssemodesuffix><avxmodesuffix>): New expander.
560         (*<sse>_movu<ssemodesuffix>): Rename from <sse>_movu<ssemodesuffix>.
561         (<sse>_movu<ssemodesuffix>): New expander.
562         (*avx_movdqu<avxmodesuffix>): Rename from avx_movdqu<avxmodesuffix>.
563         (avx_movdqu<avxmodesuffix>): New expander.
564         (*sse2_movdqu): Rename from sse2_movdqu.
565         (sse2_movdqu): New expander.
566
567 2010-10-22  Richard Guenther  <rguenther@suse.de>
568
569         PR tree-optimization/45720
570         * tree-vect-data-refs.c (vect_update_misalignment_for_peel):
571         Handle negative step.
572         (vect_enhance_data_refs_alignment): Likewise.
573         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Likewise.
574         (vect_create_cond_for_align_checks): Likewise.
575         (vect_create_cond_for_alias_checks): Likewise.
576
577 2010-10-22  Ira Rosen  <irar@il.ibm.com>
578
579         PR tree-optimization/46126
580         * tree-vect-stmts.c (vect_analyze_stmt): Pass NODE to
581         vectorizable_shift in case of basic block vectorization.
582
583 2010-10-22  Joseph Myers  <joseph@codesourcery.com>
584
585         * target.h (enum opt_levels, struct default_options): New.
586         * target.def (handle_ofast): Remove hook.
587         (target_option.optimization): Change to
588         target_option.optimization_table.
589         * doc/tm.texi.in (TARGET_OPTION_OPTIMIZATION): Change to
590         TARGET_OPTION_OPTIMIZATION_TABLE.
591         (CAN_DEBUG_WITHOUT_FP): Remove.
592         * doc/tm.texi: Regenerate.
593         * opts.c (maybe_default_option, maybe_default_options,
594         default_options_table): New.
595         (default_options_optimization): Take extra parameters.  Don't
596         assert that global_options and global_options_set are in use.  Use
597         maybe_default_options.
598         (decode_options): Pass extra parameters to
599         default_options_optimization.
600         * common.opt (falign-loops): Use value 0 with Var.
601         (frerun-cse-after-loop, ftree-ter): Remove Init.
602         * system.h (CAN_DEBUG_WITHOUT_FP, TARGET_HANDLE_OFAST,
603         TARGET_OPTION_OPTIMIZATION): Remove.
604         * targhooks.c (empty_optimization_table): New.
605         * targhooks.h (empty_optimization_table): Declare.
606         * toplev.c (process_options): Don't set flag_rerun_cse_after_loop.
607         * config/alpha/alpha.c (alpha_option_optimization_table,
608         TARGET_OPTION_OPTIMIZATION_TABLE): New.
609         * config/alpha/alpha.h (CAN_DEBUG_WITHOUT_FP): Remove.
610         * config/arm/arm.c (arm_option_optimization: Change to
611         arm_option_optimization_table.
612         (TARGET_OPTION_OPTIMIZATION): Change to
613         TARGET_OPTION_OPTIMIZATION_TABLE.
614         * config/arm/arm.h (CAN_DEBUG_WITHOUT_FP): Remove.
615         * config/avr/avr.c (avr_option_optimization_table,
616         TARGET_OPTION_OPTIMIZATION_TABLE): New.
617         * config/avr/avr.h (CAN_DEBUG_WITHOUT_FP): Remove.
618         * config/cris/cris.c (cris_option_optimization): Change to
619         cris_option_optimization_table.
620         (TARGET_OPTION_OPTIMIZATION): Change to
621         TARGET_OPTION_OPTIMIZATION_TABLE.
622         * config/crx/crx.c (crx_option_optimization): Change to
623         crx_option_optimization_table.
624         (TARGET_OPTION_OPTIMIZATION): Change to
625         TARGET_OPTION_OPTIMIZATION_TABLE.
626         * config/crx/crx.h (CAN_DEBUG_WITHOUT_FP): Remove.
627         * config/fr30/fr30.c (fr30_option_optimization_table,
628         TARGET_OPTION_OPTIMIZATION_TABLE): New.
629         * config/fr30/fr30.h (CAN_DEBUG_WITHOUT_FP): Remove.
630         * config/frv/frv.c (frv_option_optimization_table,
631         TARGET_OPTION_OPTIMIZATION_TABLE): New.
632         * config/frv/frv.h (CAN_DEBUG_WITHOUT_FP): Remove.
633         * config/h8300/h8300.c (h8300_option_optimization): Change to
634         h8300_option_optimization_table.
635         (TARGET_OPTION_OPTIMIZATION): Change to
636         TARGET_OPTION_OPTIMIZATION_TABLE.
637         * config/h8300/h8300.h (CAN_DEBUG_WITHOUT_FP): Remove.
638         * config/i386/i386.c (ix86_option_optimization): Change to
639         ix86_option_optimization_table.
640         (TARGET_OPTION_OPTIMIZATION): Change to
641         TARGET_OPTION_OPTIMIZATION_TABLE.
642         * config/i386/sol2-10.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
643         as initializer.
644         * config/ia64/ia64.c (ia64_option_optimization): Change to
645         ia64_option_optimization_table.
646         (TARGET_OPTION_OPTIMIZATION): Change to
647         TARGET_OPTION_OPTIMIZATION_TABLE.
648         * config/ia64/ia64.h (CAN_DEBUG_WITHOUT_FP): Remove.
649         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define as
650         initializer.
651         * config/iq2000/iq2000.c (iq2000_option_optimization_table,
652         TARGET_OPTION_OPTIMIZATION_TABLE): New.
653         * config/iq2000/iq2000.h (CAN_DEBUG_WITHOUT_FP): Remove.
654         * config/lm32/lm32.c (lm32_option_optimization_table,
655         TARGET_OPTION_OPTIMIZATION_TABLE): New.
656         * config/lm32/lm32.h (CAN_DEBUG_WITHOUT_FP): Remove.
657         * config/m32r/m32r.c (m32r_option_optimization): Change to
658         m32r_option_optimization_table.
659         (TARGET_OPTION_OPTIMIZATION): Change to
660         TARGET_OPTION_OPTIMIZATION_TABLE.
661         * config/m32r/m32r.h (SUBTARGET_OPTIMIZATION_OPTIONS,
662         CAN_DEBUG_WITHOUT_FP): Remove.
663         * config/mcore/mcore.c (mcore_option_optimization): Change to
664         mcore_option_optimization_table.
665         (TARGET_OPTION_OPTIMIZATION): Change to
666         TARGET_OPTION_OPTIMIZATION_TABLE.
667         * config/mep/mep.c (mep_option_optimization): Change to
668         mep_option_optimization_table.
669         (TARGET_OPTION_OPTIMIZATION): Change to
670         TARGET_OPTION_OPTIMIZATION_TABLE.
671         * config/mep/mep.h (CAN_DEBUG_WITHOUT_FP): Remove.
672         * config/microblaze/microblaze.c
673         (microblaze_option_optimization_table,
674         TARGET_OPTION_OPTIMIZATION_TABLE): New.
675         * config/microblaze/microblaze.h (CAN_DEBUG_WITHOUT_FP): Remove.
676         * config/mips/mips.c (mips_option_optimization_table,
677         TARGET_OPTION_OPTIMIZATION_TABLE): New.
678         * config/mips/mips.h (CAN_DEBUG_WITHOUT_FP): Remove.
679         * config/mmix/mmix.c (mmix_option_optimization): Change to
680         mmix_option_optimization_table.
681         (TARGET_OPTION_OPTIMIZATION): Change to
682         TARGET_OPTION_OPTIMIZATION_TABLE.
683         * config/mmix/mmix.h (CAN_DEBUG_WITHOUT_FP): Remove.
684         * config/mn10300/mn10300.c (mn10300_option_optimization_table,
685         TARGET_OPTION_OPTIMIZATION_TABLE): New.
686         * config/mn10300/mn10300.h (CAN_DEBUG_WITHOUT_FP): Remove.
687         * config/pa/pa.c (pa_option_optimization_table,
688         TARGET_OPTION_OPTIMIZATION_TABLE): New.
689         * config/pa/pa.h (CAN_DEBUG_WITHOUT_FP): Remove.
690         * config/pdp11/pdp11.c (pdp11_option_optimization): Change to
691         pdp11_option_optimization_table.
692         (TARGET_OPTION_OPTIMIZATION): Change to
693         TARGET_OPTION_OPTIMIZATION_TABLE.
694         * config/picochip/picochip.c (picochip_option_optimization_table,
695         TARGET_OPTION_OPTIMIZATION_TABLE): New.
696         * config/picochip/picochip.h (CAN_DEBUG_WITHOUT_FP): Remove.
697         * config/rs6000/rs6000.c (rs6000_option_optimization_table,
698         TARGET_OPTION_OPTIMIZATION_TABLE): New.
699         * config/rs6000/rs6000.h (CAN_DEBUG_WITHOUT_FP): Remove.
700         * config/rx/rx.c (rx_option_optimization_table,
701         TARGET_OPTION_OPTIMIZATION_TABLE): New.
702         * config/rx/rx.h (CAN_DEBUG_WITHOUT_FP): Remove.
703         * config/s390/s390.c (s390_option_optimization): Change to
704         s390_option_optimization_table.
705         (s390_option_override): Update comment.
706         (TARGET_OPTION_OPTIMIZATION): Change to
707         TARGET_OPTION_OPTIMIZATION_TABLE.
708         * config/s390/s390.h (CAN_DEBUG_WITHOUT_FP): Remove.
709         * config/score/score.c (score_option_optimization_table,
710         TARGET_OPTION_OPTIMIZATION_TABLE): New.
711         * config/score/score.h (CAN_DEBUG_WITHOUT_FP): Remove.
712         * config/sh/sh.c (sh_option_optimization): Change to
713         sh_option_optimization_table.
714         (TARGET_OPTION_OPTIMIZATION): Change to
715         TARGET_OPTION_OPTIMIZATION_TABLE.
716         (sh_option_override): Set MASK_SAVE_ALL_TARGET_REGS here.
717         (sh_option_override, expand_block_move, multcosts, find_barrier,
718         barrier_align): Use optimize_size instead of TARGET_SMALLCODE.
719         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Remove.
720         (LOOP_ALIGN, TRAMPOLINE_ALIGNMENT, MOVE_BY_PIECES_P,
721         STORE_BY_PIECES_P, SH_DYNAMIC_SHIFT_COST): Use optimize_size
722         instead of TARGET_SMALLCODE.
723         * config/sh/sh.opt (mspace): Make into an alias for -Os.
724         * config/sparc/sparc.c (sparc_option_optimization_table,
725         TARGET_OPTION_OPTIMIZATION_TABLE): New.
726         * config/sparc/sparc.h (CAN_DEBUG_WITHOUT_FP): Remove.
727         * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
728         TARGET_OPTION_OPTIMIZATION_TABLE): New.
729         * config/stormy16/stormy16.h (CAN_DEBUG_WITHOUT_FP): Remove.
730         * config/v850/v850.c (v850_option_optimization): Change to
731         v850_option_optimization_table.
732         (TARGET_OPTION_OPTIMIZATION): Change to
733         TARGET_OPTION_OPTIMIZATION_TABLE.
734         * config/v850/v850.h (CAN_DEBUG_WITHOUT_FP): Remove.
735         * config/xtensa/xtensa.c (xtensa_option_optimization): Change to
736         xtensa_option_optimization_table.
737         (TARGET_OPTION_OPTIMIZATION): Change to
738         TARGET_OPTION_OPTIMIZATION_TABLE.
739         * config/xtensa/xtensa.h (CAN_DEBUG_WITHOUT_FP): Remove.
740
741 2010-10-21  Iain Sandoe  <iains@gcc.gnu.org>
742
743         Based on the CFString implementation in FSF apple/trunk branch.
744
745         * target.def (objc_construct_string): New Hook.
746         * doc/tm.texi (objc_construct_string): Document.
747         * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING): New.
748         * config/t-darwin: Amend build rules for darwin.o.
749         * config/darwin.opt: Add cfstrings flags.
750         * config/darwin-c.c: Define __CONSTANT_CFSTRINGS__.
751         (darwin_objc_construct_string): New.
752         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Define.
753         * config/i386/i386.c (ix86_init_builtins): Add SUBTARGET_INIT_BUILTINS.
754         * config/darwin-protos.h (darwin_init_cfstring_builtins): New prototype.
755         (darwin_fold_builtin): Likewise.
756         (darwin_build_constant_cfstring): Likewise.
757         (darwin_objc_construct_string): Likewise.
758         (darwin_cfstring_p): Likewise.
759         (darwin_enter_string_into_cfstring_table): Likewise.
760         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS) Update for CFString.
761         * config/darwin.c (darwin_running_cxx): New var.
762         (machopic_select_section): Return cfstring_constant_object_section.
763         (darwin_override_options): Set darwin_running_cxx.
764         (add_builtin_field_decl): New.
765         (darwin_init_cfstring_builtins): New.
766         (darwin_build_constant_cfstring): New.
767         (darwin_fold_builtin): New.
768         (cfstring_hash): New.
769         (cfstring_eq): New.
770         (darwin_enter_string_into_cfstring_table): New.
771         * config/darwin-sections.def (cfstring_constant_object_section): New.
772         * config/darwin.h (TARGET_FOLD_BUILTIN): Define.
773         (TARGET_OBJC_CONSTRUCT_STRING): Define.
774
775 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
776
777         * config/alpha/alpha.c (alpha_build_builtin_va_list): Use
778         TYPE_STUB_DECL instead of TREE_CHAIN.
779         * config/i386/i386.c (ix86_build_builtin_va_list_abi): Likewise.
780         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Likewise.
781         * config/s390/s390.c (s390_build_builtin_va_list): Likewise.
782         * config/sh/sh.c (sh_build_builtin_va_list): Likewise.
783         * config/spu/spu.c (spu_build_builtin_va_list): Likewise.
784         * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list):
785         Likewise.
786         * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Likewise.
787
788 2010-10-22  Jie Zhang  <jie@codesourcery.com>
789
790         * expr.c (emit_group_load_1): Update calls to extract_bit_field.
791         (copy_blkmode_from_reg): Likewise.
792         (read_complex_part): Likewise.
793         (expand_expr_real_1): Calculate packedp and pass it to
794         extract_bit_field.
795         * expr.h (extract_bit_field): Update declaration.
796         * calls.c (store_unaligned_arguments_into_pseudos): Update call
797         to extract_bit_field.
798         * expmed.c (extract_fixed_bit_field): Update calls to
799         extract_fixed_bit_field.
800         (store_split_bit_field): Likewise.
801         (extract_bit_field_1): Add new argument packedp.
802         (extract_bit_field): Add new argument packedp.
803         (extract_fixed_bit_field): Add new argument packedp and let
804         packed attribute override volatile.
805         * stmt.c (expand_return): Update call to extract_bit_field.
806
807 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
808
809         * config/spu/spu.c (spu_function_arg): Dereference CUM parameter.
810
811 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
812
813         * ddg.c (add_cross_iteration_register_deps): Call gcc_assert instead
814         of gcc_checking_assert.
815         * sel-sched.c (code_motion_process_successors): Likewise.
816
817 2010-10-21  Eric Botcazou  <ebotcazou@adacore.com>
818
819         * cfgcleanup.c (try_forward_edges): Do not throw away previous steps
820         when stopping because of a different locus on edge or insn.
821         (try_optimize_cfg): Add comment.
822         * cfgrtl.c (rtl_merge_blocks): Tweak log message.  If the destination
823         block is a forwarder block, propagate locus on the edge.
824         (cfg_layout_merge_blocks): Likewise.
825
826 2010-10-21  Uros Bizjak  <ubizjak@gmail.com>
827
828         PR target/45946
829         * config/i386/i386.md (*pushti2): New insn pattern.
830         (pushti2 splitter): New insn splitter.
831         (*push<mode>2): Macroize insn pattern from *push{di,ti}2 using
832         DWI mode iterator.
833
834 2010-10-21  Paul Koning  <ni1d@arrl.net>
835
836         * config/pdp11/pdp11-protos.md (arith_operand,
837         const_immediate_operand, expand_shift_operand,
838         immediate15_operand): Delete
839         * config/pdp11/pdp11.c: Ditto.
840         * config/pdp11/pdp11.h (REG_CLASS_FROM_LETTER,
841         CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
842         EXTRA_CONSTRAINT): Delete.
843         * config/pdp11/pdp11.md (various): Use standard constraints
844         instead of removed ones.
845         * config/pdp11/constraints.md: New file.
846         * config/pdp11/predicates.md: New file.
847
848 2010-10-21  Bingfeng Mei  <bmei@broadcom.com>
849
850         PR c/45834
851         * alias.c (true_dependence_1): Remove obsolete check for QImode.
852         (may_alias_p): Ditto.
853
854 2010-10-21  Martin Jambor  <mjambor@suse.cz>
855
856         PR tree-optimization/45875
857         * tree.c (get_binfo_at_offset): Remove initial zero offset test.
858
859 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
860
861         * tree-into-ssa.c (rewrite_update_enter_block): Remove unused
862         variables.
863         (create_new_def_for): Likewise.
864
865 2010-10-21  Nick Clifton  <nickc@redhat.com>
866
867         * config/mn10300/mn10300.c: Fold code to 80-character width.
868         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
869         MEM, CONST_INT and CONST_DOUBLE.
870         (targetm): Move initialization to end of file.
871         (print_operand): Rename to mn10300_print_operand.
872         (print_operand_address): Rename to mn10300_print_operand_address.
873         (can_use_return_insn): Rename to mn10300_can_use_return_insn.
874         (expand_prologue): Rename to mn10300_expand_prologue.
875         (expand_epilogue): Rename to mn10300_expand_epilogue.
876         (initial_offset): Rename to mn10300_initial_offset.
877         (function_arg): Rename to mn10300_function_arg.
878         (mask_ok_for_mem_btst): Rename to mn10300_mask_ok_for_mem_btst.
879         (symbolic_operand): Rename to mn10300_symbolic_operand.
880         (legitimize_pic_address): Rename to mn10300_legitimize_pic_address.
881         (legitimate_pic_operand_p): Rename to mn10300_legitimate_pic_operand_p.
882         * config/mn10300/mn10300-protos.h: Update prototypes.
883         * config/mn10300/mn10300.h: Fold code to 80-character width.
884         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
885         MEM, CONST_INT and CONST_DOUBLE.
886         (CPP_SPEC): Move to...
887         (TARGET_CPU_CPP_BUILTINS): ... here.
888         * config/mn10300/mn10300.md: Fold code to 80-character width.
889         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
890         MEM, CONST_INT and CONST_DOUBLE.
891
892 2010-10-21  Ira Rosen  <irar@il.ibm.com>
893
894         PR tree-optimization/46049
895         PR tree-optimization/46052
896         * tree-vectorizer.h (enum stmt_vec_info_type): Add new value for shift.
897         (vect_get_slp_defs): Add arguments.
898         * tree-vect-loop.c (vect_create_epilog_for_reduction): Pass scalar
899         operands to vect_get_slp_defs.
900         (vectorizable_reduction): Fix comment, pass scalar operands to
901         vect_get_slp_defs.
902         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use operand's
903         type to determine number of units in the created vector.
904         (vect_get_vec_defs): Pass scalar operands to vect_get_slp_defs.
905         (vectorizable_conversion): Fix comment.
906         (vectorizable_shift): New function.
907         (vectorizable_operation): Move code that handles shifts to
908         vectorizable_shift.
909         (vectorizable_type_demotion): Fix comment, pass scalar operands to
910         vect_get_slp_defs.
911         (vectorizable_type_promotion, vectorizable_store): Likewise.
912         (vectorizable_condition): Fix comment.
913         (vect_analyze_stmt): Call vectorizable_shift.
914         (vect_transform_stmt): Likewise.
915         * tree-vect-slp.c (vect_get_constant_vectors): Add new argument.
916         Use it as the operand to create vectors for, except reduction
917         initial definition and store.  Use operands type.
918         (vect_get_slp_defs): Add new arguments.  Pass them to
919          vect_get_constant_vectors.
920
921 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
922
923         * basic-block.h (single_succ_edge): Use gcc_checking_assert.
924         (single_pred_edge, ei_container, ei_next, ei_prev): Likewise.
925         * cfghooks.c (fixup_reorder_chain): Likewise.
926         * cfgrtl.c (cfg_layout_merge_blocks): Likewise.
927         * cgraph.c (cgraph_add_thunk): Likewise.
928         (cgraph_create_edge_1): Likewise.
929         (cgraph_create_virtual_clone): Likewise.
930         * ddg.c (add_cross_iteration_register_deps): Likewise.
931         * dwarf2out.c (modified_type_die): Likewise.
932         * emit-rtl.c (set_mem_alias_set): Likewise.
933         * ggc-zone.c (zone_allocate_marks): Likewise.
934         * gimple-iterator.c (gsi_move_to_bb_end): Likewise.
935         * gimple.c (iterative_hash_gimple_type): Likewise.
936         * graphite-scop-detection.c (create_single_entry_edge): Likewise.
937         (create_single_exit_edge): Likewise.
938         * haifa-sched.c (choose_ready): Likewise.
939         * lto-streamer-in.c (input_gimple_stmt): Likewise.
940         * passes.c (execute_todo): Likewise.
941         * sched-ebb.c (begin_schedule_ready): Likewise.
942         * sel-sched.c (code_motion_process_successors): Likewise.
943         * tree-call-cdce.c (gen_conditions_for_pow): Likewise.
944         * tree-cfg-cleanup.c (tree_forwarder_block_p): Likewise.
945         * tree-flow-inline.h (link_imm_use, move_use_after_head): Likewise.
946         (phi_arg_index_from_use, phi_ssa_name_p): Likewise.
947         * tree-into-ssa.c (insert_updated_phi_nodes_for): Likewise.
948         * tree-ssa-coalesce.c (ssa_conflicts_test_p): Likewise.
949         (ssa_conflicts_add): Likewise.
950         * tree-ssa-copy.c (replace_exp): Likewise.
951         * tree-ssa-dom.c (eliminate_redundant_computations): Likewise.
952         * tree-ssa-forwprop.c (simple_gimple_switch): Likewise.
953         * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
954         * tree-ssa-pre.c (bitmap_value_insert_into_set): Likewise.
955         (compute_antic): Likewise.
956         * tree-ssa-ter.c (add_to_partition_kill_list): Likewise.
957         (add_dependence): Likewise.
958         (process_replaceable, kill_expr, find_replaceable_exprs): Likewise.
959         * tree-vrp.c (supports_overflow_infinity): Likewise.
960         (make_overflow_infinity, negative_overflow_infinity): Likewise.
961         (avoid_overflow_infinity, register_new_assert_for): Likewise.
962         (process_assert_insertions_for): Likewise.
963         * var-tracking.c (dv_is_value_p, dv_as_decl, dv_from_decl): Likewise.
964         (dv_from_value, variable_union, find_loc_in_1pdv): Likewise.
965         (intersect_loc_chains, variable_merge_over_cur): Likewise.
966
967 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
968
969         * cfgloop.c (flow_loops_find): Call bb_has_abnormal_pred.
970         * reload1.c (has_nonexceptional_receiver): Likewise.
971         * tree-into-ssa.c (rewrite_update_enter_block): Likewise.
972         (create_new_def_for): Likewise.
973         * tree-cfgcleanup.c (remove_forwarder_block): Likewise.
974         (merge_phi_nodes): Likewise.
975         (has_abnormal_incoming_edge_p): Delete.
976
977 2010-10-21  H.J. Lu  <hongjiu.lu@intel.com>
978
979         * config/i386/sse.md (ssescalarmodesuffix): Add V8SI and V4DI.
980
981 2010-10-21  Richard Guenther  <rguenther@suse.de>
982             Michael Matz  <matz@suse.de>
983
984         PR tree-optimization/45764
985         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
986         Adjust initial misalignment for negative DR_STEP.
987         (vect_find_same_alignment_drs): Two DRs with different DR_STEP
988         do not have the same alignment over the whole iteration domain.
989
990 2010-10-21  Richard Guenther  <rguenther@suse.de>
991
992         PR tree-optimization/46111
993         * tree-parloops.c (take_address_of): Re-organize for MEM_REF.
994
995 2010-10-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
996
997         * config/s390/s390.md (*xordi3_cc): Mark xgrk as z196 only.
998
999 2010-10-21  Tristan Gingold  <gingold@adacore.com>
1000
1001         * config/vms/vms-crtl.h (CRTL_NAMES): Add new translations.
1002         * config/vms/vms-crtl-64.h (CRTL_NAMES): Ditto.
1003
1004 2010-10-21  Tristan Gingold  <gingold@adacore.com>
1005
1006         * config/alpha/vms-unwind.h (alpha_vms_fallback_frame_state): Set
1007         signal_frame.
1008         * config/alpha/alpha.c (alpha_function_arg): Adjust call.
1009
1010 2010-10-21  Tristan Gingold  <gingold@adacore.com>
1011
1012         * config/ia64/vms64.h (TARGET_DEFAULT): Add MASK_FUSED_MADD.
1013         * config/ia64/vms.h (TARGET_DEFAULT): Ditto.
1014
1015 2010-10-20  Nathan Froyd  <froydnj@codesourcery.com>
1016
1017         * basic-block.h (find_fallthru_edge): Define.
1018         * cfgcleanup.c (merge_blocks_move): Use it.
1019         (try_crossjump_bb): Likewise.
1020         * cfglayout.c (fixup_reorder_chains): Likewise.
1021         (fixup_fallthru_exit_predecessor): Likewise.
1022         * cfgrtl.c (rtl_split_edge): Likewise.
1023         (rtl_verify_flow_info): Likewise.
1024         * function.c (thread_prologue_and_epilogue_insns): Likewise.
1025         * gimple-pretty-print.c (dump_implicit_edges): Likewise.
1026         * ifcvt.c (block_fallthru): Likewise.
1027         * reload1.c (fixup_abnormal_edges): Likewise.
1028         * sched-ebb.c (being_schedule_ready): Likewise.
1029         (schedule_ebb): Likwise.
1030         * sched-rgn.c (find_single_block_region): Likewise.
1031         * sel-sched-ir.c (bb_ends_ebb_p): Likewise.
1032         * tree-complex.c (expand_complex_move): Likewise.
1033         * sched-int.h (find_fallthru_edge): Rename to...
1034         (find_fallthru_edge_from): ...this.
1035         * haifa-sched.c (find_fallthru_edge): Rename to...
1036         (find_fallthru_edge_from): ...this.  Use new find_fallthru_edge.
1037         (init_before_recovery): Call find_fallthru_edge_from.
1038         * sel-sched-ir.c (merge_fences): Likewise.
1039         * sel-sched.c (in_fallthru_bb_p): Likewise.
1040         (move_cond_jump): Likewise.
1041
1042 2010-10-20  Paul Koning  <ni1d@arrl.net>
1043
1044         * config/pdp11/pdp11.md (various): Fix conditions on a number of
1045         insn to check for target 11/40 or higher.
1046
1047 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
1048
1049         * parser.c (c_parser_objc_method_type): Mark inline.  Return a
1050         bool instead of a tree.
1051         (c_parser_objc_method_decl): Added bool argument.  Updated call to
1052         objc_build_method_signature.
1053         (c_parser_objc_method_definition): Do not call
1054         objc_set_method_type.  Updated calls to c_parser_objc_method_type,
1055         c_parser_objc_method_decl and objc_start_method_definition.
1056         (c_parser_objc_methodproto): Do not call objc_set_method_type.
1057         Updated calls to c_parser_objc_method_type,
1058         c_parser_objc_method_decl and objc_add_method_declaration.
1059
1060 2010-10-20  Jakub Jelinek  <jakub@redhat.com>
1061
1062         PR tree-optimization/45919
1063         * tree-ssa-ccp.c (fold_nonarray_ctor_reference): Handle flexible
1064         array members.
1065
1066         PR tree-optimization/46066
1067         * tree-parloops.c (create_parallel_loop): Use gsi_last_nondebug_bb
1068         instead of gsi_last_bb.
1069
1070 2010-10-20  DJ Delorie  <dj@redhat.com>
1071
1072         * config/m32c/m32c.c (m32c_option_override): Always disable
1073         function-cse in 16-bit mode.  Indirect calls are always worse than
1074         direct calls as there is no 16-bit indirect call opcode.
1075         (m32c_override_options_after_change): New, likewise.
1076
1077 2010-10-20  Nathan Froyd  <froydnj@codesourcery.com>
1078
1079         * ifcvt.c (noce_emit_cmove): If both of the values are SUBREGs, try
1080         emitting the conditional move in the inner mode of the SUBREG.
1081
1082 2010-10-20  Anatoly Sokolov  <aesok@post.ru>
1083
1084         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS): Remove macros.
1085         * config/ia64/ia64-protos.h (ia64_preferred_reload_class): Remove.
1086         * config/ia64/ia64.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
1087         (ia64_preferred_reload_class): Make static.  Change rclass argument
1088         and result types from enum reg_class to reg_class_t.
1089
1090 2010-10-20  Pat Haugen  <pthaugen@us.ibm.com>
1091
1092         * tree-ssa-ter.c (find_replaceable_in_bb): Allow replacement over
1093         call for single operand expression.
1094
1095 2010-10-20  Eric Botcazou  <ebotcazou@adacore.com>
1096
1097         * tree-optimize.c (execute_fixup_cfg): Purge dead abnormal call edges
1098         if there is a call statement to pure or const function in the block.
1099
1100 2010-10-20  Paul Koning  <pkoning@equallogic.com>
1101
1102         Fix several build errors for pdp11 target.
1103         * config/pdp11/pdp11.md (*cmpdf): Fix tstd operands.
1104         (cbranchdf4): Conditional on TARGET_FPU.
1105         (movdf): Ditto; correct alternatives check.
1106         (movmemhi): Fix predicate and constraint.
1107         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Handle 64 bit mode.
1108
1109 2010-10-20  Richard Guenther  <rguenther@suse.de>
1110
1111         PR lto/45667
1112         * lto-streamer-out.c (output_gimple_stmt): Fix typo.
1113         * tree-cfg.c (verify_gimple_call): Properly get the call fndecl.
1114         (verify_gimple_assign_single): Disable ADDR_EXPR type check
1115         when in LTO.
1116
1117 2010-10-20  Vladimir Makarov  <vmakarov@redhat.com>
1118
1119         PR fortran/42169
1120         * ira-emit.c (store_can_be_removed_p): Return false instead of
1121         gcc_unreachable.
1122
1123 2010-10-20  Dmitry Melnik  <dm@ispras.ru>
1124
1125         * fold-const.c (fold_binary_loc): New transformation.
1126
1127 2010-10-20  H.J. Lu  <hongjiu.lu@intel.com>
1128
1129         PR target/46085
1130         * config/i386/sse.md (reduc_splus_v8sf): Updated.
1131         (reduc_splus_v4df): Likewise.
1132
1133 2010-10-20  Richard Guenther  <rguenther@suse.de>
1134
1135         PR tree-optimization/45860
1136         * tree-ssa-phiopt.c (cond_store_replacement): Do not do
1137         conditional store replacement for non-register type stores.
1138
1139 2010-10-20  Eric Botcazou  <ebotcazou@adacore.com>
1140
1141         * stor-layout.c (skip_simple_constant_arithmetic): New function.
1142         (self_referential_size): Use it instead of skip_simple_arithmetic.
1143
1144 2010-10-20  Olivier Hainque  <hainque@adacore.com>
1145
1146         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p):
1147         If the current function calls eh_return, claim live all registers
1148         that we need to check for liveness otherwise.
1149
1150 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
1151
1152         * c-decl.c (c_write_global_declarations): Call
1153         objc_write_global_declarations when compiling Objective-C.
1154         * c-lang.c (finish_file): Removed.
1155
1156 2010-10-19  DJ Delorie  <dj@redhat.com>
1157
1158         * doc/tm.texi.in (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): New.
1159         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Change to hook.
1160         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Likewise.
1161         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Likewise.
1162         * doc/tm.texi: Regenerate.
1163         * targhooks.h (default_label_align_after_barrier_max_skip,
1164         default_loop_align_max_skip, default_label_align_max_skip,
1165         default_jump_align_max_skip): Declare.
1166         * target.def (label_align_after_barrier_max_skip): New.
1167         (loop_align_max_skip): New.
1168         (label_align_max_skip): New.
1169         (jump_align_max_skip): New.
1170         * system.h (poison): Add those macros to the list.
1171         * final.c (LABEL_ALIGN_MAX_SKIP): Remove.
1172         (LOOP_ALIGN_MAX_SKIP): Remove.
1173         (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Remove.
1174         (JUMP_ALIGN_MAX_SKIP): Remove.
1175         (default_label_align_after_barrier_max_skip): New.
1176         (default_loop_align_max_skip): New.
1177         (default_label_align_max_skip): New.
1178         (default_jump_align_max_skip): New.
1179         (compute_alignments): Use the new hooks.
1180         (shorten_branches): Likewise.
1181
1182 2010-10-19  Richard Henderson  <rth@redhat.com>
1183
1184         * config/i386/i386.c (bdesc_multi_arg): Use fma4i_fmadd_<mode>.
1185         * config/i386/sse.md (fma<mode>4): Enable for FMA & SSE_MATH.
1186         (fma4i_fmadd_<mode>): New.
1187         (*split_fma, *split_fms, *split_fnma, *split_fnms): Rename from
1188         fma4_fm*_<mode> and adjust to be pre-reload splitters to the
1189         standard fma patterns.
1190         (fmaddsub_<mode>): Rename from fma4i_fmaddsub_<mode> and
1191         enable for FMA.
1192         (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
1193         (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
1194         (*fma_fmaddsub_<mode>, *fma_fmsubadd_<mode>): New.
1195
1196 2010-10-19  Paul Koning  <pkoning@equallogic.com>
1197
1198         * lower-subreg.c (resolve_shift_zext): Delete conditional code for
1199         WORDS_BIG_ENDIAN != BYTES_BIG_ENDIAN.
1200
1201 2010-10-19  Richard Henderson  <rth@redhat.com>
1202
1203         * config/ia64/ia64.md (fmasf4, *fmssf4, *nfmasf4): New.
1204         (fmadf4, *fmsdf4, *nfmadf4): New.
1205         (fmaxf4, *fmsxf4, *nfmaxf4): New.
1206
1207 2010-10-19  Michael Eager  <eager@eagercon.com>
1208
1209         * config/microblaze/microblaze.c (TARGET_EXCEPT_UNWIND_INFO):
1210         Use sjlj unwind info for exceptions.
1211
1212 2010-10-19  Francois-Xavier Coudert<fxcoudert@gcc.gnu.org>
1213
1214         PR fortran/43414
1215         * dwarf2out.c (add_calling_convention_attribute): Flag main
1216         Fortran subroutine with DW_AT_main_subprogram.
1217
1218 2010-10-19  Nick Clifton  <nickc@redhat.com>
1219
1220         * config/rx/rx.c (rx_function_value): Small integer types are
1221         promoted to SImode.
1222         (rx_promote_function_mode): New function.
1223         (TARGET_PROMOTE_FUNCTION_MODE): Define.
1224
1225 2010-10-19  Nick Clifton  <nickc@redhat.com>
1226
1227         * config/mep/mep.c (mep_print_operand): Use
1228         targetm.strip_name_encoding.
1229         (mep_output_aligned_common): Likewise.
1230
1231 2010-10-19  Basile Starynkevitch  <basile@starynkevitch.net>
1232
1233         * gengtype.c (new_structure): Remove ad-hoc "location_s" processing.
1234
1235 2010-10-18  Richard Henderson  <rth@redhat.com>
1236
1237         * simplify-rtx.c (simplify_ternary_operation) [FMA]: Simplify
1238         (fma (neg a) (neg b) c) and (fma a (neg b) c).
1239
1240 2010-10-18  Richard Henderson  <rth@redhat.com>
1241
1242         * config/i386/i386.c (IX86_BUILTIN_VFMSUBSS, IX86_BUILTIN_VFMSUBSD,
1243         IX86_BUILTIN_VFMSUBPS, IX86_BUILTIN_VFMSUBPD,
1244         IX86_BUILTIN_VFMSUBADDPS, IX86_BUILTIN_VFMSUBADDPD,
1245         IX86_BUILTIN_VFNMADDSS, IX86_BUILTIN_VFNMADDSD,
1246         IX86_BUILTIN_VFNMADDPS, IX86_BUILTIN_VFNMADDPD,
1247         IX86_BUILTIN_VFNMSUBSS, IX86_BUILTIN_VFNMSUBSD,
1248         IX86_BUILTIN_VFNMSUBPS, IX86_BUILTIN_VFNMSUBPD,
1249         IX86_BUILTIN_VFMSUBADDPS256, IX86_BUILTIN_VFMSUBADDPD256,
1250         IX86_BUILTIN_VFNMADDPS256, IX86_BUILTIN_VFNMADDPD256,
1251         IX86_BUILTIN_VFNMSUBPS256, IX86_BUILTIN_VFNMSUBPD256): Remove.
1252         (bdesc_multi_arg): Remove the corresponding builtins.
1253         * config/i386/i386.md (UNSPEC_FMA4_INTRINSIC): Remove.
1254         (UNSPEC_FMA4_FMSUBADD): Remove.
1255         (UNSPEC_FMADDSUB): Rename from UNSPEC_FMA4_FMADDSUB.
1256         * config/i386/sse.md (FMA4MODEF4): Remove.
1257         (FMAMODE): Add.
1258         (fma<mode>4): New expander.
1259         (*fma4i_fmadd_<mode>): Macroize from fma4i_fmadd<mode>4 patterns,
1260         and use FMA rtx code instead of UNSPEC_FMA4_INTRINSIC.
1261         (*fma4i_fmsub_<mode>): Similarly.
1262         (*fma4i_fnmadd_<mode>): Similarly.
1263         (*fma4i_fnmsub_<mode>): Similarly.
1264         (fma4i_vmfmadd_<mode>): Scalar patterns zero-extend, not merge
1265         with the first operand.
1266         (fma4i_fmaddsub_<mode>): Represent with UNSPEC_FMADDSUB instead
1267         of explicit arithmetic.  Macroize with AVXMODEF2P.
1268         (*fma4i_fmsubadd_<mode>): Represent with UNSPEC_FMADDSUB + NEG.
1269         (xop_frcz<mode>2): Macroize with FMAMODE.
1270         (xop_vmfrcz<mode>2): Scalar patterns zero-extend, not merge with
1271         the first operand.
1272         * config/i386/fma4intrin.h (_mm_msub_ps): Use vfmadd intrinsic with
1273         extra negations.
1274         (_mm_msub_pd, _mm_msub_ss, _mm_msub_sd): Likewise.
1275         (_mm_nmacc_ps, _mm_nmacc_pd, _mm_nmacc_ss, _mm_nmacc_sd): Likewise.
1276         (_mm_nmsub_ps, _mm_nmsub_pd, _mm_nmsub_ss, _mm_nmsub_sd): Likewise.
1277         (_mm256_msub_ps, _mm256_msub_pd): Likewise.
1278         (_mm256_nmacc_ps, _mm256_nmacc_pd): Likewise.
1279         (_mm256_nmsub_ps, _mm256_nmsub_pd): Likewise.
1280         (_mm_msubadd_ps): Use vfmaddsub intrinsic with extra negation.
1281         (_mm_msubadd_pd, _mm256_msubadd_ps, _mm256_msubadd_pd): Likewise.
1282
1283 2010-10-18  Bernd Schmidt  <bernds@codesourcery.com>
1284
1285         PR rtl-optimization/45966
1286         * combine.c (try_combine): If added_sets_2, deal with the case
1287         where i0 feeds i1 and i1 feeds i2.
1288
1289 2010-10-18  Jan Hubicka  <jh@suse.cz>
1290
1291         * ipa.c (cgraph_externally_visible_p): Handle externally visible and
1292         preserve flags before trying to guess on visibility.
1293         (varpool_externally_visible_p): New function.
1294         (function_and_variable_visibility): Use it.
1295
1296 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
1297
1298         Implemented parsing @synthesize and @dynamic for Objective-C.
1299         * c-parser.c (c_parser_external_declaration): Recognize
1300         RID_AT_SYNTHESIZE and RID_AT_DYNAMIC.
1301         (c_parser_objc_at_synthesize_declaration): New.
1302         (c_parser_objc_at_dynamic_declaration): New.
1303
1304 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
1305
1306         * c-parser.c (c_parser_objc_class_declaration): After finding an
1307         error, parse the whole declaration then reset parser->error.
1308
1309 2010-10-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
1310
1311         PR target/46041
1312         * tree.h (mode_has_fma): Delete, move to c-cppbuiltins.c.
1313         * builtins.c (mode_has_fma): Ditto.
1314
1315 2010-10-18  Steve Ellcey  <sje@cup.hp.com>
1316
1317         PR target/36898
1318         PR middle-end/43760
1319         * config/ia64/ia64.c (rws_access_regno): Remove predicate check.
1320
1321 2010-10-18  Joseph Myers  <joseph@codesourcery.com>
1322
1323         * config/i386/i386.c (ix86_option_override_internal): Define and
1324         use USE_X86_64_FRAME_POINTER for 64-bit flag_omit_frame_pointer
1325         default.
1326         * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Remove.
1327         (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Define.
1328
1329 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
1330
1331         Merge from 'apple/trunk' branch on FSF servers.
1332         * c-parser.c (c_parser_objc_type_name): Adapted to new parser the
1333         following Objective-C change:
1334
1335         2005-10-10  Fariborz Jahanian <fjahanian@apple.com>
1336
1337         Radar 4301047
1338         * c-parse.in (objc_quals): Build objc qualifier list same way
1339         as gcc-3.3
1340
1341 2010-10-18  Jan Hubicka  <jh@suse.cz>
1342
1343         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p,
1344         function_and_variable_visibility): Revert accidental commit.
1345
1346 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
1347
1348         Merge from 'apple/trunk' branch on FSF servers.
1349         * c-parser.c (c_parser_typeof_specifier): Adapted to new parser
1350         the following Objective-C change:
1351
1352         2005-10-07  Fariborz Jahanian <fjahanian@apple.com>
1353
1354         Radar 4204796
1355         * c-parse.in (typespec_nonreserved_nonattr): Remove volatile from
1356         'volatilized' type used in a typeof operator.
1357
1358 2010-10-18  Eric Botcazou  <ebotcazou@adacore.com>
1359
1360         * tree-flow.h (gimple_purge_all_dead_abnormal_call_edges): Declare.
1361         * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): Move around and
1362         rewrite modelled on gimple_purge_dead_eh_edges.
1363         (gimple_purge_all_dead_abnormal_call_edges): New function.
1364         * tree-inline.c (expand_call_inline): Call gimple_purge_dead_eh_edges
1365         directly instead of through gimple_purge_dead_abnormal_call_edges.
1366         * tree-ssa-pre.c (need_ab_cleanup): New static variable.
1367         (eliminate): Set bit in need_ab_cleanup for the basic block if we have
1368         removed AB side-effects from one of its statements.
1369         (init_pre): Initialize need_ab_cleanup.
1370         (fini_pre): Purge dead abnormal call edges and clean up the CFG if bits
1371         are set in need_ab_cleanup.  Free need_ab_cleanup afterward.
1372
1373 2010-10-18  Jakub Jelinek  <jakub@redhat.com>
1374
1375         PR c/46015
1376         * c-parser.c (c_parser_statement_after_labels): Call mark_exp_read
1377         on computed goto argument.
1378
1379 2010-10-18  Richard Guenther  <rguenther@suse.de>
1380
1381         PR tree-optimization/45967
1382         * tree-ssa-structalias.c (type_could_have_pointers): Remove.
1383         (could_have_pointers): Likewise.
1384         (handle_rhs_call, handle_const_call, handle_pure_call,
1385         find_func_aliases, intra_create_variable_infos): Remove calls to them.
1386         (struct fieldoff): Add must_have_pointers field.
1387         (type_must_have_pointers): New function.
1388         (field_must_have_pointers): Likewise.
1389         (push_fields_onto_fieldstack): Remove must_have_pointers_p argument.
1390         Adjust field merging.
1391         (create_function_info_for): May-have-pointers of varinfo is
1392         almost always true.
1393         (create_variable_info_for_1): Likewise.
1394
1395 2010-10-18  Tejas Belagod  <tejas.belagod@arm.com>
1396
1397         * config/arm/neon.md (neon_move_hi_quad_<mode>): Fix the order
1398         of operands to vec_concat.
1399
1400 2010-10-18  Richard Guenther  <rguenther@suse.de>
1401
1402         PR lto/44950
1403         * tree.c (free_lang_data_in_decl): As we clear TYPE_METHODS
1404         also clear references to entries of it.
1405
1406 2010-10-18  Andi Kleen  <ak@linux.intel.com>
1407
1408         PR other/43448
1409         * gccbug.in: Remove.
1410         * Makefile.in (GCCBUG_INSTALL_NAME, gccbug): Remove
1411         (doc, distclean, install-common): Remove reference to gccbug.
1412         * configure: Regenerate.
1413         * configure.ac (all_outputs): Remove gccbug.
1414         * doc/configfiles.texi: Remove references to gccbug.
1415         * doc/sourcebuild.texi: Dito.
1416
1417 2010-10-18  Jakub Jelinek  <jakub@redhat.com>
1418
1419         PR middle-end/46019
1420         * fold-const.c (fold_binary_loc): If integer_pow2p has
1421         TREE_INT_CST_LOW zero, look at TREE_INT_CST_HIGH.
1422
1423 2010-10-18  Basile Starynkevitch  <basile@starynkevitch.net>
1424             Jeremie Salvucci  <jeremie.salvucci@free.fr>
1425
1426         * gengtype.c (verbosity_level): Add variable.
1427         (set_gc_used): Count variables for verbosity.
1428         (close_output_files): Backing up files, counting written ones
1429         verbosily.
1430         (write_types): Count emitted functions for verbosity. Added
1431         debug messages.
1432         (write_enum_defn): Count structures for verbosity. Added debug
1433         messages.
1434         (gengtype_long_options): Add "verbose" & "backupdir".
1435         (print_usage): Ditto.
1436         (main): Verbose display of parsed files.
1437
1438         * gengtype.h (verbosity_level): Add declaration.
1439
1440 2010-10-18  Basile Starynkevitch  <basile@starynkevitch.net>
1441
1442         * gengtype.c (parse_program_options): Add allocation of
1443         plugin_files, and correct test on nb_plugin_files.
1444
1445 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
1446
1447         Merge from 'apple/trunk' branch on FSF servers.
1448
1449         2006-03-27 Fariborz Jahanian <fjahanian@apple.com>
1450
1451         Radar 4133425
1452         * c-decl.c (undeclared_variable): Issue diagnostic on
1453         private 'ivar' access.
1454
1455 2010-10-17  Uros Bizjak  <ubizjak@gmail.com>
1456
1457         PR target/46051
1458         * config/i386/sse.md (vec_interleave_highv4df): Fix third RTX of
1459         generated sequence to match *avx_vperm2f128<mode>_nozero.
1460         (vec_interleave_lowv4df): Ditto.
1461         (vec_interleave_highv8sf): Ditto.
1462         (vec_interleave_lowv8sf): Ditto.
1463
1464 2010-10-17  Kai Tietz  <kai.tietz@onevision.com>
1465
1466         * libgcov.c (create_file_directory): Enable it for win32 case.
1467         (gcov_exit): De-couple GCOV_PREFIX and GCOV_PREFIX_STRIP.
1468         * doc/gcov.texi (GCOV_PREFIX): Adjusted.
1469         (GCOV_PREFIX_SKIP): Likewise.
1470
1471 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
1472
1473         * doc/objc.texi (GNU Objective-C runtime API): New section.
1474         (Modern GNU Objective-C runtime API): New section.
1475         (Traditional GNU Objective-C runtime API): New section.
1476         (Executing code before main): Mention that this section is
1477         specific to the GNU Objective-C runtime.
1478         (Garbage Collection): Same.
1479
1480 2010-10-17  Uros Bizjak  <ubizjak@gmail.com>
1481
1482         * c-parser.c (c_parser_for_statement): Move initialization of
1483         cond and incr before if.
1484
1485 2010-10-17  Anatoly Sokolov  <aesok@post.ru>
1486
1487         * target.def (preferred_output_reload_class): New hook.
1488         * doc/tm.texi.in (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Document.
1489         * doc/tm.texi: Regenerate.
1490         * targhooks.c (default_preferred_output_reload_class): New function.
1491         * targhooks.h (default_preferred_output_reload_class): Declare.
1492         * reload.c (find_dummy_reload): Change rclass argument type from
1493         enum reg_class to reg_class_t. Change this_alternative array type
1494         from enum reg_class to reg_class_t.
1495         Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
1496         (push_reload): Change preferred_class variable type to reg_class_t.
1497         Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
1498         * recog.c (reg_fits_class_p): Change result type to bool. Change cl
1499         argument type from enum reg_class to reg_class_t. Use
1500         HARD_REGISTER_NUM_P predicate.
1501         * recog.h (reg_fits_class_p): Update prototype.
1502
1503         * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
1504         * config/i386/i386-protos.h (ix86_preferred_output_reload_class):
1505         Remove.
1506         * config/i386/i386.c (ix86_preferred_output_reload_class): Make
1507         static. Change regclass argument and result types from enum reg_class
1508         to reg_class_t.
1509         (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
1510
1511 2010-10-17  Iain Sandoe  <iains@gcc.gnu.org>
1512
1513         * c-parser.c (c_parser_objc_class_instance_variables): Update to use
1514         visibility enum, and handle @package.
1515
1516 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
1517
1518         * doc/objc.texi (What you can and what you cannot do in +load):
1519         Document that sending messages to constant string objects in +load
1520         is not guaranteed to work.
1521
1522 2010-10-16  Jan Hubicka  <jh@suse.cz>
1523
1524         PR middle-end/44206
1525         * ipa.c (cgraph_remove_unreachable_nodes): Cleanup; check
1526         existence of refrences before removing the function.
1527
1528 2010-10-16  Jan Hubicka  <jh@suse.cz>
1529
1530         * cgraph.c (dump_cgraph_node): Dump same_comdat_group,
1531         only_called_at_startup and only_called_at_exit.
1532         (cgraph_propagate_frequency): Compute only_called_at_startup and
1533         only_called_at_exit.
1534         * cgraph.h (struct cgraph_node): New fileds only_called_at_startup and
1535         only_called_at_exit.
1536         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream the new
1537         flags.
1538         * predict.c (compute_function_frequency): Initialize the new flags.
1539
1540 2010-10-16  Eric Botcazou  <ebotcazou@adacore.com>
1541
1542         * gimplify.c (gimplify_type_sizes) <ARRAY_TYPE>: If the type is to be
1543         ignored for debug info purposes, do not clear the DECL_IGNORED_P flag
1544         on the bounds of its domain.
1545         * tree.h (DECL_IGNORED_P): Document effect on TYPE_DECL specifically.
1546
1547 2010-10-16  Anatoly Sokolov  <aesok@post.ru>
1548
1549         * config/avr/avr.h (PREFERRED_RELOAD_CLASS): Remove.
1550         * config/avr/avr-protos.h (preferred_reload_class): Remove.
1551         * config/avr/avr.c (preferred_reload_class): Remove.
1552         * config/pa/pa.h (PREFERRED_RELOAD_CLASS): Remove.
1553         * config/pa/pa.c (emit_move_sequence): Update comment
1554         * config/arc/arc.h (PREFERRED_RELOAD_CLASS): Remove.
1555         * config/crx/crx.h (PREFERRED_RELOAD_CLASS): Remove.
1556         * config/fr30/fr30.h (PREFERRED_RELOAD_CLASS): Remove.
1557         * config/frv/frv.h (PREFERRED_RELOAD_CLASS): Remove.
1558         * config/h8300/h8300.h (PREFERRED_RELOAD_CLASS): Remove.
1559         * config/lm32/lm32.h (PREFERRED_RELOAD_CLASS): Remove.
1560         * config/m32r/m32r.h (PREFERRED_RELOAD_CLASS): Remove.
1561         * config/moxie/moxie.h (PREFERRED_RELOAD_CLASS): Remove.
1562         * config/picochip/picochip.h (PREFERRED_RELOAD_CLASS): Remove.
1563         * config/rx/rx.h (PREFERRED_RELOAD_CLASS): Remove.
1564         * config/spu/spu.h (PREFERRED_RELOAD_CLASS): Remove.
1565         * config/v850/v850.h (PREFERRED_RELOAD_CLASS): Remove.
1566         * config/vax/vax.h (PREFERRED_RELOAD_CLASS): Remove.
1567
1568 2010-10-16  Joseph Myers  <joseph@codesourcery.com>
1569
1570         * opts.c (set_fast_math_flags,
1571         set_unsafe_math_optimizations_flags): Make static.
1572         * toplev.h (set_fast_math_flags,
1573         set_unsafe_math_optimizations_flags): Remove prototypes.
1574
1575 2010-10-16  Joseph Myers  <joseph@codesourcery.com>
1576
1577         * config/arm/arm.c (arm_option_optimization): Set
1578         flag_section_anchors to 1 not 2.
1579         * config/i386/i386.c (ix86_option_override_internal): Check
1580         global_options_set.x_flag_zee and
1581         global_options_set.x_flag_omit_frame_pointer.
1582         (ix86_option_optimization): Don't set flag_omit_frame_pointer and
1583         flag_zee to 2.
1584         * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Check
1585         global_options_set.x_flag_omit_frame_pointer.
1586         * config/rs6000/rs6000.c (rs6000_option_init_struct): Set
1587         opts->x_flag_section_anchors to 1 not 2.
1588         * config/sh/sh.c (sh_option_optimization): Don't set
1589         flag_schedule_insns to 2.
1590         (sh_option_override): Check
1591         global_options_set.x_flag_schedule_insns.
1592         * opts.c (finish_options): Check opts_set->x_flag_section_anchors.
1593
1594 2010-10-16  Kai Tietz  <kai.tietz@onevision.com>
1595
1596         * configure.ac: Make sure inhibit_libc remains false for mingw targets
1597         as cross.
1598         * configure: Regenerated.
1599
1600 2010-10-15  Xinliang David Li  <davidxl@google.com>
1601
1602         * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths): New
1603         function.
1604         (use_pred_not_overlap_with_undef_path_pred): Outline phi arg pruning
1605         into a recursive function.
1606
1607 2010-10-15  Uros Bizjak  <ubizjak@gmail.com>
1608
1609         * config/i386/i386.md (*movdfcc_1_rex64): Correct mode attribute.
1610         (*movdfcc_1): ditto.
1611
1612 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
1613
1614         * target.def (target_option.init_struct): New hook.
1615         * doc/tm.texi.in (TARGET_OPTION_INIT_STRUCT): New @hook.
1616         * doc/tm.texi: Regenerate.
1617         * hooks.c (hook_void_gcc_optionsp): New.
1618         * hooks.h (hook_void_gcc_optionsp): Declare.
1619         * langhooks-def.h (lhd_init_options_struct): Remove.
1620         (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define to hook_void_gcc_optionsp.
1621         * langhooks.c (lhd_init_options_struct): Remove.
1622         * opts.c (init_options_struct): Also call
1623         targetm.target_option.init_struct.
1624         * config/i386/i386.c (ix86_option_init_struct,
1625         TARGET_OPTION_INIT_STRUCT): New.
1626         (ix86_option_optimization): Move some settings to
1627         ix86_option_init_struct.
1628         * config/pdp11/pdp11.c (pdp11_option_init_struct,
1629         TARGET_OPTION_INIT_STRUCT): New.
1630         (pdp11_option_optimization): Move some settings to
1631         pdp11_option_init_struct.
1632         * config/rs6000/rs6000.c (rs6000_option_optimization): Replace by
1633         rs6000_option_init_struct.  Use options structure pointer.
1634         (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
1635         * config/s390/s390.c (s390_option_init_struct,
1636         TARGET_OPTION_INIT_STRUCT): New.
1637         (s390_option_optimization): Don't set
1638         flag_asynchronous_unwind_tables here.
1639         * config/sh/sh.c (sh_option_init_struct,
1640         TARGET_OPTION_INIT_STRUCT): New.
1641         (sh_option_optimization): Don't set flag_finite_math_only here.
1642         * config/spu/spu.c (spu_option_optimization): Replace by
1643         spu_option_optimization.  Use options structure pointer.
1644         (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
1645
1646 2010-10-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
1647
1648         * doc/md.texi (Standard Names): Add fma@var{m}4 documentation.
1649
1650         * doc/rtl.texi (RTX_TERNARY): Document FMA is ternary.  Add
1651         SIGN_EXTRACT and ZERO_EXTRACT which were missing.
1652         (Standard names): Document fma.
1653
1654         * doc/cpp.texi (Common Predefined Macros): Document __FP_FAST_FMA,
1655         __FP_FAST_FMAF, __FP_FAST_FMAL.
1656
1657         * builitns.c (expand_builtin_mathfn_ternary): New function for
1658         expanding ternary math functions, like fma.
1659         (expand_builtin): Call it for the fma builtins.
1660
1661         * simplify-rtx.c (simplify_ternary_operation): Don't simplify FMA
1662         ops at present.
1663
1664         * tree-vect-stmts.c (vectorizable_call): Allow 3 argument
1665         vectorizable functions to support vectorizing fma.
1666
1667         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
1668         Handle fma builtins.
1669
1670         * config/rs6000/vsx.md (UNSPEC_VSX_MADD): Delete.
1671         (UNSPEC_VSX_MSUB): Ditto.
1672         (UNSPEC_VSX_NMADD): Ditto.
1673         (UNSPEC_VSX_NMSUB): Ditto.
1674         (vsx_fmadd<mode>4*): Rewrite to use FMA rtl in some cases instead
1675         of UNSPEC. Renumber combiner patterns.
1676         (vsx_fmsub<mode>4*): Ditto.
1677         (vsx_fnmadd<mode>4*): Ditto.
1678         (vsx_fnmsub<mode>4*): Ditto.
1679
1680         * config/rs6000/altivec.md (UNSPEC_VNMSUBFP): Delete.
1681         (altivec_vmaddfp): Rewrite to use FMA rtl if no fused
1682         multiply/add.  Rename combiner pattern, and add TARGET_FUSED_MADD test.
1683         (altivec_vmaddfp_1): Ditto.
1684         (altivec_vmaddfp_2): Ditto.
1685         (atlivec_mulv4sf3): Ditto.
1686         (altivec_vnmsubfp): Ditto.
1687         (altivec_vnmsubfp_1): Ditto.
1688         (altivec_vnmsubfp_2): Ditto.
1689         (altivec_vnmsubfp_3): Delete.
1690
1691         * config/rs6000/rs6000.md (fmasf4): New insns for fma builtin support.
1692         (fmasf4_fpr): Ditto.
1693         (fmssf4_fpr): Ditto.
1694         (fnmasf4_fpr): Ditto.
1695         (fnmssf4_fpr): Ditto.
1696         (fmadf4): Ditto.
1697         (fmadf4_fpr): Ditto.
1698         (fmsdf4_fpr): Ditto.
1699         (fnmadf4_fpr): Ditto.
1700         (fnmsdf4_fpr): Ditto.
1701
1702         * optabs.h (OTI_fma): Add fma optab.
1703         (fma_optab): Ditto.
1704
1705         * genopinit.c (optabs): Set fma optab.
1706
1707         * rtl.def (FMA): Add FMA rtl.
1708
1709         * tree.h (mode_has_fma): New function to return if MODE supports a
1710         fast multiply and add instruction.
1711         * builtins.c (mode_has_fma): Ditto.
1712
1713 2010-10-15  Jan Hubicka  <jh@suse.cz>
1714
1715         * lto-streamer-out.c (write_symbol): Use pointer set of seen
1716         objects instead of bitmap.
1717         (produce_symtab): Likewise; output defined symbols first.
1718
1719 2010-10-15  Jie Zhang  <jie@codesourcery.com>
1720
1721         * doc/invoke.texi: Add -fstrict-volatile-bitfields to
1722         Option Summary and Index.
1723
1724 2010-10-15  Richard Guenther  <rguenther@suse.de>
1725
1726         * tree.c (free_lang_data_in_decl): Clear DECL_INITIAL
1727         for automatic variables again.
1728
1729 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
1730
1731         * doc/extend.texi (Variable Length): Don't refer to VLAs not
1732         conforming to C99.
1733
1734 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
1735
1736         * config/rx/rx.c (rx_option_optimization): Change to
1737         rx_override_options_after_change.  Don't change
1738         flag_lto_compression_level.  Don't check for changes to whether
1739         FPU instructions can be used.  Check and set only
1740         flag_finite_math_only, not other fast-math flags.
1741         (rx_option_override): Call rx_override_options_after_change.
1742         (TARGET_OPTION_OPTIMIZATION): Remove.
1743         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
1744
1745 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
1746
1747         * config/rs6000/rs6000.c (rs6000_option_optimization): Don't
1748         disable section anchors for lang_hooks.name[4] != 'O'.
1749
1750 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
1751
1752         * config/frv/frv.c (frv_option_optimization,
1753         TARGET_OPTION_OPTIMIZATION): Remove.
1754         * config/frv/frv.h (RCSP_SOFTWARE_PIPELINING): Remove.
1755
1756 2010-10-15  Michael Matz  <matz@suse.de>
1757
1758         * cgraphunit.c (clone_of_p): Define unconditionally.
1759
1760 2010-10-15  Richard Guenther  <rguenther@suse.de>
1761
1762         PR lto/45957
1763         * tree.c (free_lang_data_in_decl): Do not clear DECL_INITIAL of vars.
1764
1765 2010-10-15  Chung-Lin Tang  <cltang@codesourcery.com>
1766
1767         * ifcvt.c (find_active_insn_before): New function.
1768         (find_active_insn_after): New function.
1769         (cond_exec_process_if_block): Use new functions to replace
1770         prev_active_insn() and next_active_insn().
1771
1772 2010-10-14  Yao Qi  <yao@codesourcery.com>
1773
1774         PR target/45447
1775         * config/arm/arm.c (arm_build_builtin_va_list): Assign
1776         va_list_name to TYPE_STUB_DECL (va_list_type).
1777
1778 2010-10-14  Jan Hubicka  <jh@suse.cz>
1779
1780         PR middle-end/45621
1781         * cgraph.c (cgraph_update_edges_for_call_stmt_node): When new call is
1782         redirected to clone, be happy.
1783         * cgraph.h (cgraph node): Enable former_clone_of unconditinally.
1784         * cgraphunit.c (verify_cgraph_node, cgraph_materialize_clone): Handle
1785         former_clone_of unconditionally.
1786
1787 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
1788
1789         Merge from FSF apple 'trunk' branch.
1790         2006 Fariborz Jahanian <fjahanian@apple.com>
1791
1792         Radars 4436866, 4505126, 4506903, 4517826
1793         * c-parser.c (c_parser, objc_property_attr_context) New flag.
1794         (c_lex_one_token): Handle property attributes.
1795         (c_parser_external_declaration): Handle @property.
1796         (c_parser_declaration_or_fndef): Warn on invalid attributes before
1797         @alias, @class, @end and @property objc keywords.
1798         (c_parser_objc_methodprotolist): Handle @property.
1799         (c_parser_objc_property_attrlist): New.
1800         (c_parser_objc_at_property): New.
1801         * c-typeck.c (build_component_ref): Handle CLASS.property syntax.
1802         (build_modify_expr): Likewise.
1803
1804 2010-10-14  Jakub Jelinek  <jakub@redhat.com>
1805
1806         PR tree-optimization/46008
1807         * tree-if-conv.c (predicate_bbs): Try to canonicalize c2 if possible.
1808
1809 2010-10-14  Richard Guenther  <rguenther@suse.de>
1810
1811         PR tree-optimization/44913
1812         * tree-data-ref.c (disjoint_objects_p): Remove.
1813         (dr_may_alias_p): Simplify.  Only hand the base object to
1814         the alias-oracle.
1815         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
1816         some more trees, bail out instead of asserting.
1817         (ptr_derefs_may_alias_p): Likewise.  Export.
1818         (refs_may_alias_p_1): Handle STRING_CSTs.
1819         * tree-ssa-alias.h (ptr_derefs_may_alias_p): Declare.
1820
1821 2010-10-14  Joseph Myers  <joseph@codesourcery.com>
1822
1823         PR c/45969
1824         * c-typeck.c (build_binary_op): Don't try to compute a semantic
1825         type with excess precision for boolean operations.
1826
1827 2010-10-14  Jeremie Salvucci  <jeremie.salvucci@free.fr>
1828             Basile Starynkevitch  <basile@starynkevitch.net>
1829
1830         * gengtype.c:  Include getopt.h and version.h.
1831
1832         (lang_bitmap, struct outf, outf_p)
1833         (get_output_file_with_visibility, oprintf): Definitions moved to
1834         gengtype.h
1835         (output_files, header_file, srcdir, srcdir_len, this_file)
1836         (do_dump): No more static variables.
1837         (do_debug): New.
1838         (dbgprint_count_type_at): Added new function.
1839         (gengtype_long_options): New.
1840         (print_usage, print_version, parse_program_options): New.
1841         (main): Call parse_program_options, and removed old option
1842         handling code.  Added some debug output.
1843
1844         * gengtype.h:  Updated copyright year.
1845         (lang_bitmap, struct outf, outf_p, header_file, oprintf)
1846         (get_output_file_with_visibility, srcdir, srcdir_len, do_dump):
1847         Moved from gengtype.c to here.
1848         (do_debug, read_state_filename, write_state_filename): New variables.
1849         (DBGPRINTF, DBGPRINT_COUNT_TYPE): New macros.
1850
1851         * Makefile.in:
1852         (REVISION): Always defined.
1853         (version.o): Removed ifdef REVISION_c.
1854         (s-gtype): Pass arguments to build/gengtype program.
1855         (build/version.o): Added building rule.
1856         (build/gengtype$(build_exeext)): Added build/version.o.
1857
1858 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
1859
1860         Partial merge of 'ObjC GC' from FSF apple 'trunk' branch.
1861         * config/darwin-c.c (darwin_cpp_builtins): Define __weak and
1862         __strong macros.
1863
1864 2010-10-14  Eric Botcazou  <ebotcazou@adacore.com>
1865
1866         * sched-deps.c (sched_insn_is_legitimate_for_speculation): Invoke
1867         may_trap_or_fault_p instead of may_trap_p predicate.
1868         * tree.c (substitute_in_expr): Propagate the TREE_THIS_NOTRAP flag.
1869         (substitute_placeholder_in_expr): Likewise.
1870         * tree-inline.c (remap_gimple_op_r): Propagate the TREE_THIS_NOTRAP
1871         flag on MEM_REF nodes.
1872         (copy_tree_body_r): Propagate the TREE_READONLY and TREE_THIS_NOTRAP
1873         flags on INDIRECT_REF nodes.
1874
1875 2010-10-14  Nathan Froyd  <froydnj@codesourcery.com>
1876
1877         * config.gcc (arm*-*-linux-*eabi) <tm_file>: Add bpabi.h from libgcc.
1878         (arm*-*-uclinux*eabi) <tm_file>: Likewise.
1879         (arm*-*-eabi*) <tm_file>: Likewise.
1880         (frv-*-elf) <tm_file>: Add frv-abi.h from libgcc.
1881         (frv-*-*linux*) <tm_file>: Likewise.
1882         * config/arm/bpabi.h: Delete DECLARE_LIBRARY_RENAMES stanzas
1883         and associated helper macros.
1884         * config/frv/frv-abi.h: Delete.
1885
1886 2010-10-14  Richard Guenther  <rguenther@suse.de>
1887
1888         PR lto/44561
1889         * tree.def (NULLPTR_TYPE): New tree code.
1890         * dbxout.c (dbxout_type): Handle NULLPTR_TYPE.
1891         * dwarf2out.c (is_base_type): Likewise.
1892         (gen_type_die_with_usage): Likewise.
1893         * sdbout.c (plain_type_1): Likewise.
1894         * tree.c (build_int_cst_wide): Likewise.
1895         * gimple.c (gimple_types_compatible_p_1): NULLPTR_TYPE types are equal.
1896
1897 2010-10-14  Joseph Myers  <joseph@codesourcery.com>
1898
1899         * params.c (params_finished): New.
1900         (add_params): Assert !params_finished.
1901         (finish_params): New.
1902         (set_param_value_internal): Take params and params_set
1903         parameters.  Assert params_finished.
1904         (set_param_value, maybe_set_param_value): Take params and
1905         params_set parameters.  Update calls to set_param_value_internal.
1906         (set_default_param_value): Assert !params_finished.  Don't use
1907         set_param_value_internal.
1908         (default_param_value, init_param_values): New.
1909         * params.h (struct param_info): Change value to default_value.
1910         Remove set.
1911         (set_param_value, maybe_set_param_value): Add params and
1912         params_set parameters.
1913         (PARAM_VALUE): Get parameters from global_options.
1914         (PARAM_SET_P): Remove.
1915         (finish_params, default_param_value, init_param_values): New.
1916         * common.opt (param_values): New Variable.
1917         * config/arm/arm.c (arm_option_override): Pass extra arguments to
1918         maybe_set_param_value.
1919         * config/i386/i386.c (ix86_option_override_internal): Pass extra
1920         arguments to maybe_set_param_value.
1921         * config/picochip/picochip.c (picochip_option_override): Pass
1922         extra arguments to maybe_set_param_value.
1923         * config/rs6000/rs6000.c (rs6000_option_override_internal): Pass
1924         extra arguments to maybe_set_param_value.
1925         * config/s390/s390.c (s390_option_override): Use
1926         maybe_set_param_value instead of set_param_value.  Pass extra
1927         arguments to maybe_set_param_value.
1928         * config/sparc/sparc.c (sparc_option_override): Pass extra
1929         arguments to maybe_set_param_value.
1930         * config/spu/spu.c (spu_option_override): Pass extra arguments to
1931         maybe_set_param_value.
1932         * opts.c (handle_param): Take opts and opts_set parameters.
1933         Update call to set_param_value.
1934         (initial_min_crossjump_insns, initial_max_fields_for_field_sensitive,
1935         initial_loop_invariant_max_bbs_in_loop): Remove.
1936         (init_options_once): Don't set them.
1937         (init_options_struct): Initialize parameters structures.
1938         (default_options_optimization): Use default_param_value when
1939         restoring defaults.  Update calls to maybe_set_param_value.
1940         (finish_options): Update calls to maybe_set_param_value.
1941         (common_handle_option): Update calls to handle_param and
1942         set_param_value.
1943         * toplev.c (DEFPARAM): Update definition for changes to param_info.
1944         (general_init): Call finish_params.
1945
1946 2010-10-14  Nick Clifton  <nickc@redhat.com>
1947
1948         * config/mn10300/mn10300.h (CONSTANT_ALIGNMENT): Define.
1949         (DATA_ALIGNMENT, LOCAL_ALIGNMENT): Define.
1950         (FIRST_PSEUDO_REGISTER): Increase by one.
1951         (FIXED_REGISTERS, CALL_USED_REGISTERS): Update with CC_REG.
1952         (HARD_REGNO_MODE_OK): Call mn10300_hard_regno_mode_ok.
1953         (MODES_TIEABLE): Call mn10300_modes_tieable.
1954         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add CC_REGS.
1955         (LEGITIMATE_CONSTANT_P): Call mn10300_legitimate_constant_p.
1956         (CC_OVERFLOW_UNUSABLE, CC_NO_CARRY, NOTICE_UPDATE_CC)
1957         (SELECT_CC_MODE, REVERSIBLE_CC_MODE): Delete.
1958         (REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES): Add CC register.
1959         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
1960         (mn10300_cc_status_mdep): Delete.
1961         (CC_STATUS_MDEP, CC_STATUS_MDEP_INIT): Delete.
1962         * config/mn10300/mn10300 (mn10300_option_override): Stop disabling
1963         the combine-stack-adjust pass.
1964         (print_operand): Use the mode of the comparison operation to
1965         select the comparison suffix.
1966         (notice_update_cc): Delete.
1967         (mn10300_secondary_reload_class): Remove test for stack pointer
1968         based arithmetic.
1969         (output_tst): Rename to mn10300_output_cmp.
1970         (impossible_plus_operand): Move into predicates.md.
1971         (mn10300_legitimize_address): Make static.
1972         (mn10300_legitimate_address_p): Make static.  Only allow SI sized
1973         constant pic operands.
1974         (mn10300_legitimate_constant_p): New function.
1975         (mn10300_case_values_threshold): Make static.
1976         (mn10300_hard_regno_mode_ok): New function.
1977         (mn10300_modes_tieable): New function.
1978         (mn10300_select_cc_mode): New function.
1979         * config/mn10300/predicates.md (impossible_plus_operand): Define.
1980         * config/mn10300/mn10300-protos.h: Tidy.
1981         (mn10300_legitimate_constant_p, mn10300_modes_tieable)
1982         (mn10300_hard_regno_mode_ok, mn10300_select_cc_mode): Prototype.
1983         * config/mn10300/mn10300.md (cc attribute): Delete.  Replace
1984         with clobbers or sets of CC_REG.
1985         (CC_REG): Define.
1986         (mov*): Remove use of CLR instruction.
1987         (cbranch_si4_<code>): New pattern/split.
1988         (integer_conditional_branch): New pattern.
1989         (cbranch_sf4_<code>): New pattern/split.
1990         (float_conditional_branch): New pattern.
1991         (casesi): Use addsi3 pattern instead of movsi pattern to add and
1992         move a value at the same time.
1993         (cc0 peepholes): Remove.
1994
1995 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
1996
1997         * sel-sched-ir.c (init_global_and_expr_for_insn): Set CANT_MOVE
1998         on RTX_FRAME_RELATED_P insns and the insn to which
1999         NOTE_INSN_EPILOGUE_BEG is attached.
2000         * sched-vis.c (print_value): Allow NULL value.
2001
2002 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
2003
2004         PR rtl-optimization/45570
2005         * sel-sched-ir.c (cfg_preds_1): When walking out of the region,
2006         assert that we are pipelining outer loops.  Allow returning
2007         zero predecessors.
2008
2009 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
2010
2011         * sel-sched-ir.c (maybe_tidy_empty_bb): Simplify comment.
2012         (tidy_control_flow): Tidy vertical space.
2013         (sel_remove_bb): New variable idx.  Use it to remember the basic
2014         block index before deleting the block.
2015         (sel_remove_empty_bb): Remove dead code, simplify and insert to ...
2016         (sel_merge_blocks): ... here.
2017         * sel-sched-ir.h (sel_remove_empty_bb): Remove prototype.
2018
2019 2010-10-14  Jakub Jelinek  <jakub@redhat.com>
2020
2021         * cse.c (is_dead_reg): Change into inline function that is not
2022         called through for_each_rtx.
2023         (set_live_p): Adjust caller.
2024         (insn_live_p): Don't reset DEBUG_INSNs here.
2025         (struct dead_debug_insn_data): New data.
2026         (count_stores, is_dead_debug_insn, replace_dead_reg): New functions.
2027         (delete_trivially_dead_insns): If there is just one setter for the
2028         dead reg that is referenced by some DEBUG_INSNs, create a DEBUG_EXPR
2029         and add DEBUG_INSN for it right before the removed setter and
2030         use the DEBUG_EXPR instead of the dead pseudo.
2031
2032 2010-10-14  Zdenek Dvorak  <rakdver@kam.uniff.cz>
2033
2034         * et-forest.c (et_nca): Return NULL immediately when
2035         the dominance forest has disjoint components.
2036
2037 2010-10-13  Vladimir Makarov  <vmakarov@redhat.com>
2038
2039         * ira.c (setup_class_hard_regs): Fix typo in indexing
2040         ira_non_ordered_class_hard_regs and ira_class_hard_reg_index.
2041
2042 2010-10-14  Tijs Wiebe Lefering  <twlevo@gmail.com>
2043
2044         * graph.c (inbb): New variable.
2045         (start_bb): Set inbb to 1 if output is inside of a building block.
2046         (end_bb): Check if output is inside of a building block.
2047
2048 2010-10-13  Eric Botcazou  <ebotcazou@adacore.com>
2049
2050         PR rtl-optimization/45912
2051         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Test the
2052         regno of registers instead of their index to compute the alignment.
2053
2054 2010-10-13  H.J. Lu  <hongjiu.lu@intel.com>
2055
2056         * config/i386/i386.c (ix86_build_const_vector): Check vector
2057         mode instead of scalar mode.
2058         (ix86_build_signbit_mask): Likewise.
2059         (ix86_expand_fp_absneg_operator): Updated.
2060         (ix86_expand_copysign): Likewise.
2061         (ix86_expand_int_vcond): Likewise.
2062         (ix86_emit_swdivsf): Likewise.
2063         (ix86_sse_copysign_to_positive): Likewise.
2064         (ix86_expand_sse_fabs): Likewise.
2065         * config/i386/i386.md (fixuns_trunc<mode>si2): Likewise.
2066         * config/i386/sse.md (copysign<mode>3): Likewise.
2067         (sse2_cvtudq2ps): Likewise.
2068         (vec_unpacku_float_hi_v4si): Likewise.
2069         (vec_unpacku_float_lo_v4si): Likewise.
2070
2071         * config/i386/i386.c (ix86_builtins): Add
2072         IX86_BUILTIN_CPYSGNPS256 and IX86_BUILTIN_CPYSGNPD256.
2073         (bdesc_args): Likewise.
2074         (ix86_builtin_vectorized_function): Support
2075         IX86_BUILTIN_CPYSGNPS256, IX86_BUILTIN_CPYSGNPD256,
2076         IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS_NR256,
2077         and IX86_BUILTIN_CVTPS2DQ256.
2078         (ix86_builtin_reciprocal): Support IX86_BUILTIN_SQRTPS_NR256.
2079
2080         * config/i386/sse.md (STORENT_MODE): New.
2081         (VEC_FLOAT_MODE): Likewise.
2082         (VEC_EXTRACT_MODE): Likewise.
2083         (*avx_cvtdq2pd256_2): Likewise.
2084         (vec_pack_trunc_v4df): Likewise.
2085         (vec_interleave_highv8sf): Likewise.
2086         (vec_interleave_lowv8sf): Likewise.
2087         (storent<mode>): Macroized.
2088         (<code><mode>2: absneg): Likewise.
2089         (copysign<mode>3): Likewise.
2090         (vec_extract<mode>): Likewise.
2091
2092         PR target/44180
2093         * config/i386/i386.c (expand_vec_perm_even_odd_1): Rewritten
2094         for V8SFmode.
2095
2096 2010-10-13  Richard Guenther  <rguenther@suse.de>
2097             H.J. Lu  <hongjiu.lu@intel.com>
2098
2099         * config/i386/sse.md (reduc_splus_v8sf): Add.
2100         (reduc_splus_v4df): Likewise.
2101         (vec_unpacks_hi_v8sf): Likewise.
2102         (vec_unpacks_lo_v8sf): Likewise.
2103         (*avx_cvtps2pd256_2): Likewise.
2104         (vec_unpacks_float_hi_v8si): Likewise.
2105         (vec_unpacks_float_lo_v8si): Likewise.
2106         (vec_interleave_highv4df): Likewise.
2107         (vec_interleave_lowv4df): Likewise.
2108
2109 2010-10-13  Richard Guenther  <rguenther@suse.de>
2110
2111         PR objc/45878
2112         * gimple-fold.c (gimple_fold_obj_type_ref): Leave OBJ_TYPE_REFs
2113         alone if there are no virtual methods.
2114
2115 2010-10-13  Richard Henderson  <rth@redhat.com>
2116
2117         * expr.c (build_personality_function): Take parameter LANG instead
2118         of parameter NAME.  Build the name based on the lang prefix and the
2119         unwind method in use.
2120         * tree.c (lhd_gcc_personality): Update call to
2121         build_personality_function.
2122
2123 2010-10-13  Richard Guenther  <rguenther@suse.de>
2124
2125         PR objc/45878
2126         * tree-ssa-ccpc (ccp_fold_stmt): Use gimple_fold_obj_type_ref.
2127
2128 2010-10-13  Eric Botcazou  <ebotcazou@adacore.com>
2129
2130         * cse.c (cse_insn): Fix thinko in the canonicalization of USE insns.
2131         Canonicalize input operands of ASM_OPERANDS insns.
2132
2133 2010-10-13  Richard Guenther  <rguenther@suse.de>
2134
2135         PR tree-optimization/45788
2136         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Delay
2137         EH update until fixup-cfg.
2138
2139 2010-10-13  Julian Brown  <julian@codesourcery.com>
2140
2141         * config/arm/arm.h (REG_CLASS_CONTENTS): Remove soft frame pointer
2142         from CORE_REGS and GENERAL_REGS classes.
2143         * config/arm/arm.md (*thumb1_movsi_insn): Ignore all parts of
2144         final constraint for register preferencing.
2145
2146 2010-10-13  Richard Guenther  <rguenther@suse.de>
2147
2148         PR tree-optimization/45970
2149         * tree-ssa-alias.h (stmt_kills_ref_p): Declare.
2150         * tree-ssa-alias.c (stmt_kills_ref_p_1): New function.
2151         (stmt_kills_ref_p): Likewise.
2152         * tree-ssa-dse.c (dse_optimize_stmt): Use it.
2153
2154 2010-10-13  Richard Guenther  <rguenther@suse.de>
2155
2156         PR tree-optimization/45982
2157         * tree-ssa-structalias.c (make_constraints_to): New function.
2158         (make_constraint_to): Implement in terms of make_constraints_to.
2159         (find_func_aliases): Properly make return values of pure/const
2160         functions escape if they assign to sth that is not a pointer.
2161
2162 2010-10-13  Richard Guenther  <rguenther@suse.de>
2163
2164         PR middle-end/45874
2165         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
2166         Fixup the CFG when EH was fixed up.
2167
2168 2010-10-13  Ira Rosen  <irar@il.ibm.com>
2169
2170         * tree-vect-slp.c (vect_get_constant_vectors): Fix comment.
2171         Use operand's type for POINTER_PLUS_EXPR.
2172
2173 2010-10-13  Alexandre Oliva  <aoliva@redhat.com>
2174
2175         * c-parser.c (c_parser_for_statement): Initialize incr.
2176
2177 2010-10-12  Xinliang David Li  <davidxl@google.com>
2178
2179         PR tree-optimization/45972
2180         * tree-ssa-uninit.c (compute_uninit_opnds_pos): Skip phis
2181         with too many arguments.
2182
2183 2010-10-12  Jakub Jelinek  <jakub@redhat.com>
2184
2185         PR fortran/45636
2186         * tree-ssa-forwprop.c: Include expr.h.
2187         (constant_pointer_difference, simplify_builtin_call): New functions.
2188         (tree_ssa_forward_propagate_single_use_vars): Call
2189         simplify_builtin_call on builtin calls.
2190
2191 2010-10-12  Eric Botcazou  <ebotcazou@adacore.com>
2192
2193         * config/sparc/sparc.md (*adddi3_insn_sp32): Rename.
2194         (*adddi3_extend_sp32): Likewise.
2195         (*subdi3_insn_sp32): Likewise.
2196         (*subdi3_extend_sp32): Likewise.
2197         (*negdi2_sp32): Use negative test for consistency.
2198
2199 2010-10-12  Nathan Froyd  <froydnj@codesourcery.com>
2200
2201         * libgcc2.h: Use __SIZEOF_DOUBLE__ instead of LIBGCC2_DOUBLE_TYPE_SIZE.
2202         (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
2203         * config/fixed-bit.h: Likewise.
2204         * config/rx/rx.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
2205         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
2206         * system.h (LIBGCC2_DOUBLE_TYPE_SIZE): Poison.
2207         * doc/tm.texi.in (LIBGCC2_HAS_DF_MODE): Use DOUBLE_TYPE_SIZE.
2208         (DF_SIZE): Likewise.
2209         * doc/tm.texi: Regenerate.
2210
2211 2010-10-12  Nathan Froyd  <froydnj@codesourcery.com>
2212
2213         * config/rs6000/predicates.md (scc_rev_comparison_operator): New.
2214         * config/rs6000/rs6000.md (*isel_reversed_signed_<mode>): New.
2215         (*isel_reversed_unsigned_<mode>): New.
2216         * config/rs6000/rs6000.c (output_isel): Accept GE/GEU/LE/LEU/NE
2217         as valid comparisons and adjust operands and output appropriately.
2218         (rs6000_rtx_costs) <CONST_INT>: Accept NE as a cost-0 outer_code.
2219
2220 2010-10-12  Chung-Lin Tang  <cltang@codesourcery.com>
2221
2222         * config/arm/arm.h (ARM_EXPAND_ALIGNMENT): Rename from
2223         DATA_ALIGNMENT and add COND parameter. Update comments above.
2224         (DATA_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !optimize_size.
2225         (LOCAL_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !flag_conserve_stack.
2226
2227 2010-10-12  H.J. Lu  <hongjiu.lu@intel.com>
2228
2229         PR bootstrap/45958
2230         * exec-tool.in: Support '-plugin' as the second option to the linker.
2231
2232 2010-10-12  Richard Henderson  <rth@redhat.com>
2233
2234         PR middle-end/45962
2235         * cfgexpand.c (add_stack_var): Ensure every variable has 1 byte.
2236         (expand_stack_vars): Assert large base allocated when used.
2237
2238 2010-10-12  Richard Guenther  <rguenther@suse.de>
2239
2240         * tree-ssa-structalias.c (get_constraint_for_1): Constants
2241         only point to nonlocal, not anything.
2242
2243 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
2244
2245         * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Use sjlj
2246         unwind info for exceptions.
2247
2248 2010-10-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2249
2250         PR testsuite/45851
2251         * doc/sourcebuild.texi (LTO Testing, dg-extra-ld-options):
2252         Document optional target selector.
2253
2254 2010-10-12  Joseph Myers  <joseph@codesourcery.com>
2255
2256         * flag-types.h: New.
2257         * Makefile.in (TH_H): Include $(OPTIONS_H) instead of $(FLAGS_H).
2258         (FLAGS_H): Include flag-types.h.  Include $(OPTIONS_H) instead of
2259         options.h.
2260         (OPTIONS_H): Define.
2261         (c-family/c-opts.o, lto-opts.o, opts.o): Use $(OPTIONS_H) instead
2262         of options.h.
2263         * configure.ac (tm_include_list): Include options.h not flags.h.
2264         * configure: Regenerate.
2265         * flags.h: Include flag-types.h.  Include options.h at top of file
2266         again.
2267         (enum debug_info_type, enum debug_info_level, enum
2268         debug_info_usage, enum symbol_visibility, struct visibility_flags,
2269         enum ira_algorithm, enum ira_region, enum excess_precision, enum
2270         graph_dump_types, enum stack_check_type,
2271         enum warn_strict_overflow_code): Move to flag-types.h
2272         * opth-gen.awk: Include flag-types.h in options.h.
2273
2274 2010-10-12  Jakub Jelinek  <jakub@redhat.com>
2275
2276         * expr.c (store_expr): Share code for STRING_CST and
2277         MEM_REF of &STRING_CST cases.  Don't require BLKmode, instead
2278         check if target is a MEM.
2279
2280         * rtl.h: Include hashtab.h.
2281         (iterative_hash_rtx): New prototype.
2282         * rtl.c (iterative_hash_rtx): New function.
2283         * dwarf2out.c (dw_loc_list_node): Add hash and emitted fields.
2284         (output_loc_list): Return immediately if emitted is set, set it.
2285         (hash_loc_operands, hash_locs, hash_loc_list,
2286         compare_loc_operands, compare_locs, loc_list_hash, loc_list_eq,
2287         optimize_location_lists_1, optimize_location_lists): New function.
2288         (dwarf2out_finish): Call optimize_location_lists.
2289         * Makefile.in (RTL_BASE_H): Depend on $(HASHTAB_H).
2290
2291 2010-10-12  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2292
2293         PR testsuite/45974
2294         Revert:
2295         * Makefile.in ($(lang_checks_parallel))
2296         ($(lang_checks_parallelized)): Use single quotes for
2297         $(RUNTESTFLAGS), to allow passing quoted content.
2298
2299 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2300
2301         * config/pa/linux-atomic.c (__sync_val_compare_and_swap_4): Return
2302         actual_oldval.  Use __builtin_expect.
2303         (SUBWORD_VAL_CAS): Likewise.
2304
2305 2010-10-11  Nathan Froyd  <froydnj@codesourcery.com>
2306
2307         * recog.c (nonmemory_operand): Call immediate_operand for
2308         CONSTANT_P operands.
2309
2310 2010-10-11  Uros Bizjak  <ubizjak@gmail.com>
2311
2312         * config/i386/i386.md (movmem<mode>): Macroize expander from
2313         movmem{si,di} using SWI48 mode iterator.
2314         (*strmovsi_1): Macroize insn pattern from *strmovsi_1 and
2315         *strmovsi_rex_1 using P mode iterator.
2316         (*strmovhi_1): Ditto from *strmovhi_1 and *strmovhi_rex_1.
2317         (*strmovqi_1): Ditto from *strmovqi_1 and *strmovqi_rex_1.
2318         (*rep_movsi): Ditto from *rep_movsi and *rep_movsi_rex64.
2319         (*rep_movqi): Ditto from *rep_movqi and *rep_movqi_rex64.
2320         (setmem<mode>): Macroize expander from setmem{si,di} using
2321         SWI48 mode iterator.
2322         (*strsetsi_1): Macroize insn pattern from *strsetsi_1 and
2323         *strsetsi_rex_1 using P mode iterator.
2324         (*strsethi_1): Ditto from *strsethi_1 and *strsethi_rex_1.
2325         (*strsetqi_1): Ditto from *strsetqi_1 and *strsetqi_rex_1.
2326         (*rep_stossi): Ditto from *rep_stossi and *rep_stossi_rex64.
2327         (*rep_stosqi): Ditto from *rep_stosqi and *rep_stosqi_rex64.
2328         (*cmpstrnqi_nz_1): Ditto from *cmpstrnqi_nz_1 and *cmpstrnqi_nz_rex_1.
2329         (*cmpstrnqi_1): Ditto from *cmpstrnqi_1 and *cmpstrnqi_rex_1.
2330         (strlen<mode>): Macroize expander from strlen{si,di} using SWI48x
2331         mode iterator.
2332         (*strlenqi_1): Macroize insn pattern from *strlenqi_1 and
2333         *strlenqi_rex_1 using P mode iterator.
2334
2335 2010-10-11  Bernd Schmidt  <bernds@codesourcery.com>
2336
2337         PR bootstrap/45445
2338         * ira-lives.c (mark_pseudo_reg_live, mark_pseudo_reg_dead): New
2339         static functions.
2340         (mark_ref_live, mark_ref_dead): Use them.
2341         (make_pseudo_conflict): New arg ORIG_DREG.  All callers changed.
2342         Save the original reg, and use the new functions.
2343         (check_and_make_def_use_conflict): New arg ORIG_DREG.  All callers
2344         changed.
2345         (check_and_make_def_conflict): Save the original reg.
2346
2347 2010-10-11  Martin Jambor  <mjambor@suse.cz>
2348
2349         PR middle-end/45699
2350         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Choose among
2351         thunks.
2352
2353 2010-10-11  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2354
2355         * Makefile.in ($(lang_checks_parallel))
2356         ($(lang_checks_parallelized)): Use single quotes for
2357         $(RUNTESTFLAGS), to allow passing quoted content.
2358
2359         PR bootstrap/35855
2360         * opt-functions.awk (BEGIN): New section.
2361         (lower, upper, digit, alnum): New variables.
2362         (static_var, opt_sanitized_name): Use alnum instead of character
2363         classes, for non-C locale.
2364         * optc-gen.awk: Likewise.
2365         * opth-gen.awk: Likewise.
2366
2367 2010-10-11  Anatoly Sokolov  <aesok@post.ru>
2368
2369         * target.def (preferred_reload_class): New hook.
2370         * doc/tm.texi.in (TARGET_PREFERRED_RELOAD_CLASS): Document.
2371         * doc/tm.texi: Regenerate.
2372         * targhooks.c (default_preferred_reload_class): New function.
2373         * targhooks.h (default_preferred_reload_class): Declare.
2374         * reload.c (find_dummy_reload): Change preferred_class variable type
2375         from enum reg_class to reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS
2376         target hook.
2377         (find_reloads): Change goal_alternative array type from int to
2378         reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS target hook.
2379         (push_reload, find_reloads_address_part): Use
2380         TARGET_PREFERRED_RELOAD_CLASS target hook.
2381         * reload1.c (emit_input_reload_insns): Ditto.
2382         * ira-costs.c (copy_cost): Use TARGET_PREFERRED_RELOAD_CLASS target
2383         hook. Change rclass argument and secondary_class variable types from
2384         'enum reg_class' to reg_class_t.
2385
2386         * config/i386/i386.h (PREFERRED_RELOAD_CLASS): Remove.
2387         * config/i386/i386-protos (ix86_preferred_reload_class): Remove.
2388         * config/i386/i386.c (ix86_preferred_reload_class): Make static.
2389         Change regclass argument and result types from enum reg_class to
2390         reg_class_t.
2391         (TARGET_PREFERRED_RELOAD_CLASS): Define.
2392
2393 2010-10-11  Eric Botcazou  <ebotcazou@adacore.com>
2394
2395         * simplify-rtx.c (simplify_unary_operation_1): Use unsigned arithmetics
2396         in masking operations.
2397         (simplify_const_unary_operation): Likewise.
2398         (simplify_binary_operation_1): Likewise.
2399         (simplify_const_binary_operation): Likewise.
2400         (simplify_const_relational_operation): Likewise.
2401         (simplify_ternary_operation): Likewise.
2402         (simplify_immed_subreg): Likewise.
2403
2404 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2405
2406         PR middle-end/45862
2407         * doc/tm.texi.in (SUPPORTS_WEAK): Update.
2408         (TARGET_SUPPORTS_WEAK): New.
2409         * doc/tm.texi: Regenerate.
2410         * defaults.h (SUPPORTS_WEAK): Update comment.
2411         (TARGET_SUPPORTS_WEAK): New.
2412         * dwarf2asm.c (USE_LINKONCE_INDIRECT): Update define.
2413         * varasm.c (assemble_external): Use TARGET_SUPPORTS_WEAK instead of
2414         SUPPORTS_WEAK.
2415         (merge_weak, declare_weak, do_assemble_alias, supports_one_only,
2416         make_decl_one_only): Likewise.
2417         * config/pa/som.h (SUPPORTS_WEAK): Rename defines to
2418         TARGET_SUPPORTS_WEAK.
2419         (SUPPORTS_ONE_ONLY, MAKE_DECL_ONE_ONLY): Use TARGET_SUPPORTS_WEAK
2420         instead of SUPPORTS_WEAK.
2421
2422 2010-10-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2423
2424         * config/sparc/gmon-sol2.c: Don't include coretypes.h, tm.h.
2425
2426 2010-10-11  Nathan Froyd  <froydnj@codesourcery.com>
2427
2428         * vec.h (VEC_qsort): Define.
2429         * dbxout.c (output_used_types): Use it.
2430         * df-scan.c (df_sort_and_compress_refs): Likewise.
2431         (df_sort_and_compress_mws): Likewise.
2432         * genautomata.c (uniq_sort_alt_states): Likewise.
2433         (evaluate_equiv_classes): Likewise.
2434         (output_trans_table): Likewise.
2435         (output_state): Likewise.
2436         * gimplify.c (compare_case_labels): Likewise.
2437         * graphite-sese-to-poly.c (graphite_sort_dominated_info): Likewise.
2438         * ipa.c (build_cdtor_fns): Likewise.
2439         * lto.c (lto_wpa_write_files): Likewise.
2440         * sel-sched.c (fill_vec_av_set): Likewise.
2441         * tree-predcom.c (determine_roots_comp): Likewise.
2442         * tree-sra.c (sort_and_spliace_var_accesses): Likewise.
2443         (splice_param_accesses): Likewise.
2444         * tree-ssa-live.c (dump_enumerated_decls): Likewise.
2445         * tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
2446         (reassociate_bb): Likewise.
2447         * tree-ssa-sccvn.c (sort_scc): Likewise.
2448         * tree-ssa-structalias.c (sort_fieldstack): Likewise.
2449
2450 2010-10-11  Ian Lance Taylor  <iant@google.com>
2451
2452         * tree.h (TREE_THIS_NOTRAP): Use TREE_CHECK5.
2453         * emit-rtl.c (set_mem_attributes_minus_bitpos): Only check
2454         TREE_THIS_NOTRAP when appropriate.
2455         (get_spill_slot_decl): Don't set TREE_THIS_NOTRAP on the new VAR_DECL.
2456         * gimplify.c (gimplify_expr): Copy NOTRAP from INDIRECT_REF to
2457         newly created MEM_REF.
2458
2459 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
2460
2461         Nathan Froyds patch to hooks FUNCTION_ARG etc.
2462         * config/picochip/picochip-protos.h (picochip_function_arg): Delete.
2463         (picochip_incoming_function_arg): Delete.
2464         (picochip_arg_advance): Delete.
2465         * config/picochip/picochip.h (FUNCTION_ARG): Delete.
2466         (FUNCTION_INCOMING_ARG): Delete.
2467         (FUNCTION_ARG_ADVANCE): Delete.
2468         * config/picochip/picochip.c (picochip_function_arg): Take a
2469         const_tree and a bool.
2470         (picochip_incoming_function_arg): Likewise.
2471         (picochip_arg_advance): Likewise.
2472         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
2473         (TARGET_FUNCTION_ARG_ADVANCE): Define.
2474
2475 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2476
2477         PR middle-end/45955
2478         * ipa.c (build_cdtor): Delete endless loop.
2479
2480 2010-10-07  Andi Kleen  <ak@linux.intel.com>
2481
2482         * Makefile.in (MOSTLYCLEANFILES): Remove cc1*dummy, add
2483         checksum-options.
2484         (checksum-options): Add.
2485         (cc1-dummy): Remove.
2486         (cc1-checksum): Change to run checksum over object files
2487         and options only.
2488         * dummy-checksum.c: Remove.
2489         * genchecksum.c: Update copyright.
2490         (usage): Allow multiple arguments.
2491         (BLOCKSIZE): Add.
2492         (dosum): Change for incremental checksum. Remove C output.
2493         (main): Iterate over all argument files. Add C output.
2494
2495 2010-10-11  Joseph Myers  <joseph@codesourcery.com>
2496
2497         * params.c (set_param_value_internal): New.
2498         (set_param_value): Use set_param_value_internal.
2499         (maybe_set_param_value, set_default_param_value): New.
2500         * params.h (PARAM_VALUE, PARAM_SET_P): Make into rvalues.
2501         (maybe_set_param_value, set_default_param_value): Declare.
2502         * config/arm/arm.c (arm_option_override): Use maybe_set_param_value.
2503         * config/i386/i386.c (ix86_option_override_internal): Use
2504         maybe_set_param_value.
2505         * config/ia64/ia64.c (ia64_option_default_params,
2506         TARGET_OPTION_DEFAULT_PARAMS): New.
2507         (ia64_option_optimization): Move some code to
2508         ia64_option_default_params.
2509         * config/picochip/picochip.c (picochip_option_override): Use
2510         maybe_set_param_value.
2511         * config/rs6000/rs6000.c (rs6000_option_default_params,
2512         TARGET_OPTION_DEFAULT_PARAMS): New.
2513         (rs6000_option_override_internal): Use maybe_set_param_value.
2514         (rs6000_option_optimization): Move some code to
2515         rs6000_option_default_params.
2516         * config/s390/s390.c (s390_option_override): Use maybe_set_param_value.
2517         * config/sh/sh.c (sh_option_default_params,
2518         TARGET_OPTION_DEFAULT_PARAMS): New.
2519         (sh_option_optimization): Move some code to sh_option_default_params.
2520         * config/sparc/sparc.c (sparc_option_override): Use
2521         maybe_set_param_value.
2522         * config/spu/spu.c (spu_option_default_params,
2523         TARGET_OPTION_DEFAULT_PARAMS): New.
2524         (spu_option_optimization): Move some code to spu_option_default_params.
2525         (spu_option_override): Use maybe_set_param_value.
2526         * doc/tm.texi.in (TARGET_OPTION_DEFAULT_PARAMS): New @hook.
2527         * doc/tm.texi: Regenerate.
2528         * ggc-common.c (init_ggc_heuristics): Use set_default_param_value.
2529         * opts.c (init_options_once): Use PARAM_VALUE not direct access to
2530         compiler_params.
2531         (default_options_optimization): Use maybe_set_param_value.
2532         (finish_options): Use maybe_set_param_value.
2533         * target.def (target_option.default_params): New hook.
2534         * toplev.c (general_init): Call targetm.target_option.default_params.
2535
2536 2010-10-11  Ira Rosen  <irar@il.ibm.com>
2537
2538         PR tree-optimization/45902
2539         * tree-vect-slp.c (vect_get_constant_vectors): Use statement's
2540         vector type for constants, unless it's a pointer.
2541
2542 2010-10-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2543
2544         * config/s390/s390.md (*mov<mode>cc): lgoc -> locg and stgoc -> stocg.
2545
2546 2010-10-11  Jakub Jelinek  <jakub@redhat.com>
2547
2548         PR target/45870
2549         * config/i386/i386.c (ix86_delegitimize_tls_address): New function.
2550         (ix86_delegitimize_address): Use it.
2551
2552 2010-10-10  Eric Botcazou  <ebotcazou@adacore.com>
2553
2554         * opt-functions.awk (opt_sanitized_name): Remove gdwarf+ handling.
2555
2556 2010-10-10  Uros Bizjak  <ubizjak@gmail.com>
2557
2558         * config/alpha/alpha.c (alpha_setup_incoming_varargs): Pass pointer
2559         to cum struct in the call to function_arg_advance.
2560         (alpha_function_arg_advance): Mark named as unused.
2561
2562 2010-10-10  Richard Sandiford  <rdsandiford@googlemail.com>
2563
2564         * config/mips/mips.c (mips_handle_option): Make "value" with
2565         ATTRIBUTE_UNUSED.
2566
2567 2010-10-09  Richard Henderson  <rth@redhat.com>
2568
2569         PR rtl-opt/33721
2570         * explow.c (allocate_dynamic_stack_space): Add REQUIRED_ALIGN parm,
2571         remove TARGET parm, convert KNOWN_ALIGN parm to SIZE_ALIGN.  Honor
2572         required_align, tidy the code a bit.  Emit split_stack code in the
2573         right place.  Mark the return value with the alignment properly.
2574         * expr.h (allocate_dynamic_stack_space): Update decl.
2575         * builtins.c (expand_builtin_apply): Update call to
2576         allocate_dynamic_stack_space.
2577         (expand_builtin_alloca): Likewise.  Remove TARGET parameter.
2578         * calls.c (initialize_argument_information): Update call to
2579         allocate_dynamic_stack_space.
2580         (expand_call): Likewise.
2581
2582         * cfgexpand.c (get_decl_align_unit): Don't limit alignment.
2583         Don't update_stack_alignment here.
2584         (alloc_stack_frame_space): Make ALIGN unsigned.
2585         (stack_var_cmp): Sort by alignment too.
2586         (partition_stack_vars): Don't merge large and small alignment vars.
2587         (expand_one_stack_var_at): Add BASE and BASE_ALIGN parameters.
2588         Take care when BASE is not virtual_stack_vars_rtx.
2589         (expand_stack_vars): Allocate dynamic stack space for large
2590         alignment variables.
2591         (expand_one_stack_var): Update all to expand_one_stack_var_at.
2592         (defer_stack_allocation): True for large alignment vars.
2593         (update_stack_alignment): Merge into ...
2594         (expand_one_var): ... here.
2595         (gimple_expand_cfg): Place code from expand_stack_vars.
2596
2597 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
2598
2599         * config/pdp11/pdp11.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2600         * config/pdp11/pdp11.c (pdp11_function_arg): New function.
2601         (pdp11_function_arg_advance): New function.
2602         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2603
2604 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
2605
2606         * libgcc2.h: Use __SIZEOF_LONG_LONG__ instead of LONG_LONG_TYPE_SIZE.
2607         * libgcc2.c: Likewise.
2608
2609 2010-10-09  Richard Guenther  <rguenther@suse.de>
2610
2611         PR lto/45956
2612         * lto-streamer-in.c (lto_register_var_decl_in_symtab):
2613         Properly check if a decl is an automatic var.
2614
2615 2010-10-09  Richard Guenther  <rguenther@suse.de>
2616
2617         PR lto/45947
2618         * tree.c (free_lang_data_in_cgraph): Properly walk the varpool.
2619
2620 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
2621
2622         * config/mmix/mmix-protos.h (mmix_function_arg): Delete.
2623         * config/mmix/mmix.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2624         * config/mmix/mmix.c (mmix_function_arg): Rename to...
2625         (mmix_function_arg_1): ...this.  Make static.  Take a const_tree and
2626         bool arguments.
2627         (mmix_function_arg): New function.
2628         (mmix_function_incoming_arg): New function.
2629         (mmix_function_arg_advance): New function.
2630         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
2631         (TARGET_FUNCTION_ARG_ADVANCE): Define.
2632
2633 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
2634
2635         * config/vax/vax.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2636         * config/vax/vax.c (vax_function_arg): New function.
2637         (vax_function_arg_advance): New function.
2638         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2639
2640 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
2641
2642         * config/pa/pa-protos.h (function_arg): Delete.
2643         * config/pa/pa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2644         * config/pa/pa.c (function_arg): Rename to...
2645         (pa_function_arg): ...this.  Make static.  Take a const_tree and
2646         a bool.
2647         (pa_function_arg_advance): New function.
2648         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2649
2650 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
2651
2652         * config/m68k/m68k.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2653         * config/m68k/m68k.c (m68k_function_arg): New function.
2654         (m68k_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         * config/avr/avr-protos.h (function_arg): Delete.
2660         (function_arg_advance): Delete.
2661         * config/avr/avr.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2662         * config/avr/avr.c (function_arg): Rename to...
2663         (avr_function_arg): ...this.  Make static.  Take a const_tree and
2664         a bool.
2665         (function_arg_advance): Rename to...
2666         (avr_function_arg_advance): ...this.  Make static.  Take a
2667         const_tree and a bool.
2668         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2669
2670 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
2671
2672         * config/alpha/alpha-protos.h (function_arg): Delete.
2673         * config/alpha/alpha.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2674         * config/alpha/vms.h (FUNCTION_ARG_ADVANCE): Delete.
2675         * config/alpha/alpha.c (function_arg): Rename to...
2676         (alpha_function_arg): ...this.  Make static.  Take a const_tree and
2677         a bool.  Delete TARGET_ABI_UNICOSMK code.
2678         (alpha_function_arg_advance): New function.
2679         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2680
2681 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
2682
2683         * config/mep/mep-protos.h (mep_function_arg): Delete.
2684         (mep_function_arg_advance): Delete.
2685         * config/mep/mep.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2686         * config/mep/mep.c (mep_function_arg): Make static.  Take a
2687         const_tree and a bool.
2688         (mep_function_arg_advance): Likewise.
2689         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2690
2691 2010-10-09  Richard Guenther  <rguenther@suse.de>
2692
2693         PR tree-optimization/45945
2694         * tree-ssa.c (execute_update_addresses_taken): Fixup LHS scanning.
2695
2696 2010-10-09  Eric Botcazou  <ebotcazou@adacore.com>
2697
2698         PR tree-optimization/45612
2699         * ipa-split.c (test_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.
2700         Test LABEL_DECLs as well.  Fix formatting issues.
2701         (verify_non_ssa_vars): Return false for a GIMPLE_LABEL statement
2702         whose label is present in NON_SSA_VARS.
2703         (mark_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.  Handle LABEL_DECLs
2704         as well.  Fix formatting issues.
2705         (visit_bb): Fix typos and formatting issue.
2706
2707 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
2708
2709         PR tree-optimization/45950
2710         * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): Consult length
2711         before initializing vno->op.
2712
2713 2010-10-09  Ralf Corsépius <ralf.corsepius@rtems.org>
2714
2715         * config.gcc (bfin*-rtems*): Add newlib-stdint.h.
2716         * config.gcc (lm32*-rtems*): Add newlib-stdint.h.
2717
2718 2010-10-08  H.J. Lu  <hongjiu.lu@intel.com>
2719
2720         PR target/45913
2721         * config/i386/i386.c (ix86_binary_operator_ok): Support
2722         "andhi/andsi/anddi" as a zero-extending move.
2723
2724 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
2725
2726         * builtins.c (fold_call_stmt): Don't copy gimple call arguments
2727         into a temporary array.
2728
2729 2010-10-08  Jakub Jelinek  <jakub@redhat.com>
2730
2731         PR tree-optimization/45903
2732         * simplify-rtx.c (simplify_subreg): Optimize lowpart SUBREG
2733         of {A,L}SHIFTRT of MEM.
2734
2735 2010-10-08  Richard Guenther  <rguenther@suse.de>
2736
2737         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
2738         Re-construct BLOCK_VARS.
2739         (lto_input_ts_block_tree_pointers): Do not stream BLOCK_VARS.
2740         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
2741         * tree.c (free_lang_data_in_block): Remove.
2742         (free_lang_data_in_decl): Do not touch DECL_CONTEXT of non-PARM_DECLs.
2743         Do not touch the BLOCK tree.
2744         * expr.c (expand_expr_real_1): Allow externals.
2745
2746 2010-10-08  Richard Guenther  <rguenther@suse.de>
2747
2748         * lto-streamer-out.c (lto_output_ts_block_tree_pointers):
2749         Do not output BLOCK_SUBBLOCKS.
2750         * lto-streamer-in.c (lto_input_ts_block_tree_pointers):
2751         Reserve exact space needed for BLOCK_NONLOCALIZED_VARS.
2752         Re-construct BLOCK_SUBBLOCKS of parent block.
2753         (lto_input_ts_binfo_tree_pointers): Reserve exact space needed
2754         for BINFO_BASE_ACCESSES.
2755
2756 2010-10-08  Joseph Myers  <joseph@codesourcery.com>
2757
2758         * Makefile.in (TM_H): Include $(FLAGS_H) instead of options.h.
2759         (TREE_H): Include $(FLAGS_H) instead of options.h.
2760         (opts-common.o): Depend on $(FLAGS_H) instead of options.h.
2761         * c-objc-common.h (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
2762         * common.opt (flag_complex_method, flag_evaluation_order,
2763         flag_ira_algorithm, flag_ira_region, flag_warn_unused_result): New
2764         Variable declarations.
2765         * configure.ac (tm_include_list): Include flags.h instead of options.h.
2766         * configure: Regenerate.
2767         * flags.h: Condition out contents for target libraries.  Include
2768         options.h at end of file.
2769         (flag_complex_method, flag_ira_algorithm, flag_ira_region,
2770         flag_evaluation_order, flag_warn_unused_result): Remove.
2771         * gcc.c (main): Intialize global_options with global_options_init.
2772         * langhooks-def.h (lhd_init_options_struct): Declare.
2773         (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
2774         (LANG_HOOKS_INITIALIZER): Include LANG_HOOKS_INIT_OPTIONS_STRUCT.
2775         * langhooks.c (lhd_init_options_struct): New.
2776         * langhooks.h (struct lang_hooks): Add init_options_struct.
2777         Update comment on init_options.
2778         * optc-gen.awk: Generate initializer for global_options_init, not
2779         global_options.
2780         * opth-gen.awk: Condition out structure declarations for target
2781         libraries.  Declare global_options_init.
2782         * opts-common.c: Include flags.h instead of options.h.
2783         * opts.c (flag_warn_unused_result): Remove.
2784         (read_cmdline_options): Take gcc_options parameters.  Pass them to
2785         read_cmdline_option.
2786         (initial_lang_mask, initial_min_crossjump_insns,
2787         initial_max_fields_for_field_sensitive,
2788         initial_loop_invariant_max_bbs_in_loop): Define at file scope.
2789         (init_options_once): New.  Split out of decode_options.
2790         (init_options_struct): New.  Split out of decode_options.
2791         (decode_cmdline_options_to_array_default_mask): New.
2792         (default_options_optimization): New.  Split out of decode_options.
2793         (decode_options): Move most code to other functions.  Update call
2794         to read_cmdline_options.
2795         (finish_options): New.  Split out of decode_options.
2796         * opts.h (decode_options): Add gcc_options parameters.
2797         (init_options_once, init_options_struct,
2798         decode_cmdline_options_to_array_default_mask): New.
2799         * toplev.c (flag_complex_method, flag_ira_algorithm,
2800         flag_ira_region, flag_evaluation_order): Remove.
2801         (general_init): Use global_options_init for initial flag values
2802         for global_dc.
2803         (toplev_main): Call init_options_once, init_options_struct,
2804         lang_hooks.init_options_struct,
2805         decode_cmdline_options_to_array_default_mask and
2806         lang_hooks.init_option before decode_options.  Update arguments to
2807         decode_options.
2808         * tree.h: Include flags.h instead of options.h.
2809
2810 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
2811
2812         * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
2813
2814 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
2815
2816         * config/sparc/sparc-protos.h (function_arg_advance, function-arg):
2817         Delete.
2818         * config/sparc/sparc.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
2819         (FUNCTION_INCOMING_ARG): Delete.
2820         * config/sparc/sparc.c (scan_record_type): Const-ify tree argument.
2821         (function_arg_slotno): Likewise.  Take bool arguments.
2822         (sparc_arg_partial_bytes): Update call to it.
2823         (function_arg): Rename to...
2824         (sparc_function_arg_1): ...this.  Take bool arguments.
2825         (sparc_function_arg, sparc_function_incoming_arg): New functions.
2826         (function_arg_advance): Rename to...
2827         (sparc_function_arg_advance): ...this.  Take bool argument.
2828         (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG): Define.
2829         (TARGET_FUNCTION_INCOMING_ARG): Define.
2830
2831 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
2832
2833         * config/bfin/bfin-protos.h (function_arg, function_arg_advance):
2834         Delete.
2835         * config/bfin/bfin.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2836         * config/bfin/bfin.c (function_arg_advance): Rename to...
2837         (bfin_function_arg_advance): ...this.  Make static.  Take const_tree
2838         and bool arguments.
2839         (function_arg): Rename to...
2840         (bfin_function_arg): ...this.  Make static.  Take const_tree and bool
2841         arguments.
2842         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2843
2844 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
2845
2846         * config/score/score-protos.h (score_function_arg): Delete.
2847         (score_function_arg_advance): Delete.
2848         * config/score/score3.h (score3_function_arg_advance): Take a
2849         const_tree and a bool.
2850         (score3_function_arg): Likewise.
2851         * config/score/score7.h (score7_function_arg_advance): Likewise.
2852         (score7_function_arg): Likewise.
2853         * config/score/score3.c (score3_classify_arg): Likewise.
2854         (score3_function_arg_advance, score3_function_arg): Likewise.
2855         * config/score/score7.c (score7_classify_arg): Likewise.
2856         (score7_function_arg_advance, score7_function_arg): Likewise.
2857         * config/score/score.c (score_function_arg_advance): Likewise.
2858         (score_function_arg): Likewise.  De-const-ify `cum' argument.
2859         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2860
2861 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
2862
2863         * config/s390/s390-protos.h (s390_function_arg_advance): Delete.
2864         (s390_function_arg): Delete.
2865         * config/s390/s390.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2866         * config/s390/s390.c (s390_function_arg_float): Take a const_tree.
2867         (s390_function_arg_integer): Likewise.
2868         (s390_function_arg_advance): Make static.  Take a const_tree and
2869         a bool.
2870         (s390_function_arg): Likewise.
2871         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2872
2873 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
2874
2875         * config/spu/spu-protos.h (spu_function_arg): Delete.
2876         * config/spu/spu.h (FUNCTION_ARG): Delete.
2877         (FUNCTION_ARG_ADVANCE): Move code to ...
2878         * config/spu/spu.c (spu_function_arg_advance): New function.
2879         (spu_function_arg): Make static.  Take a const_tree and a bool.
2880         (spu_setup_incoming_varargs): Call spu_function_arg_advance.
2881         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2882
2883 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
2884
2885         * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
2886
2887 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
2888
2889         * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): New function.
2890         (init_vn_nary_op_from_op): New function.
2891         (init_vn_nary_op_from_stmt): New function.
2892         (vn_nary_op_lookup_1): New function.
2893         (sizeof_vn_nary_op): New function.
2894         (alloc_vn_nary_op_noinit): New function.
2895         (alloc_vn_nary_op): New function.
2896         (vn_nary_op_insert_into): New function.
2897         (vn_nary_op_lookup_pieces): Rewrite to use new helper functions.
2898         (vn_nary_op_lookup): Likewise.
2899         (vn_nary_op_lookup_stmt): Likewise.
2900         (vn_nary_op_insert_pieces): Likewise.
2901         (vn_nary_op_insert): Likewise.
2902         (vn_nary_op_insert_stmt): Likewise.
2903         (copy_nary): Likewise.
2904         (set_value_id_for_result): New function.
2905         (set_hashtable_value_ids): Call it.
2906
2907 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
2908
2909         * config/fr30/fr30.c (TARGET_EXCEPT_UNWIND_INFO): Define.
2910         * config/fr30/fr30.md (leave_func): Rewrite without post_inc.
2911
2912 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
2913
2914         * config/mcore/mcore.h (INCOMING_RETURN_ADDR_RTX): Define.
2915         * config/mcore/mcore.c (TARGET_EXCEPT_UNWIND_INFO): Define.
2916
2917 2010-10-08  Alexandre Oliva  <aoliva@redhat.com>
2918
2919         PR debug/45656
2920         * cse.c (cse_extended_basic_block): Preserve cc0 info across
2921         debug isnsn.  Skip them when searching for cc0 setter.
2922         (set_live_p): Skip debug insns when searching for cc0 user.
2923
2924 2010-10-08  Alexandre Oliva  <aoliva@redhat.com>
2925
2926         PR debug/45673
2927         PR debug/45604
2928         PR debug/45419
2929         PR debug/45408
2930         * tree-pretty-print.c (dump_generic_node): Explicitly dump the
2931         type of MEM_REFs to INTEGER_CSTs.
2932
2933 2010-10-07  Nathan Froyd  <froydnj@codesourcery.com>
2934
2935         * config/m68hc11/m68hc11.c (m68hc11_print_operand): Call
2936         m68hc11_print_operand_address.
2937
2938 2010-10-07  Nathan Froyd  <froydnj@codesourcery.com>
2939
2940         * builtins.c (rewrite_call_expr): Move code to...
2941         (rewrite_call_expr_valist): ...here.  Call build_call_expr_loc_array.
2942         (rewrite_call_expr_array): New function.
2943         (fold_builtin_sprintf_chk_1): New function.
2944         (fold_builtin_sprintf_chk): Call it.
2945         (gimple_fold_builtin_sprintf_chk): Likewise.
2946         (fold_builtin_snprintf_chk_1): New function.
2947         (fold_builtin_snprintf_chk): Call it.
2948         (gimple_fold_builtin_snprintf_chk): Likewise.
2949         (gimple_rewrite_call_expr): Delete.
2950
2951 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
2952
2953         * config.host: Update copyright year.
2954
2955 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
2956
2957         * config.host (host_lto_plugin_soname): New shell variable.
2958         * configure.ac (LTOPLUGINSONAME): Add an AC_DEFINE for the above.
2959         * config.in: Regenerate.
2960         * configure: Regenerate.
2961         * gcc.c (main): Use LTOPLUGINSONAME instead of hard-coding name of
2962         LTO plugin shared library.
2963
2964 2010-10-07  Richard Henderson  <rth@redhat.com>
2965
2966         * target.h (enum unwind_info_type): Move ...
2967         * coretypes.h: ... here.
2968
2969 2010-10-07  Nicola Pero  <nicola.pero@meta-innovation.com>
2970
2971         * doc/objc.texi (Fast enumeration protocol): Mention that
2972         'unsigned int' can also be used instead of 'unsigned long' in
2973         countByEnumeratingWithState:objects:count:.
2974
2975 2010-10-07  Martin Jambor  <mjambor@suse.cz>
2976
2977         * tree-sra.c (struct access): New field grp_assignment_write.
2978         (dump_access): Dump grp_assignment_write.
2979         (build_accesses_from_assign): Set grp_assignment_write.
2980         (sort_and_splice_var_accesses): Aggregate grp_assignment_write.
2981         (mark_read_status): Renamed to mark_rw_status, individual values
2982         renamed too.
2983         (analyze_access_subtree): Changed type of mark_write to
2984         mark_read_status.  Fixed propagating of mark_read and
2985         mark_write.  Changed benefit estimate.  Updated comment.
2986
2987 2010-10-07  Tejas Belagod  <tejas.belagod@arm.com>
2988
2989         PR Tree-Vect/45847
2990         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Add NULL
2991         check for vectype_out returned by get_vectype_for_scalar_type().
2992
2993 2010-10-07  Tejas Belagod  <tejas.belagod@arm.com>
2994
2995         PR target/45805
2996         * config/arm/neon.md (neon_unpack<US>_<mode>): Add 'w' to
2997         constraint, add register specifier in instruction template.
2998         (neon_vec_pack_trunc_<mode>): Likewise.
2999         (neon_vec_<US>mult_<mode>): Add register specifier to
3000         instruction template.
3001
3002 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
3003
3004         * config.gcc (c_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add
3005         cygwin2.o.
3006         (cxx_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Likewise.
3007         (extra_gcc_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add cygwin1.o.
3008         * config/i386/t-cygwin (cygwin1.o): Delete build rule.
3009         (cygwin2.o): Likewise.
3010         * config/i386/cygwin1.c: Delete file.
3011         * config/i386/cygwin2.c: Likewise.
3012         * config/i386/cygwin.h (CPP_SPEC): Remove all %{mno-cygwin} specs and
3013         make all {%!mno-cygwin} ones unconditional.
3014         (STARTFILE_SPEC): Likewise.
3015         (REAL_LIBGCC_SPEC): Likewise.
3016         (LIB_SPEC): Likewise.
3017         (CXX_WRAP_SPEC): Likewise.
3018         (LINK_SPEC): Likewise.
3019         (CYGWIN_MINGW_SUBDIR): Delete now-unused macro definition.
3020         (CYGWIN_MINGW_SUBDIR_LEN): Likewise.
3021         (cygwin_gplusplus_include_dir): Delete now-unused array.
3022         (GPLUSPLUS_INCLUDE_DIR): Don't redefine to point to it.
3023         (cygwin_gplusplus_tool_include_dir): Delete now-unused array.
3024         (GPLUSPLUS_TOOL_INCLUDE_DIR): Don't redefine to point to it.
3025         (cygwin_gplusplus_backward_include_dir): Delete now-unused array.
3026         (GPLUSPLUS_BACKWARD_INCLUDE_DIR): Don't redefine to point to it.
3027         (cygwin_local_include_dir): Delete now-unused array.
3028         (LOCAL_INCLUDE_DIR): Don't redefine to point to it.
3029         (cygwin_cross_include_dir): Delete now-unused array.
3030         (CROSS_INCLUDE_DIR): Don't redefine to point to it.
3031         (cygwin_tool_include_dir): Delete now-unused array.
3032         (TOOL_INCLUDE_DIR): Don't redefine to point to it.
3033         (cygwin_standard_include_dir): Delete now-unused array.
3034         (STANDARD_INCLUDE_DIR): Don't redefine to point to it.
3035         (GEN_CVT_ARRAY): Delete now-unused macro definition.
3036         (cvt_to_mingw): Delete now-unused array.
3037         (mingw_scan): Remove prototype of deleted function.
3038         (GCC_DRIVER_HOST_INITIALIZATION): Don't define now-unused target macro.
3039         * config/i386/cygming.opt (mcygwin): Delete target-specific option.
3040         * doc/invoke.texi (-mcygwin): Don't document removed option.
3041         (-mno-cygwin): Likewise.
3042
3043 2010-10-07  Richard Guenther  <rguenther@suse.de>
3044
3045         * machmode.h (mode_for_vector): Declare.
3046         * stor-layout.c (mode_for_vector): New function, split out from ...
3047         (layout_type): ... here.
3048         * tree-vectorizer.h (current_vector_size): Declare.
3049         * tree-vect-stmts.c (perm_mask_for_reverse): Check if the
3050         mask vector type is available.
3051         (get_vectype_for_scalar_type): Rename to ...
3052         (get_vectype_for_scalar_type_and_size): ... this.  Get a vector
3053         size argument.
3054         (get_vectype_for_scalar_type): New wrapper around
3055         get_vectype_for_scalar_type_and_size using current_vector_size.
3056         (get_same_sized_vectype): Use get_vectype_for_scalar_type_and_size.
3057         * tree-vect-loop.c (vect_analyze_loop_2): Split out core part
3058         of vect_analyze_loop here.
3059         (vect_analyze_loop): Loop over vector sizes calling vect_analyze_loop_3.
3060         * tree-vect-slp.c (vect_slp_analyze_bb): Set current_vector_size
3061         to autodetect.
3062         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Fix
3063         V8SF to V8SI conversion builtin.
3064
3065 2010-10-07  Richard Guenther  <rguenther@suse.de>
3066
3067         * target.def (autovectorize_vector_sizes): New target hook.
3068         * targhooks.c (default_autovectorize_vector_sizes): New function.
3069         * targhooks.h (default_autovectorize_vector_sizes): Declare.
3070         * doc/tm.texi.in (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES):
3071         Document.
3072         * doc/tm.texi: Update.
3073         * config/i386/i386.c (ix86_autovectorize_vector_sizes): New function.
3074         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
3075
3076 2010-10-07  Richard Guenther  <rguenther@suse.de>
3077
3078         * target.def (units_per_simd_word): Rename to ...
3079         (preferred_simd_mode): ... this.  Return mode instead of size.
3080         * targhooks.c (default_units_per_simd_word): Rename to ...
3081         (default_preferred_simd_mode): ... this.  Return word_mode.
3082         * targhooks.h (default_preferred_simd_mode): Declare.
3083         * config/arm/arm.c (arm_units_per_simd_word): Rename to ...
3084         (arm_preferred_simd_mode): ... this.  Re-implement.
3085         * config/i386/i386.c (ix86_units_per_simd_word): Rename to ...
3086         (ix86_preferred_simd_mode): ... this.  Re-implement.
3087         * config/sparc/sparc.c (sparc_units_per_simd_word): Rename to ...
3088         (sparc_preferred_simd_mode): ... this.  Re-implement.
3089         * config/mips/mips.c (mips_units_per_simd_word): Rename to ...
3090         (mips_preferred_simd_mode): ... this.  Re-implement.
3091         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Rename to ...
3092         (rs6000_preferred_simd_mode): ... this.  Re-implement.
3093         * tree-vect-stmts.c (get_vectype_for_scalar_type): Adjust.
3094         * doc/tm.texi.in (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Remove.
3095         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): Document.
3096         * doc/tm.texi: Update.
3097
3098 2010-10-07  Richard Guenther  <rguenther@suse.de>
3099
3100         PR middle-end/45869
3101         * tree-cfg.c (verify_gimple_assign_binary): Allow vector shifts
3102         of pointers.
3103
3104 2010-10-07  Alan Modra  <amodra@gmail.com>
3105
3106         * config/rs6000/rs6000.c (rs6000_emit_prologue): Use gen_int_mode
3107         rather than sign extension by hand.
3108
3109 2010-10-07  Jan Hubicka  <jh@suse.cz>
3110
3111         PR middle-end/45926
3112         * ipa.c (cgraph_remove_unreachable_nodes): Revert my previous patch.
3113
3114 2010-10-07  Richard Guenther  <rguenther@suse.de>
3115
3116         PR bootstrap/45914
3117         * configure.ac: Fix typo.
3118         * configure: Regenerated.
3119
3120 2010-10-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3121
3122         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Don't use
3123         define_builtin_std where it's unnecessary.
3124         * config/i386/nto.h (TARGET_OS_CPP_BUILTINS): Likewise.
3125
3126 2010-10-06  Anatoly Sokolov  <aesok@post.ru>
3127
3128         * doc/tm.texi.in (CLASS_LIKELY_SPILLED_P): Remove documentation.
3129         * doc/tm.texi.in: Regenerate.
3130         * system.h (CLASS_LIKELY_SPILLED_P): Poison.
3131         * targhooks.c (default_class_likely_spilled_p): Don't use the
3132         CLASS_LIKELY_SPILLED_P macro.
3133
3134         * config/arm/arm.md: Update comment.
3135
3136 2010-10-06  Jan Hubicka  <jh@suse.cz>
3137
3138         * ipa.c (cgraph_remove_unreachable_nodes): External references can
3139         always be removed.
3140         (cgraph_externally_visible_p): We can not bring local comdats that
3141         are known to linker; fix handling of internal visibility.
3142         (function_and_variable_visibility): Likewise.
3143
3144 2010-10-06  Eric Botcazou  <ebotcazou@adacore.com>
3145
3146         PR rtl-optimization/45394
3147         * combine.c (cleanup_auto_inc_dec): Remove AFTER parameter and adjust.
3148         (struct rtx_subst_pair): Remove AFTER field.
3149         (propagate_for_debug_subst): Adjust call to cleanup_auto_inc_dec.
3150         (propagate_for_debug): Remove MOVE parameter and adjust.
3151         (try_combine): In the special case where I2 is a PARALLEL, combine only
3152         destinations of SETs and set I2SRC to the I2 source.
3153         Adjust calls to propagate_for_debug throughout.
3154         * reload1.c (eliminate_regs_1) <ASM_OPERANDS>: Do not abort for debug
3155         insns.
3156
3157 2010-10-06  Olivier Hainque  <hainque@adacore.com>
3158
3159         * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Rewrite
3160         switch on insn codes as sequence of ifs.
3161
3162 2010-10-06  Hariharan Sandanagobalane  <hariharan@picochip.com>
3163
3164         * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Define it to
3165         be UI_NONE for picochip.
3166         (picochip_option_override): Do not disable exception flags.
3167         * config/picochip/picochip-protos.h (picochip_except_unwind_info):
3168         Declare.
3169
3170 2010-10-06  Richard Guenther  <rguenther@suse.de>
3171
3172         * Makefile.in (regmove.o): Depend on $(TARGET_H).
3173
3174 2010-10-06  Nicola Pero  <nicola.pero@meta-innovation.com>
3175
3176         Implemented fast enumeration for Objective-C.
3177         * c-parser.c (objc_could_be_foreach_context): New.
3178         (c_lex_one_token): Recognize RID_IN keyword in a potential
3179         Objective-C foreach context.
3180         (c_parser_declaration_or_fndef): Added parameter.  Accept
3181         Objective-C RID_IN keyword as terminating a declaration; in that
3182         case, return the declaration in the new parameter.
3183         (c_parser_extenral_declaration): Updated calls to
3184         c_parser_declaration_or_fndef.
3185         (c_parser_declaration_or_fndef): Same change.
3186         (c_parser_compound_statement_nostart): Same change.
3187         (c_parser_label): Same change.
3188         (c_parser_objc_methodprotolist): Same change.
3189         (c_parser_omp_for_loop): Same change.
3190         (c_parser_for_statement): Detect and parse Objective-C foreach
3191         statements.
3192         (c_parser_omp_for_loop): Updated call to check_for_loop_decls().
3193         * c-decl.c (check_for_loop_decls): Added parameter to allow ObjC
3194         fast enumeration parsing code to turn off the c99 error but still
3195         perform checks on the loop declarations.
3196         * c-tree.h (check_for_loop_decls): Updated declaration.
3197         * doc/objc.texi: Document fast enumeration.
3198
3199 2010-10-06  Nick Clifton  <nickc@redhat.com>
3200
3201         * config/mn10300/mn10300.h (FIRST_PSEUDO_REGISTER): Increment by one.
3202         (MDR_REGNUM): Define.
3203         (FIXED_REGISTERS, CALL_USED_REGISTERS): Add MDR as a fixed register.
3204         (REG_CLASS_CONTENTS): Add MDR to ALL_REGS.
3205         (INCOMING_RETURN_ADDR_RTX): Define in terms of MDR.
3206         (REGISTER_NAMES): Add MDR.
3207         (DWARF2_DEBUGGING_INFO): Define to 1.
3208         * config/mn10300/mn10300.c (TARGET_EXCEPT_UNWIND_INFO): Define.
3209         (F): New function.  Sets RTX_FRAME_RELATED_P.
3210         (mn10300_gen_multiple_store): Use F.
3211         (expand_prologue): Use F.  Use gen_movsf() to push floating
3212         point registers.
3213         (expand_epilogue): Use gen_movsf() to pop floating point registers.
3214         (mn10300_option_override): Disable combine stack adjust pass.
3215
3216 2010-10-06  Thomas Schwinge  <thomas@schwinge.name>
3217
3218         PR target/45901
3219         * config/alpha/gnu.h (TARGET_OS_CPP_BUILTINS): Refer to
3220         LINUX_TARGET_OS_CPP_BUILTINS instead of HURD_TARGET_OS_CPP_BUILTINS.
3221
3222 2010-10-06  Jakub Jelinek  <jakub@redhat.com>
3223
3224         * builtins.def (BUILT_IN_CALLOC, BUILT_IN_REALLOC,
3225         BUILT_IN_ISALNUM, BUILT_IN_ISALPHA, BUILT_IN_ISASCII,
3226         BUILT_IN_ISBLANK, BUILT_IN_ISCNTRL, BUILT_IN_ISDIGIT,
3227         BUILT_IN_ISGRAPH, BUILT_IN_ISLOWER, BUILT_IN_ISPRINT,
3228         BUILT_IN_ISPUNCT, BUILT_IN_ISSPACE, BUILT_IN_ISUPPER,
3229         BUILT_IN_ISXDIGIT, BUILT_IN_TOASCII, BUILT_IN_TOLOWER,
3230         BUILT_IN_TOUPPER): Mark as leaf.
3231
3232         PR middle-end/45838
3233         * omp-builtins.def (BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
3234         BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
3235         BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
3236         BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
3237         BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_TASK,
3238         BUILT_IN_GOMP_PARALLEL_SECTIONS_START): Use
3239         Revert back to ATTR_NOTHROW_LIST instead of ATTR_NOTHROW_LEAF_LIST.
3240
3241 2010-10-05  Anatoly Sokolov  <aesok@post.ru>
3242
3243         * config/m68hc11/m68hc11.h (CLASS_LIKELY_SPILLED_P): Remove.
3244         * config/m68hc11/m68hc11.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
3245         (m68hc11_class_likely_spilled_p): New function.
3246
3247 2010-10-05  Nicola Pero  <nicola.pero@meta-innovation.com>
3248
3249         * c-parser.c (c_parser_objc_method_definition): Updated comment.
3250
3251 2010-10-05  Jan Hubicka  <jh@suse.cz>
3252
3253         * doc/invoke.texi (-flto-partition, lto-partitions, lto-minpartition):
3254         Document.
3255         * opts.c (decode_options): Handle lto partitions.
3256         * common.opt (flto-partition=1to1, flto-partition=balanced): New.
3257         * params.def (PARAM_LTO_PARTITIONS, MIN_PARTITION_SIZE): New.
3258
3259 2010-10-05  Jan Hubicka  <jh@suse.cz>
3260
3261         * cgraphunit.c (assemble_function): Output thunks and aliases before
3262         the function itself.
3263
3264 2010-09-29  Hariharan Sandanagobalane  <hariharan@picochip.com>
3265
3266         * config/picochip/picochip.c (picochip_option_override): Disable
3267         exception flags for picochip.
3268
3269 2010-10-05  Joseph Myers  <joseph@codesourcery.com>
3270
3271         * opts-common.c (handle_option, handle_generated_option,
3272         read_cmdline_option, set_option): Add diagnostic_context
3273         parameter.  Update calls among these functions.
3274         (set_option): Don't use global_dc.
3275         * opts.c (read_cmdline_options): Pass global_dc to read_cmdline_option.
3276         (decode_options): Pass global_dc to enable_warning_as_error.
3277         (common_handle_option): Pass global_dc to enable_warning_as_error.
3278         (enable_warning_as_error): Add diagnostic_context parameter.
3279         Document parameters.  Don't use global_dc.  Pass
3280         diagnostic_context parameter to handle_generated_option.
3281         * opts.h (set_option, handle_option, handle_generated_option,
3282         read_cmdline_option, enable_warning_as_error): Add
3283         diagnostic_context parameter.
3284         * Makefile.in (lto-opts.o): Update dependencies.
3285         * coretypes.h (struct diagnostic_context, diagnostic_context):
3286         Declare here.
3287         * diagnostic.h (diagnostic_context): Don't declare typedef here.
3288         * gcc.c (process_command): Pass global_dc to read_cmdline_option.
3289         * langhooks-def.h (struct diagnostic_context): Don't declare here.
3290         (lhd_print_error_function, lhd_initialize_diagnostics): Declare
3291         using diagnostic_context typedef.
3292         * langhooks.c (lhd_initialize_diagnostics): Declare using
3293         diagnostic_context typedef.
3294         * langhooks.h (struct diagnostic_context): Don't declare here.
3295         (initialize_diagnostics, print_error_function): Declare using
3296         diagnostic_context typedef.
3297         * lto-opts.c: Include diagnostic.h.
3298         (lto_reissue_options): Pass global_dc to set_option.  Pass
3299         DK_UNSPECIFIED not 0.
3300         * plugin.c (plugins_internal_error_function): Declare using
3301         diagnostic_context typedef.
3302         * plugin.h (struct diagnostic_context): Don't declare here.
3303         (plugins_internal_error_function): Declare using
3304         diagnostic_context typedef.
3305
3306 2010-10-05  Olivier Hainque  <hainque@adacore.com>
3307             Nicolas Roche  <roche@adacore.com>
3308
3309         * config/vxworksae.h: Add missing VXWORKS_OS_CPP_BUILTINS.
3310         * config/rs6000/vxworks.h: Remove redundant CPP builtin definitions.
3311
3312 2010-10-05  Ira Rosen  <irar@il.ibm.com>
3313
3314         PR tree-optimization/45752
3315         * tree-vect-slp.c (vect_get_mask_element): Remove static
3316         variables, make them function arguments.
3317         (vect_transform_slp_perm_load): Pass new arguments to
3318         vect_get_mask_element.
3319
3320 2010-10-05  Richard Guenther  <rguenther@suse.de>
3321
3322         * value-prof.c (gimple_divmod_fixed_value): Work on SSA form.
3323         (gimple_mod_pow2): Likewise.
3324         (gimple_mod_subtract): Likewise.
3325         (gimple_ic): Likewise.
3326         (gimple_stringop_fixed_value): Likewise.
3327         * tree-profile.c (tree_init_edge_profiler): Mark profile
3328         functions nothrow and leaf.
3329         (add_abnormal_goto_call_edges): Remove.
3330         (tree_gen_edge_profiler): Work on SSA form.
3331         (tree_gen_ic_profiler): Likewise.  Simplify.
3332         (do_tree_profiling): Update SSA form.
3333         (pass_tree_profile): Remove.
3334         (do_tree_profiling): Likewise.
3335         (gate_tree_profile_ipa): New function.
3336         (pass_ipa_tree_profile): New.
3337         (tree_profiling): Re-write as IPA pass.  Properly drop const/pure
3338         state of instrumented functions.
3339         * passes.c (init_optimization_passes): Remove early non-SSA
3340         inlining.  Move profiling after early optimizations.
3341         * ipa-inline.c (cgraph_gate_ipa_early_inlining): Remove.
3342         (pass_ipa_early_inline): Likewise.
3343         * tree-pass.h (pass_ipa_early_inline): Remove.
3344         (pass_tree_profile): Likewise.
3345         (pass_ipa_tree_profile): Declare.
3346
3347 2010-10-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3348             Christian Borntraeger  <Christian.Borntraeger@de.ibm.com>
3349
3350         * gcc/config/s390/s390.c (z196_cost): New.
3351         (s390_handle_arch_option): Add -march=z196.
3352         (s390_option_override): Use the new cost function and use the z10
3353         defaults also for z196.
3354         (legitimate_reload_constant_p): Adjust comment.
3355         (legitimate_reload_fp_constant_p): New function.
3356         (s390_preferred_reload_class): Distingiush between FP and Int constants.
3357         (preferred_la_operand_p): Avoid la with index on z196.
3358         (s390_adjust_priority): Trigger also for z196.
3359         (s390_issue_rate): Issue rate for z196 is 3.
3360         (s390_z10_fix_long_loop_prediction): Rename to ...
3361         (s390_fix_long_loop_prediction): ... this.
3362         (s390_reorg): Apply the z10 adjustments also for z196.
3363         (s390_loop_unroll_adjust): Do this also for z196.
3364         * gcc/config/s390/s390.h (enum processor_type): Add PROCESSOR_2817_Z196.
3365         (enum processor_flags): Add PF_Z196.
3366         (TARGET_AVOID_CMP_AND_BRANCH): New macro.
3367         (TARGET_CPU_Z196, TARGET_Z196): New macros.
3368         * gcc/config.gcc: Enable z196 for --with-arch.
3369         * gcc/config/s390/2817.md: New file.
3370         * gcc/config/s390/2084.md: New type for multiply and add.
3371         * gcc/config/s390/2097.md: Likewise.
3372         * gcc/config/s390/s390.md (UNSPEC_POPCNT, UNSPEC_COPYSIGN)
3373         (UNSPECV_ATOMIC_OP): New constants.
3374         (fmadddf, fmaddsf): New values for type attribute.
3375         (z196prop): New insn attribute.
3376         (cpu, cpu_facility): Add z196.
3377         (ATOMIC_Z196): New code iterator.
3378         (noxa): New code attribute.
3379         (gk): New mode attribute.
3380         (*mov<mode>_64, *mov<mode>_31, *mov<mode>_64dfp, mov<mode>):
3381         Support load zero for fp constants.
3382         (fixuns_truncdddi2, fixuns_trunctddi2)
3383         (fixuns_trunc<BFP:mode><GPR:mode>2): Use the standard rtx pattern
3384         for z196.
3385         (fixuns_trunc<mode>si2, mov<mode>cc, popcountdi2, popcountsi2)
3386         (popcounthi2, popcountqi2): New expander.
3387         (*fixuns_trunc<FP:mode><GPR:mode>2_z196, floatsi<mode>2)
3388         (floatuns<GPR:mode><FP:mode>2, *mov<mode>cc, sync_<atomic><mode>)
3389         (sync_old_<atomic><mode>, *popcount<mode>, copysign<mode>3): New
3390         insn definition.
3391         (add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry1_cconly)
3392         (*add<mode>3_carry2_cc, *add<mode>3_carry2_cconly, *add<mode>3_cc)
3393         (*add<mode>3_cconly, *add<mode>3_cconly2, *add<mode>3_imm_cc)
3394         (*sub<mode>3, *sub<mode>3_borrow_cc, *sub<mode>3_borrow_cconly)
3395         (*sub<mode>3_cc, *sub<mode>3_cc2, *sub<mode>3_cconly)
3396         (*sub<mode>3_cconly2, *anddi3_cc, *anddi3_cconly, *anddi3, *andsi3_cc)
3397         (*andsi3_cconly, *andsi3_zarch, *andsi3_esa, *andhi3_zarch
3398         (*andqi3_zarch, *iordi3_cc, *iordi3_cconly, *iordi3, *iorsi3_cc)
3399         (*iorsi3_cconly, *iorsi3_zarch, *iorhi3_zarch, *iorqi3_zarch)
3400         (*xordi3_cc, *xordi3_cconly, *xordi3, *xorsi3_cc, *xorsi3_cconly)
3401         (*xorsi3, *xorhi3, *xorqi3, *<shift><mode>3, *<shift><mode>3_and)
3402         (*ashr<mode>3_cc, *ashr<mode>3_cconly, *ashr<mode>3)
3403         (*ashr<mode>3_cc_and, *ashr<mode>3_cconly_and, *ashr<mode>3_and):
3404         Support new z196 instructions.
3405
3406 2010-10-05  Richard Guenther  <rguenther@suse.de>
3407
3408         PR middle-end/45877
3409         * gimple-fold.c (gimplify_and_update_call_from_tree): Handle
3410         case where gimplification optimizes away the stmt.
3411
3412 2010-10-04  Jakub Jelinek  <jakub@redhat.com>
3413
3414         PR debug/45849
3415         * var-tracking.c (strip_pointer_flags): New function.
3416         (emit_note_insn_var_location): If rtx_equal_p check failed,
3417         retry on locations simplified with simplify_replace_fn_rtx
3418         and strip_pointer_flags as its callback.
3419
3420 2010-10-04  Jan Hubicka  <jh@suse.cz>
3421
3422         * gimple-fold.c (static_object_in_other_unit_p): Rename to...
3423         (can_refer_decl_in_current_unit_p): ... this one; reverse return
3424         value; handle comdats too.
3425         (canonicalize_constructor_val): Use it; handle function_decls
3426         correctly.
3427         (gimple_fold_obj_type_ref_known_binfo): Likewise.
3428         * gimple.c (get_base_address): Accept all kinds of decls.
3429
3430 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
3431
3432         * flags.h (g_switch_value, g_switch_set): Remove.
3433         * opts.c (g_switch_value, g_switch_set): Remove.
3434         * config/g.opt (G): Add Var(g_switch_value).
3435         * config/alpha/alpha.c (alpha_handle_option): Don't handle -G here.
3436         (alpha_option_override): Check global_options_set.x_g_switch_value
3437         instead of g_switch_set.
3438         (alpha_in_small_data_p): Remove cast in comparison with
3439         g_switch_value.
3440         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Cast
3441         g_switch_value to unsigned HOST_WIDE_INT.
3442         * config/frv/frv.c (frv_const_unspec_p): Remove cast in comparison
3443         with g_switch_value.
3444         (frv_handle_option): Don't handle -G here.
3445         (frv_option_override): Check global_options_set.x_g_switch_value
3446         instead of g_switch_set.  Don't modify g_switch_set.
3447         (frv_in_small_data_p): Remove cast in comparison with g_switch_value.
3448         * config/frv/frv.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Cast
3449         g_switch_value to unsigned HOST_WIDE_INT.
3450         * config/ia64/ia64.c (ia64_handle_option): Don't handle -G here.
3451         (ia64_option_override): Check global_options_set.x_g_switch_value
3452         instead of g_switch_set.
3453         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION):
3454         Remove.
3455         (lm32_in_small_data_p): Remove cast in comparison with
3456         g_switch_value.
3457         * config/lm32/lm32.h (ASM_OUTPUT_ALIGNED_LOCAL,
3458         ASM_OUTPUT_ALIGNED_COMMON): Cast g_switch_value to unsigned
3459         HOST_WIDE_INT.
3460         * config/m32r/m32r.c (m32r_handle_option): Don't handle -G here.
3461         (m32r_init): Check global_options_set.x_g_switch_value instead of
3462         g_switch_set.
3463         (m32r_in_small_data_p): Remove cast in comparison with
3464         g_switch_value.
3465         (m32r_file_start): Format g_switch_value with %d.
3466         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_COMMON,
3467         ASM_OUTPUT_ALIGNED_BSS): Cast g_switch_value to unsigned HOST_WIDE_INT.
3468         * config/microblaze/microblaze.c (microblaze_handle_option): Don't
3469         handle -G here.
3470         (microblaze_option_override): Check
3471         global_options_set.x_g_switch_value instead of g_switch_set.
3472         * config/mips/mips.c (mips_handle_option): Don't handle -G here.
3473         (mips_option_override): Check global_options_set.x_g_switch_value
3474         instead of g_switch_set.
3475         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle -G here.
3476         (rs6000_file_start): Format g_switch_value with %d.
3477         (small_data_operand, rs6000_elf_in_small_data_p): Remove casts in
3478         comparisons with g_switch_value.
3479         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Check
3480         global_options_set.x_g_switch_value instead of g_switch_set.
3481         * config/rs6000/vxworks.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
3482         global_options_set.x_g_switch_value instead of g_switch_set.
3483         * config/score/score.c (score_handle_option): Don't handle -G here.
3484         * config/score/score3.c (score3_option_override): Check
3485         global_options_set.x_g_switch_value instead of g_switch_set.
3486         * config/score/score7.c (score7_option_override): Check
3487         global_options_set.x_g_switch_value instead of g_switch_set.
3488
3489 2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
3490
3491         * common.opt (fira-coalesce): Remove.
3492
3493         * doc/invoke.texi (flag_ira_coalesce): Remove.
3494
3495         * ira-color.c (allocno_coalesced_p): Move before
3496         copy_freq_compare_func.
3497         processed_coalesced_allocno_bitmap): Ditto.
3498         (update_conflict_hard_regno_costs): Don't use
3499         ALLOCNO_FIRST_COALESCED_ALLOCNO.
3500         (allocno_cost_compare_func, print_coalesced_allocno): Remove.
3501         (assign_hard_reg): Assume no coalesced allocnos.
3502         (get_coalesced_allocnos_attributes): Remove.
3503         (bucket_allocno_compare_func): Assume no coalesced allocnos.
3504         (push_allocno_to_stack): Ditto.
3505         (remove_allocno_from_bucket_and_push): Use
3506         ira_print_expanded_allocno instead of print_coalesced_allocno.
3507         (push_allocnos_to_stack): Assume uncoalesced allocnos.
3508         (all_conflicting_hard_regs_coalesced): Ditto.  Rename to
3509         all_conflicting_hard_regs.
3510         (setup_allocno_available_regs_num): Assume uncoalesced allocnos.
3511         (setup_allocno_left_conflicts_size): Ditto.
3512         (put_allocno_into_bucket): Ditto.
3513         (copy_freq_compare_func): Remove.
3514         (copy_freq_compare_func, merge_allocnos): Move before
3515         coalesced_pseudo_reg_freq_compare.
3516         coalesced_allocno_conflict_p): Ditto.
3517         (coalesced_allocno_conflict_p, coalesce_allocnos): Ditto.  Remove
3518         parameter.  Assume it true.
3519         (color_allocnos): Assume uncoalesced allocnos.  Use
3520         ira_print_expanded_allocno instead of print_coalesced_allocno.
3521         (ira_sort_regnos_for_alter_reg): Call coalesce_allocnos without
3522         parameter.
3523
3524         * ira.c: Remove comment about coalescing.
3525
3526 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
3527
3528         * config/mips/mips.h (target_flags_explicit): Declare for
3529         GENERATOR_FILE.
3530
3531 2010-10-04  Andi Kleen <ak@linux.intel.com>
3532
3533         * Makefile.in (xgcc, cpp, cc1, collect2, lto-wrapper, gcov,
3534         gcov-dump, cc1-dummy, genprog, build/gcov-iov): Add + to build rule.
3535
3536 2010-10-04  Matthias Klose  <doko@ubuntu.com>
3537
3538         * config/sparc/t-linux64 (MULTILIB_OSDIRNAMES): Use ../lib32 as the
3539         multilib osdirname if it exists.
3540         * config/s390/t-linux64 (MULTILIB_OSDIRNAMES): Likewise.
3541
3542 2010-10-04  Jakub Jelinek  <jakub@redhat.com>
3543
3544         PR middle-end/45876
3545         * fold-const.c (fold_binary_loc) <case BIT_AND_EXPR>: Use
3546         arg0's type or its unsigned counterpart as utype.  Convert
3547         arg1 to utype unconditionally.
3548
3549 2010-10-04  Julian Brown  <julian@codesourcery.com>
3550
3551         * expr.c (expand_assignment): Add assertion to prevent emitting
3552         null rtx for movmisalign pattern.
3553         (expand_expr_real_1): Likewise.
3554         * config/arm/arm.c (arm_builtin_support_vector_misalignment): New.
3555         (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT): New. Use above.
3556         (arm_vector_alignment_reachable): New.
3557         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): New. Use above.
3558         (neon_vector_mem_operand): Disallow PRE_DEC for misaligned loads.
3559         (arm_print_operand): Include alignment qualifier in %A.
3560         * config/arm/neon.md (UNSPEC_MISALIGNED_ACCESS): New constant.
3561         (movmisalign<mode>): New expander.
3562         (movmisalign<mode>_neon_store, movmisalign<mode>_neon_load): New
3563         insn patterns.
3564
3565 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
3566
3567         * optc-gen.awk: Define global_options_set.  Don't define
3568         target_flags_explicit.
3569         * opth-gen.awk: Declare global_options_set.  Define
3570         target_flags_explicit as macro.
3571         * opts-common.c (handle_option): Take opts_set and generated_p
3572         parameters.
3573         (handle_generated_option, read_cmdline_option, set_option): Take
3574         opts_set parameter.
3575         (set_option): Use opts_set instead of hardcoding target_flags and
3576         target_flags_explicit.
3577         * opts.c (sel_sched_switch_set, profile_arc_flag_set,
3578         flag_profile_values_set, flag_unroll_loops_set, flag_tracer_set,
3579         flag_value_profile_transformations_set, flag_peel_loops_set,
3580         flag_branch_probabilities_set, flag_inline_functions_set,
3581         flag_ipa_cp_set, flag_ipa_cp_clone_set,
3582         flag_predictive_commoning_set, flag_unswitch_loops_set,
3583         flag_gcse_after_reload_set): Remove.
3584         (common_handle_option, lang_handle_option, target_handle_option):
3585         Take opts_set parameter.  Assert that it is &global_options_set.
3586         (common_handle_option): Don't set _set variables.  Check opts_set
3587         instead of such variables.
3588         (enable_warning_as_error): Pass &global_options_set to
3589         handle_generated_option.
3590         * opts.h (cl_option_handler_func.handler, set_option,
3591         handle_option, handle_generated_option, read_cmdline_option): Add
3592         opts_set parameters.
3593         (handle_option): Add generated_p parameter.
3594         * config/i386/i386.c (ix86_function_specific_save,
3595         ix86_function_specific_restore): Updat for renaming of
3596         target_flags_explicit field.
3597         * config/i386/i386.opt (target_flags_explicit): Rename to
3598         ix86_target_flags_explicit.
3599         * config/ia64/ia64.c (ia64_override_options_after_change): Check
3600         global_options_set.x_flag_selective_scheduling and
3601         global_options_set.x_flag_selective_scheduling2, not
3602         sel_sched_switch_set.
3603         * flags.h (sel_sched_switch_set,
3604         flag_speculative_prefetching_set): Remove.
3605         * gcc.c (driver_handle_option): Take opts_set parameter.  Assert
3606         that it is &global_options_set.
3607         (process_command): Pass &global_options_set to read_cmdline_option.
3608         * lto-opts.c (lto_reissue_options): Pass &global_options_set to
3609         set_option.
3610         * toplev.c (target_flags_explicit): Remove.
3611
3612 2010-10-04  Jan Hubicka  <jh@suse.cz>
3613
3614         PR middle-end/45871
3615         * tree-ssa-ccp.c (get_base_constructor): Take HOST_WIDE_INT offset;
3616         use get_ref_base_and_offset to handle references.
3617         (fold_const_aggregate_ref): Update.
3618
3619 2010-10-04  Martin Jambor  <mjambor@suse.cz>
3620
3621         PR tree-optimization/45572
3622         * ipa-prop.c (ipa_make_edge_direct_to_target): Call
3623         ipa_check_create_node_params.
3624         * ipa-inline.c (add_new_edges_to_heap): Do not insert inlined edges.
3625
3626 2010-10-04  Yao Qi  <yao@codesourcery.com>
3627
3628         * doc/passes.texi: Clean up.
3629
3630 2010-10-03  Ian Lance Taylor  <iant@google.com>
3631
3632         * c-typeck.c (lookup_field): If -fplan9-extensions, permit
3633         referring to a field using a typedef name.
3634         (find_anonymous_field_with_type): New static function.
3635         (convert_to_anonymous_field): New static function.
3636         (convert_for_assignment): If -fplan9-extensions, permit converting
3637         pointer to struct to pointer to anonymous field.
3638         * c-decl.c (grokfield): If -fplan9-extensions, permit anonymous fields.
3639         (is_duplicate_field): New static function.
3640         (detect_field_duplicates_hash): If -fplan9-extensions, check for
3641         typedef names duplicating field names.
3642         (detect_field_duplicates): Likewise.
3643         * doc/invoke.texi (Option Summary): Mention -fplan9-extensions.
3644         (C Dialect Options): Document -fplan9-extensions.
3645         * doc/extend.texi (Unnamed Fields): Document -fplan9-extensions.
3646
3647 2010-10-03  H.J. Lu  <hongjiu.lu@intel.com>
3648
3649         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Revert
3650         revision 164914.
3651         (vect_create_data_ref_ptr): Likewise.
3652         * tree-vect-stmts.c (vectorizable_store): Likewise.
3653         (perm_mask_for_reverse): Likewise.
3654         (reverse_vec_elements): Likewise.
3655         (vectorizable_load): Likewise.
3656
3657 2010-10-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3658
3659         * cppbuiltin.c: New file.
3660         * cppbuiltin.h: New file.
3661         * Makefile.in: Take into account cppbuiltin.{h,c}.
3662
3663 2010-10-03  Andi Kleen <ak@linux.intel.com>
3664
3665         * lto-cgraph.c (input_cgraph): Check for missing sections.
3666
3667 2010-10-03  Uros Bizjak  <ubizjak@gmail.com>
3668
3669         * config/i386/i386.md (*ashl<mode>3_mask): Change operand 2 predicate
3670         to nonimmediate_operand.  Force operand 2 to register when allowed.
3671         (*<shiftrt_insn><mode>3_mask): Ditto.
3672         (*<rotate_insn><mode>3_mask): Ditto.
3673
3674 2010-10-02  H.J. Lu  <hongjiu.lu@intel.com>
3675
3676         PR tree-optimization/45720
3677         PR tree-optimization/45764
3678         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
3679         Don't accept backwards consecutive accesses.
3680         (vect_create_data_ref_ptr): Disallow negative steps.
3681
3682         * tree-vect-stmts.c (vectorizable_store): Allow negative steps.
3683         (perm_mask_for_reverse): Removed.
3684         (reverse_vec_elements): Likewise.
3685         (vectorizable_load): Don't handle negative steps.
3686
3687 2010-10-02  Jan Hubicka  <jh@suse.cz>
3688
3689         * tree-ssa-ccp.c (ccp_fold_stmt): Fold away OBJ_TYPE_REF when
3690         call destination is known.
3691
3692 2010-10-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3693
3694         PR target/45820
3695         * config/pa/pa.c (pa_secondary_reload): Handle symbolic operands
3696         earlier.
3697
3698 2010-10-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3699
3700         * doc/install.texi (Configuration): Document build_configargs,
3701         host_configargs, target_configargs.
3702
3703 2010-10-01  Uros Bizjak  <ubizjak@gmail.com>
3704
3705         * config/i386/i386.md (*ashl<mode>3_mask): New insn_and_split pattern.
3706         (*<shiftrt_insn><mode>3_mask): Ditto.
3707         (*<rotate_insn><mode>3_mask): Ditto.
3708
3709 2010-10-01  Steve Ellcey  <sje@cup.hp.com>
3710
3711         PR tree-optimization/44716
3712         * config/ia64/hpux.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
3713         (HOT_TEXT_SECTION_NAME): Define.
3714
3715 2010-10-01  Nick Clifton  <nickc@redhat.com>
3716
3717         * common.opt: Add -fcombine-stack-adjustments.
3718         * opts.c (decode_options): Enable -fcombine-stack-adjustments at -O1.
3719         * combine-stack-adj.c (gate_handle_stack_adjustments): Check
3720         flag_combine_stack_adjustments.
3721         * doc/invoke.texi: Document the new option.
3722
3723 2010-10-01  Richard Guenther  <rguenther@suse.de>
3724
3725         PR tree-optimization/45854
3726         * tree-eh.c (cleanup_empty_eh): Avoid degenerate case.
3727
3728 2010-10-01  Anthony Green  <green@moxielogic.com>
3729
3730         * config.gcc: Fix moxie-*-rtems* configuration.
3731
3732 2010-10-01  Richard Guenther  <rguenther@suse.de>
3733
3734         * dwarf2out.c (gen_namespace_die): Use DECL_FILE_SCOPE_P.
3735         (gen_decl_die): Likewise.
3736
3737 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3738
3739         * config/spu/spu.c (spu_init_builtins): No longer add END_BUILTINS
3740         to the function code for SPU MD builtins.
3741         (spu_expand_builtin): Update.
3742         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Update.
3743
3744 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3745
3746         * config/spu/spu.c (TARGET_EXCEPT_UNWIND_INFO): Set to
3747         sjlj_except_unwind_info.
3748
3749 2010-10-01  Tristan Gingold  <gingold@adacore.com>
3750
3751         * configure.ac: Define the nop insn for avr*-*-*
3752         * configure: Regenerate.
3753
3754 2010-10-01  Alan Modra  <amodra@gmail.com>
3755
3756         PR target/45807
3757         * config/rs6000/rs6000.c (rs6000_emit_prologue): Properly sign
3758         extend toc_restore_insn.
3759
3760 2010-09-30  Richard Guenther  <rguenther@suse.de>
3761
3762         PR tree-optimization/43959
3763         * function.c (gimplify_parameters): Use create_tmp_reg instead of
3764         create_tmp_var.
3765
3766 2010-09-30  Kaz Kojima  <kkojima@gcc.gnu.org>
3767
3768         * config/sh/sh.c (sh_expand_prologue): Set
3769         current_function_static_stack_size.
3770
3771 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3772
3773         * configure.ac: Check for Solaris 8 ld with .hidden support.
3774         * configure: Regenerate.
3775
3776 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
3777
3778         PR middle-end/45758
3779         * graphite.c (graphite_initialize): Call scev_reset.
3780
3781 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
3782
3783         * sese.h (scev_analyzable_p): Return false for real or floating
3784         point.  Only handle INTEGRAL_TYPE_P and POINTER_TYPE_P.
3785
3786 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
3787
3788         * graphite-clast-to-gimple.c (compute_bounds_for_level): Free le
3789         and ps.
3790         * graphite-poly.c (pbb_number_of_iterations_at_time): Free le and
3791         domain.
3792         * graphite-sese-to-poly.c (add_upper_bounds_from_estimated_nit):
3793         Do not allocate ub_expr, it is passed in initialized.
3794
3795 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
3796
3797         * graphite-clast-to-gimple.c (init_cloog_input_file): New.
3798         (build_cloog_prog): Dump CLooG input file when
3799         flag_graphite_dump_cloog is set.  This is disabled on trunk.
3800         * graphite-cloog-compat.h (cloog_program_dump_cloog): New.
3801
3802 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
3803
3804         * graphite-clast-to-gimple.c (graphite_verify): Remove call to
3805         verify_dominators for CDI_POST_DOMINATORS.
3806         * sese.h: Remove comment about CDI_POST_DOMINATORS.
3807         (recompute_all_dominators): Remove call to free_dominance_info
3808         for CDI_POST_DOMINATORS.  Remove call to calculate_dominance_info
3809         for CDI_POST_DOMINATORS.
3810
3811 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
3812
3813         * graphite-poly.c (pbb_number_of_iterations_at_time): Only iterate
3814         over pbb_dim_iter_domain.
3815
3816 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
3817
3818         * graphite-flattening.c: Fix comments.
3819
3820 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
3821
3822         * Makefile.in (OBJS-common): Add graphite-flattening.o.
3823         (graphite-flattening.o): New rule.
3824         * common.opt (floop-flatten): New flag.
3825         * doc/invoke.texi (-floop-flatten): Documented.
3826         * graphite-flattening.c: New.
3827         * graphite-poly.c (apply_poly_transforms): Call flatten_all_loops.
3828         * graphite-poly.h (flatten_all_loops): Declared.
3829         (lst_remove_loop_and_inline_stmts_in_loop_father): New.
3830         * tree-ssa-loop.c (gate_graphite_transforms): When flag_loop_flatten
3831         is set, also set flag_graphite.
3832
3833 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
3834
3835         * graphite-poly.c (cloog_checksum): New.
3836         * graphite-poly.h (cloog_checksum): Declared.
3837
3838 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
3839
3840         * graphite-poly.c (pbb_number_of_iterations): Removed.
3841         (pbb_number_of_iterations_at_time): Correctly compute the number
3842         of iterations in the transformed loop.
3843         * graphite-poly.h (pbb_number_of_iterations): Removed.
3844
3845 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
3846
3847         * graphite-poly.h (lst_update_scattering_seq): Removed.
3848         (lst_update_scattering): Correctly handle outermost loop dewey
3849         renumbering.
3850
3851 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
3852
3853         * graphite-blocking.c (pbb_strip_mine_profitable_p): Renamed
3854         lst_strip_mine_profitable_p.  Call lst_niter_for_loop.
3855         * graphite-poly.h (lst_niter_for_loop): New.
3856
3857 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
3858
3859         * graphite-poly.c (apply_poly_transforms): Do not abort when the
3860         transform read from disk is not legal.  Call fatal_error instead.
3861
3862 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
3863
3864         * graphite-poly.c (print_pbb_body): Add missing closing parenthesis.
3865         (print_scop_header): Removed.  Inlined in the only call place...
3866         (print_scop): ... here.
3867
3868 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
3869
3870         * graphite-poly.h (lst_dewey_number): Use FOR_EACH_VEC_ELT.
3871
3872 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
3873
3874         * graphite-poly.c (graphite_read_scop_file): Fix uninitialize warning.
3875
3876 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
3877
3878         * graphite-dependences.c (dot_deps): Avoid set but not used warning.
3879         (dot_deps_stmt): Same.
3880         * graphite-poly.c (dot_lst): Same.
3881
3882 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
3883
3884         * graphite-blocking.c (scop_do_strip_mine): Do not call
3885         graphite_legal_transform.
3886         (scop_do_block): Same.
3887
3888 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
3889
3890         * graphite-scop-detection.c (graphite_can_represent_loop): Correct the
3891         description.
3892
3893 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
3894
3895         * tree-scalar-evolution.c (instantiate_array_ref): New.
3896         (instantiate_scev_r): Also handle ARRAY_REFs.
3897
3898 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
3899
3900         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
3901         Do not check for VAR_DECL, PARM_DECL, FUNCTION_DECL, LABEL_DECL,
3902         RESULT_DECL, and FIELD_DECL.  Return false for an
3903         SSA_NAME_IS_DEFAULT_DEF.
3904         (compute_scalar_evolution_in_loop): Do not further analyze the
3905         scalar evolution when no_evolution_in_loop_p returns true.
3906
3907 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
3908
3909         * tree-chrec.h (evolution_function_is_affine_p): Do not check
3910         whether CHREC_LEFT is invariant.  A function is affine when
3911         CHREC_RIGHT is invariant.
3912
3913 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
3914
3915         * graphite-sese-to-poly.c (reduction_phi_p): Remove check for
3916         is_gimple_reg.
3917         (rewrite_degenerate_phi): Same.
3918         (rewrite_reductions_out_of_ssa): Add check for is_gimple_reg.
3919
3920 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
3921
3922         * graphite-scop-detection.c (graphite_can_represent_scev,
3923         graphite_can_represent_expr, stmt_has_simple_data_refs_p,
3924         graphite_can_represent_loop): Remove outermost_loop.
3925
3926 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
3927
3928         PR middle-end/45229
3929         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Do not
3930         handle GIMPLE_CALLs with no LHS.
3931
3932 2010-09-30  Riyadh Baghdadi <baghdadi.mr@gmail.com>
3933
3934         * graphite-poly.c (init_graphite_out_file): New.
3935         (init_graphite_in_file): New.
3936         (apply_poly_transforms): Updated to enable reading and writing of
3937         multiple scop files.
3938
3939 2010-09-30  Tobias Grosser  <grosser@fim.uni-passau.de>
3940
3941         * graphite-scop-detection.c (graphite_can_represent_scev): Remove
3942         redundant checks.
3943
3944 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
3945
3946         * graphite-clast-to-gimple.c (precision_for_value): Adjust
3947         computation of precision by 1.
3948
3949 2010-09-30  Riyadh Baghdadi <baghdadi.mr@gmail.com>
3950
3951         * graphite-cloog-util.c (openscop_read_cloog_matrix): New.
3952         (openscop_read_polyhedron_matrix): New.
3953         * graphite-cloog-util.h (openscop_read_polyhedron_matrix): Declared.
3954         (openscop_read_N_int): Same.
3955         * graphite-poly.c (openscop_read_N_int): New.
3956         (openscop_read_one_int): New.
3957         (openscop_read_N_string): New.
3958         (openscop_read_one_string): New.
3959         (openscop_read_powerset_matrix): New.
3960         (graphite_read_transforms): Remove.
3961         (graphite_read_scatt): New.
3962         (graphite_read_scop_file): New.
3963         (apply_poly_transforms): Updated to call graphite_read_scop_file.
3964
3965 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
3966
3967         * graphite-poly.c: Change include order.
3968
3969 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
3970
3971         * graphite-cloog-compat.h (cloog_matrix_ncolumns): New.
3972         (cloog_matrix_nrows): New.
3973
3974 2010-09-30  Riyadh Baghdadi <baghdadi.mr@gmail.com>
3975
3976         * graphite-cloog-util.c (openscop_print_cloog_matrix): Remove spaces
3977         from matrix lines.
3978         * graphite-poly.c (openscop_print_scattering_function_1): Same.
3979         (print_scattering_function_1): Same.
3980         (openscop_print_pbb_domain): Same.
3981         (openscop_print_scop_context): Same.
3982         (print_scop_context): Same.
3983
3984 2010-09-30  Riyadh Baghdadi <baghdadi.mr@gmail.com>
3985
3986         * graphite-poly.c (openscop_print_pdr_polyhedron): Fix indentation.
3987         (openscop_print_pdr_polyhedron): Print pph.
3988
3989 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
3990
3991         * graphite-clast-to-gimple.c (gcc_type_for_interval): Generate in
3992         priority signed types.
3993
3994 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
3995
3996         * graphite-clast-to-gimple.c (max_signed_precision_type): Remove
3997         the call to lang_hooks.types.type_for_size.  Call
3998         build_nonstandard_integer_type.
3999
4000 2010-09-30  Riyadh Baghdadi <baghdadi.mr@gmail.com>
4001
4002         * graphite-cloog-util.c (openscop_print_cloog_matrix): New.
4003         (openscop_print_polyhedron_matrix): New.
4004         * graphite-cloog-util.h (openscop_print_polyhedron_matrix): Declared.
4005         * graphite-poly.c (openscop_print_pdr_polyhedron): Same.
4006         (openscop_print_pdr_powerset): New.
4007         (openscop_print_powerset_matrix): New.
4008         (openscop_print_scattering_function_1): New.
4009         (print_scattering_function): Add support for scattering names and
4010         OpenScop format.
4011         (graphite_write_transforms): Remove.
4012         (print_pdr_access_layout): Updated to support OpenScop format.
4013         (print_pdr): Same.
4014         (openscop_print_pbb_domain): New.
4015         (print_pbb_body): Added a parameter to allow indicating that pbb_body
4016         is not provided.
4017         (print_pbb): Updated to call the new print_pbb_body.
4018         (openscop_print_scop_context): New.
4019         (print_scop_header): New.
4020         (print_scop): Updated to call print_scop_header.
4021         * graphite-poly.h: Document OpenScop format.
4022
4023 2010-09-30  Anatoly Sokolov  <aesok@post.ru>
4024
4025         * config/cris/m32c.c (cris_memory_move_cost): New.
4026         (cris_register_move_cost): Make static. Change arguments type from
4027         enum reg_class to reg_class_t.
4028         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
4029         * config/cris/cris.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
4030         * config/cris/cris-protos.h (cris_register_move_cost): Remove.
4031
4032 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
4033
4034         PR target/45843
4035         * config/i386/i386.c (ix86_gimplify_va_arg): Use
4036         INTVAL (XEXP (slot, 1)) as prev_size.
4037
4038 2010-09-30  Michael Meissner  <meissner@linux.vnet.ibm.com>
4039
4040         PR target/45837
4041         * config/rs6000/aix.h (TARGET_AIX_OS): Define to be 1.
4042         * config/rs6000/rs6000.h (TARGET_AIX_OS): Define to be 0 if not
4043         defined.
4044         * config/rs6000/option-defaults.h (toplevel): Change #if
4045         TARGET_AIX to TARGET_AIX_OS to allow compiler to build after
4046         global option changes.
4047
4048 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
4049
4050         * dwarf2out.c (mem_loc_descriptor): Handle IF_THEN_ELSE.
4051
4052         PR tree-optimization/31261
4053         * fold-const.c (fold_binary): Optimize ((A & N) + B) & M
4054         for constants M and N, M == (1LL << cst) - 1 && (N & M) == M.
4055
4056 2010-09-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4057
4058         PR bootstrap/45796
4059         * Makefile.in (build/gen%$(build_exeext)): Move rule after all
4060         special-casing for generators and turn into ...
4061         ((genprog:%=build/gen%$(build_exeext))): ... this static pattern
4062         rule, for better error messages in case of toplevel dependency errors.
4063         (genprog): Add hooks, rename to ...
4064         (genprogerr): ... this, and let genprog also contain check,
4065         checksum, condmd.
4066         ((genprog:%=build/gen%$(build_exeext))): Rename to ...
4067         ((genprogerr:%=build/gen%$(build_exeext))): ... this.
4068         (build/genhooks$(build_exeext)): Remove now-unneeded dependency.
4069
4070 2010-09-30  Jonathan Wakely  <jwakely.gcc@gmail.com>
4071             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4072
4073         * doc/install.texi: Suggest using LD_LIBRARY_PATH to find libs
4074         for GMP, MPFR and MPC.
4075
4076 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4077
4078         * config/sparc/sparc.opt (mimpure-text): Move ...
4079         * config/sol2.opt: ... here.  Correct description.
4080         * config.gcc (*-*-solaris2*): Add sol2.opt to extra_options.
4081         * doc/invoke.texi (Option Summary, SPARC Options): Move
4082         -mimpure-text, -mno-impure-text, -threads, -pthreads, -pthread ...
4083         (Option Summary, Solaris 2 Options): ... here.
4084         (Submodel Options, Solaris 2 Options): New menu entry.
4085         (SPARC Options): Move -mimpure-text, -threads, -pthreads, -pthread ...
4086         (Solaris 2 Options): ... here.
4087
4088 2010-09-30  Michael Eager  <eager@eagercon.com>
4089
4090         * extend.texi (interrupt_handler): Add MicroBlaze to list.
4091         (save_volatiles): Describe option for MicroBlaze.
4092         * invoke.texi: Add MicroBlaze Options.
4093         * contrib.texi: Add acknowledgment.
4094         * md.texi: Add MicroBlaze d and z constraints.
4095         * install.texi: Add microblaze-*-elf.
4096         * configure.ac: Add microblaze-*-* to target list.
4097         * configure: Regenerate.
4098         * config.gcc: Add microblaze*-*-*, microblaze*-linux*.
4099         * config/microblaze/microblaze-protos.h: New.
4100         * config/microblaze/crti.s: New.
4101         * config/microblaze/predicates.md: New.
4102         * config/microblaze/linux.h: New.
4103         * config/microblaze/microblaze.md: New.
4104         * config/microblaze/constraints.md: New.
4105         * config/microblaze/crtn.s: New.
4106         * config/microblaze/microblaze.opt: New.
4107         * config/microblaze/microblaze-c.c: New.
4108         * config/microblaze/t-microblaze: New.
4109         * config/microblaze/microblaze.c: New.
4110         * config/microblaze/microblaze.h: New.
4111
4112 2010-09-30  Iain Sandoe  <iains@gcc.gnu.org>
4113
4114         * c-parser.c (c_parser_objc_methodprotolist): Amend preceding comment,
4115         parse @optional/@required and set the flags as appropriate.
4116
4117 2010-09-30  Nathan Froyd  <froydnj@codesourcery.com>
4118
4119         * config/iq2000/t-iq2000 (TARGET_LIBGCC2_CFLAGS): Delete.
4120
4121 2010-09-30  Joseph Myers  <joseph@codesourcery.com>
4122
4123         * opt-functions.awk (static_var): Update comment.
4124         (var_ref): Return offsetof expression or -1, not variable address.
4125         * optc-gen.awk: Generate structure field initializers instead of
4126         static variables.  Expect -1 for missing variables instead of null
4127         pointer.  Add gcc_options parameters to generated functions.
4128         * opth-gen.awk: Generate structure fields for static variables.
4129         Add gcc_options parameters to generated functions.
4130         * common.opt (optimize, optimize_size): Add variables.
4131         * config/i386/i386-c.c (ix86_pragma_target_parse): Pass
4132         &global_options to cl_target_option_restore.
4133         * config/i386/i386.c (ix86_valid_target_attribute_p): Pass
4134         &global_options to cl_optimization_restore, cl_target_option_save
4135         and cl_target_option_restore.
4136         (ix86_set_current_function): Pass &global_options to
4137         cl_target_option_restore.
4138         * config/pdp11/pdp11.h (optimize): Remove.
4139         * config/rs6000/rs6000.h (optimize): Remove.
4140         * config/sh/sh.h (optimize): Remove.
4141         * config/xtensa/xtensa.h (optimize): Remove.
4142         * coretypes.h (struct gcc_options): Declare.
4143         * diagnostic.c (diagnostic_initialize): Initialize
4144         context->option_state.
4145         (diagnostic_report_diagnostic): Pass option_state to
4146         option_enabled hook.
4147         * diagnostic.h (diagnostic_context.option_enabled): Add void *
4148         parameter.
4149         (diagnostic_context.option_state): New field.
4150         * final.c (final_start_function, final, final_scan_insn): Rename
4151         optimize parameter to optimize_p.
4152         * flags.h (optimize, optimize_size): Remove.
4153         * function.c (invoke_set_current_function_hook): Pass
4154         &global_options to cl_optimization_restore.
4155         * gcc.c (driver_handle_option): Take gcc_options parameter.
4156         Assert that it is &global_options.
4157         (process_command): Pass &global_options to read_cmdline_option.
4158         * ipa-pure-const.c (suggest_attribute): Pass &global_options to
4159         option_enabled.
4160         * lto-opts.c (lto_reissue_options): Use option_flag_var.  Pass
4161         &global_options to set_option.
4162         * opts-common.c (handle_option, handle_generated_option,
4163         read_cmdline_option, set_option): Take explicit gcc_options
4164         parameters.  Use option_flag_var.
4165         (option_flag_var): New.
4166         * opts.c (common_handle_option, lang_handle_option,
4167         target_handle_option): Take gcc_options parameter.  Assert that it
4168         is &global_options.
4169         (read_cmdline_options): Pass &global_options to read_cmdline_option.
4170         (print_filtered_help): Use option_flag_var.  Pass &global_options
4171         to option_enabled.
4172         (common_handle_option): Use option_flag_var.
4173         (option_enabled): Take opts parameter.  Use option_flag_var.
4174         (get_option_state): Take gcc_options parameter.  Use
4175         option_flag_var.  Pass gcc_options parameter to option_enabled.
4176         (enable_warning_as_error): Pass &global_options to
4177         handle_generated_option.
4178         * opts.h (struct cl_option): Change flag_var to flag_var_offset.
4179         (cl_option_handler_func.handler): Take gcc_options parameter.
4180         (option_enabled, get_option_state, set_option, handle_option,
4181         handle_generated_option, read_cmdline_option): Take gcc_options
4182         parameters.
4183         * toplev.c (optimize, optimize_size): Remove.
4184         (print_switch_values): Pass &global_options to option_enabled.
4185         (option_affects_pch_p): Use option_flag_var.  Pass &global_options
4186         to get_option_state.
4187         (general_init): Initialize global_dc->option_state.
4188         * tree.c (build_optimization_node): Pass &global_options to
4189         cl_optimization_save.
4190         (build_target_option_node): Pass &global_options to
4191         cl_target_option_save.
4192
4193 2010-09-30  Martin Jambor  <mjambor@suse.cz>
4194
4195         * tree-sra.c (type_consists_of_records_p): Do not check for trailing
4196         zero sized bit-fields.
4197
4198 2010-09-30  Nicola Pero  <nicola.pero@meta-innovation.com>
4199
4200         * c-parser.c (c_lex_one_token): When finding a CPP_AT_NAME
4201         Objective-C token, map RID_CLASS to RID_AT_CLASS and similar.
4202         (c_parser_external_declaration): Use RID_AT_CLASS instead of RID_CLASS.
4203         (c_parser_objc_class_declaration): Same change.
4204         (c_parser_objc_try_catch_statement): Use RID_AT_TRY instead of
4205         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
4206         (c_parser_objc_class_instance_variables): Use RID_AT_PRIVATE
4207         instead of RID_PRIVATE, RID_AT_PROTECTED instead of RID_PROTECTED
4208         and RID_AT_PUBLIC instead of RID_PUBLIC.
4209         (c_parser_statement_after_labels): Use RID_AT_TRY instead of
4210         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
4211
4212 2010-09-30  Tom G. Christensen <tgc@jupiterrise.com>
4213
4214         * doc/install.texi (Binaries): Update link to HP-UX porting centre.
4215         Add links to current providers of packages for Solaris and IRIX.
4216
4217 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
4218
4219         Merge from 'apple/trunk' branch on FSF servers.
4220         * c-parser.c: Applied change originally in c-parse.in.
4221
4222         2005-10-04  Fariborz Jahanian <fjahanian@apple.com>
4223
4224         Radar 4281748
4225         * c-decl.c (start_decl): Check for redeclaration of class name.
4226         * c-parse.in (after_type_declarator): Recognize CLASSNAME.
4227
4228 2010-09-29  Steve Ellcey  <sje@cup.hp.com>
4229
4230         * config/ia64/ia64.c (ia64_builtin_decl): New.
4231         (TARGET_BUILTIN_DECL): Define.
4232         (ia64_builtins): New.
4233         (ia64_init_builtins): Save decls in ia64_builtins.
4234
4235 2010-09-29  Bernd Schmidt  <bernds@codesourcery.com>
4236
4237         PR target/40457
4238         * postreload.c (move2add_use_add2_insn): Use full_costs for comparison.
4239         (move2add_use_add3_insn): Likewise.
4240         (reload_cse_move2add): Likewise.
4241         * rtlanal.c (get_full_rtx_cost): New function.
4242         * rtl.h (struct full_rtx_costs): New.
4243         (init_costs_to_max, init_costs_to_zero, costs_lt_p,
4244         costs_add_n_insns): New inline functions.
4245         (get_full_rtx_cost): Declare.
4246
4247         PR c/45054
4248         * reload1.c (replace_pseudos_in): Use eliminate_regs_1, allowing
4249         invariants.  Check for reg_equiv_invariant.
4250         (reload): Assert that spilled_pseudos is empty when returning.
4251
4252 2010-09-29  Kai Tietz  <kai.tietz@onevision.com>
4253
4254         * config/i386/mingw32.h (TARGET_64BIT): replaced by
4255         TARGET_64BIT_DEFAULT in #if check.
4256
4257 2010-09-29  Jack Howarth <howarth@bromo.med.uc.edu>
4258
4259         * varasm.c (assemble_alias): Add error message for unsupported ifunc.
4260
4261 2010-09-29  Mike Stump  <mikestump@comcast.net>
4262
4263         * config/darwin.h (flag_mkernel): Remove.
4264         (flag_apple_kext): Likewise.
4265
4266 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
4267             Jack Howarth <howarth@bromo.med.uc.edu>
4268
4269         * config/darwin.opt (undefined): Add.
4270
4271 2010-09-29  Nathan Sidwell  <nathan@codesourcery.com>
4272
4273         PR testsuite/45664
4274         * configure.ac: Add --enable-indirect-function option.
4275         * config.gcc: Add default_gnu_indirect_function.
4276         * config.in (HAVE_GAS_INDIRECT_FUNCTION): Rename to ...
4277         (HAVE_GNU_INDIRECT_FUNCTION): ... this.
4278         * varasm.c (do_assemble_alias): Adjust for macro name change.
4279         * configure: Rebuilt.
4280         * doc/install.texi: Document --enable-indirect-function.
4281
4282 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
4283
4284         * doc/options.texi (Variable, Var, Init): Update documentation
4285         without reference to VarExists.
4286         (VarExists): Remove.
4287         * common.opt, config/i386/i386.opt, config/linux.opt,
4288         config/rs6000/rs6000.opt, config/sh/sh.opt, config/spu/spu.opt:
4289         Don't use VarExists.
4290
4291 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
4292
4293         * optc-gen.awk: Generate global_options initializer instead of
4294         individual variables.  Add x_ prefix to names of structure members.
4295         * opth-gen.awk: Generate gcc_options structure.  Add x_ prefix to
4296         names of structure members.
4297         * doc/tm.texi.in (HARD_FRAME_POINTER_IS_FRAME_POINTER,
4298         HARD_FRAME_POINTER_IS_ARG_POINTER): Document.
4299         * doc/tm.texi: Regenerate.
4300         * alias.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
4301         * builtins.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
4302         * c-parser.c (disable_extension_diagnostics,
4303         restore_extension_diagnostics): Update names of cpp_options members.
4304         * combine.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
4305         * common.opt (fcompare-debug-second): Don't use Var.
4306         * config/alpha/alpha.h (target_flags): Remove.
4307         * config/arm/arm.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
4308         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
4309         * config/bfin/bfin.h (target_flags): Remove.
4310         * config/cris/cris.h (target_flags): Remove.
4311         * config/i386/i386-c.c (ix86_pragma_target_parse): Update names of
4312         cl_target_option members.
4313         * config/i386/i386.c (ix86_force_align_arg_pointer): Remove.
4314         (ix86_function_specific_print, ix86_valid_target_attribute_tree,
4315         ix86_can_inline_p): Update names of cl_target_option members.
4316         * config/i386/i386.h (ix86_isa_flags): Remove.
4317         * config/lm32/lm32.h (target_flags): Remove.
4318         * config/mcore/mcore.h (mcore_stack_increment): Remove.
4319         * config/mcore/mcore.md (addsi3): Remove extern declaration of
4320         flag_omit_frame_pointer.
4321         * config/mep/mep.h (target_flags): Remove.
4322         * config/mips/mips.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
4323         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
4324         * config/mmix/mmix.h (target_flags): Remove.
4325         * config/rs6000/rs6000.h (rs6000_xilinx_fpu, flag_pic,
4326         flag_expensive_optimizations): Remove.
4327         * config/s390/s390.h (flag_pic): Remove.
4328         * config/score/score-conv.h (target_flags): Remove.
4329         * config/sh/sh.h (sh_fixed_range_str): Remove.
4330         * config/spu/spu.h (target_flags, spu_fixed_range_string): Remove.
4331         * dbxout.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
4332         * df-scan.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
4333         * diagnostic.c (diagnostic_initialize): Update names of
4334         diagnostic_context members.
4335         * diagnostic.h (diagnostic_context): Rename inhibit_warnings and
4336         warn_system_headers.
4337         (diagnostic_report_warnings_p): Update for new names.
4338         * dwarf2out.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
4339         * emit-rtl.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER and
4340         HARD_FRAME_POINTER_IS_ARG_POINTER.
4341         * flags.h (flag_compare_debug): Declare.
4342         * ira.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
4343         * opts.c (flag_compare_debug): Define.
4344         (common_handle_option): Update names of diagnostic_context
4345         members.  Handle -fcompare-debug-second.
4346         (fast_math_flags_struct_set_p): Update names of cl_optimization
4347         members.
4348         * reginfo.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
4349         * regrename.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
4350         * reload.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
4351         * reload1.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
4352         * resource.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
4353         * rtl.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
4354         HARD_FRAME_POINTER_IS_ARG_POINTER): Define and use.
4355         * sel-sched.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
4356         * stmt.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
4357
4358 2010-09-29  Hariharan Sandanagobalane  <hariharan@picochip.com>
4359
4360         * config/picochip/picochip.c (picochip_output_internal_label):
4361         This function can now be called for debug CFI labels, which can come
4362         in the middle of a vliw instruction.  Postpone until end of vliw.
4363
4364 2010-09-29  Richard Guenther  <rguenther@suse.de>
4365
4366         * tree.h (SCOPE_FILE_SCOPE_P): New macro.
4367         (DECL_FILE_SCOPE_P): Use it.
4368         (TYPE_FILE_SCOPE_P): New macro.
4369
4370 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
4371
4372         * c-parser.c (c_lex_one_token): In Objective-C, when dealing with
4373         a CPP_NAME which is a reserved word, clearly separate cases for
4374         OBJC_IS_PQ_KEYWORD, OBJC_IS_AT_KEYWORD and OBJC_IS_CXX_KEYWORD.
4375
4376 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
4377
4378         * c-parser.c (c_lex_one_token): In Objective-C, do not replace
4379         token->value with the canonical spelling.  Do exactly like C and
4380         C++ and leave it as it is.
4381
4382 2010-09-28  Richard Henderson  <rth@redhat.com>
4383
4384         * config/alpha/alpha.c (alpha_builtins): New.
4385         (alpha_builtin_decl, TARGET_BUILTIN_DECL): New.
4386         (alpha_builtin_function): New.
4387         (alpha_add_builtins, alpha_init_builtins): Use it.
4388
4389 2010-09-28  Nicola Pero  <nicola.pero@meta-innovation.com>
4390
4391         * doc/standards.texi (Standards): Expanded the section on
4392         Objective-C and Objective-C++.
4393
4394 2010-09-28  DJ Delorie  <dj@redhat.com>
4395
4396         PR target/45800
4397         * config/m32c/m32c.c (m32c_subreg): Force adjustment of subregs of
4398         volatile MEMs.
4399
4400 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
4401
4402         * c-parser.c (c_parser_declaration_or_fndef): Diagnose incorrect prefix
4403         attributes on methods.
4404          (c_parser_objc_method_definition): Handle attributes.
4405         (c_parser_objc_methodproto): Likewise.
4406         (c_parser_objc_maybe_method_attributes): New.
4407         (c_parser_objc_method_decl): Handle attributes, add a diagnostic for a
4408         missing definition, similar to that in ObjC++.
4409
4410 2010-09-28  Richard Henderson  <rth@redhat.com>
4411
4412         * defaults.h (DWARF2_UNWIND_INFO): Don't depend on TARGET_UNWIND_INFO.
4413         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
4414         (CONFIG_SJLJ_EXCEPTIONS): Remove.
4415         (STACK_OLD_CHECK_PROTECT): Use targetm.except_unwind_info.
4416         (STACK_CHECK_PROTECT): Likewise.
4417         * dwarf2out.c (DWARF2_UNWIND_INFO, DWARF2_FRAME_INFO): Poison.
4418         (dwarf2out_do_frame): Use debug_unwind_info and except_unwind_info.
4419         (dwarf2out_do_cfi_asm, dwarf2out_begin_prologue): Likewise.
4420         (dwarf2out_frame_init, dwarf2out_frame_finish): Likewise.
4421         (dwarf2out_assembly_start): Likewise.
4422         * except.c (init_eh): Use targetm.except_unwind_info.
4423         (finish_eh_generation, gate_convert_to_eh_region_ranges): Likewise.
4424         (output_one_function_exception_table): Likewise.
4425         * final.c: Unconditionally include dwarf2out.h.
4426         (final_start_function): Unconditionally call dwarf2out routines.
4427         (final_end_function, final_scan_insn): Likewise.
4428         * function.c (expand_function_end): Use targetm.except_unwind_info.
4429         * opts.c (decode_options): Use targetm.except_unwind_info.
4430         * system.h (USING_SJLJ_EXCEPTIONS, TARGET_UNWIND_INFO): Poison.
4431         * target.def (debug_unwind_info, except_unwind_info): New.
4432         * target.h (enum unwind_info_type): New.
4433         * targhooks.c (default_debug_unwind_info): New.
4434         (default_except_unwind_info): New.
4435         (dwarf2_except_unwind_info, sjlj_except_unwind_info): New.
4436         * targhooks.h: Declare them.
4437         * tree-tailcall.c: Include "target.h"
4438         (suitable_for_tail_call_opt_p): Use targetm.except_unwind_info.
4439         * Makefile.in (tree-tailcall.o): Update.
4440         * tree.c (build_common_builtin_nodes): Use targetm.except_unwind_info.
4441         (lhd_gcc_personality): Likewise.
4442
4443         * doc/tm.texi.in (TARGET_UNWIND_INFO): Remove.
4444         (TARGET_EXCEPT_UNWIND_INFO): New.
4445         (DWARF2_UNWIND_INFO): Update.
4446         (TARGET_DEBUG_UNWIND_INFO): New.
4447         * doc/tm.texi: Rebuild.
4448
4449         * c-family/c-cppbuiltin.c (c_cpp_builtins): Use
4450         targetm.except_unwind_info.
4451
4452         * config/arm/arm.c (TARGET_EXCEPT_UNWIND_INFO): New.
4453         (arm_except_unwind_info): New.
4454         (arm_compute_func_type): Use it.
4455         (arm_expand_prologue, thumb_pushpop): Likewise.
4456         (thumb1_expand_prologue, thumb1_output_function_prologue): Likewise.
4457         (arm_unwind_emit, arm_output_fn_unwind): Likewise.
4458         * config/arm/bpabi.h (ARM_UNWIND_INFO): Rename from TARGET_UNWIND_INFO.
4459         * config/arm/arm.h (ARM_UNWIND_INFO): Likewise.
4460         (DWARF2_UNWIND_INFO): Remove.
4461         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
4462         (ARM_EABI_UNWIND_TABLES): Remove.
4463
4464         * config/ia64/ia64.c (ia64_debug_unwind_info): New.
4465         (TARGET_DEBUG_UNWIND_INFO, TARGET_EXCEPT_UNWIND_INFO): New.
4466         (ia64_except_unwind_info): New.
4467         (ia64_output_function_prologue): Use it.
4468         (ia64_add_bundle_selector_before): Likewise.
4469         (ia64_reorg, ia64_asm_unwind_emit): Likewise.
4470         * config/ia64/ia64.h (DWARF2_FRAME_INFO): Remove.
4471         (TARGET_UNWIND_INFO): Remove.
4472
4473         * config/pa/pa.c (pa_option_override): Use targetm.except_unwind_info.
4474
4475 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
4476
4477         * c-parser.c (c_parser_objc_class_definition): Adjust prototype.
4478         (c_parser_objc_protocol_definition): Likewise.
4479         (c_parser_external_declaration): Provide dummy attribute arguments.
4480         (c_parser_declaration_or_fndef): Parse prefix attributes for ObjC.
4481         (c_parser_objc_class_definition): Handle attributes.
4482         (c_parser_objc_protocol_definition): Likewise.
4483
4484 2010-09-28  Tobias Burnus  <burnus@net-b.de>
4485
4486         PR fortran/40569
4487         PR fortran/40568
4488         * toplev.h (save_decoded_options, save_decoded_options_count):
4489         New global variables.
4490         * toplev.c (save_decoded_options, save_decoded_options_count):
4491         Export variables.
4492
4493 2010-09-28  Ian Lance Taylor  <iant@google.com>
4494
4495         * config/i386/i386.c (ix86_supports_split_stack): Test
4496         HAVE_GAS_CFI_PERSONALITY_DIRECTIVE rather than dwarf2out_do_cfi_asm.
4497
4498 2010-09-28  Ian Lance Taylor  <iant@google.com>
4499
4500         PR target/45815
4501         * opts.c (decode_options): Don't test whether the target supports
4502         split stack if flag_split_stack == 0.
4503
4504 2010-09-28  Jan Hubicka  <jh@suse.cz>
4505
4506         * builtin-attrs.def (ATTR_LEAF): New attribute.
4507         (ATTR_NOVOPS_LEAF_LIST, ATTR_LEAF_LIST, ATTR_NOTHROW_LEAF_LIST,
4508         ATTR_CONST_NOTHROW_LEAF_LIST, ATTR_PURE_NOTHROW_LEAF_LIST,
4509         ATTR_PURE_NOTHROW_NOVOPS_LEAF_LIST, ATTR_NORETURN_NOTHROW_LEAF_LIST,
4510         ATTR_MALLOC_NOTHROW_LEAF_LIST, ATTR_SENTINEL_NOTHROW_LEAF_LIST,
4511         ATTR_NOTHROW_NONNULL_LEAF, ATTR_CONST_NOTHROW_NONNULL_LEAF,
4512         ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF, ATTR_PURE_NOTHROW_NONNULL_LEAF,
4513         ATTR_MALLOC_NOTHROW_NONNULL_LEAF): New attribute lists.
4514         * sync-builtins.def: Annotate all builtins by leaf.
4515         * omp-builtins.def: Annotate all builtins by leaf.
4516         * builtins.def: Annotate relevant builtins with leaf attribute.
4517         (ATTR_MATHFN_ERRNO, ATTR_MATHFN_FPROUNDING,
4518         ATTR_MATHFN_FPROUNDING_ERRNO, ATTR_MATHFN_FPROUNDING_STORE): Make
4519         leaf.
4520
4521 2010-09-28  Jan Hubicka  <jh@suse.cz>
4522
4523         * tree-ssa-ccp.c (fold_ctor_reference): New function.
4524         (fold_const_aggregate_ref): Use it.
4525         * fold-const.c (canonicalize_constructor_val): Check that we don't fold
4526         into external static.
4527
4528 2010-09-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4529
4530         PR target/44452
4531         * config/i386/i386.opt (mvect8-ret-in-mem): Define.
4532         * config/i386/i386.c (ix86_target_string): Handle -mvect8-ret-in-mem.
4533         (ix86_solaris_return_in_memory): Remove.
4534         * config/i386/i386-protos.h (ix86_solaris_return_in_memory): Remove.
4535         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
4536         (TARGET_SUBTARGET_DEFAULT): Redefine.
4537         * config/i386/sol2-10.h (TARGET_SUBTARGET_DEFAULT): Update comment.
4538         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
4539         (TARGET_SUBTARGET_DEFAULT): Redefine.
4540         * doc/invoke.texi (Option Summary, i386 and x86-64 Options): Add
4541         -mvect8-ret-in-mem.
4542         (i386 and x86-64 Options): Document -mvect8-ret-in-mem.
4543
4544 2010-09-29  Alan Modra  <amodra@gmail.com>
4545
4546         PR target/45807
4547         * config/rs6000/aix.h (SETUP_FRAME_ADDRESSES): Delete.
4548         * config/rs6000/linux64.h (SETUP_FRAME_ADDRESSES): Delete.
4549         * config/rs6000/rs6000-protos.h (rs6000_aix_emit_builtin_unwind_init):
4550         Delete.
4551         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init): Delete.
4552         (rs6000_emit_prologue): Don't just create frame save info for r2,
4553         actually save r2.
4554
4555 2010-09-28  Richard Henderson  <rth@redhat.com>
4556
4557         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Output 8 bytes
4558         when 8 bytes are requested.
4559
4560 2010-09-28  Tristan Gingold  <gingold@adacore.com>
4561
4562         * config/avr/avr.c (expand_prologue): Set
4563         current_function_static_stack_size.
4564
4565 2010-09-28  Tristan Gingold  <gingold@adacore.com>
4566
4567         * config/alpha/alpha.md: Change the initial condition of the
4568         probing loop.
4569
4570 2010-09-28  Uros Bizjak  <ubizjak@gmail.com>
4571
4572         * config/i386/sse.md (*avx_<umaxmin:code><mode>3):
4573         Split from *avx_<maxmin:code><mode>3.
4574         (*avx_<smaxmin:code><mode>3): Ditto.
4575         * config/i386/i386.md (maxmin): Remove code iterator.
4576
4577 2010-09-27  Ian Lance Taylor  <iant@google.com>
4578
4579         * config/i386/i386.c (ix86_supports_split_stack): -fsplit-stack
4580         requires assembler support for CFI directives.
4581
4582 2010-09-27  Richard Henderson  <rth@redhat.com>
4583
4584         * dwarf2out.c (dwarf2out_cfi_label): Use ASM_OUTPUT_DEBUG_LABEL.
4585
4586 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
4587
4588         * emit-rtl.c (reorder_insns_nobb) [ENABLE_CHECKING]: Sanity-check
4589         that AFTER is not in the range FROM..TO, inclusive.
4590
4591 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
4592             Bernd Schmidt  <bernds@codesourcery.com>
4593
4594         PR rtl-optimization/45792
4595         * cfgcleanup.c (try_head_merge_bb): New rtx vector nextptr.
4596         If not all insns are to be merged, for each edge, stash the
4597         next candidate after the to-be-merged insns before doing the
4598         merge, and use them for the retry at the new insertion point.
4599         Handle CC0 targets when retrying.
4600
4601 2010-09-27  Ian Lance Taylor  <iant@google.com>
4602
4603         * common.opt (fsplit-stack): New option.
4604         * opts.c (decode_options): Set flag_split_stack to final value.
4605         * target.def (supports_split_stack): New hook.
4606         * gcc.c (STACK_SPLIT_SPEC): Define.
4607         (LINK_COMMAND_SPEC): Use STACK_SPLIT_SPEC.
4608         * doc/invoke.texi (Option Summary): Mention -fsplit-stack.
4609         (Code Gen Options): Document -fsplit-stack.
4610         * doc/extend.texi (Function Attributes): Mention no_split_stack.
4611         (Function Attributes): Document no_split_stack.
4612         * doc/tm.texi.in (Stack Smashing Protection): Add @hook
4613         TARGET_SUPPORTS_SPLIT_STACK.
4614         * doc/tm.texi: Rebuild.
4615         * function.c (thread_prologue_and_epilogue_insns): If
4616         flag_split_stack, add split stack prologue.
4617         * explow.c (allocate_dynamic_stack_space): Support -fsplit-stack.
4618         * varasm.c (saw_no_split_stack): New static variable.
4619         (assemble_start_function): Set saw_no_split_stack if the function
4620         has the no_split_stack attribute.
4621         (file_end_indicate_split_stack): New function.
4622         * output.h (file_end_indicate_split_stack): Declare.
4623         * libgcc-std.ver (GCC_4.6.0): Add -fsplit-stack support variables
4624         and function.
4625         * doc/libgcc.texi (Miscellaneous routines): Document -fsplit-stack
4626         routines.
4627         * config/i386/i386.c (ix86_option_override_internal): Don't set
4628         expand_builtin_va_start to NULL if -fsplit-stack.
4629         (ix86_function_regparm): Reduce local regparm by 1 for 32-bit
4630         -fsplit-stack.
4631         (ix86_va_start): If -fsplit-stack, get overflow pointer from
4632         scratch register set by prologue.
4633         (ix86_code_end): If -fsplit-stack, call
4634         file_end_indicate_split_stack.
4635         (ix86_supports_split_stack): New static function.
4636         (SPLIT_STACK_AVAILABLE): Define.
4637         (split_stack_prologue_scratch_regno): New static function.
4638         (split_stack_fn): New static variable.
4639         (ix86_expand_split_stack_prologue): New function.
4640         (ix86_live_on_entry): New static function.
4641         (ix86_legitimate_address_p): Handle UNSPEC_STACK_CHECK.
4642         (output_pic_addr_const): Likewise.
4643         (i386_asm_output_addr_const_extra): Likewise.
4644         (ix86_expand_call): Change return type to rtx.  Return the new
4645         call instruction.
4646         (TARGET_SUPPORTS_SPLIT_STACK): Define.
4647         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
4648         * config/i386/i386.md (UNSPEC_STACK_CHECK): Define.
4649         (split_stack_prologue, split_stack_return): New insns.
4650         (split_stack_space_check): New insn.
4651         * config/i386/i386.h (struct machine_function): Add
4652         split_stack_varargs_pointer field.
4653         * config/i386/linux.h (TARGET_CAN_SPLIT_STACK): Define.
4654         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
4655         * config/i386/linux64.h (TARGET_CAN_SPLIT_STACK): Define.
4656         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
4657         * config/i386/i386-protos.h (ix86_expand_split_stack_prologue):
4658         Declare.
4659         (ix86_expand_call): Update declaration.
4660
4661 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
4662
4663         * doc/objc.texi (Type encoding): Added the new 'long double' (D)
4664         code.  Added byref, which was missing in the list of codes.
4665         Explain that enumeration values are encoded as the integer type
4666         that the compiler uses to store them.  Explain and make examples
4667         of how 'const' interacts with pointers, and the complication of
4668         the encoding of 'const char *'.
4669         (Legacy type encoding): New subsection, explaining that GCC emits
4670         incorrect type encodings for the NeXT runtime for compatibility
4671         reasons.
4672         (@@encode): New subsection, explaining @encode and particularly
4673         that protocol qualifiers are not recognized inside an @encode()
4674         expression.
4675         (Method signatures): New subsection, explaining how method
4676         signatures are encoded.
4677
4678 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
4679
4680         Merge from 'apple/trunk' branch on FSF servers.  Removed small
4681         change in build_conditional_expr that had been added when fixing
4682         PR objc/27377 and which did the same check in a less complete way.
4683
4684         2005-12-15  Fariborz Jahanian <fjahanian@apple.com>
4685
4686         Radar 4229905
4687         * c-typeck.c (build_conditional_expr): Call objc_have_common_type when
4688         looking for objective-c common pointer types.
4689
4690         2005-06-22  Ziemowit Laski  <zlaski@apple.com>
4691
4692         Radar 4154928
4693         * c-typeck.c (build_conditional_expr): For two ObjC pointer types,
4694         use their ObjC common type.
4695
4696 2010-09-27  Richard Guenther  <rguenther@suse.de>
4697
4698         * dbxout.c (dbxout_symbol): Use DECL_FILE_SCOPE_P.
4699
4700 2010-09-27  Jie Zhang  <jie@codesourcery.com>
4701
4702         * print-tree.c (print_node): Print in-constant-pool.
4703
4704 2010-09-27  Uros Bizjak  <ubizjak@gmail.com>
4705
4706         * config/i386/i386.h (CLASS_MAX_NREGS): Also handle XCmode.
4707         (UNITS_PER_WORD): Define only when IN_LIBGCC2 is undefined.
4708         (MOVE_MAX_PIECES): Redefine using UNITS_PER_WORD.
4709         (ASM_OUTPUT_AVX_PREFIX): Simplify pointer addition.
4710
4711 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
4712
4713         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_add): Merge
4714         from pro_epilogue_adjust_stack_<mode>_{1,2}.
4715         (pro_epilogue_adjust_stack_<mode>_add): Rename from
4716         pro_epilogue_adjust_stack_<mode>_3.
4717         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for
4718         renamed pro_epilogue_adjust_stack_{si,di}_add.
4719         (ix86_expand_prologue): Use indirect functions.  Update for renamed
4720         pro_epilogue_adjust_stack_{si,di}_sub.
4721
4722 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
4723
4724         * config/i386/i386.md (movmsk_df): New insn.
4725         (signbitdf): Split out of signbit<mode>2.  Generate movmsk_df
4726         sequence for TARGET_SSE_MATH.
4727
4728 2010-09-26  Richard Sandiford  <rdsandiford@googlemail.com>
4729
4730         * config/mips/mips.c (mips_builtin_decls): Declare.
4731         (mips_init_builtins): Store function declarations in
4732         mips_builtin_decls.
4733         (mips_builtin_decl): New function.
4734         (TARGET_BUILTIN_DECL): Define.
4735
4736 2010-09-25  Kai Tietz  <kai.tietz@onevision.com>
4737             Richard Henderson  <rth@redhat.com>
4738
4739         * config/i386/cygwin.asm: Include auto-host.h.
4740         (cfi_startproc, cfi_endproc, cfi_adjust_cfa_offset,
4741         cfi_def_cfa_register, cfi_register, cfi_push, cfi_pop): New macros.
4742         (__chkstk, __alloca): Annotate for dwarf2 unwind info.  Drop
4743         alignment code from the 64-bit path.  Use gas local labels.
4744         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_2): Macroize
4745         from _di_2.  Remove the useless constant integer argument.
4746         (pro_epilogue_adjust_stack_<mode>_3): New.
4747         (allocate_stack_worker_probe_<mode>): Macroize from
4748         allocate_stack_worker_{32,64}.  Use __chkstk_ms.  Update all users.
4749         * config/i386/i386.c (ix86_expand_prologue): Use __chkstk_ms;
4750         use gen_pro_epilogue_adjust_stack_*_3 and annotate it.
4751         (__chkstk_ms): New function.
4752         * config/i386/t-cygming (LIB1ASMFUNCS): Add _chkstk_ms.
4753         * gcc/config/i386/t-interix: Likewise.
4754         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Export for target.
4755         (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
4756         (HAVE_GAS_CFI_SECTIONS_DIRECTIVE): Likewise.
4757         * configure, config.in: Rebuild.
4758
4759 2010-09-25  Eric Botcazou  <ebotcazou@adacore.com>
4760
4761         * tree-inline.c (copy_bb): Use GSI_CONTINUE_LINKING when inserting new
4762         statements because of the return slot optimization.
4763
4764 2010-09-25  Anatoly Sokolov  <aesok@post.ru>
4765
4766         * config/avr/avr.h (CLASS_LIKELY_SPILLED_P): Remove.
4767         * config/avr/avr-protos.h (class_likely_spilled_p): Remove.
4768         * config/avr/avr.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
4769         (class_likely_spilled_p): Rename to...
4770         (avr_class_likely_spilled_p): ...this. Make static. Change argument
4771         type to reg_class_t.
4772
4773 2010-09-24  Jan Hubicka  <jh@suse.cz>
4774
4775         * lto-symtab.c (lto_symtab_entry_def): Add guessed field.
4776         (lto_symtab_resolve_symbols): Set it.
4777         (lto_symtab_merge_decls_1): Do not compute used_from_object_file;
4778         store resolution field in cgraph/varpool.
4779         * cgraph.c (cgraph_same_body_alias, cgraph_add_thunk): Return node.
4780         (cgraph_get_node_or_alias, cgraph_get_node_or_alias): Constify.
4781         (cgraph_dump_node): Drop used_from_object_file.
4782         (cgraph_clone_node, cgraph_create_virtual_clone): Likewise.
4783         (cgraph_function_body_availability): Use decl_replaceable_p.
4784         (cgraph_make_node_local): Set resolution to LDPR_PREVAILING_DEF_IRONLY.
4785         (cgraph_can_remove_if_no_direct_calls_and_refs): Use
4786         cgraph_used_from_object_file_p.
4787         (cgraph_will_be_removed_from_program_if_no_direct_calls): Use
4788         cgraph_used_from_object_file_p.
4789         (resolution_used_from_other_file_p): New functoin.
4790         (cgraph_used_from_object_file_p): New predicate.
4791         * cgraph.h: Include plugin-api.h
4792         (struct cgraph_local_info): Remove used_from_object_file.
4793         (struct cgraph_node): Add resolution field.
4794         (struct varpool_node): Likewise; remove used_from_object_file;
4795         reove const_value_known.
4796         (cgraph_get_node, cgraph_get_node_or_alias, cgraph_node,
4797         cgraph_same_body_alias, cgraph_add_thunk): Update prototypes.
4798         (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
4799         varpool_used_from_object_file_p): Declare.
4800         (varpool_get_node, varpool_extra_name_alias): Update prototype.
4801         * tree.h (DECL_REPLACEABLE_P): Remove.
4802         (decl_replaceable_p, decl_binds_to_current_def_p): Declare.
4803         * final.c (rest_of_clean_state): Use decl_binds_to_current_def_p.
4804         * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
4805         input_overwrite_node, input_node, input_varpool_node): Stream
4806         resolution.
4807         * expr.c (expand_expr_real_1): Use const_value_known_p
4808         * ipa.c (ipa_discover_readonly_nonaddressable_var): Do not set
4809         const_value_known.
4810         (cgraph_externally_visible_p): Use cgraph_used_from_object_file_p.
4811         (function_and_variable_visibility): Set resolution for local vars
4812         and functions; use varpool_used_from_object_file_p.
4813         * varasm.c (resolution_to_local_definition_p, resolution_local_p): New
4814         static functions.
4815         (default_binds_local_p_1): Use resolutoin info.
4816         (decl_binds_to_current_def_p, decl_replaceable_p): New functions.
4817         * varpool.c (varpool_get_node): Constify.
4818         (const_value_known_p): Do not use vnode->const_value_known;
4819         use decl_replaceable_p.
4820         (varpool_finalize_decl): Do not set const_value_known.
4821         (cgraph_variable_initializer_availability): Use decl_replaceable_p
4822         (varpool_extra_name_alias): Return new node.
4823         (varpool_used_from_object_file_p): New function.
4824
4825 2010-09-24  Richard Henderson  <rth@redhat.com>
4826
4827         * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): New.
4828         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): New.
4829         (do_spill): Use REG_CFA_OFFSET.
4830         (ia64_expand_prologue): Use REG_CFA_ADJUST_CFA and REG_CFA_REGISTER
4831         as appropriate.
4832         (ia64_expand_epilogue): Likewise.
4833         (process_set): Split into ...
4834         (process_cfa_adjust_cfa): this,
4835         (process_cfa_register): this,
4836         (process_cfa_offset): and this new function.
4837         (ia64_asm_unwind_emit): Use them.  Expect REG_CFA_* notes
4838         instead of REG_FRAME_RELATED_EXPR.
4839
4840 2010-09-24  Olivier Hainque  <hainque@adacore.com>
4841
4842         * config/i386/vx-common.h (DBX_REGISTER_NUMBER): Reinstate.
4843
4844 2010-09-24  Jan Hubicka  <jh@suse.cz>
4845
4846         * doc/extend.texi: (attribute leaf): Document.
4847         * tree.c (local_define_builtin): Handle ECF_LEAF.
4848         (build_common_builtin_nodes): Set ECF_LEAF where needed.
4849         * tree.h (ECF_LEAF): New.
4850         * ipa-reference.c (propagate_bits): For leaf calls propagate ever
4851         overwrittable and unavailable functions.
4852         (ipa_init): Put all_module_statics into optimization_summary_obstack.
4853         (copy_global_bitmap): Do not copy all_module_statics.
4854         (read_write_all_from_decl): Use cgraph_node argument; handle ECF_LEAF.
4855         (propagate): Handle overwritable and unavailable leaf functions;
4856         initialize global info for overwritable and unavailable leaf functions;
4857         do not free all module statics.
4858         (ipa_reference_get_not_{read,written}_global): Leaf calls don't clobber
4859         local statics.
4860         * calls.c (flags_from_decl_or_type): Handle leaf.
4861         * tree-cfg.c (stmt_can_make_abnormal_goto): Leaf functions can't do
4862         abnormal gotos.
4863
4864 2010-09-24  Basile Starynkevitch  <basile@starynkevitch.net>
4865
4866         * gengtype.c: Reindented.
4867         * gengtype.h: Reindented.
4868         * gengtype-parse.c: Reindented.
4869
4870 2010-09-24  Jan Hubicka  <jh@suse.cz>
4871
4872         PR tree-optimization/45738
4873         PR tree-optimization/45741
4874         * expr.c (string_constant): Allow CONST_DECL too;
4875         check that DECL_INITIAL is set.
4876         * varpool.c (const_value_known_p): Only look into VAR_DECL
4877         and CONST_DECL.
4878
4879 2010-09-24  Joseph Myers  <joseph@codesourcery.com>
4880
4881         * common.opt (undef): New.
4882
4883 2010-09-24  Jakub Jelinek  <jakub@redhat.com>
4884
4885         PR middle-end/45234
4886         * rtl.h (enum global_rtl_index): Add
4887         GR_VIRTUAL_PREFERRED_STACK_BOUNDARY.
4888         (LAST_VIRTUAL_POINTER_REGISTER): Define.
4889         (virtual_preferred_stack_boundary_rtx,
4890         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM): Define.
4891         (LAST_VIRTUAL_REGISTER): Increase by one.
4892         (REGNO_PTR_FRAME_P): Use LAST_VIRTUAL_POINTER_REGISTER
4893         instead of LAST_VIRTUAL_REGISTER.
4894         * function.c (instantiate_new_reg): Handle
4895         virtual_preferred_stack_boundary_rtx.
4896         * emit-rtl.c (init_virtual_regs): Handle
4897         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
4898         (init_emit_regs): Initialize virtual_preferred_stack_boundary_rtx.
4899         * explow.c (round_push): If crtl->preferred_stack_boundary
4900         is smaller than MAX_SUPPORTED_STACK_ALIGNMENT, use
4901         virtual_preferred_stack_boundary_rtx alignment instead of
4902         crtl->preferred_stack_boundary alignment.
4903         (allocate_dynamic_stack_space): Use CONST_INT_P and REG_P
4904         macros.  Never decrease crtl->preferred_stack_boundary,
4905         use crtl->preferred_stack_boundary or MAX_SUPPORTED_STACK_ALIGNMENT
4906         instead of PREFERRED_STACK_BOUNDARY.  Don't modify
4907         stack_pointer_delta in dynamic allocation, even when size
4908         is constant.
4909         (probe_stack_range, anti_adjust_stack_and_probe): Use CONST_INT_P
4910         macro.
4911         * print-rtl.c (print_rtx): Handle
4912         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
4913         * config/alpha/alpha.h (NONSTRICT_REG_OK_FP_BASE_P): Use
4914         LAST_VIRTUAL_POINTER_REGISTER instead of LAST_VIRTUAL_REGISTER.
4915         * config/frv/frv.c (frv_emit_movsi): Likewise.
4916         * config/arm/arm.c (thumb1_legitimate_address_p): Likewise.
4917         * config/rs6000/rs6000.c (virtual_stack_registers_memory_p):
4918         Likewise.
4919
4920         Revert:
4921         2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
4922
4923         PR middle-end/45234
4924         * calls.c (expand_call): Make sure that all variable sized
4925         adjustments are multiple of preferred stack boundary after
4926         stack alignment.
4927
4928 2010-09-24  Iain Sandoe  <iains@gcc.gnu.org>
4929             Dominique Dhumieres  <dominiq@lps.ens.fr>
4930
4931         PR bootstrap/45751
4932         * gcc/config/darwin-driver.c (darwin_default_min_version):
4933         Adjust size passed to memcpy in two places.
4934
4935 2010-09-24  Richard Guenther  <rguenther@suse.de>
4936
4937         * c-decl.c (pop_scope): Always set file-scope DECL_CONTEXT.
4938         Make sure to not call set_type_context with error_mark_node.
4939         * langhooks.c (lhd_set_decl_assembler_name): Use DECL_FILE_SCOPE_P.
4940
4941 2010-09-24  Richard Guenther  <rguenther@suse.de>
4942
4943         * Makefile.in (OBJS-onestep): Remove.
4944         (ALL_HOST_BACKEND_OBJS): Remove libbackend.o.
4945         (libbackend.a): Remove onestep support.
4946         (libbackend.o): Remove.
4947         * configure.ac (--enable-intermodule): Remove.
4948         * configure: Regenerate.
4949
4950 2010-09-24  Bernd Schmidt  <bernds@codesourcery.com>
4951
4952         * cfgcleanup.c (flow_find_head_matching_sequence): Terminate when
4953         reaching the end of a block if it occurs at a DEBUG_INSN.
4954
4955 2010-09-09  Tristan Gingold  <gingold@adacore.com>
4956
4957         PR target/44242
4958         * config/vms/vms-crt0-64.c: Removed.
4959         * config/vms/vms-crt0.c: Removed.
4960         * config/vms/vms-psxcrt0-64.c: Removed.
4961         * config/vms/vms-psxcrt0.c: Removed.
4962         * config/vms/vms-ucrt0.c: New file.
4963         * config/vms/t-vms64: Removed.
4964         * config/vms/t-vms (VMS_EXTRA_PARTS): Uncomment it.  Remove DECC.
4965         Use $(GCC_FOR_TARGET) to build pcrt0.o and vcrt0.o
4966         * config.gcc (alpha-dec-vms): Use t-vms.
4967
4968 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
4969
4970         * doc/invoke.texi (-fno-nil-receivers): Tidied up line to remove
4971         underfull hbox in DVI output.
4972         (-fobjc-class-cxx-cdtors): Same change.
4973         (-fobjc-exceptions): Tidied up documentation.  Explain what the
4974         option does, but moved the (lenghty) description of the exception
4975         syntax into objc.texi.
4976         (-fobjc-gc): Explain that the option is not useful with the GNU
4977         runtime.
4978         (-fzero-link): Explain that the GNU runtime always works in
4979         "zero-link" mode.
4980         * doc/objc.texi: All sections: simplified @node declarations
4981         removing specification of next, previous, up node.
4982         (Objective-C): Updated introduction.
4983         (Garbage Collection): Updated.  The bohem-gc library is now
4984         included in gcc itself.  Mention that this section only applies to
4985         the GNU Objective-C runtime.
4986         (compatibility_alias): Small tidy up.
4987         (Exceptions): New section mostly containing text previously in the
4988         description of the -fobjc-exception command-line option.
4989         (Synchronization): Same.
4990
4991 2010-09-24  Uros Bizjak  <ubizjak@gmail.com>
4992
4993         * config/i386/i386.md (ix86_code_end): Move the initialization of
4994         xops array near the consumer.  Use AX_REG and SP_REG instead of
4995         numerical constants.
4996
4997 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
4998
4999         * c-typeck.c (convert_arguments): Use warning 'too many arguments to
5000         method [methodname]' for an Objective-C method instead of the less
5001         satisfactory 'too many arguments to function' (with no method name).
5002
5003 2010-09-23  Eric Botcazou  <ebotcazou@adacore.com>
5004
5005         * tree-flow.h (execute_update_addresses_taken): Remove parameter.
5006         * tree-ssa.c (maybe_optimize_var): Tweak comment and dump messages.
5007         (execute_update_addresses_taken): Remove parameter.  Execute the
5008         optimization unconditionally.
5009         * passes.c (execute_function_todo): Call execute_update_addresses_taken
5010         unconditionally if TODO_rebuild_alias is set, else only when optimizing
5011         if TODO_update_address_taken is set.
5012
5013 2010-09-23  Anatoly Sokolov  <aesok@post.ru>
5014
5015         * config/arm/arm.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
5016         * config/arm/arm-protos.h (arm_output_addr_const_extra): Remove.
5017         * config/arm/arm.c (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
5018         (arm_output_addr_const_extra): Make static.
5019
5020 2010-09-23  Uros Bizjak  <ubizjak@gmail.com>
5021
5022         * config/i386/i386.md (UNSPECV_NOPS): Rename from UNSPEC_NOPS and
5023         define as unspec_volatile.
5024         ("nops"): Define as unspec_volatile. Use fputs to write to
5025         asm_out_file directly.  Output NOPs on separate lines using while loop.
5026         * config/i386/i386.c (ix86_code_end): Use fputs to write to
5027         asm_out_file directly.  Output NOPs on separate lines using while loop.
5028
5029 2010-09-23  Richard Guenther  <rguenther@suse.de>
5030
5031         PR tree-optimization/45565
5032         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
5033         Make sure to adjust the fndecl before replacing the stmt.
5034
5035 2010-09-23  Richard Guenther  <rguenther@suse.de>
5036
5037         PR middle-end/45750
5038         * gimplify.c (gimplify_expr): Properly pass on GS_ERROR when
5039         gimplifying MEM_REF.
5040
5041 2010-09-23  Alan Modra  <amodra@gmail.com>
5042
5043         * config/rs6000/rs6000.c (toc_relative_ok): Delete.
5044         (rs6000_emit_move): Use SYMBOL_REF_LOCAL_P instead.
5045
5046 2010-09-23  Bernd Schmidt  <bernds@codesourcery.com>
5047
5048         PR rtl-optimization/44374
5049         * basic-block.h (enum bb_flags): Add BB_MODIFIED.
5050         * df-core.c (df_set_bb_dirty): Set it.
5051         * ifcvt.c (find_memory): Remove function.
5052         (dead_or_predicable): Use can_move_insns_across.
5053         * df.h (can_move_insns_across): Declare function.
5054         * cfgcleanup.c (block_was_dirty): New static variable.
5055         (try_crossjump_bb, try_forward_edges): Test BB_MODIFIED flag rather
5056         than df_get_bb_dirty.
5057         (try_head_merge_bb): New static function.
5058         (try_optimize_cfg): Call it.  Call df_analyze if block_was_dirty
5059         is set.
5060         * df-problems.c: Include "target.h"
5061         (df_simulate_find_uses): New static function.
5062         (MEMREF_NORMAL, MEMREF_VOLATILE): New macros.
5063         (find_memory, find_memory_store): New static functions.
5064         (can_move_insns_across): New function.
5065         * Makefile.in (df-problems.o): Update dependencies.
5066
5067 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
5068
5069         PR java/44095
5070         * config/sparc/linux.h (ASM_SPEC): Pass -K PIC if -findirect-dispatch
5071         is specified and the suffix of the file isn't ".c".
5072         * config/sparc/linux64.h (ASM_SPEC): Likewise.
5073
5074 2010-09-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5075
5076         * doc/contrib.texi (Contributors): Allow URL to wrap in PDF output.
5077         * doc/cppopts.texi: Fix markup of index entry.
5078         * doc/extend.texi (Constructing Calls): Fix markup of
5079         __builtin_va_arg_pack and __builtin_va_arg_pack_len definition.
5080         (Conditionals, C++ Comments, Pragmas, Unnamed Fields, Thread-Local)
5081         (Vague Linkage, C++ Attributes): Fix markup of index entries and
5082         keywords.
5083         * doc/invoke.texi (Option Summary): Fix spacing.  Rewrap to
5084         avoid long lines.
5085         (C Dialect Options, C++ Dialect Options, Warning Options)
5086         (Debugging Options, Spec Files, Darwin Options)
5087         (i386 and x86-64 Options, MIPS Options)
5088         (RS/6000 and PowerPC Options, Code Gen Options): Fix markup of
5089         index entries, avoid abbreviations, allow URLs to wrap, avoid
5090         long lines, avoid overlong pages from long @itemx lists.
5091         * doc/objc.texi (Garbage Collection): Allow URLs to wrap.
5092         * doc/standards.texi (Standards): Likewise.
5093         * doc/trouble.texi (Incompatibilities): Fix markup of index entry.
5094
5095 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
5096
5097         * opts-common.c (prune_options): Make static.  Work with decoded
5098         options.
5099         (decode_cmdline_options_to_array): Call prune_options.  Don't
5100         resize option array here.
5101         * opts.h (prune_options): Remove prototype.
5102         * gcc.c (process_command): Take decoded options; don't call
5103         decode_cmdline_options_to_array here.  Use decoded options for argv[0].
5104         (main): Call decode_cmdline_options_to_array here instead of
5105         prune_options.  Update call to process_command.
5106         * config/darwin-driver.c: Include opts.h.
5107         (darwin_default_min_version): Work with decoded options.  Don't
5108         handle -b or -V here.
5109         * config/darwin.h (darwin_default_min_version): Update prototype.
5110         (GCC_DRIVER_HOST_INITIALIZATION): Update call to
5111         darwin_default_min_version.
5112         * config/i386/cygwin.h (mingw_scan): Update prototype.
5113         (GCC_DRIVER_HOST_INITIALIZATION): Update call to mingw_scan.
5114         * config/i386/cygwin1.c: Include opts.h.
5115         (mingw_scan): Work with decoded options.
5116         * config/i386/t-cygwin (cygwin1.o): Update dependencies.
5117         * config/t-darwin (darwin-driver.o): Update dependencies.
5118
5119 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
5120
5121         * common.opt (-assemble, -compile, -coverage, -debug, -dump,
5122         -dump=, -dumpbase, -dumpdir, -entry, -entry=, -extra-warnings,
5123         -for-assembler, -for-assembler=, -for-linker, -for-linker=,
5124         -force-link, -force-link=, -language, -language=,
5125         -library-directory, -library-directory=, -no-canonical-prefixes,
5126         -no-standard-libraries, -no-warnings, -optimize, -output,
5127         -output=, -pass-exit-codes, -pedantic, -pedantic-errors, -pie,
5128         -pipe, -prefix, -prefix=, -preprocess, -print-file-name,
5129         -print-file-name=, -print-libgcc-file-name,
5130         -print-multi-directory, -print-multi-lib,
5131         -print-multi-os-directory, -print-prog-name, -print-prog-name=,
5132         -print-search-dirs, -print-sysroot, -print-sysroot-headers-suffix,
5133         -profile, -save-temps, -shared, -specs, -specs=, -static,
5134         -symbolic, -time, -verbose, -param=, -sysroot, coverage, e, u,
5135         symbolic): New.
5136         (fhelp, fhelp=, ftarget-help, fversion): Make into aliases.
5137         * gcc.c (A Short Introduction to Adding a Command-Line Option):
5138         Remove comment.
5139         (cc1_options): Correct specs for passing down --help,
5140         --target-help and --help=*.  Add spec for passing down --version.
5141         (struct option_map, option_map, target_option_translations,
5142         translate_options): Remove.
5143         (driver_handle_option): Handle OPT__version, OPT__help, OPT__help_
5144         and OPT__target_help instead of OPT_fversion, OPT_fhelp,
5145         OPT_fhelp_ and OPT_ftarget_help.
5146         (process_command): Don't call translate_options.  Call
5147         decode_cmdline_options_to_array before checking for
5148         -no-canonical-prefixes using decoded options.
5149         * opts-common.c (tm.h): Update comment on #include.
5150         (find_opt): Allow abbreviations of long options.
5151         (struct option_map, option_map): New.
5152         (decode_cmdline_option): Use them instead of hardcoding -Wno, -fno
5153         and -mno handling.
5154         (target_option_translations): New.
5155         (decode_cmdline_options_to_array): Handle
5156         TARGET_OPTION_TRANSLATE_TABLE in driver.
5157         * opts.c (common_handle_option): Don't handle OPT_fhelp,
5158         OPT_ftarget_help, OPT_fhelp_ or OPT_fversion.
5159
5160 2010-09-22  Richard Guenther  <rguenther@suse.de>
5161
5162         * tree-inline.c (optimize_inline_calls): Schedule cleanups
5163         only if we inlined something.  Block compaction and conditional
5164         folding are done by cfg cleanup.  Schedule update-address-taken.
5165         (tree_function_versioning): Remove redundant call to number_blocks.
5166         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Conditional
5167         folding is done by cfg cleanup.
5168         * passes.c (init_optimization_passes): Remove update-address-taken
5169         pass after IPA inlining.
5170
5171 2010-09-22  Chung-Lin Tang  <cltang@codesourcery.com>
5172
5173         * postreload.c (move2add_note_store): Add reg_symbol_ref[] checks
5174         to update conditions. Fix reg_mode[] check.
5175
5176 2010-09-22  Hariharan Sandanagobalane  <hariharan@picochip.com>
5177
5178         * config/picochip/picochip.md (movhicc): Use expand to check whether
5179         movhicc is available and split it after reload.
5180
5181 2010-09-22  Richard Guenther  <rguenther@suse.de>
5182
5183         * tree-ssanames.c (release_dead_ssa_names): Do not remove
5184         callee edges here.
5185         * passes.c (init_optimization_passes): Remove early CFG cleanup.
5186         * tree-optimize.c (execute_cleanup_cfg_pre_ipa): Remove.
5187         (pass_cleanup_cfg): Likewise.
5188         (execute_fixup_cfg): Cleanup.
5189         * tree-pass.h (pass_cleanup_cfg): Remove.
5190
5191 2010-09-22  Martin Jambor  <mjambor@suse.cz>
5192
5193         * gimple-fold.c (fold_gimple_call): New parameter inplace, do not fold
5194         builtins if it is true.
5195         (fold_stmt_1): Call, fold_gimple_call always, pass inplace as a
5196         parameter.
5197
5198 2010-09-22  Martin Jambor  <mjambor@suse.cz>
5199
5200         * tree-sra.c (struct access): New field grp_no_warning.
5201         (create_access_replacement): Set TREE_NO_WARNING according to
5202          grp_no_warning.
5203         (create_artificial_child_access): Use build_ref_for_model and set
5204         grp_no_warning if build_user_friendly_ref_for_offset fails.
5205         (propagate_subaccesses_across_link): Likewise.
5206
5207 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
5208
5209         PR target/35664
5210         * config/sparc/constraints.md ('e'): Return NO_REGS if !TARGET_FPU.
5211         ('f'): Likewise.
5212
5213 2010-09-22  Tristan Gingold  <gingold@adacore.com>
5214
5215         * config/alpha/alpha.c (alpha_use_linkage): Initialize target field.
5216
5217 2010-09-22  Uros Bizjak  <ubizjak@gmail.com>
5218
5219         * config/i386/i386.h (MAX_STRINGOP_ALGS): Fix typo in the name.
5220         * config/i386/i386.c (decide_alg): Update for rename.
5221
5222 2010-09-22  Jakub Jelinek  <jakub@redhat.com>
5223
5224         PR rtl-optimization/45739
5225         * simplify-rtx.c (simplify_binary_operation_1): Optimize even
5226         vector mode | CONST0_RTX (mode) and ^ CONST0_RTX (mode).
5227
5228 2010-09-21  Anatoly Sokolov  <aesok@post.ru>
5229
5230         * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): Remove macros.
5231         * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
5232         Remove.
5233         * config/rs6000/rs6000.c (rs6000_output_addr_const_extra): Make static.
5234         (TTARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
5235
5236 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
5237
5238         PR objc/23710
5239         * c-parser.c (c_parser_objc_method_definition): Check the return
5240         value of objc_start_method_definition and if false is returned,
5241         parse the method definition but emit no code.
5242
5243 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
5244
5245         PR objc/25965
5246         * c-decl.c (detect_field_duplicates): If compiling Objective-C,
5247         call objc_get_interface_ivars ().
5248
5249 2010-09-21  Kai Tietz  <kai.tietz@onevision.com>
5250
5251         PR target/45694
5252         * config/i386/i386.c (ix86_expand_prologue): Save r10 in case that
5253         static chain-register is used for 64-bit.
5254
5255 2010-09-21  Richard Guenther  <rguenther@suse.de>
5256
5257         * dwarf2out.c (is_cu_die): New function.
5258         (add_pubtype): Use it.
5259         (gen_subprogram_die): Likewise.
5260         (gen_struct_or_union_type_die): Likewise.
5261         (dwarf2out_finish): Likewise.
5262         (comp_unit_die): Rename to ...
5263         (single_comp_unit_die): ... this.
5264         (comp_unit_die): New function lazily constructing and
5265         returning single_comp_unit_die.
5266         (is_cxx, is_fortran, is_ada, debug_dwarf, break_out_comdat_types,
5267         base_type_die, subrange_type_die, modified_type_die,
5268         lower_bound_default, add_bound_info, add_prototyped_attribute,
5269         dwarf2out_vms_debug_main_pointer, scope_die_for, retry_incomplete_types,
5270         dwarf2out_abstract_function, gen_type_die_with_usage, get_context_die,
5271         force_decl_die, gen_namespace_die, dwarf2out_decl,
5272         dwarf2out_start_source_file, dwarf2out_end_source_file,
5273         prune_unused_types, dwarf2out_finish): Use it.
5274         (gen_compile_unit_die): For GNU GIMPLE derive DW_AT_language from
5275         the global list of translation-unit decls.
5276         (dwarf2out_init): Do not create single_comp_unit_die here.
5277         (force_decl_die): Handle TRANSLATION_UNIT_DECL.
5278
5279 2010-09-21  Richard Guenther  <rguenther@suse.de>
5280
5281         * dwarf2out.c (dwarf2out_decl): Do not always generate a DIE
5282         for bool for C++.
5283
5284 2010-09-21  Bernd Schmidt  <bernds@codesourcery.com>
5285
5286         * config/arm/iterators.md (qhs_extenddi_op): New mode_attr.
5287         (qhs_extenddi_cstr): Likewise.
5288         * config/arm/arm.md (zero_extend<mode>di2, extend<mode>di2): Use
5289         them for the source operand.
5290
5291 2010-09-21  Uros Bizjak  <ubizjak@gmail.com>
5292
5293         * config/i386/i386.c (ix86_split_ashl): Rename single_width variable
5294         to half_width.  Use GET_MODE_BITSIZE to calculate mode size.
5295         (ix86_split_ashr): Ditto.
5296         (ix86_split_lshr): Ditto.
5297
5298 2010-09-21  Richard Guenther  <rguenther@suse.de>
5299
5300         PR tree-optimization/45580
5301         * tree-ssa-propagate.c (substitute_and_fold): Always replace
5302         regular uses.
5303         * gimple-fold.c (gimple_fold_obj_type_ref): For a BINFO without
5304         virtuals fold the call into a regular indirect one.
5305
5306 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
5307
5308         PR rtl-optimization/42775
5309         * cfgrtl.c (rest_of_pass_free_cfg): Recompute notes if delay slot
5310         scheduling is enabled.
5311
5312 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
5313
5314         PR rtl-optimization/45728
5315         * expr.c (expand_expr_real_1): If op0 isn't REG or MEM, try
5316         gen_lowpart_common first and if that fails, force_reg first
5317         before calling gen_lowpart.
5318
5319         PR middle-end/45678
5320         * cfgexpand.c (expand_one_stack_var_at): Use
5321         crtl->max_used_stack_slot_alignment as max_align, instead
5322         of maximum of that and PREFERRED_STACK_BOUNDARY.
5323         Don't call update_stack_alignment.
5324
5325 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
5326
5327         * langhooks.h (struct lang_hooks_for_types): Remove hash_types field.
5328         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): Delete.
5329         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_HASH_TYPES.
5330         * system.h (LANG_HOOKS_HASH_TYPES): Poison.
5331         * tree.c (type_hash_canon): Do not test lang_hooks.types.hash_types.
5332         (build_nonstandard_integer_type): Likewise.
5333         (build_range_type_1): New function, built from...
5334         (build_range_type): ...this.  Call build_range_type_1.
5335         (build_nonshared_range_type): New function.
5336         (build_array_type_1): New function, built from...
5337         (build_array_type: ...this.  Call build_array_type_1.
5338         (build_nonshared_array_type): New function.
5339         * tree.h (build_nonshared_range_type): Declare.
5340         (build_nonshared_array_type): Likewise.
5341
5342 2010-09-20  Anatoly Sokolov  <aesok@post.ru>
5343
5344         * config/arm/arm.h (CLASS_LIKELY_SPILLED_P): Remove.
5345         * config/arm/arm.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
5346         (arm_class_likely_spilled_p): New function.
5347
5348 2010-09-20  Uros Bizjak  <ubizjak@gmail.com>
5349
5350         * config/i386/i386.c (ix86_expand_ashl_const): Rewrite using
5351         indirect functions.
5352         (ix86_split_ashl): Ditto.
5353         (ix86_split_ashr): Ditto.
5354         (ix86_split_lshr): Ditto.
5355         (ix86_adjust_counter): Ditto.
5356
5357 2010-09-20  Nicola Pero  <nicola.pero@meta-innovation.com>
5358
5359         * c-family/c-common.h (constant_string_class): Documented with
5360         comment identical to the one already in c-common.c.
5361
5362 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
5363
5364         * dwarf2out.c (any_cfis_emitted): New static variable.
5365         (add_fde_cfi): Set it.
5366         (dwarf2out_frame_debug): Clear it before processing,
5367         if it is set afterwards, flush any queued reg saves.
5368
5369         PR debug/45124
5370         * dwarf2out.c (add_accessibility_attribute): Assume
5371         DW_ACCESS_private as the default for dwarf_version > 2
5372         and DW_TAG_class_type parent.
5373         (gen_inheritance_die): Assume DW_ACCESS_public as the default
5374         for dwarf_version > 2 and parent other than DW_TAG_class_type.
5375
5376 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
5377
5378         PR target/45726
5379         * arm.md (arm_movt): Only enable on machines with MOVT.
5380
5381 2010-09-20  Jie Zhang  <jie@codesourcery.com>
5382
5383         * config/arm/arm.c (arm_address_offset_is_imm): New.
5384         (arm_early_store_addr_dep): New.
5385         (arm_early_load_addr_dep): New.
5386         * config/arm/arm-protos.h (arm_early_store_addr_dep): Declare.
5387         (arm_early_load_addr_dep): Declare.
5388         (arm_address_offset_is_imm): Declare.
5389         * config/arm/cortex-m4.md: New file.
5390         * config/arm/cortex-m4-fpu.md: New file.
5391         * config/arm/arm.md: Include cortex-m4.md and cortex-m4-fpu.md.
5392         (attr generic_sched): Exclude cortexm4.
5393         (attr generic_vfp): Exclude cortexm4.
5394
5395 2010-09-20  Richard Guenther  <rguenther@suse.de>
5396
5397         PR middle-end/45704
5398         * gimplify.c (gimplify_modify_expr_rhs): Preserve volatileness.
5399
5400 2010-09-20  Jan Hubicka  <jh@suse.cz>
5401
5402         PR tree-optimize/45605
5403         * cgraph.h (const_value_known_p): Declare.
5404         (varpool_decide_const_value_known): Remove.
5405         * tree-ssa-ccp.c (get_base_constructor): Use it.
5406         * lto-cgraph.c (compute_ltrans_boundary): Likewise.
5407         * expr.c (string_constant): Likewise.
5408         * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
5409         * ipa.c (ipa_discover_readonly_nonaddressable_var,
5410         function_and_variable_visibility): Likewise.
5411         * gimplify.c (gimplify_call_expr): Likewise.
5412         * gimple-fold.c (get_symbol_constant_value): Likewise.
5413         * varpool.c (varpool_decide_const_value_known): Replace by...
5414         (const_value_known_p): ... this one; handle other kinds of DECLs
5415         too and work for automatic vars.
5416         (varpool_finalize_decl): Use const_value_known_p.
5417
5418 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
5419
5420         PR target/45726
5421         * arm.md (arm_movtas_ze): Only enable on machine with MOVT.
5422
5423 2010-09-20  Richard Guenther  <rguenther@suse.de>
5424
5425         PR tree-optimization/45705
5426         * tree-ssa-dom.c (optimize_stmt): Perform redundant store elimination.
5427
5428 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
5429
5430         PR rtl-optimization/45695
5431         * combine.c (try_combine): When splitting a two set pattern,
5432         make sure the pattern which will be put into i2 doesn't use REGs
5433         or MEMs set by insns in between i2 and i3.
5434
5435 2010-09-19  Jan Hubicka  <jh@suse.cz>
5436
5437         PR lto/44246
5438         * lto-cgraph.c (input_cgraph_1, input_varpool_1): Avoid
5439         processing same node twice.
5440
5441 2010-09-19  Anatoly Sokolov  <aesok@post.ru>
5442
5443         * config/bfin/bfin.h (CLASS_LIKELY_SPILLED_P): Remove.
5444         * config/bfin/bfin.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
5445         (bfin_class_likely_spilled_p): New function
5446
5447 2010-09-19  Ira Rosen  <irar@il.ibm.com>
5448
5449         PR tree-optimization/45714
5450         * tree-vect-stmts.c (vect_transform_stmt): Use a dummy statement
5451         created in vectorizable_call instead of the original statement in
5452         def stmt updates.
5453
5454 2010-09-19  Uros Bizjak  <ubizjak@gmail.com>
5455
5456         * config/i386/i386-protos.h (split_double_mode): New prototype.
5457         (split_di, split_ti): Remove prototypes.
5458         * config/i386/i386.c (split_double_mode): New function.
5459         (split_di, split_ti): Remove.
5460         (ix86_expand_branch): Use split_double_mode.
5461         (ix86_split_to_parts): Ditto.
5462         (ix86_split_ashl): Ditto.
5463         (ix86_split_ashr): Ditto.
5464         (ix86_split_lshr): Ditto.
5465         (ix86_force_to_memory): Ditto.
5466         * config/i386/i386.md: Use split_double_mode in double-mode splitters.
5467
5468 2010-09-18  Jan Hubicka  <jh@suse.cz>
5469
5470         PR tree-optimization/45453
5471         * cgraphunit.c (cgraph_finalize_function): Consider comdat & external
5472         virtual functions are reachable.
5473         * ipa-inline.c (cgraph_clone_inlined_nodes): Likewise.
5474         * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
5475         * ipa-prop.c (ipa_modify_formal_parameters): Clear DECL_VIRTUAL_P
5476         when modifying function.
5477
5478 2010-09-18  Jan Hubicka  <jh@suse.cz>
5479
5480         PR tree-optimization/45605
5481         * cgraphunit.c (cgraph_analyze_functions): Allocate bitmap obstack.
5482         * gimple-fold.c (static_object_in_other_unit_p): New function.
5483         (canonicalize_constructor_val): Use it.
5484         (get_symbol_constant_value): Be reaqdy for canonicalize_constructor_val
5485         returning NULL.
5486         (gimple_fold_obj_type_ref_known_binfo): Use
5487         static_object_in_other_unit_p.
5488
5489 2010-09-18  Richard Guenther  <rguenther@suse.de>
5490
5491         PR tree-optimization/45709
5492         * tree-inline.c (copy_phis_for_bb): Delay commit of edge
5493         insertions until after all PHI nodes of the block are processed.
5494
5495 2010-09-18  Tijl Coosemans  <tijl@coosemans.org>
5496
5497         * config/i386/freebsd.h (SUBTARGET32_DEFAULT_CPU): Add.
5498
5499 2010-09-18  Kai Tietz  <kai.tietz@onevision.com>
5500
5501         * config.gcc (*-w64-mingw*): Correct typo about t-dfprules.
5502
5503 2010-09-18  Richard Guenther  <rguenther@suse.de>
5504
5505         PR tree-optimization/45709
5506         * tree-inline.c (copy_phis_for_bb): Fixup new_edge when we splitted it.
5507
5508 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
5509
5510         * graphite-dependences.c (dot_deps): Add DEBUG_FUNCTION.
5511         (dot_deps_stmt): Same.
5512         * graphite-poly.c (dot_lst): Same.
5513         * graphite-scop-detection.c (dot_all_scops): Same.
5514         (dot_scop): Same.
5515
5516 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
5517
5518         Revert:
5519         2009-12-16  Ben Elliston  <bje@au.ibm.com>
5520
5521         * tree-data-ref.c (dot_rdg_1): Added back.
5522         (dot_rdg): Same.  Added "#if 0" around system call.
5523
5524 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
5525             Richard Henderson  <rth@redhat.com>
5526
5527         * config/i386/i386.c (initial_ix86_tune_features): Add
5528         X86_TUNE_PAD_SHORT_FUNCTION.
5529         (ix86_code_end): Pad with 8 NOPs for TARGET_PAD_SHORT_FUNCTION.
5530         (ix86_count_insn): New.
5531         (ix86_pad_short_function): Likewise.
5532         (ix86_reorg): Support TARGET_PAD_SHORT_FUNCTION.
5533
5534         * config/i386/i386.h (ix86_tune_indices): Add
5535         X86_TUNE_PAD_SHORT_FUNCTION.
5536         (TARGET_PAD_SHORT_FUNCTION): New.
5537
5538         * config/i386/i386.md (UNSPEC_NOPS): New.
5539         (nops): Likewise.
5540
5541 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
5542
5543         PR middle-end/45234
5544         * calls.c (expand_call): Make sure that all variable sized
5545         adjustments are multiple of preferred stack boundary after
5546         stack alignment.
5547
5548 2010-09-17  DJ Delorie  <dj@redhat.com>
5549
5550         * config/rx/rx.c (rx_print_operand): If __builtin_rx_setpsw() is
5551         passed an invalid value, print an error instead of ICEing.
5552         (valid_psw_flag): New.
5553         (rx_expand_builtin): Call it for setpsw/clrpsw.
5554         (rx_expand_builtin_mvtipl): Pass an integer to IN_RANGE, not an RTX.
5555
5556         * config/rx/rx.md (bitclr): Don't mark the output as early-clobber.
5557         (bitclr_in_memory): Likewise.
5558         (clrspw, setpsw, mvfc, mvtc, mvtipl): Make volatile.
5559
5560 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
5561
5562         PR middle-end/45678
5563         * cfgexpand.c (update_stack_alignment): New.
5564         (get_decl_align_unit): Use it.
5565         (expand_one_stack_var_at): Call update_stack_alignment.
5566
5567 2010-09-17  Richard Guenther  <rguenther@suse.de>
5568
5569         * lto-streamer-in.c (lto_input_ts_translation_unit_decl_tree_pointers):
5570         Properly copy the read string.
5571
5572 2010-09-17  Joseph Myers  <joseph@codesourcery.com>
5573
5574         * doc/options.texi (Variable): Document.
5575         * optc-gen.awk, opth-gen.awk: Handle Variable records.  Don't
5576         generate target_flags declarations explicitly.  Don't define
5577         VarExists variables for the driver.
5578         * common.opt (target_flags): New Variable record.
5579         (flag_dump_unnumbered, flag_dump_unnumbered_links,
5580         flag_var_tracking, flag_var_tracking_assignments,
5581         flag_var_tracking_assignments_toggle): Don't mark variables with
5582         VarExists.
5583         * config/i386/i386.c (ix86_isa_flags): Don't define here.
5584         * config/i386/i386.opt (ix86_isa_flags): Define here.
5585         * config/mcore/mcore.c (mcore_stack_increment): Don't define here.
5586         * config/mcore/mcore.opt (mcore_stack_increment): Don't mark with
5587         VarExists.
5588         * flags.h (flag_dump_unnumbered, flag_var_tracking): Remove.
5589         * print-rtl.c (flag_dump_unnumbered, flag_dump_unnumbered_links):
5590         Only define for generator programs.
5591         * rtlanal.c (target_flags): Remove.
5592         * toplev.c (flag_var_tracking, flag_var_tracking_assignments,
5593         flag_var_tracking_assignments_toggle): Remove.
5594
5595 2010-09-17  Michael Matz  <matz@suse.de>
5596
5597         PR tree-optimization/43432
5598         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
5599         Accept backwards consecutive accesses.
5600         (vect_create_data_ref_ptr): If step is negative generate
5601         decreasing IVs.
5602         * tree-vect-stmts.c (vectorizable_store): Reject negative steps.
5603         (perm_mask_for_reverse, reverse_vec_elements): New functions.
5604         (vectorizable_load): Handle loads with negative steps when easily
5605         possible.
5606
5607 2010-09-03  Jan Hubicka  <jh@suse.cz>
5608
5609         * lto-cgraph.c (compute_ltrans_boundary): Use const_value_known.
5610
5611 2010-09-03  Naveen H.S  <naveen.S@kpitcummins.com>
5612
5613         * config/v850/v850.c (v850_function_value_regno_p): Make static.
5614         Adjust comments. Declare.
5615         (TARGET_FUNCTION_VALUE_REGNO_P): Define.
5616         * config/v850/v850.h (FUNCTION_VALUE_REGNO_P): Delete.
5617
5618 2010-09-17  Richard Guenther  <rguenther@suse.de>
5619
5620         * common.opt (combine): Remove.
5621         * gcc.c (default_compilers): Remove specs testing combine.
5622         The C compilers no longer can combine.
5623         (option_map): Remove -combine.
5624         (display_help): Remove -combine.
5625         (driver_handle_option): Remove OPT_combine handling.
5626         (compile_input_file_p): Remove.
5627         (do_spec): Remove code concerning combine.
5628         (main): Likewise.
5629         * doc/invoke.texi: Remove traces of -combine.
5630         * lto-wrapper.c (run_gcc): Do not pass -combine to the compiler driver.
5631
5632 2010-09-17  Richard Guenther  <rguenther@suse.de>
5633
5634         PR middle-end/45678
5635         * builtins.c (fold_builtin_memory_op): Always properly adjust
5636         alignment of memory accesses.
5637
5638 2010-09-16  Jan Hubicka  <jh@suse.cz>
5639
5640         * lto-cgraph.c (input_overwrite_node): Do not set DECL_EXTERNAL when
5641         processing clone.
5642
5643 2010-09-16  H.J. Lu  <hongjiu.lu@intel.com>
5644
5645         * config/i386/i386-protos.h (ix86_split_idivmod): New prototype.
5646
5647         * config/i386/i386.c (predict_jump): Add prototype.
5648         (flag_opts): Add -m8bit-idiv.
5649         (ix86_split_idivmod): New.
5650
5651         * config/i386/i386.md (UNSPEC_DIV_ALREADY_SPLIT): New.
5652         Add 2 splitters for SI/DI mode divide.
5653         (divmod<mode>4_1): New pattern.
5654         (udivmod<mode>4_1): Likewise.
5655         (testdi_ccno_1): Likewise.
5656
5657         * config/i386/i386.opt (m8bit-idiv): New.
5658
5659         * doc/invoke.texi: Document -m8bit-idiv.
5660
5661 2010-09-16  Reza Yazdani  <reza.yazdani@amd.com>
5662
5663         PR bootstrap/45680
5664         * config/i386/i386.c (min_insn_size): Moved out of the
5665         ASM_OUTPUT_MAX_SKIP_PAD ifdef.
5666
5667 2010-09-16  Jan Hubicka  <jh@suse.cz>
5668
5669         * lto-cgraph.c (lto_output_node): Fix handling of clones.
5670         * ipa.c (cgraph_remove_unreachabloe_nodes): Fix handling of
5671         unreachable clones with reachable clones.
5672         * tree-inline.c (copy_bb): Fix sanity checking when producing
5673         unreachable clone.
5674
5675 2010-09-16  Anatoly Sokolov  <aesok@post.ru>
5676
5677         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Remove.
5678         (TARGET_MEMORY_MOVE_COST): Define.
5679         (m32r_function_arg): Annotate argument 'type' with ATTRIBUTE_UNUSED.
5680
5681 2010-09-16  Alexander Monakov  <amonakov@ispras.ru>
5682
5683         * sel-sched.c (move_cond_jump): Use tidy_control_flow instead of
5684         maybe_tidy_empty_bb.
5685
5686         Revert:
5687         2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
5688         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
5689
5690 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
5691
5692         * target.def (target_option.optimization): New hook.
5693         * doc/tm.texi.in (OPTIMIZATION_OPTIONS): Change to
5694         TARGET_OPTION_OPTIMIZATION hook.
5695         * doc/tm.texi: Regenerate.
5696         * hooks.c (hook_void_int_int): New.
5697         * hooks.h (hook_void_int_int): Declare.
5698         * opts.c: Don't include tm_p.h.
5699         (decode_options): Use targetm.target_option.optimization instead
5700         of OPTIMIZATION_OPTIONS.
5701         * system.h (OPTIMIZATION_OPTIONS): Poison.
5702         * config/arm/arm-protos.h (arm_optimization_options): Remove.
5703         * config/arm/arm.c (TARGET_OPTION_OPTIMIZATION): Define.
5704         (arm_optimization_options): Rename to arm_option_optimization.
5705         Make static.
5706         * config/arm/arm.h (OPTIMIZATION_OPTIONS): Remove.
5707         * config/cris/cris.c (TARGET_OPTION_OPTIMIZATION): Define.
5708         (cris_option_optimization): New.
5709         * config/cris/cris.h (OPTIMIZATION_OPTIONS): Remove.
5710         * config/crx/crx.c (TARGET_OPTION_OPTIMIZATION): Define.
5711         (crx_option_optimization): New.
5712         * config/crx/crx.h (OPTIMIZATION_OPTIONS): Remove.
5713         * config/frv/frv-protos.h (frv_optimization_options): Remove.
5714         * config/frv/frv.c (TARGET_OPTION_OPTIMIZATION): Define.
5715         (frv_optimization_options): Rename to frv_option_optimization.
5716         Make static.
5717         * config/frv/frv.h (OPTIMIZATION_OPTIONS): Remove.
5718         * config/h8300/h8300.c (h8300_option_optimization): New.
5719         (TARGET_OPTION_OPTIMIZATION): Define.
5720         * config/h8300/h8300.h (OPTIMIZATION_OPTIONS): Remove.
5721         * config/i386/i386-protos.h (optimization_options): Remove.
5722         * config/i386/i386.c (optimization_options): Rename to
5723         ix86_option_optimization.  Make static.
5724         (TARGET_OPTION_OPTIMIZATION): Define.
5725         * config/i386/i386.h (OPTIMIZATION_OPTIONS): Remove.
5726         * config/ia64/ia64-protos.h (ia64_optimization_options): Remove.
5727         * config/ia64/ia64.c (TARGET_OPTION_OPTIMIZATION): Define.
5728         (ia64_optimization_options): Rename to ia64_option_optimization.
5729         Make static.  Call SUBTARGET_OPTIMIZATION_OPTIONS.
5730         * config/ia64/ia64.h (OPTIMIZATION_OPTIONS): Remove.  Remove
5731         commented-out definition.
5732         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
5733         instead of OPTIMIZATION_OPTIONS.
5734         * config/m32r/m32r.c (TARGET_OPTION_OPTIMIZATION): Define.
5735         (m32r_option_optimization): New.
5736         * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove.
5737         * config/m68hc11/m68hc11-protos.h (m68hc11_optimization_options):
5738         Remove.
5739         * config/mcore/mcore.c (TARGET_OPTION_OPTIMIZATION): Define.
5740         (mcore_option_optimization): New.
5741         * config/mcore/mcore.h (OPTIMIZATION_OPTIONS): Remove.
5742         * config/mep/mep-protos.h (mep_optimization_options): Remove.
5743         * config/mep/mep.c (TARGET_OPTION_OPTIMIZATION): Define.
5744         (mep_optimization_options): Rename to mep_option_optimization.
5745         Make static.  Take unused level and size parameters.
5746         * config/mep/mep.h (OPTIMIZATION_OPTIONS): Remove.
5747         * config/mmix/mmix.c (TARGET_OPTION_OPTIMIZATION): Define.
5748         (mmix_option_optimization): New.
5749         * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove.
5750         * config/pdp11/pdp11.c (TARGET_OPTION_OPTIMIZATION): Define.
5751         (pdp11_option_optimization): New.
5752         * config/pdp11/pdp11.h (OPTIMIZATION_OPTIONS): Remove.
5753         * config/rs6000/rs6000-protos.h (optimization_options): Remove.
5754         * config/rs6000/rs6000.c (TARGET_OPTION_OPTIMIZATION): Define.
5755         (optimization_options): Rename to rs6000_option_optimization.
5756         Make static.
5757         * config/rs6000/rs6000.h (OPTIMIZATION_OPTIONS): Remove.
5758         * config/rx/rx-protos.h (rx_set_optimization_options): Remove.
5759         * config/rx/rx.c (rx_set_optimization_options): Rename to
5760         rx_option_optimization.  Make static.  Take unused level and size
5761         parameters.
5762         (TARGET_OPTION_OPTIMIZATION): Define.
5763         * config/rx/rx.h (OPTIMIZATION_OPTIONS): Remove.
5764         * config/s390/s390-protos.h (optimization_options): Remove.
5765         * config/s390/s390.c (optimization_options): Rename to
5766         s390_option_optimization.  Make static.  Don't mark size parameter
5767         unused.
5768         (TARGET_OPTION_OPTIMIZATION): Define.
5769         * config/s390/s390.h (OPTIMIZATION_OPTIONS): Remove.
5770         * config/sh/sh-protos.h (sh_optimization_options): Remove.
5771         * config/sh/sh.c (TARGET_OPTION_OPTIMIZATION): Define.
5772         (sh_optimization_options): Rename to sh_option_optimization.  Make
5773         static.  Don't mark parameters unused.
5774         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Remove.
5775         * config/spu/spu-protos.h (spu_optimization_options): Remove.
5776         * config/spu/spu.c (TARGET_OPTION_OPTIMIZATION): Define.
5777         (spu_optimization_options): Rename to spu_option_optimization.
5778         Make static.
5779         * config/spu/spu.h (OPTIMIZATION_OPTIONS): Remove.
5780         * config/v850/v850.c (TARGET_OPTION_OPTIMIZATION): Define.
5781         (v850_option_optimization): New.
5782         * config/v850/v850.h (OPTIMIZATION_OPTIONS): Remove.
5783         * config/xtensa/xtensa.c (TARGET_OPTION_OPTIMIZATION): Define.
5784         (xtensa_option_optimization): New.
5785         * config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Remove.
5786
5787 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
5788
5789         * doc/tm.texi.in (OVERRIDE_OPTIONS): Remove documentation.
5790         (C_COMMON_OVERRIDE_OPTIONS): Don't refer to OVERRIDE_OPTIONS.
5791         * doc/tm.texi: Regenerate.
5792         * system.h (OVERRIDE_OPTIONS): Poison.
5793         * target.def (override): Default to hook_void_void.
5794         * targhooks.c (default_target_option_override): Remove.
5795         * genmodes.c, machmode.def: Update comments mentioning
5796         OVERRIDE_OPTIONS.
5797         * config/alpha/alpha-modes.def: Update comment mentioning
5798         alpha_override_options.
5799         * config/alpha/alpha-protos.h (override_options): Remove.
5800         * config/alpha/alpha.c (override_options): Rename to
5801         alpha_option_override.  Call SUBTARGET_OVERRIDE_OPTIONS.  Make static.
5802         (TARGET_OPTION_OVERRIDE): Define.
5803         * config/alpha/alpha.h (OVERRIDE_OPTIONS): Remove.
5804         * config/alpha/vms.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead
5805         of OVERRIDE_OPTIONS.
5806         * config/arc/arc-protos.h (arc_init): Remove.
5807         * config/arc/arc.c (TARGET_OPTION_OVERRIDE): Define.
5808         (arc_init): Rename to arc_option_override.  Make static.
5809         * config/arc/arc.h (ARC_EXTENSION_CPU): Correct comment.
5810         (OVERRIDE_OPTIONS): Remove.
5811         * config/arm/arm-protos.h (arm_override_options): Remove.
5812         * config/arm/arm.c (TARGET_OPTION_OVERRIDE): Define.
5813         (arm_override_options): Rename to arm_option_override.  Make
5814         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
5815         * config/arm/arm.h (OVERRIDE_OPTIONS): Remove.
5816         * config/arm/arm.md: Update comment referring to arm_override_options.
5817         * config/arm/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
5818         instead of OVERRIDE_OPTIONS.
5819         * config/avr/avr-protos.h (avr_override_options): Remove.
5820         * config/avr/avr.c (TARGET_OPTION_OVERRIDE): Define.
5821         (avr_override_options): Rename to avr_option_override.  Make static.
5822         * config/avr/avr.h (OVERRIDE_OPTIONS): Remove.
5823         * config/bfin/bfin-protos.h (override_options): Remove (twice).
5824         * config/bfin/bfin.c (override_options): Rename to
5825         bfin_option_override.  Make static.
5826         (TARGET_OPTION_OVERRIDE): Define.
5827         * config/bfin/bfin.h (OVERRIDE_OPTIONS): Remove.
5828         * config/cris/cris-protos.h (cris_override_options): Remove.
5829         * config/cris/cris.c (TARGET_OPTION_OVERRIDE): Define.
5830         (cris_override_options): Rename to cris_option_override.  Make static.
5831         * config/cris/cris.h (OVERRIDE_OPTIONS): Remove.
5832         * config/frv/frv-protos.h (frv_override_options): Remove.
5833         * config/frv/frv.c (TARGET_OPTION_OVERRIDE): Define.
5834         (frv_override_options): Rename to frv_option_override.  Make static.
5835         * config/frv/frv.h (OVERRIDE_OPTIONS): Remove.
5836         * config/h8300/h8300-protos.h (h8300_init_once): Remove.
5837         * config/h8300/h8300.c (h8300_init_once): Rename to
5838         h8300_option_override.  Make static.
5839         (TARGET_OPTION_OVERRIDE): Define.
5840         * config/h8300/h8300.h (OVERRIDE_OPTIONS): Remove.
5841         * config/i386/i386-protos.h (override_options): Remove.
5842         * config/i386/i386.c (override_options): Rename to
5843         ix86_option_override_internal.  Make static.  Comments referring
5844         to this function and callers changed.
5845         (ix86_option_override): New.
5846         (TARGET_OPTION_OVERRIDE): Define.
5847         * config/i386/i386.h (OVERRIDE_OPTION): Remove.
5848         * config/i386/linux64.h (DEFAULT_PCC_STRUCT_RETURN): Update comment.
5849         * config/ia64/ia64.c (ia64_file_start): Update comment referring
5850         to ia64_override_options.
5851         * config/iq2000/iq2000-protos.h (override_options): Remove.
5852         * config/iq2000/iq2000.c (TARGET_OPTION_OVERRIDE): Define.
5853         (override_options): Rename to iq2000_option_override.  Make static.
5854         * config/iq2000/iq2000.h (OVERRIDE_OPTIONS): Remove.
5855         * config/lm32/lm32-protos.h (lm32_override_options): Remove.
5856         * config/lm32/lm32.c (TARGET_OPTION_OVERRIDE): Define.
5857         (lm32_override_options): Rename to lm32_option_override.  Make static.
5858         * config/lm32/lm32.h (OVERRIDE_OPTIONS): Remove.
5859         * config/m32r/m32r.c (TARGET_OPTION_OVERRIDE): Define.
5860         (m32r_option_override): New.
5861         (m32r_init): Update comment.
5862         * config/m32r/m32r.h (OVERRIDE_OPTIONS): Remove.
5863         * config/m68hc11/m68hc11-protos.h (m68hc11_override_options): Remove.
5864         * config/m68hc11/m68hc11.c (TARGET_OPTION_OVERRIDE): Define.
5865         (m68hc11_override_options): Rename to m68hc11_option_override.
5866         Make static.  Return void.
5867         * config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove.
5868         * config/m68k/m68k-protos.h (override_options): Remove.
5869         * config/m68k/m68k.c (TARGET_OPTION_OVERRIDE): Define.
5870         (override_options): Rename to m68k_option_override.  Make static.
5871         * config/m68k/m68k.h (OVERRIDE_OPTIONS): Remove.
5872         * config/mcore/mcore-protos.h (mcore_override_options): Remove.
5873         * config/mcore/mcore.c (TARGET_OPTION_OVERRIDE): Define.
5874         (mcore_override_options): Rename to mcore_option_override.  Make
5875         static.
5876         * config/mcore/mcore.h (OVERRIDE_OPTIONS): Remove.
5877         * config/mep/mep-protos.h (mep_override_options): Remove.
5878         * config/mep/mep.c (TARGET_OPTION_OVERRIDE): Define.
5879         (mep_override_options): Rename to mep_option_override.  Make static.
5880         * config/mep/mep.h (OVERRIDE_OPTIONS): Remove.
5881         * config/mmix/mmix-protos.h (mmix_override_options): Remove.
5882         * config/mmix/mmix.c (TARGET_OPTION_OVERRIDE): Define.
5883         (mmix_override_options): Rename to mmix_option_override.  Make static.
5884         * config/mmix/mmix.h (OVERRIDE_OPTIONS): Remove.
5885         * config/mn10300/mn10300-protos.h (mn10300_override_options): Remove.
5886         * config/mn10300/mn10300.c (TARGET_OPTION_OVERRIDE): Define.
5887         (mn10300_override_options): Rename to mn10300_option_override.
5888         Make static.
5889         * config/mn10300/mn10300.h (OVERRIDE_OPTIONS): Remove.
5890         * config/moxie/moxie-protos.h (moxie_override_options): Remove.
5891         * config/moxie/moxie.c (moxie_override_options): Rename to
5892         moxie_option_override.  Make static.
5893         (TARGET_OPTION_OVERRIDE): Define.
5894         * config/moxie/moxie.h (OVERRIDE_OPTIONS): Remove.
5895         * config/picochip/picochip-protos.h (picochip_override_options):
5896         Remove.  Update comment referring to picochip_override_options.
5897         * config/picochip/picochip.c (TARGET_OPTION_OVERRIDE): Define.
5898         (picochip_override_options): Rename to picochip_option_override.
5899         Make static.  Update comment and definition of
5900         TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE.
5901         * config/picochip/picochip.h (OVERRIDE_OPTIONS): Remove.
5902         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
5903         * config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
5904         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
5905         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
5906         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
5907         * config/rs6000/linux64.h (OPTION_TARGET_CPU_DEFAULT): Define
5908         instead of OVERRIDE_OPTIONS.
5909         * config/rs6000/rs6000-modes.def: Update comment referring to
5910         rs6000_override_options.
5911         * config/rs6000/rs6000-protos.h (rs6000_override_options): Remove.
5912         * config/rs6000/rs6000.c (TARGET_OPTION_OVERRIDE): Define.
5913         (rs6000_override_options): Rename to
5914         rs6000_option_override_internal.  Make static.  Commented
5915         referring to rs6000_override_options and OVERRIDE_OPTIONS updated.
5916         (rs6000_option_override): New.
5917         * config/rs6000/rs6000.h (OPTION_TARGET_CPU_DEFAULT): Define
5918         instead of OVERRIDE_OPTIONS.
5919         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
5920         * config/s390/s390-protos.h (override_options): Remove.
5921         * config/s390/s390.c (override_options): Rename to
5922         s390_option_override.  Make static.
5923         (TARGET_OPTION_OVERRIDE): Define.
5924         * config/s390/s390.h (OVERRIDE_OPTIONS): Remove.
5925         * config/score/score-protos.h (score_override_options): Remove.
5926         * config/score/score.c (TARGET_OPTION_OVERRIDE): Define.
5927         (score_override_options): Rename to score_option_override.  Make
5928         static.
5929         * config/score/score.h (OVERRIDE_OPTIONS): Remove.
5930         Update comment referring to override_options.
5931         * config/score/score3.c (score3_override_options): Rename to
5932         score3_option_override.
5933         * config/score/score3.h (score3_override_options): Rename to
5934         score3_option_override.
5935         * config/score/score7.c (score7_override_options): Rename to
5936         score7_option_override.
5937         * config/score/score7.h (score7_override_options): Rename to
5938         score7_option_override.
5939         * config/sh/sh.c: Update comments referring to OVERRIDE_OPTIONS.
5940         * config/sparc/sparc.c (TARGET_OPTION_OVERRIDE): Define.
5941         (sparc_override_options): Rename to sparc_option_override.  Make
5942         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
5943         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Remove.
5944         * config/sparc/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
5945         instead of OVERRIDE_OPTIONS.
5946         * config/spu/spu-protos.h (spu_override_options): Remove.
5947         * config/spu/spu.c (TARGET_OPTION_OVERRIDE): Define.
5948         (spu_override_options): Rename to spu_option_override.  Make
5949         static.
5950         * config/spu/spu.h (OVERRIDE_OPTIONS): Remove.
5951         * config/vax/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead of
5952         OVERRIDE_OPTIONS.
5953         * config/vax/vax-protos.h (override_options): Remove.
5954         * config/vax/vax.c (TARGET_OPTION_OVERRIDE): Define.
5955         (override_options): Rename to vax_option_override.  Make static.
5956         Call SUBTARGET_OVERRIDE_OPTIONS.
5957         * config/vax/vax.h (OVERRIDE_OPTIONS): Remove.
5958         * config/vxworks.c: Update comment referring to OVERRIDE_OPTIONS.
5959         * config/vxworks.h: Update comment referring to OVERRIDE_OPTIONS.
5960         * config/xtensa/xtensa-protos.h (override_options): Remove.
5961         * config/xtensa/xtensa.c (TARGET_OPTION_OVERRIDE): Define.
5962         (override_options): Rename to xtensa_option_override.  Make static.
5963         * config/xtensa/xtensa.h (OVERRIDE_OPTIONS): Remove.
5964
5965 2010-09-16  Richard Guenther  <rguenther@suse.de>
5966
5967         PR tree-optimization/45623
5968         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Adjust.
5969         (get_constraint_for_component_ref): If computing a constraint
5970         for the rhs handle type punning through unions.
5971         (get_constraint_for_address_of): Adjust.
5972         (get_constraint_for_1): Likewise.
5973         (get_constraint_for): Likewise.
5974         (get_constraint_for_rhs): New function.
5975         (do_structure_copy): Adjust.
5976         (make_constraint_to): Likewise.
5977         (handle_const_call): Likewise.
5978         (find_func_aliases): Likewise.
5979         (process_ipa_clobber): Likewise.
5980         (create_variable_info_for): Likewise.
5981
5982 2010-09-16  Ira Rosen  <irar@il.ibm.com>
5983
5984         * tree-vectorizer.c: Fix documentation.
5985         * tree-vectorizer.h (vinfo_for_stmt): Add documentation.
5986         (set_vinfo_for_stmt, get_earlier_stmt, get_later_stmt,
5987         is_pattern_stmt_p, is_loop_header_bb_p,
5988         stmt_vinfo_set_inside_of_loop_cost,
5989         stmt_vinfo_set_outside_of_loop_cost, vect_pow2, aligned_access_p,
5990         known_alignment_for_access_p): Likewise.
5991         * tree-vect-loop.c: Fix documentation.
5992         (vect_get_cost): Start function name from new line.
5993         * tree-vect-data-refs.c: Fix documentation.
5994         * tree-vect_stmts.c: Likewise.
5995         (vect_create_vectorized_promotion_stmts): Always free vec_tmp.
5996         (vectorizable_store): Free vec_oprnds if allocated.
5997         (vectorizable_condition): Initialize several variables to avoid
5998         warnings.
5999         * tree-vect-slp.c: Fix documentation.
6000
6001 2010-09-16  Richard Guenther  <rguenther@suse.de>
6002
6003         * tree.c (tree_node_structure_for_code): TRANSLATION_UNIT_DECL
6004         is TS_TRANSLATION_UNIT_DECL.
6005         (initialize_tree_contains_struct): Adjust.
6006         (all_translation_units): New global vector.
6007         (build_translation_unit_decl): New function.
6008         * tree.h (TRANSLATION_UNIT_LANGUAGE): New macro.
6009         (struct tree_translation_unit_decl): New.
6010         (all_translation_units): Declare.
6011         (union tree_node): Add translation_unit_decl member.
6012         (build_translation_unit_decl): Declare.
6013         * treestruct.def (TS_TRANSLATION_UNIT_DECL): New.
6014         * lto-streamer-out.c (pack_ts_translation_unit_decl_value_fields):
6015         New function.
6016         (pack_value_fields): Call it.
6017         (lto_output_tree_ref): Handle references to TRANSLATION_UNIT_DECL.
6018         (lto_output_ts_translation_unit_decl_tree_pointers): New function.
6019         (lto_output_tree_pointers): Call it.
6020         * lto-streamer-in.c (lto_input_tree_ref): Handle references
6021         to TRANSLATION_UNIT_DECL.
6022         (unpack_ts_translation_unit_decl_value_fields): New function.
6023         (unpack_value_fields): Call it.
6024         (lto_input_ts_translation_unit_decl_tree_pointers): New function.
6025         (lto_input_tree_pointers): Call it.
6026         * lto-streamer.c (check_handled_ts_structures): Adjust.
6027         * lto-streamer.h (enum LTO_tags): Add LTO_translation_unit_decl_ref.
6028         * c-decl.c (all_translation_units): Remove.
6029         (pop_scope): Use build_translation_unit_decl.
6030         (collect_all_refs): Adjust.
6031         (for_each_global_decl): Likewise.
6032         (c_write_global_declarations): Likewise.
6033
6034 2010-09-16  Jakub Jelinek  <jakub@redhat.com>
6035
6036         PR bootstrap/45686
6037         * fold-const.c (fold_checksum_tree): Change slot from const void **
6038         to void **, use CONST_CAST_TREE to store into *slot.
6039
6040 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
6041
6042         * config/i386/i386.md: Remove unneeded empty conditions and
6043         preparation statements from expanders.
6044         * config/i386/mmx.md: Ditto.
6045         * config/i386/sse.md: Ditto.
6046
6047 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
6048
6049         * config/i386/i386.h (PUSH_ROUNDING): Redefine using UNITS_PER_WORD.
6050
6051 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
6052
6053         PR rtl-optimization/45593
6054         * reorg.c (relax_delay_slots): Use emit_copy_of_insn_after to re-emit
6055         insns that were in delay slots as stand-alone insns.
6056
6057 2010-09-15  Ian Lance Taylor  <iant@google.com>
6058
6059         * incpath.c (remove_duplicates): If name is not a directory, issue
6060         a warning rather than an error.
6061
6062 2010-09-15  Martin Jambor  <mjambor@suse.cz>
6063
6064         PR middle-end/45644
6065         * tree-sra.c (create_access): Check for bit-fields directly.
6066
6067 2010-09-15  Jakub Jelinek  <jakub@redhat.com>
6068
6069         PR tree-optimization/45633
6070         * tree-cfg.c (verify_gimple_assign_binary): Allow
6071         MINUS_EXPR with lhs and rhs1 pointer vector and
6072         rhs2 sizetype vector.
6073         * expr.c (expand_expr_real_2) <case PLUS_EXPR>: For pointer
6074         or vector pointer use TER to optimize pointer subtraction.
6075
6076 2010-09-15  Jie Zhang  <jie@codesourcery.com>
6077
6078         * config/arm/vfp.md (cmpsf_trap_vfp): Change type from
6079         fcmpd to fcmps.
6080
6081 2010-09-15  Ian Lance Taylor  <iant@google.com>
6082
6083         * config/i386/i386.md (truncxf<mode>2): Fix indentation.
6084
6085 2010-09-15  Ian Lance Taylor  <iant@google.com>
6086
6087         * function.c (get_arg_pointer_save_area): Set
6088         arg_pointer_save_area_init to true.
6089
6090 2010-09-15  Martin Jambor  <mjambor@suse.cz>
6091
6092         * tree-sra.c (generate_subtree_copies): Updated comment.
6093         (handle_unscalarized_data_in_subtree): Removed parameter lhs which is
6094         obtained from the statement iterator instead.
6095         (load_assign_lhs_subreplacements): Removed parameters lhs and
6096         right_offset, which is obtained from top_racc instead.  Parameter lacc
6097         is now expected to be the root of the processed tree rather than root's
6098         first child.  Updated all callers.
6099
6100 2010-09-15  Joseph Myers  <joseph@codesourcery.com>
6101
6102         * config/pdp11/pdp11.c (register_move_cost): Rename to
6103         pdp11_register_move_cost.
6104         * config/pdp11/pdp11-protos.h (register_move_cost): Rename to
6105         pdp11_register_move_cost.
6106         * config/pdp11/pdp11.h (REGISTER_MOVE_COST): Call
6107         pdp11_register_move_cost instead of register_move_cost.
6108
6109 2010-09-15  Tejas Belagod  <tejas.belagod@arm.com>
6110
6111         * config/arm/neon.md (vec_pack_trunc_<mode>): Instruction
6112         pattern for vmovn. Expansion in case of non
6113         -mvectorize-with-neon-quad.
6114         (neon_vec_pack_trunc_<mode>): Instruction pattern for vmovn for
6115         non- -mvectorize-with-neon-quad case.
6116         (move_lo_quad_<mode>): New expansion to vmov into low part.
6117         (move_hi_quad_<mode>): New expansion to vmov into high part.
6118         (move_lo_quad_v4si): Refactor to move_lo_quad_<mode> expansion.
6119         (move_lo_quad_v4sf): Likewise.
6120         (move_lo_quad_v8hi): Likewise.
6121         (neon_move_lo_quad_<mode>): Instruction pattern for vmov into
6122         low part.
6123         (neon_move_hi_quad_<mode>): Instruction pattern for vmov into
6124         high part.
6125         * config/arm/iterators.md (ANY128): New mode iterator.
6126         (V_narrow_pack): New mode attribute.
6127         (V_HALF): Add attribute.
6128         (V_DOUBLE): Add attribute.
6129         (V_mode_nunits): Add attribute.
6130
6131 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
6132
6133         * config/alpha/alpha.c (alpha_expand_prologue): If stack checking
6134         is enabled, probe up to frame_size + STACK_CHECK_PROTECT bytes.
6135
6136 2010-09-15  Olivier Hainque  <hainque@adacore.com>
6137             Jose Ruiz  <ruiz@adacore.com>
6138
6139         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Define.
6140         * config/alpha/osf5-unwind.h: New file.
6141
6142 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
6143
6144         PR bootstrap/45672
6145         * config/mips/mips.c (mips_units_per_simd_word): Correct return type.
6146         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
6147         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
6148
6149 2010-09-15  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
6150
6151         * c-lang.h (struct lang_type): Add variable_size GTY option.
6152
6153 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
6154
6155         PR bootstrap/45672
6156         * config/rs6000/rs6000.c (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
6157
6158 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
6159
6160         * config/i386/i386.c (ix86_lea_for_add_ok): Return false if
6161         result isn't used in memory address.
6162
6163 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
6164
6165         * defaults.h (UNITS_PER_SIMD_WORD): Removed.
6166         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Likewise.
6167         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
6168         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
6169         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
6170         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
6171
6172         * target.def: Add units_per_simd_word to vectorize.
6173
6174         * targhooks.c (default_units_per_simd_word): New.
6175         * targhooks.h (default_units_per_simd_word): Likewise.
6176         * config/arm/arm.c (arm_units_per_simd_word): Likewise.
6177         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
6178         * config/mips/mips.c (mips_units_per_simd_word): Likewise.
6179         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
6180         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
6181         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
6182         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
6183         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
6184
6185         * tree-vect-loop.c: Replace UNITS_PER_SIMD_WORD with
6186         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD in comments.
6187
6188         * tree-vect-stmts.c: Don't include "tm_p.h".
6189         (get_vectype_for_scalar_type): Replace UNITS_PER_SIMD_WORD
6190         with targetm.vectorize.units_per_simd_word.
6191
6192         * system.h (UNITS_PER_SIMD_WORD): Poisoned.
6193
6194         * config/i386/i386-protos.h (ix86_units_per_simd_word): Removed.
6195
6196         * config/i386/i386.c (ix86_units_per_simd_word): Make it static.
6197         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
6198
6199         * doc/tm.texi.in: Remove UNITS_PER_SIMD_WORD.  Add
6200         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD.
6201
6202         * doc/tm.texi: Regenerated.
6203
6204 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
6205
6206         * tree-vect-stmts.c: Include "tm_p.h".
6207
6208         * config/i386/i386-protos.h (ix86_units_per_simd_word): Moved
6209         out of RTX_CODE.
6210
6211 2010-09-14  Martin Jambor  <mjambor@suse.cz>
6212
6213         * tree-sra.c (build_ref_for_offset): Loc made a parameter.  Set the
6214         location of generated statement.  Changed all callers.
6215         (build_ref_for_model): New parameter loc which used to set location of
6216         all generated expressions.  Changed all callers.
6217         (generate_subtree_copies): Likewise.
6218         (init_subtree_with_zero): Likewise.
6219         (sra_modify_expr): Set locations of all generated statements and
6220         expressions to the location the original statement.
6221         (handle_unscalarized_data_in_subtree): Likewise.
6222         (load_assign_lhs_subreplacements): Likewise.
6223         (sra_modify_constructor_assign): Likewise.
6224         (sra_modify_assign): Likewise.
6225
6226 2010-09-14  Eric Botcazou  <ebotcazou@adacore.com>
6227
6228         PR target/45277
6229         PR target/45363
6230         PR target/45407
6231         * doc/install.texi (sparc*-*-*): New section.
6232         (sparc-sun-solaris2*): Mention MPC alongside GMP and MPFR.
6233
6234 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
6235
6236         PR middle-end/45567
6237         * builtins.c (expand_builtin_interclass_mathfn, expand_builtin_cexpi,
6238         expand_builtin_powi): Remove subtarget argument, pass NULL_RTX instead.
6239         (expand_builtin): Adjust caller.
6240         (expand_builtin_unop): Only use subtarget if it has the right mode.
6241
6242 2010-09-14  Tristan Gingold  <gingold@adacore.com>
6243
6244         * configure.ac (plugins): Fix typos.
6245         * configure: Regenerate.
6246
6247 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
6248
6249         PR debug/45660
6250         * dwarf2out.c (gen_decl_die): Call gen_type_die for origin before
6251         gen_type_die for function/method return type.
6252
6253 2010-09-14  Ira Rosen  <irar@il.ibm.com>
6254
6255         PR tree-optimization/45470
6256         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
6257         can throw an exception.
6258         * tree-vect-stmts.c (vectorizable_call): Likewise.
6259
6260 2010-09-14  DJ Delorie  <dj@redhat.com>
6261
6262         PR target/44749
6263         * config/mep/mep-protos.h (mep_save_register_info,
6264         mep_reinit_regs, mep_init_regs): Declare.
6265
6266         * config/mep/mep.c: Move all target definitions to the end of the
6267         file to avoid the need for duplicate declarations.
6268         (mep_save_register_info, mep_reinit_regs, mep_init_regs): New.
6269         (mep_reorg_erepeat): Remove unused variables.
6270         (mep_expand_builtin): Likewise.
6271
6272         * config/mep/mep-pragma.c: Don't include rtl.h.
6273         (INVALID_REGNUM): New.
6274         (mep_pragma_coprocessor_which): Call mep-specific rtl-layer bridge
6275         functions.
6276         (mep_pragma_coprocessor_subclass): Rename "class" to "rclass".
6277         Avoid enum/integer math.
6278
6279 2010-09-13  Joseph Myers  <joseph@codesourcery.com>
6280
6281         PR target/44749
6282         * config/mep/t-mep (GTM_H): Add insn-constants.h.
6283         * config/mep/mep.c (mep_conditional_register_usage): Take no
6284         parameters.
6285         * config/mep/mep-protos.h (mep_conditional_register_usage): Update
6286         prototype.
6287         * config/mep/mep-pragma.c (CONDITIONAL_REGISTER_USAGE): Update
6288         call to mep_conditional_register_usage.
6289
6290 2010-09-13  Eric Botcazou  <ebotcazou@adacore.com>
6291
6292         PR debug/43937
6293         * varasm.c (output_constant_def_contents): Set TREE_ASM_WRITTEN on
6294         the DECL as well.
6295
6296 2010-09-13  Jakub Jelinek  <jakub@redhat.com>
6297
6298         PR rtl-optimization/45617
6299         * combine.c (simplify_comparison): Optimize (X >> N) {>,>=,<,<=} C
6300         even if low N bits of X aren't known to be zero.
6301
6302 2010-09-13  H.J. Lu  <hongjiu.lu@intel.com>
6303
6304         * config/i386/i386-protos.h (ix86_units_per_simd_word): New.
6305
6306         * config/i386/i386.c (initial_ix86_tune_features): Add
6307         X86_TUNE_VECTORIZE_DOUBLE.
6308         (ix86_units_per_simd_word): New.
6309
6310         * config/i386/i386.h (ix86_tune_indices): Add
6311         X86_TUNE_VECTORIZE_DOUBLE.
6312         (TARGET_VECTORIZE_DOUBLE): New.
6313         (UNITS_PER_SIMD_WORD): Defined with ix86_units_per_simd_word.
6314
6315 2010-09-13  Pat Haugen  <pthaugen@us.ibm.com>
6316
6317         * tree-ssa-ter.c (temp_expr_table_d): Add call_cnt field.
6318         (new_temp_expr_table): Allocate call_cnt vector.
6319         (free_temp_expr_table): Free it.
6320         (process_replaceable): Add call_cnt parm and set in vector.
6321         (find_replaceable_in_bb): Skip replacement if def/use span a call.
6322         (debug_ter): Dump call_cnt value, remove stderr uses.
6323
6324 2010-09-13  Jan Hubicka  <jh@suse.cz>
6325
6326         * tree.c (build_zero_cst): New.
6327         * tree.h (build_zero_cst): Declare.
6328         * tree-ssa-ccp.c (get_constant_value): Accept general operands.
6329         (get_base_constructor): Break out from ...
6330         (fold_const_aggregate_ref): Here; handle empty constructors.
6331
6332 2010-09-13  Marcus Shawcroft  <marcus.shawcroft@arm.com>
6333
6334         * config/arm/arm.md: (define_attr "conds"): Update comment.
6335         * config/arm/sync.md (arm_sync_compare_and_swapsi): Change
6336         conds attribute to clob.
6337         (arm_sync_compare_and_swapsi): Likewise.
6338         (arm_sync_compare_and_swap<mode>): Likewise.
6339         (arm_sync_lock_test_and_setsi): Likewise.
6340         (arm_sync_lock_test_and_set<mode>): Likewise.
6341         (arm_sync_new_<sync_optab>si): Likewise.
6342         (arm_sync_new_nandsi): Likewise.
6343         (arm_sync_new_<sync_optab><mode>): Likewise.
6344         (arm_sync_new_nand<mode>): Likewise.
6345         (arm_sync_old_<sync_optab>si): Likewise.
6346         (arm_sync_old_nandsi): Likewise.
6347         (arm_sync_old_<sync_optab><mode>): Likewise.
6348         (arm_sync_old_nand<mode>): Likewise.
6349
6350 2010-09-13  Olivier Hainque  <hainque@adacore.com>
6351
6352         * fwprop.c (forward_propagate_and_simplify): Only attach a
6353         REG_EQUAL note to an insn if the destination is a register.
6354         * gcse.c (try_replace_reg): Likewise.
6355
6356 2010-09-13  Richard Guenther  <rguenther@suse.de>
6357
6358         PR tree-optimization/45611
6359         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Fix typo.
6360         (copy_ref_info): Likewise.
6361
6362 2010-09-13  Alexandre Oliva  <aoliva@redhat.com>
6363
6364         PR debug/45604
6365         PR debug/45419
6366         PR debug/45408
6367         * tree-pretty-print.c (dump_generic_node): Disregard top-level
6368         types of MEM_REF pointer types to the same type.
6369
6370 2010-09-13  Hans-Peter Nilsson  <hp@axis.com>
6371
6372         PR rtl-optimization/41087
6373         * ifcvt.c (noce_get_condition): Don't allow conditions with
6374         side-effects.
6375
6376 2010-09-12  Anatoly Sokolov  <aesok@post.ru>
6377
6378         * config/frv/frv.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
6379         * config/frv/frv-protos.h (frv_register_move_cost): Remove.
6380         * config/frv/frv.c (frv_register_move_cost): Make static. Change
6381         arguments type to reg_class_t. Add mode argument.
6382         (frv_memory_move_cost): New.
6383         (TARGET_REGISTER_MOVE_COSTS, TARGET_MEMORY_MOVE_COSTS): Define.
6384
6385 2010-09-12  Bernd Schmidt  <bernds@codesourcery.com>
6386
6387         * config/arm/arm.md (arm_ashldi3_1bit, arm_ashrdi3_1bit,
6388         arm_lshrdi3_1bit): Put earlyclobber on the right alternative.
6389
6390 2010-09-10  Jan Hubicka  <jh@suse.cz>
6391
6392         * tree-ssa-ccp.c (fold_const_aggregate_ref): Do not check STATIC flag.
6393
6394 2010-09-10  Richard Guenther  <rguenther@suse.de>
6395
6396         * tree.c (make_vector_type): Do not set TYPE_DEBUG_REPRESENTATION_TYPE.
6397         * tree.h (TYPE_DEBUG_REPRESENTATION_TYPE): Remove.
6398         * lto-streamer-out.c (lto_output_ts_type_tree_pointers): Do
6399         not stream TYPE_DEBUG_REPRESENTATION_TYPE.
6400         * lto-streamer-in.c (lto_input_ts_type_tree_pointers): Likewise.
6401
6402 2010-09-10  Richard Guenther  <rguenther@suse.de>
6403
6404         * dwarf2out.c (gen_array_type_die): Output DW_TAG_subrange_type
6405         for VECTOR_TYPEs using TYPE_VECTOR_SUBPARTS.
6406         * dbxout.c (dbxout_type): Manually deal with VECTOR_TYPE
6407         using TYPE_VECTOR_SUBPARTS, not TYPE_DEBUG_REPRESENTATION_TYPE.
6408
6409 2010-09-10  H.J. Lu  <hongjiu.lu@intel.com>
6410
6411         PR middle-end/45634
6412         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result
6413         of string folding is of integral type.
6414
6415 2010-09-10  Ryan Mansfield  <rmansfield@qnx.com>
6416
6417         * doc/invoke.texi (-x): Fix typo.
6418
6419 2010-09-10  Richard Guenther  <rguenther@suse.de>
6420
6421         PR debug/44115
6422         * tree.c (free_lang_data_in_decl): Do not clear DECL_DEBUG_EXPR.
6423         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
6424         Output DECL_DEBUG_EXPR.
6425         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
6426         Input DECL_DEBUG_EXPR.
6427
6428 2010-09-10  Richard Guenther  <rguenther@suse.de>
6429
6430         * tree.c (type_hash_eq): For ARRAY_TYPEs also compare TYPE_SIZE.
6431         (build_index_type): Implement in terms of build_range_type.
6432         (build_range_type): Do not allow NULL_TREE type, improve
6433         hashing to cover more cases.  Set TYPE_STRUCTURAL_EQUALITY_P
6434         if we didn't hash.
6435         * c-decl.c (grokdeclarator): When modifying TYPE_SIZE manually
6436         create a distinct copy of the type.
6437
6438 2010-09-10  Kai Tietz  <kai.tietz@onevision.com>
6439
6440         * configure: Regenerated.
6441         * config.gcc: Add for x86_64 and i?86 mingw t-dfprule.
6442
6443 2010-09-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6444
6445         * config/arm/neon-schedgen.ml (allCores): Add support for Cortex-A9.
6446         * config/arm/cortex-a9-neon.md: New and partially generated.
6447         * config/arm/cortex-a9.md (cortex_a9_dp): Adjust for Neon.
6448
6449 2010-09-10  Richard Guenther  <rguenther@suse.de>
6450
6451         * tree.h (build_index_2_type): Remove.
6452         * tree.c (build_index_2_type): Remove.
6453
6454 2010-09-10  Jakub Jelinek  <jakub@redhat.com>
6455
6456         PR bootstrap/45630
6457         * dwarf2out.c (get_ref_die_offset_label): Use %ld instead of
6458         HOST_WIDE_INT_PRINT_DEC to print ref->die_offset.
6459         (implicit_ptr_descriptor): Return NULL if dwarf_strict.
6460
6461 2010-09-10  Martin Jambor  <mjambor@suse.cz>
6462
6463         PR tree-optimization/44972
6464         * tree-sra.c: Include toplev.h.
6465         (build_ref_for_offset): Entirely reimplemented.
6466         (build_ref_for_model): New function.
6467         (build_user_friendly_ref_for_offset): New function.
6468         (analyze_access_subtree): Removed build_ref_for_offset check.
6469         (propagate_subaccesses_across_link): Likewise.
6470         (create_artificial_child_access): Use
6471         build_user_friendly_ref_for_offset.
6472         (propagate_subaccesses_across_link): Likewise.
6473         (ref_expr_for_all_replacements_p): Removed.
6474         (generate_subtree_copies): Updated comment.  Use build_ref_for_model.
6475         (sra_modify_expr): Use build_ref_for_model.
6476         (load_assign_lhs_subreplacements): Likewise.
6477         (sra_modify_assign): Removed ref_expr_for_all_replacements_p checks,
6478         checks for return values of build_ref_for_offset.
6479         * ipa-cp.c (ipcp_lattice_from_jfunc): No need to check return value of
6480         build_ref_for_offset.
6481         * ipa-prop.h: Include gimple.h
6482         * ipa-prop.c (ipa_compute_jump_functions): Update to look for MEM_REFs.
6483         (ipa_analyze_indirect_call_uses): Update comment.
6484         * Makefile.in (tree-sra.o): Add $(GIMPLE_H) to dependencies.
6485         (IPA_PROP_H): Likewise.
6486
6487 2010-09-10  Martin Jambor  <mjambor@suse.cz>
6488
6489         PR tree-optimization/44972
6490         * ipa-prop.c (ipa_modify_call_arguments): Build MEM_REF instead of
6491         calling build_ref_for_offset.
6492
6493 2010-09-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6494
6495         * config/arm/bpabi.h (BE8_LINK_SPEC): Handle Cortex-a15.
6496         * config/arm/arm-cores.def (cortex-a15): New core. Treat it as a v7-a.
6497         * config/arm/arm-tune.md: Regenerate.
6498         * doc/invoke.texi (ARM Options): Document it.
6499
6500 2010-09-09  Reza Yazdani  <reza.yazdani@amd.com>
6501
6502         * config/i386/i386.c: Include sched-int.h.
6503         (TARGET_SCHED_DISPATCH): Defined.
6504         (TARGET_SCHED_DISPATCH_DO): Defined.
6505         (DISPATCH_WINDOW_SIZE): Defined.
6506         (MAX_DISPATCH_WINDOWS): Defined.
6507         (MAX_INSN): Defined.
6508         (MAX_IMM): Defined.
6509         (MAX_IMM_SIZE): Defined.
6510         (MAX_IMM_32): Defined.
6511         (MAX_IMM_64): Defined.
6512         (MAX_LOAD): Defined.
6513         (MAX_STORE): Defined.
6514         (BIG): Defined.
6515         (dispatch_group): New.
6516         (num_allowable_groups): New.
6517         (group_name): New.
6518         (sched_insn_info_s): New.
6519         (dispatch_windows_s): New.
6520         (imm_info_s): New.
6521         (dispatch_window_list): New.
6522         (dispatch_window_list1): New.
6523         (get_mem_group): New.
6524         (is_cmp): New.
6525         (dispatch_violation): New.
6526         (is_branch): New.
6527         (is_prefetch): New.
6528         (init_window): New.
6529         (allocate_window): New.
6530         (init_dispatch_sched): New.
6531         (is_end_basic_block): New.
6532         (process_end_window): New.
6533         (allocate_next_window): New.
6534         (find_constant_1): New.
6535         (find_constant): New.
6536         (get_num_immediates): New.
6537         (has_immediate): New.
6538         (get_insn_path): New.
6539         (get_insn_group): New.
6540         (count_num_restricted): New.
6541         (fits_dispatch_window): New.
6542         (add_insn_window): New.
6543         (add_to_dispatch_window): New.
6544         (debug_dispatch_window_file): New.
6545         (debug_dispatch_window): New.
6546         (debug_insn_dispatch_info_file): New.
6547         (debug_ready_dispatch): New.
6548         (do_dispatch): New.
6549         (has_dispatch): New.
6550         * config/i386/i386.h (debug_ready_dispatch): Declared.
6551         (debug_dispatch_window): Declared.
6552         * config/i386/i386.opt (mdispatch-scheduler): New flag.
6553         * doc/tm.texi.in (TARGET_SCHED_DISPATCH): New.
6554         (TARGET_SCHED_DISPATCH_DO): New.
6555         * doc/tm.texi: Regererated.
6556         * haifa-sched.c (choose_ready): Call targetm.sched.dispatch and
6557         ready_remove_first_dispatch
6558         (schedule_block): Call targetm.sched.dispatch and
6559         targetm.sched.dispatch_do.
6560         (sched_init): Call targetm.sched.dispatch and
6561         targetm.sched.dispatch_do.
6562         (ready_remove_first_dispatch): New.
6563         (number_in_ready): New.
6564         (get_ready_element): New.
6565         * hooks.c (hook_bool_rtx_int_false): New.
6566         (hook_void_rtx_int): New.
6567         * hooks.h (hook_bool_rtx_int_false): Declared.
6568         (hook_void_rtx_int): Declared.
6569         * sched-int.h (IS_DISPATCH_ON): Defined.
6570         (IS_CMP): Defined.
6571         (DISPATCH_VIOLATION): Defined.
6572         (FITS_DISPATCH_WINDOW): Defined.
6573         (DISPATCH_INIT): Defined.
6574         (ADD_TO_DISPATCH_WINDOW): Defined.
6575         (get_ready_element): Declared.
6576         (number_in_ready): Declared.
6577         * target.def (dispatch): Defined.
6578         (dispatch_do): Defined.
6579
6580 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
6581
6582         PR middle-end/45312
6583         * reload1.c (merge_assigned_reloads): Remove.
6584         (reload_as_needed): Don't call it.
6585
6586 2010-09-09  Anatoly Sokolov  <aesok@post.ru>
6587
6588         * config/m32r/m32r.c (m32r_mode_dependent_address_p): New functions.
6589         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
6590         * config/m32r/m32r.h: (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
6591
6592 2010-09-09  Matthias Klose  <doko@ubuntu.com>
6593
6594         PR bootstrap/43847
6595         * configure.ac (--enable-plugin): Enhance for cross builds.
6596         * configure: Regenerate.
6597
6598 2010-09-09  Jan Hubicka  <jh@suse.cz>
6599
6600         PR tree-optimization/45598
6601         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result of
6602         string folding is of integral type.
6603
6604 2010-09-09  Nathan Sidwell  <nathan@codesourcery.com>
6605
6606         * configure.ac (gnu_indirect_function): New test.
6607         * configure: Rebuilt.
6608         * config.in (HAVE_GAS_INDIRECT_FUNCTION): New.
6609         * defaults.h (IFUNC_ASM_TYPE): Provide default.
6610
6611         * doc/extend.texi (Function Attributes): Document ifunc.
6612         * varasm.c (do_assemble_alias): Deal with ifuncs too.
6613
6614 2010-09-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
6615
6616         * config/picochip/picochip.c (picochip_reorg): Check for note_p for
6617         epilogue instruction move.
6618
6619 2010-09-09  Jan Hubicka  <jh@suse.cz>
6620
6621         * collect2.c (maybe_run_lto_and_relink): Rewrite code producing ld
6622         command line to allow more partitions than input files.
6623
6624 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
6625
6626         PR middle-end/44554
6627         * ira.c (ira): Switch off sharing spill slots if setjmp is called.
6628
6629 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
6630
6631         PR middle-end/40386
6632         * ira.c (pseudo_for_reload_consideration_p): Don't use
6633         flag_ira_share_spill_slots.
6634
6635 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6636
6637         * config/s390/s390.c (legitimate_reload_constant_p): Accept floating-
6638         point zero operands that fit into a single GPR.
6639         (s390_preferred_reload_class): Ensure we only return general-purpose
6640         register classes.
6641         * config/s390/s390.md ("*mov<mode>_64dfp"): Use lghi to load
6642         floating-point zero operands into GPRs.
6643         ("*mov<mode>_64"): Likewise.
6644         ("mov<mode>"): Likewise using lhi.
6645
6646 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6647
6648         * config/s390/s390.c (s390_symref_operand_p): Return false for
6649         literal pool references.
6650         (s390_check_qrst_address): Update caller.
6651
6652 2010-09-09  Uros Bizjak  <ubizjak@gmail.com>
6653
6654         * config/i386/predicates.md (ext_register_operand): Check that
6655         SUBREG_REG is really a register before looking for REGNO.
6656         (reg_not_xmm0_operand): Handle SUBREGs correctly.
6657         (nonimm_not_xmm0_operand): Call reg_not_xmm0_operand.
6658
6659 2010-09-09  Jakub Jelinek  <jakub@redhat.com>
6660
6661         * rtl.def (DEBUG_IMPLICIT_PTR): New rtl code.
6662         * rtl.h (DEBUG_IMPLICIT_PTR_DECL): Define.
6663         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle DEBUG_IMPLICIT_PTR.
6664         * print-rtl.c (print_rtx): Likewise.
6665         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
6666         * cfgexpand.c (expand_debug_expr): Generate DEBUG_IMPLICIT_PTR
6667         for ADDR_EXPR with non-addressable object.
6668         * dwarf2out.c (enum dw_val_class): Add dw_val_class_decl_ref.
6669         (struct dw_val_struct): Add v.val_decl_ref.
6670         (dwarf_stack_op_name, output_loc_operands, output_loc_operands_raw):
6671         Handle DW_OP_GNU_implicit_pointer.
6672         (size_of_loc_descr): Likewise.  Fix up DW_OP_call_ref size.
6673         (get_ref_die_offset_label): New function.
6674         (implicit_ptr_descriptor): New function.
6675         (mem_loc_descriptor): Handle DEBUG_IMPLICIT_PTR.
6676         (loc_descriptor): Likewise.
6677         (gen_variable_die): Put even definitions into decl_die_table.
6678         (resolve_addr_in_expr): Resolve still unresolved
6679         DW_OP_GNU_implicit_pointer operands, if it can't be resolved
6680         return false.
6681         (dwarf2out_finish): Call output_location_lists after outputting
6682         .debug_info and .debug_abbrev instead of before.
6683
6684 2010-09-09  Roland McGrath  <roland@redhat.com>
6685
6686         * dwarf2out.c (DWARF_REF_SIZE): Define.
6687         (size_of_loc_descr): Use it for DW_OP_call_ref.
6688
6689 2010-09-09  Alan Modra  <amodra@gmail.com>
6690
6691         * doc/invoke.text: Reinstate mcmodel=medium.
6692         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
6693         CMODEL_MEDIUM as default.
6694         * config/rs6000/rs6000.h (enum rs6000_cmodel): Add CMODEL_MEDIUM.
6695         * config/rs6000/rs6000.c (rs6000_handle_option): Add mcmodel=medium.
6696         (toc_relative_ok, offsettable_ok_by_alignment): New functions.
6697         (rs6000_emit_move): Reinstate mcmodel=medium optimization.
6698
6699 2010-09-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6700
6701         PR target/45250
6702         * config/pa/pa.md (nonlocal_goto): Restore hard frame pointer using
6703         hard_frame_pointer_rtx instead of virtual_stack_vars_rtx.
6704         (builtin_longjmp): Likewise.
6705         (allocate_stack): Use hard_frame_pointer_rtx instead of
6706         frame_pointer_rtx.
6707         * config/pa/pa-protos.h (pa_initial_elimination_offset): Declare.
6708         * config/pa/pa.c (pa_internal_arg_pointer): Declare.
6709         (pa_can_eliminate): Likewise.
6710         (TARGET_INTERNAL_ARG_POINTER): Define.
6711         (TARGET_CAN_ELIMINATE): Define.
6712         (hppa_expand_prologue): Use hard frame pointer instead of soft frame
6713         pointer.
6714         (hppa_expand_epilogue, pa_eh_return_handler_rtx): Likewise.
6715         (pa_internal_arg_pointer, pa_can_eliminate,
6716         pa_initial_elimination_offset): New.
6717         * config/pa/pa.h (FRAME_POINTER_REGNUM): Set to new general register.
6718         (HARD_FRAME_POINTER_REGNUM): Set to register three.
6719         (INITIAL_FRAME_POINTER_OFFSET): Delete.
6720         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET, DWARF_FRAME_REGISTERS):
6721         Define.
6722         (DWARF_ALT_FRAME_RETURN_COLUMN, REGNO_OK_FOR_INDEX_P,
6723         REGNO_OK_FOR_BASE_P): Update to include soft frame pointer.
6724         * config/pa/pa32-regs.h (FIRST_PSEUDO_REGISTER): Increase by one.
6725         (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER,
6726         REG_CLASS_CONTENTS, REGNO_REG_CLASS, REGISTER_NAMES): Update to include
6727         new soft frame pointer.
6728         * config/pa/pa64-regs.h: Likewise.
6729
6730 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
6731
6732         * config/i386/i386.h (EH_RETURN_DATA_REGNO) Use DX_REG instead of
6733         numerical constant.
6734         (EH_RETURN_STACKADJ_RTX): Use CX_REG insted of numerical constant.
6735
6736 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
6737
6738         PR debug/45531
6739         * cfglayout.c (fixup_reorder_chain): Skip debug insns.
6740
6741 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
6742
6743         PR debug/45419
6744         PR debug/45408
6745         * tree-pretty-print.c (dump_generic_node): Disregard top-level
6746         qualifiers in otherwise equal MEM_REF pointer types.
6747         * fold-const.c (operand_equal_p): Compare pointer type of MEM_REFs.
6748         * tree.c (iterative_hash_expr): Hash the pointer type of MEM_REFs.
6749
6750 2010-09-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6751
6752         PR target/44392
6753         * config/arm/arm.md (bswapsi2): Handle condition correctly
6754         for armv6 and optimize_size.
6755
6756 2010-09-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
6757
6758         PR other/18555
6759         * doc/cppopts.texi (-isysroot): Document Darwin behaviour.
6760
6761 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
6762
6763         * config/i386/i386-protos.h (ix86_can_use_return_insn_p,
6764         symbolic_reference_mentioned_p, ix86_expand_movmem, ix86_expand_setmem,
6765         ix86_expand_strlen, legitimate_pic_address_disp_p,
6766         ix86_binary_operator_ok, ix86_unary_operator_ok, ix86_match_ccmode,
6767         ix86_expand_int_movcc, ix86_expand_fp_movcc, ix86_expand_int_addcc,
6768         ix86_check_movabs, ix86_secondary_memory_needed): Change function
6769         prototype to bool.
6770         * config/i386/i386.c (return_in_memory_32, return_in_memory_64,
6771         return_in_memory_ms_64, ix86_check_movabs,
6772         symbolic_reference_mentioned_p, ix86_can_use_return_insn_p,
6773         legitimate_pic_address_disp_p, ix86_binary_operator_ok,
6774         ix86_unary_operator_ok, ix86_match_ccmode, ix86_expand_int_movcc,
6775         ix86_expand_fp_movcc, ix86_expand_int_addcc, ix86_expand_movmem,
6776         ix86_expand_setmem, ix86_expand_strlen, inline_secondary_memory_needed,
6777         ix86_secondary_memory_needed): Change to bool.  Return
6778         "true" and "false" values.
6779         * config/i386/i386.md: Return "true" and "false" values.
6780
6781 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6782
6783         * doc/sourcebuild.texi (Effective-Target Keywords): Document
6784         run_expensive_tests.
6785
6786 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6787
6788         * toplev.c (output_stack_usage): Use lbasename instead of basename.
6789
6790 2010-09-08  Martin Jambor  <mjambor@suse.cz>
6791
6792         PR other/45443
6793         * doc/invoke.texi: Add -fipa-cp-clone to list of switches turned on
6794         at -O3.
6795
6796 2010-09-08  Richard Guenther  <rguenther@suse.de>
6797
6798         * gimple.c (gimple_types, type_hash_cache): Move to GC memory.
6799         (visit): Adjust.
6800         (iterative_hash_gimple_type): Likewise.
6801         (gimple_type_hash): Likewise.
6802         (gimple_register_type): Likewise.
6803         (print_gimple_types_stats): Likewise.
6804         (free_gimple_type_tables): Likewise.
6805
6806 2010-09-08  Michael Matz  <matz@suse.de>
6807
6808         PR tree-optimization/43430
6809         * tree-vect-stmts.c (vectorizable_condition): Support multiple
6810         copies for conditional statements if it's not part of a reduction.
6811
6812 2010-09-08  Michael Matz  <matz@suse.de>
6813
6814         PR tree-optimization/33244
6815         * tree-ssa-sink.c (statement_sink_location): Don't sink into
6816         empty loop latches.
6817
6818 2010-09-08  Richard Guenther  <rguenther@suse.de>
6819
6820         PR tree-optimization/45578
6821         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr):
6822         Be more careful when transfering alignment information to
6823         the new induction variable.
6824         (copy_ref_info): Likewise.
6825
6826 2010-09-08  Richard Guenther  <rguenther@suse.de>
6827
6828         * tree.h (TYPE_ORIG_SIZE_TYPE): Remove.
6829         * c-typeck.c (comptypes_internal): Remove TYPE_ORIG_SIZE_TYPE checks.
6830
6831 2010-09-08  Arnaud Charlet  <charlet@adacore.com>
6832
6833         * c-tree.h, c-decl.c (build_enumerator): Add location parameter.
6834         * c-parser.c (c_parser_enum_specifier): Adjust call to build_enumerator.
6835
6836 2010-09-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
6837
6838         PR doc/45587
6839         * doc/md.texi: Fixed modes on several standard pattern names.
6840
6841 2010-09-08  Mingjie Xing  <mingjie.xing@gmail.com>
6842
6843         * config/mips/loongson.md (loongson_psll<V_suffix>): Rename to...
6844         (ashl<mode>3): ...this.
6845         (loongson_psra<V_suffix>): Rename to...
6846         (ashr<mode>3): ...this.
6847         (loongson_psrl<V_suffix>): Rename to...
6848         (lshr<mode>3): ...this.
6849         * config/mips/mips.c (CODE_FOR_loongson_psllh): Define.
6850         (CODE_FOR_loongson_psllw): Define.
6851         (CODE_FOR_loongson_psrlh): Define.
6852         (CODE_FOR_loongson_psrlw): Define.
6853         (CODE_FOR_loongson_psrah): Define.
6854         (CODE_FOR_loongson_psraw): Define.
6855
6856 2010-09-07  Richard Henderson  <rth@redhat.com>
6857
6858         * tree-vect-data-refs.c: Include tm_p.h.
6859         * Makefile.in (tree-vect-data-refs.o): Update deps.
6860         * config/i386/i386-protos.h (ix86_cfun_abi, ix86_function_type_abi):
6861         Move delarations outside #ifdef RTX_CODE.
6862
6863 2010-09-07  Richard Henderson  <rth@redhat.com>
6864
6865         * final.c (rest_of_handle_final): Unconditionally do
6866         output_function_exception_table before assemble_end_function.
6867
6868 2010-09-07  Jan Hubicka  <jh@suse.cz>
6869
6870         * tree-inline.c (tree_inlinable_function_p): Do not test
6871         DECL_REPLACEABLE_P.
6872         * ipa-inline.c (cgraph_default_inline_p, update_caller_keys,
6873         update_callee_keys, cgraph_decide_inlining): Test function availability.
6874         * cif-code.def (OVERWRITABLE): New code.
6875
6876 2010-09-07  H.J. Lu  <hjl.tools@gmail.com>
6877             Jack Howarth  <howarth@bromo.med.uc.edu>
6878
6879         PR target/36502
6880         PR target/42313
6881         PR target/44651
6882         * config/i386/darwin.h (STACK_BOUNDARY): Redefine as 128 for
6883         profiling or 64-bit MS_ABI and as BITS_PER_WORD otherwise.
6884         (PREFERRED_STACK_BOUNDARY): Replace STACK_BOUNDARY with 128 in
6885         MAX macro.
6886
6887 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
6888
6889         * unwind-dw2-fde-glibc.c: Include <elf.h> for DT_CONFIG.
6890         Include <link.h> only if USE_PT_GNU_EH_FRAME is defined.
6891
6892 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
6893
6894         * config.gcc: Don't append t-android for Android targets.
6895
6896         * config/t-android: Removed.
6897
6898 2010-09-07  Richard Henderson  <rth@redhat.com>
6899
6900         * target.def (TARGET_ASM_EMIT_EXCEPT_PERSONALITY): New hook.
6901         * doc/tm.texi.in: Add doc marker.
6902         * doc/tm.texi: Rebuild.
6903         * except.c (switch_to_exception_section): Always build.
6904         (output_one_function_exception_table): Move section switch,
6905         personality output, and label output ...
6906         (output_function_exception_table): ... here.  Use the new
6907         personality hook.
6908
6909         * config/ia64/ia64.c (ia64_asm_emit_except_personality,
6910         ia64_asm_init_sections, TARGET_ASM_EMIT_EXCEPT_PERSONALITY,
6911         TARGET_ASM_INIT_SECTIONS): New.
6912         (ia64_asm_unwind_emit): Rename from process_for_unwind_directive,
6913         make static.
6914         (TARGET_ASM_UNWIND_EMIT): Update to match.
6915         * config/ia64/ia64-protos.h (process_for_unwind_directive): Remove.
6916
6917         * config/arm/arm.c (arm_asm_emit_except_personality): New.
6918         (arm_asm_init_sections): New.
6919         (TARGET_ASM_EMIT_EXCEPT_PERSONALITY, TARGET_ASM_INIT_SECTIONS): New.
6920
6921 2010-09-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6922
6923         * config/arm/arm.md: Remove unused variable.
6924
6925 2010-09-07  Anatoly Sokolov  <aesok@post.ru>
6926
6927         * config/m32r/m32r.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
6928         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Define.
6929         (m32r_memory_move_cost): New function.
6930
6931 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
6932
6933         * config.gcc: Append t-android for Android targets.
6934
6935         * config/t-android: New.
6936
6937 2010-09-07  Richard Henderson  <rth@redhat.com>
6938
6939         * target.def (unwind_emit_before_insn): New hook.
6940         * doc/tm.texi.in: Add @hook marker for it.
6941         * doc/tm.texi: Rebuild.
6942         * final.c (final_scan_insn): Respect unwind_emit_before_insn.
6943
6944 2010-09-07  Martin Jambor  <mjambor@suse.cz>
6945
6946         PR fortran/43665
6947         * ipa-cp.c (ipcp_versionable_function_p): Return false if there
6948         are any type attributes.
6949
6950 2010-09-07  Jan Hubicka  <jh@suse.cz>
6951
6952         * tree-ssa-ccp.c (fold_const_aggregate_ref): Fix handling of
6953         array_ref_low_bound in string access folding.
6954
6955 2010-09-07  Uros Bizjak  <ubizjak@gmail.com>
6956
6957         PR target/45206
6958         * config/i386/i386.c (ix86_expand_epilogue): Mark SP as valid after
6959         eh_return fixup sequence.
6960
6961 2010-09-07  Jan Hubicka  <jh@suse.cz>
6962
6963         * gimple-fold.c (maybe_fold_reference): Verify that operand is
6964         gimple_min_invariant.
6965
6966 2010-09-07  Richard Guenther  <rguenther@suse.de>
6967
6968         PR middle-end/45569
6969         * tree-eh.c (operation_could_trap_helper_p): Neither COMPLEX_EXPR
6970         nor CONSTRUCTOR can trap.
6971         * tree-complex.c (update_complex_assignment): Update EH info.
6972
6973 2010-09-07  Richard Guenther  <rguenther@suse.de>
6974
6975         PR middle-end/45569
6976         * tree-cfg.c (build_gimple_cfg): Remove redundant stmt verification.
6977         * passes.c (execute_function_todo): Do not verify anything if
6978         we saw errors.
6979
6980 2010-09-07  Richard Guenther  <rguenther@suse.de>
6981
6982         * tree-pretty-print.c (dump_generic_node): Dump void types as void.
6983
6984 2010-09-07  Bernd Schmidt  <bernds@codesourcery.com>
6985
6986         PR target/43137
6987         * config/arm/iterators.md (qhs_zextenddi_cond, qhs_sextenddi_cond):
6988         New define_mode_attrs.
6989         * config/arm/arm.md (zero_extendsidi2, arm_zero_extendsidi2,
6990         arm_exxtendsidi2, arm_extendsidi2): Delete patterns.
6991         (zero_extend<mode>di2, extend<mode>di2 and related splits): New.
6992         (thumb1_zero_extendhisi2): Remove code to handle LABEL_REFs.
6993         Remove pool_range attribute.
6994         (arm_zero_extendhisi2, arm_zero_extendhisi2_v6, arm_zero_extendqisi2,
6995         arm_zero_extendqisi2_v6, thumb1_zero_extendqisi2_v6): Remove
6996         pool_range and neg_pool_range attributes.
6997         * config/arm/thumb2.md (thumb2_zero_extendsidi2,
6998         thumb2_zero_extendhidi2, thumb2_zero_extendqidi2, thumb2_extendsidi2,
6999         thumb2_extendhidi2, thumb2_extendqidi2): Delete.
7000
7001 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
7002
7003         * config/i386/linux-unwind.h (x86_fallback_frame_state): Properly
7004         check glibc.
7005
7006 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
7007
7008         PR target/22152
7009         * config/i386/mmx.md (*mov<mode>_internal_rex64,
7010         *mov<mode>_internal_avx, *mov<mode>_internal,
7011         *movv2sf_internal_rex64_avx, *movv2sf_internal_rex64,
7012         *movv2sf_internal_avx, *movv2sf_internal): Split out !y-!y alternative.
7013
7014 2010-09-06  Mark Mitchell  <mark@codesourcery.com>
7015
7016         * c-typeck.c (do_warn_double_promotion): Remove.
7017         * doc/invoke.texi (-Wdouble-promotion): Note available for C++ and
7018         Objective-C++ too.
7019
7020 2010-09-06  Anatoly Sokolov  <aesok@post.ru>
7021
7022         * config/frv/frv.h (CLASS_LIKELY_SPILLED_P): Remove.
7023         * config/frv/frv-protos.h (frv_class_likely_spilled_p): Remove.
7024         * config/frv/frv.c (frv_class_likely_spilled_p): Make static. Change
7025         argument type to reg_class_t. Change result type to bool.
7026         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
7027
7028 2010-09-06  Nicola Pero  <nicola.pero@meta-innovation.com>
7029
7030         PR libobjc/19850
7031         * gthr-posix.h (__gthread_objc_thread_detach): Use
7032         _objc_thread_attribs when detaching a thread.
7033         * gthr-posix95.h (__gthread_objc_thread_detach): Same change.
7034
7035 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
7036
7037         PR target/45524
7038         * configure.ac (enable_decimal_float): Set to $default_decimal_float.
7039         * configure: Regenerated.
7040
7041 2010-09-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7042
7043         * combine.c (try_combine): Set subst_low_luid to i0.
7044
7045 2010-09-06  Richard Guenther  <rguenther@suse.de>
7046
7047         * tree.def (MISALIGNED_INDIRECT_REF): Remove.
7048         * tree.h (INDIRECT_REF_P): Only check for INDIRECT_REF.
7049         (build_aligned_type): Declare.
7050         * tree.c (check_qualified_type): Also compare TYPE_ALIGN.
7051         (check_aligned_type): New function.
7052         (build_aligned_type): Likewise.
7053         * expr.c (expand_assignment): Handle misaligned stores via
7054         TARGET_MEM_REF and MEM_REF using movmisalign_optab.
7055         (expand_expr_real_1): Likewise.
7056         (safe_from_p): Remove MISALIGNED_INDIRECT_REF handling.
7057         * tree-vect-stmts.c (vectorizable_store): Do not build
7058         MISALIGNED_INDIRECT_REF but initialize alignment information.
7059         (vectorizable_load): Likewise.
7060         * builtins.c (get_object_alignment): Remove MISALIGNED_INDIRECT_REF
7061         handling.
7062         * cfgexpand.c (expand_debug_expr): Likewise.
7063         * dwarf2out.c (loc_list_from_tree): Likewise.
7064         * fold-const.c (maybe_lvalue_p): Likewise.
7065         (operand_equal_p): Likewise.
7066         (build_fold_addr_expr_with_type_loc): Likewise.
7067         * gimplify.c (gimplify_addr_expr): Likewise.
7068         (gimplify_expr): Likewise.
7069         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
7070         (verify_gimple_assign_single): Likewise.
7071         * tree-dump.c (dequeue_and_dump): Likewise.
7072         (tree_could_trap_p): Likewise.
7073         * tree-predcom.c (ref_at_iteration): Likewise.
7074         * tree-pretty-print.c (dump_generic_node): Likewise.
7075         (op_code_prio): Likewise.
7076         (op_symbol_code): Likewise.
7077         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
7078         * tree-ssa-loop-im.c (for_each_index): Likewise.
7079         (gen_lsm_tmp_name): Likewise.
7080         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
7081         (find_interesting_uses_address): Likewise.
7082         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
7083         * tree-ssa-operands.c (get_expr_operands): Likewise.
7084         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
7085         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
7086         (ao_ref_init_from_vn_reference): Likewise.
7087         * tree.c (staticp): Likewise.
7088         (build1_stat): Likewise.
7089         (reference_alias_ptr_type): Likewise.
7090         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
7091         * config/rs6000/rs6000.c (rs6000_check_sdmode): Remove
7092         MISALIGNED_INDIRECT_REF handling.
7093
7094 2010-09-06  Richard Guenther  <rguenther@suse.de>
7095
7096         PR tree-optimization/45534
7097         * tree-ssa-address.c (create_mem_ref_raw): Add verify parameter.
7098         (create_mem_ref): Do verify the created TARGET_MEM_REF is valid
7099         on the target.
7100         (maybe_fold_tmr): Do not verify the created TARGET_MEM_REF is
7101         valid on the target.
7102
7103 2010-09-06  Andreas Schwab  <schwab@redhat.com>
7104
7105         * configure.ac: Quote argument of AC_MSG_WARN.
7106         * configure: Regenerate.
7107
7108 2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
7109
7110         * sel-sched.c (move_cond_jump): Correct arguments to
7111         maybe_tidy_empty_bb.
7112         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
7113
7114 2010-09-06  Andrey Belevantsev  <abel@ispras.ru>
7115
7116         PR rtl-optimization/44919
7117         * sel-sched.c (move_cond_jump): Remove assert, check that
7118         the several blocks case can only happen with mutually exclusive
7119         insns instead.  Rewrite the movement code to support moving through
7120         several basic blocks.
7121
7122 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
7123
7124         * config/i386/i386.md (iptrsize): New mode attribute.
7125         (tp_seg): Ditto.
7126         (*load_tp_<mode>): Macroize insn from *load_tp_{si,di} using P
7127         mode iterator.
7128         (*add_tp_<mode>): Ditto from *add_tp_{si,di}.
7129         (stack_protect_set_<mode>): Ditto from stack_protect_set_{si,di}.
7130         (stack_protect_test_<mode>): Ditto from stack_protect_test_{si,di}.
7131         (stack_tls_protect_set_<mode>): Ditto from
7132         stack_tls_protect_set_{si,di}.  Use %@ to output segment register
7133         of thread base pointer load.
7134         (stack_tls_protect_test_<mode>): Ditto from
7135         stack_tls_protect_test_{si,di}.  Use %@ to output segment register
7136         of thread base pointer load.
7137         (stack_protect_set): Rewrite using indirect functions.
7138         (stack_protect_test): Ditto.
7139         * config/i386/i386.c (ix86_print_operand_punct_valid): Add '@'.
7140         (ix86_print_operand): Handle '@'.
7141
7142 2010-09-05  Giuseppe Scrivano  <gscrivano@gnu.org>
7143
7144         * tree-tailcall.c (process_assignment): Handle NEGATE_EXPR and
7145         MINUS_EXPR.
7146
7147 2010-09-05  Mark Mitchell  <mark@codesourcery.com>
7148
7149         * doc/invoke.texi: Document -Wdouble-promotion.
7150         * c-typeck.c (convert_arguments): Check for implicit conversions
7151         from float to double.
7152         (do_warn_double_promotion): New function.
7153         (build_conditional_expr): Use it.
7154         (build_binary_op): Likewise.
7155
7156 2010-09-05  Richard Guenther  <rguenther@suse.de>
7157
7158         PR tree-optimization/45535
7159         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
7160         handle TMR_INDEX2.  Make sure TMR_INDEX is not NULL before
7161         dereferencing it.
7162         (indirect_refs_may_alias_p): Likewise.
7163
7164 2010-09-05  Naveen H.S  <naveen.S@kpitcummins.com>
7165
7166         * config/sh/sh.c (sh_option_override): Make static.
7167         Adjust comments.  Declare.
7168         (sh_function_value_regno_p): Likewise.
7169         (sh_register_move_cost): Modify the arguments, make static.
7170         Adjust comments.  Declare.
7171         (TARGET_OPTION_OVERRIDE, TARGET_REGISTER_MOVE_COST
7172         TARGET_FUNCTION_VALUE_REGNO_P): Define.
7173         * config/sh/sh.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P
7174         REGISTER_MOVE_COST): Delete.
7175         * config/sh/sh-protos.h (sh_override_options): Delete.
7176         (sh_register_move_cost): Delete.
7177         (sh_function_value_regno_p): Delete.
7178
7179 2010-09-04  Anatoly Sokolov  <aesok@post.ru>
7180
7181         * config/m32r/m32r.c (m32r_function_value, m32r_libcall_value,
7182         m32r_function_value_regno_p): New functions.
7183         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
7184         TARGET_FUNCTION_VALUE_REGNO_P): Declare.
7185         * config/m32r/m32r.h: (FUNCTION_VALUE, LIBCALL_VALUE,
7186         FUNCTION_VALUE_REGNO_P): Remove.
7187
7188 2010-09-04  Jan Hubicka  <jh@suse.cz>
7189
7190         * gimple-fold.c (maybe_fold_reference): Use fold_const_aggregate_ref.
7191         * tree-ssa-ccp.c (fold_const_aggregate_ref): Use
7192         fold_read_from_constant_string.
7193
7194         * gimple.h (canonicalize_constructor_val): Declare.
7195         * gimple-fold.c (canonicalize_constructor_val): New function.
7196         (get_symbol_constant_value):Use it.
7197         * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
7198
7199 2010-09-04  Jan Hubicka  <jh@suse.cz>
7200
7201         * tree-switch-conversion.c (build_one_array): Set constructor to be
7202         static.
7203         * varpool.c (varpool_finalize_decl): Compute const_value_known.
7204
7205 2010-09-04  Richard Guenther  <rguenther@suse.de>
7206
7207         PR bootstrap/45519
7208         * tree-flow.h (force_gimple_operand_1): Declare.
7209         (force_gimple_operand_gsi_1): Likewise.
7210         * gimplify.c (force_gimple_operand_1): New worker taking a
7211         gimple predicate for ...
7212         (force_gimple_operand): ... which now wraps it.
7213         (force_gimple_operand_gsi_1, force_gimple_operand_gsi): Likewise.
7214         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Revert
7215         last change.
7216         * tree-ssa-address.c (gimplify_mem_ref_parts): Use
7217         force_gimple_operand_gsi_1 with is_gimple_mem_ref_addr.
7218         (create_mem_ref): Likewise.
7219
7220 2010-09-04  Uros Bizjak  <ubizjak@gmail.com>
7221
7222         * config/i386/predicates.md (sse_reg_operand): New predicate.
7223         * config/i386/i386.md (TFmode push splitter): Use sse_reg_operand
7224         predicate for operand 1.
7225         (XFmode push splitter): Use fp_register_operand predicate
7226         for operand 1.
7227         (*dummy_extendsfdf2, *dummy_extendsfxf2): Remove disabled patterns.
7228         (SF-DF float_extend push splitter): Add reload_completed insn
7229         predicate.
7230         ({SF,DF}-XF float_extend_push splitter): Macroize splitter using
7231         MODEF mode macro.  Add reload_completed insn predicate.
7232
7233 2010-09-04  Paolo Bonzini  <bonzini@gnu.org>
7234
7235         * df.h (enum df_ref_class): Remove DF_REF_EXTRACT.
7236         (struct df_extract_ref): Remove.
7237         (union df_ref_d): Remove extract_ref member.
7238         (df_ref_create): Remove last three arguments.
7239         (DF_REF_LOC): Remove DF_REF_EXTRACT case.
7240         * df-scan.c (df_ref_record): Remove last three arguments, do not
7241         pass them to df_ref_create_structure.
7242         (df_uses_record): Remove first and last three arguments.  Replace
7243         first argument with DF_REF_REGULAR, adjust calls to remove the
7244         width, offset and mode.  Always call recursively on the second
7245         and third argument of ZERO_EXTRACT and SIGN_EXTRACT.
7246         (df_ref_create_structure): Remove first argument.
7247         (struct df_scan_problem_data): Remove ref_extract_pool.
7248         (df_scan_free_internal): Do not free it.
7249         (df_scan_alloc): Do not allocate it.
7250         (df_ref_create): Remove last three arguments, do not pass them to
7251         df_ref_create_structure.
7252         (df_free_ref): Remove DF_REF_EXTRACT case.
7253         (df_notes_rescan): Adjust call to df_uses_record.
7254         (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
7255         Remove DF_REF_EXTRACT case.
7256         (df_def_record_1): Do not special case class for a ZERO_EXTRACT lhs.
7257         Adjust calls to df_ref_record, using DF_REF_REGULAR for all REG
7258         and SUBREG definitions.
7259         (df_get_conditional_uses): Remove references to width/offset/mode,
7260         adjust call to df_ref_create_structure.
7261         (df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
7262         df_entry_block_defs_collect, df_exit_block_uses_collect): Adjust
7263         calls to df_uses_record and df_ref_record.
7264         * fwprop.c (update_df): Remove references to width/offset/mode,
7265         adjust call to df_ref_create.
7266
7267 2010-09-03  Jan Hubicka  <jh@suse.cz>
7268
7269         * ipa.c (build_cdtor): Take VECtor as argument; fix array walk.
7270         (build_cdtor_fns): Update use of build_cdtor.
7271
7272 2010-09-03  Joseph Myers  <joseph@codesourcery.com>
7273
7274         * doc/options.texi (SeparateAlias): Document.
7275         * opt-functions.awk (switch_flags): Handle SeparateAlias.
7276         * opth-gen.awk: Generate enumeration names for options marked
7277         SeparateAlias, but not for those marked Ignore.
7278         * opts-common.c (generate_canonical_option): Don't output separate
7279         argument for options marked CL_SEPARATE_ALIAS.
7280         (decode_cmdline_option): Handle CL_SEPARATE_ALIAS.
7281         * opts.h (CL_SEPARATE_ALIAS): New.
7282         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
7283         CL_COMMON): Adjust definitions.
7284         * config/i386/darwin.opt, config/mips/sde.opt: New.
7285         * common.opt (fdump-final-insns): New.
7286         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
7287         i386/darwin.opt.
7288         (mips*-sde-elf*): Add mips/sde.opt.
7289         * config/mips/sde.h (DRIVER_SELF_SPECS): Don't handle
7290         -mno-data-in-code and -mcode-xonly here.
7291         * defaults.h (DEFAULT_SWITCH_TAKES_ARG): Add 'd'.
7292         * gcc.c (option_map): Add "j" to --dump entry.
7293         (translate_options): Don't translate -d to -foutput-class-dir= here.
7294
7295 2010-09-03  Sebastian Pop  <sebastian.pop@amd.com>
7296
7297         * tree-data-ref.c (dr_may_alias_p): Replace !DR_IS_READ with
7298         DR_IS_WRITE.
7299         (compute_all_dependences): Same.
7300         (create_rdg_edge_for_ddr): Same.
7301         * tree-data-ref.h (DR_IS_WRITE): New.
7302         (ddr_is_anti_dependent): Replace !DR_IS_READ with DR_IS_WRITE.
7303         * tree-if-conv.c (write_memrefs_written_at_least_once): Same.
7304         (write_memrefs_written_at_least_once): Same.
7305         * tree-predcom.c (suitable_component_p): Same.
7306         (determine_roots_comp): Same.
7307         (execute_load_motion): Same.
7308         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Same.
7309         (vect_enhance_data_refs_alignment): Same.
7310         (vect_analyze_group_access): Same.
7311
7312 2010-09-03  Joern Rennecke  <joern.rennecke@embecosm.com>
7313
7314         PR testsuite/42843
7315         * Makefile.in (PLUGINCC): Define in terms of @CC@ / @CXX@
7316         (PLUGINCFLAGS): Define in terms of @CFLAGS@ / @CXXFLAGS@
7317
7318 2010-09-03  Marcin Baczynski  <marbacz@gmail.com>
7319
7320         * dwarf2out.c (file scope): Remove #if0'd code.
7321         (gen_subprogram_die): Same.
7322
7323 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
7324
7325         PR middle-end/45484
7326         * dwarf2out.c (flush_queued_reg_saves): Rename to...
7327         (dwarf2out_flush_queued_reg_saves): ... this.  No longer static.
7328         (dwarf2out_frame_debug_expr, dwarf2out_frame_debug): Adjust callers.
7329         * dwarf2out.h (dwarf2out_flush_queued_reg_saves): New prototype.
7330         * config/i386/i386.c (output_set_got): Call it.
7331
7332 2010-09-03  Michael Matz  <matz@suse.de>
7333
7334         PR middle-end/45415
7335         * tree-sra.c (sra_modify_assign): If we modify the statement,
7336         say so.
7337
7338         * tree-ssa.c (verify_ssa): Check number of operands and links
7339         per statement to agree.
7340
7341 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
7342             Iain Sandoe  <iains@gcc.gnu.org>
7343
7344         PR target/45476
7345         * config/i386/t-darwin (LIB2FUNCS_EXCLUDE): New.
7346         * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE,
7347         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
7348
7349 2010-09-03  Richard Guenther  <rguenther@suse.de>
7350
7351         * lto-streamer-out.c (output_function): Output function
7352         start and end loci.
7353         * lto-streamer-in.c (input_function): Input function start
7354         and end loci.
7355
7356 2010-09-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7357
7358         * configure.ac: Use the GCC_AC_ENABLE_DECIMAL_FLOAT macro.
7359         * Makefile.in: Add aclocal.m4 dependency to dfp.m4.
7360         * configure: Regenerate.
7361         * aclocal.m4: Regenerate.
7362
7363 2010-09-03  Jan Hubicka  <jh@suse.cz>
7364
7365         PR lto/44812
7366         * lto-cgraph.c (intput_node, input_varpool_node): Set DECL_EXTERNAL
7367         on functions/variables in other partition.
7368
7369 2010-09-03  Jan Hubicka  <jh@suse.cz>
7370
7371         * cgraph.h (struct varpool_node): Add const_value_known.
7372         (varpool_decide_const_value_known): Declare.
7373         * tree-ssa-ccp.c (fold_const_aggregate_ref): Update initializer folding.
7374         * lto-cgraph.c (lto_output_varpool_node): Store const_value_known.
7375         (input_varpool_node): Restore const_value_known.
7376         * tree-ssa-loop-ivcanon (constant_after_peeling): Check varpool for
7377         initializer folding.
7378         * ipa.c (ipa_discover_readonly_nonaddressable_var,
7379         function_and_variable_visibility): Compute const_value_known.
7380         * gimple-fold.c (get_symbol_constant_value): Use varpool for
7381         initializer folding.
7382         * varpool.c (varpool_decide_const_value_known): New function.
7383
7384 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
7385
7386         * config/i386/i386.md: Remove empty preparation statements
7387         from splitters.
7388
7389 2010-09-03  Jan Hubicka  <jh@suse.cz>
7390
7391         * passes.c (rest_of_decl_compilation): Do not add local vars into
7392         varpool.
7393         * varpool.c (varpool_get_node, varpool_node): Sanity check that only
7394         static or extern vars are in varpool.
7395         (varpool_finalize_decl): Sanity check that only static vars are
7396         finalized.
7397
7398 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
7399
7400         PR debug/45500
7401         * dwarf2out.c (rtl_for_decl_init): Give up for all generic vectors,
7402         not just generic vectors with BLKmode.
7403
7404 2010-09-03  Richard Guenther  <rguenther@suse.de>
7405
7406         * tree.def (TARGET_MEM_REF): Merge TMR_SYMBOL and TMR_BASE.
7407         Move TMR_OFFSET to second operand.  Add TMR_INDEX2.
7408         * tree.h (TMR_SYMBOL): Remove.
7409         (TMR_BASE, TMR_OFFSET): Adjust.
7410         (TMR_INDEX2): New.
7411         * alias.c (ao_ref_from_mem): Use TMR_BASE.
7412         * builtins.c (get_object_alignment): Merge TMR_BASE and
7413         TMR_SYMBOL handling.
7414         * cfgexpand.c (expand_debug_expr): Use TMR_BASE.
7415         * gimple.c (get_base_address): Merge MEM_REF and TARGET_MEM_REF
7416         handling.  Also allow TARGET_MEM_REF as base address.
7417         (walk_stmt_load_store_addr_ops): TMR_BASE is always non-NULL.
7418         * gimplify.c (gimplify_expr): Gimplify TMR_BASE like MEM_REF
7419         base.  Gimplify TMR_INDEX2.
7420         * tree-cfg.c (verify_types_in_gimple_reference): Adjust.
7421         * tree-dfa.c (get_ref_base_and_extent): Likewise.
7422         (get_addr_base_and_unit_offset): Likewise.
7423         * tree-eh.c (tree_could_trap_p): Likewise.
7424         * tree-pretty-print.c (dump_generic_node): Likewise.
7425         * tree-ssa-address.c (tree_mem_ref_addr): Simplify.  Handle TMR_INDEX2.
7426         (create_mem_ref_raw): Merge symbol and base.  Move 2ndary
7427         base to index2.
7428         (get_address_description): Reconstruct addres description
7429         from merged TMR_BASE and TMR_INDEX2.
7430         (maybe_fold_tmr): Fold propagated addresses.
7431         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Merge
7432         MEM_REF and TARGET_MEM_REF paths.
7433         (indirect_refs_may_alias_p): Likewise.
7434         * tree-ssa-live.c (mark_all_vars_used_1): Handle TMR_INDEX2
7435         instead of TMR_SYMBOL.
7436         * tree-ssa-operands.c (get_tmr_operands): Simplify.
7437         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Adjust
7438         according to changes ...
7439         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): ... here.
7440         Split TARGET_MEM_REF into two fields plus the base.
7441         * tree.c (mem_ref_offset): Simplify.
7442         * tree-ssa-loop-im.c (for_each_index): Handle TMR_INDEX2.
7443         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
7444         Strip NOPs when folding MEM_REF addresses.
7445         * tree-ssa-sink.c (is_hidden_global_store): Handle TARGET_MEM_REF.
7446         * gimple-fold.c (maybe_fold_reference): Fold TARGET_MEM_REF here ...
7447         (fold_gimple_assign): ... not here.
7448
7449 2010-09-03  Mingjie Xing  <mingjie.xing@gmail.com>
7450
7451         * config/mips/mips.h (SHIFT_COUNT_TRUNCATED): Change the definition.
7452         * config/mips/mips.c (mips_shift_truncation_mask): New function.
7453         (TARGET_SHIFT_TRUNCATION_MASK): Define.
7454
7455 2010-09-02  Richard Henderson  <rth@redhat.com>
7456
7457         * configure.ac (gcc_cv_as_cfi_advance_working): Use objdump
7458         instead of readelf in the test.
7459         (gcc_cv_as_cfi_sections_directive): Check for correct relocation
7460         in the .debug_frame section for coff targets.
7461         * configure: Rebuild.
7462
7463 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
7464
7465         * config/m32c/m32c.h (CLASS_LIKELY_SPILLED_P): Remove.
7466         * config/m32c/m32c-protos.h (m32c_class_likely_spilled_p): Remove.
7467         * config/m32c/m32c.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
7468         (m32c_class_likely_spilled_p): Make static. Change argument type to
7469         reg_class_t. Change result type to bool.
7470
7471 2010-09-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
7472
7473         * config/rs6000/rs6000.opt (-mfriz): New switch to control whether
7474         to convert (double)(long) into a single FRIZ instruction or not
7475         when -ffast-math is used.
7476
7477         * config/rs6000/vsx.md (VSX_DF): New iterator for DF/V2DF modes.
7478         (vsx_float_fix_<mode>2): Optimize (double)(long) into X{S,V}RDPIZ
7479         or FRIZ instruction if -ffast-math.
7480         * config/rs6000/rs6000.md (friz): Ditto.
7481
7482         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mfriz.
7483
7484 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
7485
7486         * opth-gen.awk (quote, comma): Remove unused variables.
7487
7488 2010-09-02  Ryan Mansfield  <rmansfield@qnx.com>
7489
7490         * arm.c (arm_override_options): Correct fall-back code to use
7491         SUBTARGET_CPU_DEFAULT.
7492
7493 2010-09-02  Julian Brown  <julian@codesourcery.com>
7494
7495         * config/arm/neon.md (UNSPEC_VCLE, UNSPEC_VCLT): New constants for
7496         unspecs.
7497         (vcond<mode>, vcondu<mode>): New expanders.
7498         (neon_vceq<mode>, neon_vcge<mode>, neon_vcgt<mode>): Support
7499         comparisons with zero.
7500         (neon_vcle<mode>, neon_vclt<mode>): New patterns.
7501         * config/arm/constraints.md (Dz): New constraint.
7502
7503 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
7504
7505         * target.def (class_likely_spilled_p): New hook.
7506         * doc/tm.texi.in (TARGET_CLASS_LIKELY_SPILLED_P): Document.
7507         * doc/tm.texi: Regenerate.
7508         * targhooks.c (default_class_likely_spilled_p): New function.
7509         * targhooks.h (default_class_likely_spilled_p): Declare.
7510         * regs.h (CLASS_LIKELY_SPILLED_P): Remove.
7511         * combine.c (cant_combine_insn_p, likely_spilled_retval_p): Use
7512         TARGET_CLASS_LIKELY_SPILLED_P target hook. Use HARD_REGISTER_P macro.
7513         Use fixed_reg_set instead of fixed_regs.
7514         * cse.c (hash_rtx_cb): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
7515         * calls.c (avoid_likely_spilled_reg): Ditto.
7516         * ira-conflicts.c (ira_build_conflicts): Ditto.
7517         * ira.c (update_equiv_regs): Ditto.
7518         * mode-switching.c (create_pre_exit): Ditto.
7519         * regmove.c (find_matches): Ditto.
7520         (regclass_compatible_p): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
7521         * reload.c (SMALL_REGISTER_CLASS_P): Remove macro.
7522         (small_register_class_p): New inline function.
7523         (push_secondary_reload, find_reusable_reload, find_reloads): Use
7524         small_register_class_p instead of SMALL_REGISTER_CLASS_P.
7525
7526         * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Remove.
7527         * config/i386/i386.c (ix86_class_likely_spilled_p): New.
7528         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
7529
7530 2010-09-02  Richard Guenther  <rguenther@suse.de>
7531
7532         PR tree-optimization/44937
7533         PR tree-optimization/45412
7534         * ipa-split.c (split_function): Properly remove PHI nodes.
7535
7536 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
7537
7538         * opts.h (struct cl_option): Add warn_message field.
7539         (struct cl_decoded_option): Add warn_message field.
7540         * doc/options.texi (Ignore, Warn): Document.
7541         * opt-functions.awk (needs_state_p): Don't consider aliases or
7542         ignored options to need state saved.
7543         * optc-gen.awk: Handle Warn and Ignore.
7544         * opth-gen.awk: Output OPT_SPECIAL_ignore.
7545         * opts-common.c (decode_cmdline_option): Set warn_message field.
7546         Handle ignored options.
7547         (decode_cmdline_options_to_array, generate_option,
7548         generate_option_input_file): Set warn_message field.
7549         (read_cmdline_option): Generate warnings from warn_message field.
7550         Handle ignored options.
7551         * common.opt (Wunreachable-code, fargument-alias,
7552         fargument-noalias, fargument-noalias-global,
7553         fargument-noalias-anything, fcse-skip-blocks, fforce-addr,
7554         floop-optimize, frerun-loop-opt, fsched2-use-traces, fsee,
7555         fstrength-reduce, ftree-store-ccp, ftree-store-copy-prop,
7556         ftree-salias): Mark Ignore.
7557         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -mcpu,
7558         -mintel-syntax and -mno-intel-syntax here.
7559         * config/i386/i386.opt (mcpu=, mintel-syntax): Define as aliases
7560         using Warn.
7561         * opts.c (common_handle_option): Don't handle options marked as
7562         ignored.
7563         (enable_warning_as_error): Handle ignored options.
7564
7565 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
7566
7567         PR driver/44076
7568         * opts.h (struct cl_option): Add alias_arg, neg_alias_arg and
7569         alias_target fields.
7570         * opt-functions.awk (opt_sanitized_name): Don't handle
7571         finline-limit=, Wlarger-than= and ftemplate-depth= specially.
7572         * optc-gen.awk: Generate alias fields.
7573         * opth-gen.awk: Explicitly give values for OPT_* enum constants.
7574         Don't generate such constants for aliases.
7575         * opts-common.c (generate_canonical_option): New.
7576         (decode_cmdline_option): Handle aliases.  Use
7577         generate_canonical_option for known options instead of copying the
7578         input option text.
7579         * doc/options.texi (Alias): Document.
7580         * common.opt (W, Wlarger-than-, aux-info=, finline-limit-,
7581         fstack-check, specs): Mark as aliases.
7582         * gcc.c (driver_handle_option): Canonicalize -L options to joined
7583         arguments.
7584         (driver_handle_option): Don't handle OPT_specs.
7585         * opts.c (common_handle_option): Don't handle options marked as
7586         aliases.
7587         (enable_warning_as_error): Handle aliases.
7588         * stor-layout.c (layout_decl): Use OPT_Wlarger_than_ instead of
7589         OPT_Wlarger_than_eq.
7590         * tree-optimize.c (tree_rest_of_compilation): Use
7591         OPT_Wlarger_than_ instead of OPT_Wlarger_than_eq.
7592
7593 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
7594
7595         * config/i386/i386.md (nonmemory_operand): New mode attribute.
7596         (push memory peephole2): Macroize peepholes using SWI mode iterator.
7597         (move immediate to memory peephole2): Macroize peepholes using
7598         SWI124 mode iterator.
7599         (non-pairable NOT peephole2): Macroize peepholes using SWI124
7600         mode iterator.
7601         (simple lea add peephole2): Macroize peepholes using SWI48
7602         mode iterator.
7603         (simple lea mult peephole2): Ditto.
7604         (imul by 3,5,9 to lea peephole2): Ditto.
7605         (mov $-1, reg peephole2): Macroize peepholes using SWI248
7606         mode iterator.
7607         (imul $32bit_imm,mem,reg peephole2): Ditto.
7608         (imul $8/16bit_imm,regmem,reg peephole2): Ditto.
7609
7610 2010-09-02  Ian Bolton  <ian.bolton@arm.com>
7611
7612         * tree-ssa-loop-prefetch.c: Fix comment at head of file.
7613
7614 2010-09-02  Olivier Hainque  <hainque@adacore.com>
7615
7616         PR middle-end/44763
7617         * ira-color.c (SORTGT): New macro, helper for qsort callbacks.
7618         (allocno_priority_compare_func): Use it instead of a straight
7619         difference computation over priorities.
7620
7621 2010-09-02  Andi Kleen  <ak@linux.intel.com>
7622
7623         * opts.c (common_handle_option): Fix OPT_fwhopr/fwhopr_ handling.
7624
7625 2010-09-02  Ira Rosen  <irar@il.ibm.com>
7626
7627         * tree-vectorizer.h (get_later_stmt): New function.
7628         (vect_analyze_data_ref_dependences): Add argument.
7629         * tree-vect-loop.c (vect_analyze_loop): Update call to
7630         vect_analyze_data_ref_dependences.
7631         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block):
7632         New function.
7633         (vect_analyze_data_ref_dependence): Add argument for basic block
7634         dependencies. Check dependencies in basic block vectorization.
7635         (vect_analyze_data_ref_dependences): Add argument and update call to
7636         vect_analyze_data_ref_dependences.
7637         * tree-vect-slp.c (vect_find_last_store_in_slp_instance): New.
7638         (vect_bb_vectorizable_with_dependencies): New.
7639         (vect_slp_analyze_bb): Check dependencies in basic block.
7640         (vect_schedule_slp_instance): Insert stores before the last store in
7641         SLP instance.
7642
7643 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
7644
7645         PR target/45476
7646         * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE,
7647         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
7648
7649 2010-09-01  Jakub Jelinek  <jakub@redhat.com>
7650
7651         PR middle-end/45458
7652         * bb-reorder.c (add_labels_and_missing_jumps): Treat
7653         bbs ending with throwing insns like blocks ending with a call.
7654         (fix_up_fall_thru_edges): Likewise.
7655
7656 2010-09-01  Nathan Froyd  <froydnj@codesourcery.com>
7657
7658         * config/m32c/m32c-protos.h (m32c_function_arg): Delete.
7659         (m32c_function_arg_advance): Delete.
7660         * config/m32c/m32c.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7661         * config/m32c/m32c.c (m32c_function_arg): Make static.  Adjust
7662         comments.  Take a const_tree and a bool.  Declare.
7663         (m32c_function_arg_advance): Likewise.
7664         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7665
7666 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
7667
7668         PR target/45476
7669         * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE,
7670         LIBGCC2_TF_CEXT, TF_SIZE): Move from ...
7671         * config/i386/mingw32.h: ... here.
7672
7673 2010-09-01  Andi Kleen  <ak@linux.intel.com>
7674
7675         PR lto/45475
7676         * lto-streamer-in.c (lto_input_ts_target_option): Add.
7677         (lto_input_tree_pointers): Call lto_input_ts_target_option.
7678         * lto-streamer-out (lto_output_ts_target_option): Add.
7679         (lto_output_tree_pointers): Call lto_output_ts_target_option.
7680
7681 2010-09-01  Kai Tietz  <kai.tietz@onevision.com>
7682
7683         PR/target 45452
7684         * config/i386/cygwin.h: Change order of specified import libraries.
7685         * config/i386/mingw32.h: Likewise.
7686         * config/i386/t-cygwin: Likewise.
7687         * config/i386/t-mingw32: Likewise.
7688         * config/i386/t-mingw-w32: Likewise.
7689         * config/i386/t-mingw-w64: Likewise.
7690
7691 2010-09-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7692
7693         * config/arm/neon-schedgen.ml (core): New type.
7694         (allCores): List of supported cores.
7695         (availability_table): Add supported cores.
7696         (collate_bypasses): Accept core as a parameter.
7697         (worst_case_latencies_and_bypasses): Accept core as a parameter.
7698         (emit_insn_reservations): Accept core as a parameter.  Use tuneStr
7699         and coreStr to get tune attribute and prefix for functional units.
7700         (emit_bypasses): Accept core name and use it.
7701         (calculate_per_core_availability_table): New.
7702         (filter_core): New.
7703         (calculate_core_availability_table): New.
7704         (main): Use calculate_core_availablity_table.
7705         * config/arm/cortex-a8-neon.md: Update copyright year.
7706         Regenerated from ml file and merged in.
7707         (neon_mrrc, neon_mrc): Rename to cortex_a8_neon_mrrc and
7708         cortex_a8_neon_mrc.
7709
7710 2010-09-01  Ian Bolton  <ian.bolton@arm.com>
7711
7712         * Makefile.in (tree-switch-conversion.o): Update dependencies.
7713
7714 2010-09-01  Richard Guenther  <rguenther@suse.de>
7715
7716         * alias.c (ao_ref_from_mem): Adjust.
7717         * builtins.c (get_object_alignment): Likewise.
7718         * cfgexpand.c (expand_debug_expr): Likewise.
7719         * gimple.c (get_base_address): Likewise.
7720         * tree-dfa.c (get_ref_base_and_extent): Likewise.
7721         (get_addr_base_and_unit_offset): Likewise.  Fix for
7722         both TMR_SYMBOL and TMR_BASE being set.
7723         * tree-eh.c (tree_could_trap_p): Likewise.
7724         * gimplify.c (gimplify_expr): Do not attempt to gimplify
7725         TMR_SYMBOL.  Always gimplify TMR_BASE.
7726         * tree-cfg.c (verify_types_in_gimple_reference): Verify
7727         TMR_BASE if there is a TMR_SYMBOL.
7728         * tree-pretty-print.c (dump_generic_node): Adjust.
7729         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
7730         (tree_mem_ref_addr): Likewise.
7731         (create_mem_ref_raw): Likewise.
7732         (move_fixed_address_to_symbol): Likewise.
7733         (create_mem_ref): Likewise.
7734         (dump_mem_address): Likewise.
7735         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Adjust.
7736         Fix for both TMR_SYMBOL and TMR_BASE being set.
7737         (indirect_refs_may_alias_p): Likewise.
7738         * tree-ssa-operands.c (get_tmr_operands): Adjust.
7739         * tree.def (TARGET_MEM_REF): Adjust documentation.
7740
7741 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
7742
7743         * config/i386/i386.h (enum ix86_tune_indices) <X86_TUNE_SINGLE_POP>:
7744         Rename from X86_TUNE_ADD_ESP_4.
7745         <IX86_TUNE_DOUBLE_POP>: Rename from X86_TUNE_ADD_ESP_8.
7746         <IX86_TUNE_SINGLE_PUSH>: Rename from X86_TUNE_SUB_ESP_4.
7747         <IX86_TUNE_DOUBLE_PUSH>: Rename from X86_TUNE_SUB_ESP_8.
7748         (TARGET_SINGLE_POP): Rename from TARGET_ADD_ESP_4.
7749         (TARGET_DOUBLE_POP): Rename from TARGET_ADD_ESP_8.
7750         (TARGET_SINGLE_PUSH): Rename from TARGET_SUB_ESP_4.
7751         (TARGET_DOUBLE_POP): Rename from TARGET_SUB_ESP_8.
7752         * config/i386/i386.c (initial_ix86_tune_features)
7753         <X86_TUNE_SINGLE_POP>: Invert members.
7754         <X86_TUNE_DOUBLE_POP>: Ditto.
7755         <X86_TUNE_SINGLE_PUSH>: Ditto.
7756         <X86_TUNE_DOUBLE_PUSH>: Ditto.
7757         * config/i386/i386.md (*pop<mode>1): Rename from pop<mode>1.
7758         No longer exported.
7759         (push peephole2 patterns): Macroize peepholes using P mode iterator.
7760         Adjust for renamed TARGET_{SINGLE,DOUBLE}_PUSH defines.
7761         (pop peephole2 patterns): Macroize peepholes using P mode iterator.
7762         Adjust for renamed TARGET_{SINGLE,DOUBLE}_POP defines.
7763
7764 2010-09-01  Eric Botcazou  <ebotcazou@adacore.com>
7765
7766         * gimplify.c (gimplify_init_constructor): Do not create a temporary for
7767         a volatile LHS if the constructor has only one element.
7768
7769 2010-09-01  Mikael Pettersson  <mikpe@it.uu.se>
7770
7771         PR bootstrap/45321
7772         * tree.c (stdarg_p): Make fntype parameter const.
7773         * tree.h (stdarg_p): Likewise.
7774         (function_args_iterator): Remove unused fntype field.
7775         (function_args_iter_init): Do not initialize fntype
7776         field.  Make fntype parameter const.
7777
7778 2010-09-01  Richard Guenther  <rguenther@suse.de>
7779
7780         * tree-vrp.c (adjust_range_with_scev): Use number of iteration
7781         estimate.
7782         (vrp_visit_phi_node): Delay using SCEV till we balloon the range.
7783         (execute_vrp): Compute number of iteration estimates.
7784         * cfgloop.h (estimate_numbers_of_iterations_loop): Adjust prototype.
7785         * tree-flow.h (estimate_numbers_of_iterations): Likewise.
7786         * tree-data-ref.c (estimated_loop_iterations): Adjust.
7787         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
7788         Infer loop bounds from undefined behavior based on a new parameter.
7789         (estimate_numbers_of_iterations): Likewise.
7790         (scev_probably_wraps_p): Adjust.
7791         * tree-ssa-loop.c (tree_ssa_loop_bounds): Likewise.
7792
7793 2010-09-01  Nick Clifton  <nickc@redhat.com>
7794
7795         * config/stormy16/stormy16.c: Use REG_P, MEM_P and CONST_INT_P
7796         where appropriate.
7797         (xstormy16_legitimate_address_p): Use true and false instead of 1
7798         and 0.
7799         (xstormy16_expand_prologue): Delete unused local variable 'insn'.
7800         (xstormy16_function_arg): Use FIRST_ARGUMENT_REGNUM in place of
7801         magic constant 2.
7802         (xstormy16_expand_call): Fix comment at start of function.
7803
7804 2010-09-01  Nick Clifton  <nickc@redhat.com>
7805
7806         * config/rx/rx.c (rx_expand_prologue): Do not adjust frame size
7807         when pushing accumulator register.
7808         (rx_get_stack_layout): Always save call clobbered registers inside
7809         interrupt handlers.
7810         * config/rx/rx-modes.def: Fix descriptive comment at start of file.
7811
7812 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
7813
7814         * config.gcc (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Add
7815         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
7816
7817         * libgcc-std.ver (GCC_4.6.0): Define version.
7818
7819 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
7820
7821         * tree-nested.c (convert_all_function_calls): Iterate until after the
7822         sum of static chains in the nest doesn't change.
7823
7824 2010-08-31  Anatoly Sokolov  <aesok@post.ru>
7825
7826         * config/m32c/m32c.c (classes_intersect): Remove.
7827         (m32c_preferred_reload_class, m32c_secondary_reload_class): Use
7828         reg_classes_intersect_p instead of classes_intersect.
7829         (class_can_hold_mode): Change arguments type from enum reg_class to
7830         reg_class_t.  Use reg_class_contents instead of class_contents.
7831         (m32c_register_move_cost): Make static. Change arguments type from
7832         enum reg_class to reg_class_t. Use reg_classes_intersect_p instead of
7833         classes_intersect. Use reg_class_contents instead of class_contents.
7834         (m32c_memory_move_cost): Make static. Change arguments type from
7835         enum reg_class to reg_class_t.
7836         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
7837         * config/m32c/m32c.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
7838         * config/m32c/m32c-protos.h (m32c_register_move_cost,
7839         m32c_memory_move_cost): Remove.
7840
7841 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
7842
7843         * config/arm/arm-protos.h (arm_function_arg_advance): Delete.
7844         (arm_function_arg): Delete.
7845         (arm_needs_doubleword_align): Take a const_tree.
7846         * config/arm/arm.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7847         * config/arm/arm.c (aapcs_select_call_coproc): Take a const_tree.
7848         (aapcs_layout_arg, arm_needs_doubleword_align): Likewise.
7849         (arm_function_arg): Make static.  Take a const_tree and a bool.
7850         (arm_function_arg_advance): Likewise.
7851         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7852
7853 2010-08-31  Andi Kleen  <ak@linux.intel.com>
7854
7855         * common.opt (fwhopr=): Update for -fwhopr=jobserver
7856         * doc/invoke.texi (fwhopr): Document -fwhopr=jobserver.
7857         * lto-wrapper.c (run_gcc): Add jobserver mode.
7858         * opts.c (common_handle_option): Fix OPT_fwhopr for non numeric
7859         argument.
7860
7861 2010-08-31  Uros Bizjak  <ubizjak@gmail.com>
7862
7863         * config/i386/i386.md (popdi1): Rewrite using POST_INC memory operand.
7864         (popsi1): Ditto.
7865         (*popdi1_epilogue): Ditto.
7866         (*popsi1_epilogue): Ditto.
7867         (popsi, popdi peephole2 patterns): Update peepholes for changed
7868         pop{si,di}1 and *pop{si,di}1_epilogue patterns.
7869
7870         (pop<mode>1): Macroize insn from pop{si,di}1 using P code iterator.
7871         (*pop<mode>1_epilogue): Ditto from *pop{si,di}1_epilogue.
7872
7873         * config/i386/i386.c (*ix86_gen_pop1): Remove indirect function.
7874         (override_options): Do not initialize removed ix86_gen_pop1.
7875         (gen_pop): New static function.
7876         (ix86_expand_prologue): Use gen_pop instead of ix86_gen_pop1.
7877         (release_scratch_register_on_entry): Ditto.
7878         (ix86_restore_reg_using_pop): Ditto.
7879         (ix86_expand_epilogue): Ditto.
7880
7881 2010-08-31  Jakub Jelinek  <jakub@redhat.com>
7882
7883         PR middle-end/45461
7884         * builtins.c (dummy_object): Return a MEM_REF instead of INDIRECT_REF.
7885
7886 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
7887
7888         * config/fr30/fr30.c (fr30_move_double): Delete `dregno' and extra
7889         semicolons.
7890
7891 2010-08-31  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
7892
7893         * doc/extend.texi: Fix documentation of the return value of
7894         __builtin_choose_expr.
7895
7896 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
7897
7898         * config/v850/v850-protos.h (function_arg): Delete.
7899         * config/v850/v850.h (FUNCTION_ARG): Delete.
7900         (FUNCTION_ARG_ADVANCE): Move code to...
7901         * config/v850/v850.c (v850_function_arg_advance): ...here.
7902         (v850_function_arg): Make static.  Take a const_tree and a bool.
7903         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7904
7905 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
7906
7907         * config/m32r/m32r.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move
7908         these...
7909         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
7910         ...and these...
7911         * config/m32r/m32r.c (m32r_function_arg, m32r_function_arg_advance):
7912         ..to here..
7913         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
7914         ...and here.
7915         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7916
7917 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
7918
7919         * config/rx/rx-protos.h (rx_function_arg, rx_function_arg_size):
7920         Delete.
7921         * config/rx/rx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7922         * config/rx/rx.c (rx_function_arg_size): Make static.
7923         (rx_function_arg): Likewise.
7924         (rx_function_arg_advance): New function.
7925         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7926
7927 2010-08-31  John Tytgat  <John.Tytgat@aaug.net>
7928
7929         * config/arm/arm.c (arm_override_options): Remove superfluous test.
7930         Fix indentation.
7931
7932 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
7933
7934         * dwarf2out.c (gen_decl_die) <CONST_DECL>: Do not skip in Ada.
7935         (dwarf2out_decl) <CONST_DECL>: Likewise.
7936
7937 2010-08-30  Eric Botcazou  <ebotcazou@adacore.com>
7938
7939         Stack usage support
7940         * common.opt (-fstack-usage): New option.
7941         * doc/invoke.texi (Debugging options): Document it.
7942         * builtins.c (expand_builtin_apply): Pass TRUE as 4th argument to
7943         allocate_dynamic_stack_space.
7944         (expand_builtin_alloca): Add 4th bool parameter CANNOT_ACCUMULATE
7945         and propagate it to allocate_dynamic_stack_space.
7946         (expand_builtin) <BUILT_IN_ALLOCA>: Adjust for above change.
7947         * calls.c (initialize_argument_information): Pass TRUE as 4th
7948         argument to allocate_dynamic_stack_space.
7949         (expand_call): Set current_function_has_unbounded_dynamic_stack_size
7950         to 1 when pushing a variable-sized argument onto the stack.  Pass
7951         TRUE as 4th argument to allocate_dynamic_stack_space.
7952         Update current_function_pushed_stack_size.
7953         (emit_library_call_value_1): Likewise.
7954         * explow.c (allocate_dynamic_stack_space): Add 4th bool parameter
7955         CANNOT_ACCUMULATE.  If flag_stack_usage, look into the size and
7956         attempt to find an upper bound.  Remove redundant code for the
7957         SETJMP_VIA_SAVE_AREA case.
7958         * expr.h (allocate_dynamic_stack_space): Add 4th bool parameter.
7959         * function.h (struct stack_usage): New structure.
7960         (current_function_static_stack_size): New macro.
7961         (current_function_dynamic_stack_size): Likewise.
7962         (current_function_pushed_stack_size): Likewise.
7963         (current_function_dynamic_alloc_count): Likewise.
7964         (current_function_has_unbounded_dynamic_stack_size): Likewise.
7965         (current_function_allocates_dynamic_stack_space): Likewise.
7966         (struct function): Add new field 'su'.
7967         * function.c (instantiate_virtual_regs): If SETJMP_VIA_SAVE_AREA,
7968         add the value of the dynamic offset to the dynamic stack usage.
7969         (gimplify_parameters): Set ALLOCA_FOR_VAR_P on call to BUILT_IN_ALLOCA
7970         for variable-sized objects.
7971         (prepare_function_start): Allocate cfun->su if flag_stack_usage.
7972         (rest_of_handle_thread_prologue_and_epilogue): Call output_stack_usage.
7973         * gimplify.c (gimplify_decl_expr): Set ALLOCA_FOR_VAR_P on call to
7974         BUILT_IN_ALLOCA for variable-sized objects.
7975         * output.h (output_stack_usage): Declare.
7976         * toplev.c (stack_usage_file): New file pointer.
7977         (output_stack_usage): New function.
7978         (open_auxiliary_file): Likewise.
7979         (lang_dependent_init): Open file if flag_stack_usage is set.
7980         (finalize): Close file if stack_usage_file is not null.
7981         * tree.h (ALLOCA_FOR_VAR_P): New macro.
7982         * config/alpha/alpha.c (compute_frame_size): New function.
7983         (alpha_expand_prologue): Use it.
7984         (alpha_start_function): Likewise.
7985         (alpha_expand_epilogue): Likewise.  Set stack usage info.
7986         * config/i386/i386.c (ix86_expand_prologue): Likewise.
7987         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
7988         * config/mips/mips.c (mips_expand_prologue): Likewise.
7989         * config/pa/pa.c (hppa_expand_prologue): Likewise.
7990         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
7991         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
7992
7993 2010-08-30  Zdenek Dvorak  <ook@ucw.cz>
7994
7995         PR tree-optimization/45427
7996         * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Rewritten.
7997         Handle the case that the exit is never taken correctly.
7998         (number_of_iterations_ne): Pass exit_must_be_taken to
7999         number_of_iterations_ne_max.
8000
8001 2010-08-30  Catherine Moore  <clm@codesourcery.com>
8002
8003         * config/mips/mips.h (BASE_DRIVER_SELF_SPECS):
8004         Infer -mdspr2 for the the 74K.
8005
8006 2010-08-30  Jakub Jelinek  <jakub@redhat.com>
8007
8008         PR debug/45419
8009         * tree-ssa-live.c (dump_enumerated_decls): Clear the whole wi variable.
8010
8011         PR middle-end/45423
8012         * gimplify.c (goa_stabilize_expr): Handle TRUTH_NOT_EXPR
8013         and TRUTH_{AND,OR,XOR}_EXPR.
8014         * c-parser.c (c_parser_omp_atomic): Handle boolean
8015         {PRE,POST}_{INC,DEC}REMENT.
8016
8017 2010-08-30  Nathan Froyd  <froydnj@codesourcery.com>
8018
8019         * config/xtensa/xtensa-protos.h (function_arg_advance): Delete.
8020         (function_arg): Delete.
8021         * config/xtensa/xtensa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8022         (FUNCTION_INCOMING_ARG): Delete.
8023         * config/xtensa/xtensa.c (function_arg_advance): Rename to...
8024         (xtensa_function_arg_advance): ...this.  Make static. Take a const_tree
8025         and a bool.
8026         (function_arg): Rename to...
8027         (xtensa_function_arg_1): ...this.  Make static.  Take a const_tree and
8028         a bool.
8029         (xtensa_function_arg, xtensa_function_incoming_arg): Nex functions.
8030         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8031         (TARGET_FUNCTION_INCOMING_ARG): Define.
8032
8033 2010-08-30  Richard Guenther  <rguenther@suse.de>
8034
8035         PR tree-optimization/21602
8036         * builtins.c (fold_builtin_memory_op): Fold memmove to memcpy
8037         using points-to information.
8038
8039 2010-08-30  H.J. Lu  <hongjiu.lu@intel.com>
8040
8041         * config/linux.h (TARGET_HAS_SINCOS): Replace | with ||.
8042
8043 2010-08-30  Richard Guenther  <rguenther@suse.de>
8044
8045         PR tree-optimization/45449
8046         * tree-ssa-live.c (remove_unused_locals): Also remove address-taken
8047         variables.
8048
8049 2010-08-30  Joseph Myers  <joseph@codesourcery.com>
8050
8051         * opts.h (CL_ERR_NEGATIVE): Define.
8052         * opts.c (unknown_option_callback): Don't postpone warnings for
8053         options marked with CL_ERR_NEGATIVE.
8054         * opts-common.c (decode_cmdline_option): Set CL_ERR_NEGATIVE error
8055         for negative versions of CL_REJECT_NEGATIVE options.
8056
8057 2010-08-30  Uros Bizjak  <ubizjak@gmail.com>
8058
8059         * config/i386/i386.md (zero_extendsidi2_1): Rename from
8060         zero_extendsidi2_32.
8061         (zero_extend<mode>di2): Macroize insn from zero_extend{qi,hi}di2
8062         using SWI12 mode iterator.
8063         (zero_extendhisi2_and): Merge insn pattern and corresponding spliter
8064         to define_insn_and_split pattern.
8065         (zero_extendqi<mode>2): Macroize expander from zero_extendqi{hi,si}2
8066         using SWI24 mode iterator.
8067         (*zero_extendqi<mode>2_and): Macroize insn from
8068         *zero_extendqi{hi,si}2_and using SWI24 mode iterator.
8069         (*zero_extendqi<mode>2_movzbl_and): Macroize insn from
8070         *zero_extendqihi2_movzbw_and and *zero_extendqisi2_movzbl_and using
8071         SWI24 mode iterator.
8072         (*zero_extendqi<mode>2_movzbl): Ditto from
8073         *zero_extendqi{hi,si}2_movzbl.
8074         (extendsidi2_1): Rename from extendsidi2_32.
8075         (extend<mode>di2): Macroize insn from extend{qi,hi}di2 using
8076         SWI12 mode iterator.
8077
8078 2010-08-29  Eric Botcazou  <ebotcazou@adacore.com>
8079
8080         * config/ia64/ia64.h (HARD_REGNO_NREGS): Return 1 for CCImode in
8081         general purpose registers.
8082         (HARD_REGNO_MODE_OK): Accept CCImode in general purpose registers.
8083         * config/ia64/ia64.md (*movcci): Change to named pattern.  Deal
8084         with general purpose registers and memory operands.  Add associated
8085         CCImode post-reload splitter.
8086         * config/ia64/div.md: Change BImode to CCImode throughout.
8087
8088 2010-08-28  Eric Botcazou  <ebotcazou@adacore.com>
8089
8090         * config/ia64/ia64.md (cstorebi4): Fix thinko.
8091
8092 2010-08-28  Hariharan Sandanagobalane  <hariharan@picochip.com>
8093
8094         * config/picochip/picochip.c (reorder_var_tracking_notes): This
8095         function was dropping debug insns which caused PR45299.
8096
8097 2010-08-28  Uros Bizjak  <ubizjak@gmail.com>
8098
8099         * config/i386/sse.md (extsuffix): New code attribute.
8100         (sse4_1_<code>v8qiv8hi2): Macroize insn from sse4_1_extendv8qiv8hi2
8101         and sse4_1_zero_extendv8qiv8hi2 using any_extend code iterator.
8102         (sse4_1_<code>v4qiv4si2): Ditto from sse4_1_extendv4qiv4si2
8103         and sse4_1_zero_extendv4qiv4si2.
8104         (sse4_1_<code>v2qiv2di2): Ditto from sse4_1_extendv2qiv2di2
8105         and sse4_1_zero_extendv2qiv2di2.
8106         (sse4_1_<code>v4hiv4si2): Ditto from sse4_1_extendv4hiv4si2
8107         and sse4_1_zero_extendv4hiv4si2.
8108         (sse4_1_<code>v2hiv2di2): Ditto from sse4_1_extendv2hiv2di2
8109         and sse4_1_zero_extendv2hiv2di2.
8110         (sse4_1_extendv2siv2di2): Ditto from sse4_1_extendv2siv2di2
8111         and sse4_1_zero_extendv2siv2di2
8112
8113         (<s>mulv8hi3_highpart): Macroize expander from {u,s}mulv8hi3_highpart
8114         using any_extend code iterator.
8115         (*avx_<s>mulv8hi3_highpart): Macroize insn from
8116         *avx_{u,s}mulv8hi3_highpart using any_extend code iterator.
8117         (*<s>mulv8hi3_highpart): Ditto from *{u,s}mulv8hi3_highpart.
8118
8119         * config/i386/i386.c (ix86_expand_sse4_unpack): Update for renamed
8120         gen_sse4_1_sign_extend* functions.
8121         (struct builtin_description bdesc_args): Ditto.
8122
8123 2010-08-27  Xinliang David Li  <davidxl@google.com>
8124
8125         PR/45422
8126         * tree-ssa-loop-ivopts.c (iv_ca_get_num_inv_exprs): Remove.
8127         (iv_ca_set_no_cp): Update used inv expr count.
8128         (iv_ca_set_cp): Ditto.
8129         (iv_ca_new): Initialize new member.
8130         (iv_ca_free): Free memory.
8131
8132 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
8133
8134         * config/sh/sh-protos.h (sh_function_arg): Delete.
8135         (sh_function_arg_advance): Delete.
8136         * config/sh/sh.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8137         (PASS_IN_REG_P): Eliminate cast.
8138         * config/sh/sh.c (sh_function_arg_advance): Make static.  Take a
8139         const_tree and a bool.
8140         (sh_function_arg): Likewise.
8141         (sh_output_mi_thunk): Call sh_function_arg_advance) and
8142         sh_function_arg.
8143         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8144
8145 2010-08-27  Naveen H.S  <naveen.S@kpitcummins.com>
8146             Kaz Kojima  <kkojima@gcc.gnu.org>
8147
8148         * config/sh/sh.c (push_regs): Emit movml for interrupt handler
8149         when possible.
8150         (sh_expand_epilogue): Likewise.
8151         * config/sh/sh.md (movml_push_banked): New insn.
8152         (movml_pop_banked): Likewise.
8153
8154 2010-08-28  Bernd Schmidt  <bernds@codesourcery.com>
8155
8156         * genautomata.c (gen_regexp_repeat, gen_regexp_allof,
8157         gen_regexp_oneof, gen_regexp_sequence): Use the string found
8158         in vector element 0 rather than the original string when there's
8159         only one element.
8160         (gen_regexp): Remove extra semicolon.
8161
8162         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp, movsf_vfp,
8163         thumb2_movsf_vfp): Set attribute "insn".
8164         * config/arm/arm.md (arm_ashrdi3_1bit, arm_lshrdi3_1bit, not_shiftsi,
8165         not_shiftsi_compare0, not_shiftsi_compare0_scratch, arm_one_cmplsi2,
8166         thumb1_one_cmplsi2, notsi_compare0, notsi_compare0_scratch,
8167         arm_zero_extendsidi2, arm_extendsidi2, thumb1_movdi_insn,
8168         arm_movsi_insn, movhi_insn_arch4, movhi_bytes, arm_movqi_insn,
8169         thumb1_movqi_insn arm32_movhf, thumb1_movhf, arm_movsf_soft_insn,
8170         thumb1_movsf_insn, thumb_movdf_insn, mov_scc, mov_negscc, mov_notscc,
8171         movsicc_insn, movsfcc_soft_insn, and_scc, cond_move, if_move_not,
8172         if_not_move, if_shift_move, if_move_shift, if_shift_shift,
8173         if_not_arith, if_arith_not, cond_move_not): Likewise.
8174
8175 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
8176
8177         * config/rs6000/rs6000-protos.h (rs6000_address_for_fpconvert):
8178         New declaration.
8179         (rs6000_allocate_stack_temp): Ditto.
8180         (rs6000_expand_convert_si_to_sfdf): Ditto.
8181
8182         * config/rs6000/rs6000.c (rs6000_override_options): Adjust long
8183         line.  Update the options set if power6 or power7 server/embedded
8184         type options are used.  If we give a warning for no vsx under
8185         -mcpu=power7 -mno-altivec, mark -mvsx as an explicit option.
8186         (rs6000_allocate_stack_temp): New function to allocate a stack
8187         tempoary and adjust the address so it meets either REG+OFFSET or
8188         REG+REG addressing requirements.
8189         (rs6000_address_for_fpconvert): Adjust REG+OFFSET addresses so
8190         that they can be used with the LFIWAX/LFIWZX instrucitons.
8191         (rs6000_expand_convert_si_to_sfdf): New helper funciton for
8192         converting signed/unsigned SImode to either SFmode/DFmode.
8193
8194         * config/rs6000/rs6000.h (TARGET_FCFID): New macros to determine
8195         whether certain instructions can be generated.
8196         (TARGET_FCTIDZ): Ditto.
8197         (TARGET_STFIWX): Ditto.
8198         (TARGET_LFIWAX): Ditto.
8199         (TARGET_LFIWZX): Ditto.
8200         (TARGET_FCFIDS): Ditto.
8201         (TARGET_FCFIDU): Ditto.
8202         (TARGET_FCFIDUS): Ditto.
8203         (TARGET_FCTIDUZ): Ditto.
8204         (TARGET_FCTIWUZ): Ditto.
8205
8206         * config/rs6000/rs6000.md (UNSPEC_FCTIW): New unspec constants.
8207         (UNSPEC_FCTID): Ditto.
8208         (UNSPEC_LFIWAX): Ditto.
8209         (UNSPEC_LFIWZX): Ditto.
8210         (UNSPEC_FCTIWUZ): Ditto.
8211         (rreg): Use correct constraints.
8212         (SI_CONVERT_FP): New mode attribute for floating point conversion
8213         tests.
8214         (E500_CONVERT): Ditto.
8215         (lfiwax): New insns for converting from integer to floating point
8216         utilizing newer instructions.  Attempt to optimize conversions
8217         that come from memory so that we don't load the value into a GPR,
8218         spill it to the stack and reload it into a FPR.
8219         (floatsi<mode>2_lfiwax): Ditto.
8220         (floatsi<mode>2_lfiwax_mem): Ditto.
8221         (floatsi<mode>2_lfiwax_mem2): Ditto.
8222         (lfiwzx): Ditto.
8223         (floatunssi<mode>2_lfiwzx): Ditto.
8224         (floatunssi<mode>2_lfiwzx_mem): Ditto.
8225         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
8226         (floatdidf2_mem): Ditto.
8227         (floatunsdidf2_fcfidu): Ditto.
8228         (floatunsdidf2_mem): Ditto.
8229         (floatunsdisf2): Ditto.
8230         (floatunsdisf2_fcfidus): Ditto.
8231         (floatunsdisf2_mem): Ditto.
8232         (floatsidf2): Add support for LFIWAX/LFIWZX/FCFIDS/FCFIDU/FCFIDUS.
8233         Use FCFID on 32-bit hosts that support it.
8234         (floatsidf2_internal): Ditto.
8235         (floatunssisf2): Ditto.
8236         (floatunssidf2): Ditto.
8237         (floatunssidf2_internal): Ditto.
8238         (floatsisf2): Ditto.
8239         (floatdidf2): Ditto.
8240         (floatdidf2_fpr): Ditto.
8241         (floatunsdidf2): Ditto.
8242         (floatdisf2): Ditto.
8243         (floatdisf2_fcfids): Ditto.
8244         (floatdisf2_internal1): Ditto.
8245         (fixuns_truncsfsi2): Delete, merge into common pattern for both
8246         SF/DF.  Add power7 support.
8247         (fix_truncsfsi2): Ditto.
8248         (fixuns_truncdfsi2): Ditto.
8249         (fixuns_truncdfdi2): Ditto.
8250         (fix_truncdfsi2): Ditto.
8251         (fix_truncdfsi2_internal): Ditto.
8252         (fix_truncdfsi2_internal_gfxopt): Ditto.
8253         (fix_truncdfsi2_mfpgpr): Ditto.
8254         (fctiwz): Ditto.
8255         (btruncdf2): Ditto.
8256         (btruncdf2_fpr): Ditto.
8257         (btructsf2): Ditto.
8258         (ceildf2): Ditto.
8259         (ceildf2_fpr): Ditto.
8260         (ceilsf2): Ditto.
8261         (floordf2): Ditto.
8262         (floordf2_fpr): Ditto.
8263         (floorsf2): Ditto.
8264         (rounddf2): Ditto.
8265         (rounddf2_fpr): Ditto.
8266         (roundsf2): Ditto.
8267         (fix_trunc<mode>si2): Combine SF/DF conversion into one insn.
8268         (fix_trunc<mode>di2): Ditto.
8269         (fixuns_trunc<mode>si2): Ditto.
8270         (fixuns_trunc<mode>di2): Ditto.
8271         (fctiwz_<mode>): Ditto.
8272         (btrunc<mode>2): Ditto.
8273         (btrunc<mode>2_fpr): Ditto.
8274         (ceil<mode>2): Ditto.
8275         (ceil<mode>2_fpr): Ditto.
8276         (floor<mode>2): Ditto.
8277         (float<mode>2_fpr): Ditto.
8278         (round<mode>2): Ditto.
8279         (round<mode>2_fpr): Ditto.
8280         (fix_trunc<mode>si2_stfiwx): New insn for machines with STFIWX.
8281         (fixuns_trunc<mode>si2_stfiwx): Ditto.
8282         (fix_truncdfsi2_internal): Ditto.
8283         (fix_trunc<mode>si2_mem): Combiner pattern to eliminate storing
8284         converted value on stack, loaded into GPR, and then stored into
8285         the final destination.
8286         (fix_trunc<mode>di2_fctidz): New pattern for targets supporting
8287         FCTIDZ.
8288         (lrint<mode>di2): New insn, provide the lrint builtin functions.
8289         (ftruncdf2): Delete, unused.
8290         (fix_trunctfsi2_internal): Use gen_fctiwz_df, not gen_fctiwz.
8291
8292         * config/rs6000/vsx.md (toplevel): Update copyright year.
8293         (VSr2): Use "ws" contraint for DFmode, not "!r#r".
8294         (VSr3): Ditto.
8295
8296 2010-08-27  Basile Starynkevitch  <basile@starynkevitch.net>
8297             Jeremie Salvucci  <jeremie.salvucci@free.fr>
8298
8299         * gengtype.c (output_type_enum): Test the right union member.
8300
8301 2010-08-27  Uros Bizjak  <ubizjak@gmail.com>
8302
8303         PR target/41484
8304         * config/i386/sse.md (sse4_1_extendv8qiv8hi2): Also accept memory
8305         operands for operand 1.
8306         (sse4_1_extendv4qiv4si2): Ditto.
8307         (sse4_1_extendv2qiv2di2): Ditto.
8308         (sse4_1_extendv4hiv4si2): Ditto.
8309         (sse4_1_extendv2hiv2di2): Ditto.
8310         (sse4_1_extendv2siv2di2): Ditto.
8311         (sse4_1_zero_extendv8qiv8hi2): Ditto.
8312         (sse4_1_zero_extendv4qiv4si2): Ditto.
8313         (sse4_1_zero_extendv2qiv2di2): Ditto.
8314         (sse4_1_zero_extendv4hiv4si2): Ditto.
8315         (sse4_1_zero_extendv2hiv2di2): Ditto.
8316         (sse4_1_zero_extendv2siv2di2): Ditto.
8317         (*sse4_1_extendv8qiv8hi2): Remove insn pattern.
8318         (*sse4_1_extendv4qiv4si2): Ditto.
8319         (*sse4_1_extendv2qiv2di2): Ditto.
8320         (*sse4_1_extendv4hiv4si2): Ditto.
8321         (*sse4_1_extendv2hiv2di2): Ditto.
8322         (*sse4_1_extendv2siv2di2): Ditto.
8323         (*sse4_1_zero_extendv8qiv8hi2): Ditto.
8324         (*sse4_1_zero_extendv4qiv4si2): Ditto.
8325         (*sse4_1_zero_extendv2qiv2di2): Ditto.
8326         (*sse4_1_zero_extendv4hiv4si2): Ditto.
8327         (*sse4_1_zero_extendv2hiv2di2): Ditto.
8328         (*sse4_1_zero_extendv2siv2di2): Ditto.
8329
8330 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
8331
8332         * config/mips/mips-protos.h (mips_function_arg_advance): Delete
8333         (mips_function_arg): Delete.
8334         (mips_function_arg_boundary): Take a const_tree.
8335         * config/mips/mips.c (mips_function_arg_boundary): Likewise.
8336         (mips_arg_info): Likewise.
8337         (mips_setup_incoming_varargs): Call mips_function_arg_advance
8338         instead of FUNCTION_ARG_ADVANCE.
8339         (mips_function_arg_advance): Adjust prototype.  Make static.
8340         (mips_function_arg): Likewise.
8341         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8342         * config/mips/mips.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
8343
8344 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
8345
8346         * config/rs6000/rs6000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8347         * config/rs6000/rs6000-protos.h (function_arg_advance): Delete.
8348         (function_arg): Delete.
8349         (function_arg_boundary): Take a const_tree.
8350         * config/rs6000/rs6000.c (function_arg_boundary): Likewise.
8351         (rs6000_spe_function_arg): Likewise.
8352         (rs6000_parm_start): Likewise.
8353         (rs6000_arg_size): Likewise.
8354         (rs6000_darwin64_record_arg_advance_recurse): Likewise.
8355         (rs6000_darwin64_record_arg): Likewise.  Take a bool instead of an int.
8356         (rs6000_mixed_function_arg): Likewise.
8357         (function_arg): Rename to...
8358         (rs6000_function_arg): ...this.
8359         (function_arg_advance): Rename to...
8360         (rs6000_function_arg_advance_1): ...this
8361         (rs6000_function_arg_advance): New function.  Call it.
8362         (setup_incoming_varargs): Call rs6000_function_arg_advance_1.
8363         (rs6000_return_in_memory): Adjust call to rs6000_darwin64_record_arg.
8364         (rs6000_function_value): Likewise.
8365         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8366
8367 2010-08-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
8368
8369         * config/arm/arm.md (enabled): Test the value of arch_enabled
8370         rather than just using it.
8371
8372 2010-08-27  Olivier Hainque  <hainque@adacore.com>
8373             Eric Botcazou  <ebotcazou@adacore.com>
8374
8375         * dse.c (group_info.base_mem, get_group_info): Use BLKmode to
8376         cover all the possible offsets from this base.
8377         (scan_reads_nospill): Pass base_mem's mode to canon_true_dependence.
8378
8379 2010-08-26  Jakub Jelinek  <jakub@redhat.com>
8380
8381         PR tree-optimization/44485
8382         * calls.c (flags_from_decl_or_type): For const or pure
8383         noreturn functions return ECF_LOOPING_CONST_OR_PURE|ECF_NORETURN
8384         together with ECF_CONST resp. ECF_PURE.
8385         * builtins.c (expand_builtin): Use flags_from_decl_or_type
8386         instead of querying flags directly.
8387         * tree-ssa-loop-niter.c (finite_loop_p): Likewise.
8388         * tree-ssa-dce.c (find_obviously_necessary_stmts): Likewise.
8389
8390 2010-08-26  Richard Guenther  <rguenther@suse.de>
8391
8392         PR tree-optimization/45255
8393         * tree.c (decl_address_invariant_p): DECL_DLLIMPORT_P statics
8394         and externals are also invariant.
8395
8396 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
8397
8398         PR rtl-optimization/44858
8399         * combine.c (try_combine): If recog_for_combine added CLOBBERs to
8400         newi2pat, make sure they don't affect newpat.
8401
8402         PR rtl-optimization/45400
8403         * combine.c (simplify_shift_const_1) <case SUBREG>: Only use
8404         SUBREG_REG if both modes are of MODE_INT class.
8405
8406 2010-08-25  Julian Brown  <julian@codesourcery.com>
8407
8408         * config/arm/arm.c (arm_issue_rate): Return 2 for Cortex-A5.
8409         * config/arm/arm.md (generic_sched): No for Cortex-A5.
8410         (generic_vfp): Likewise.
8411         (cortex-a5.md): Include.
8412         * config/arm/cortex-a5.md: New.
8413
8414 2010-08-25  Richard Guenther  <rguenther@suse.de>
8415
8416         * alias.c (get_alias_set): Assign a single alias-set to all pointers.
8417         * gimple.c (gimple_get_alias_set): Remove special handling
8418         for pointers.
8419
8420 2010-08-25  Bernd Schmidt  <bernds@codesourcery.com>
8421
8422         PR middle-end/45355
8423         * combine.c (try_combine): Use reg_overlap_mentioned_p rather than
8424         dead_or_set_p when computing i0_feeds_i2_n.
8425
8426         * combine.c (find_split_point): Undo canonicalization of multiply-add
8427         to (minus x (mult)) when it seems likely that this will increase the
8428         chances of a split.
8429
8430 2010-08-25  Richard Guenther  <rguenther@suse.de>
8431
8432         PR lto/44562
8433         * lto-streamer.c (lto_record_common_node): Do not mess with
8434         TYPE_CANONICAL when not in lto.
8435         * gimple.c (gimple_register_type): Likewise.
8436
8437 2010-08-25  Richard Guenther  <rguenther@suse.de>
8438
8439         PR tree-optimization/45316
8440         * tree-ssa-pre.c (eliminate): Properly clean EH info.
8441
8442 2010-08-25  Richard Guenther  <rguenther@suse.de>
8443
8444         PR tree-optimization/45393
8445         * tree-ssa-math-opts.c (execute_cse_sincos_1): Properly transfer
8446         and clean EH info.  Avoid SSA update.
8447         (execute_cse_sincos): Cleanup the CFG if it has changed.
8448
8449 2010-08-25  Richard Guenther  <rguenther@suse.de>
8450
8451         PR middle-end/45379
8452         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle
8453         TARGET_MEM_REF in alignment computation.
8454
8455 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
8456
8457         PR tree-optimization/45059
8458         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Strip useless
8459         type conversions from newop{1,2}.  Assert t is a comparison and
8460         newop{1,2} after the stripping are gimple vals.
8461
8462 2010-08-25  Tejas Belagod  <tejas.belagod@arm.com>
8463
8464         * config/arm/iterators.md (VU, SE, V_widen_l): New.
8465         (V_unpack, US): New.
8466         * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Expansion for vmovl.
8467         (vec_unpack<US>_lo_<mode>): Likewise.
8468         (neon_vec_unpack<US>_hi_<mode>): Instruction pattern for vmovl.
8469         (neon_vec_unpack<US>_lo_<mode>): Likewise.
8470         (vec_widen_<US>mult_lo_<mode>): Expansion for vmull.
8471         (vec_widen_<US>mult_hi_<mode>): Likewise.
8472         (neon_vec_<US>mult_lo_<mode>"): Instruction pattern for vmull.
8473         (neon_vec_<US>mult_hi_<mode>"): Likewise.
8474         (neon_unpack<US>_<mode>): Widening move intermediate step for
8475         vectorizing without -mvectorize-with-neon-quad.
8476         (neon_vec_<US>mult_<mode>): Widening multiply intermediate step
8477         for vectorizing without -mvectorize-with-neon-quad.
8478         * config/arm/predicates.md (vect_par_constant_high): Check for
8479         high-half lanes of a vector.
8480         (vect_par_constant_low): Check for low-half lanes of a vector.
8481
8482 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
8483
8484         * tree-if-conv.c (struct ifc_dr): New.
8485         (IFC_DR): New.
8486         (DR_WRITTEN_AT_LEAST_ONCE): New.
8487         (DR_RW_UNCONDITIONALLY): New.
8488         (memref_read_or_written_unconditionally): Use the cached values
8489         when possible.
8490         (write_memref_written_at_least_once): Same.
8491         (if_convertible_loop_p): Initialize and free DR->aux fields.
8492
8493 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
8494
8495         * gimple.c (gimple_could_trap_p_1): Not static anymore.
8496         Pass an extra bool parameter include_mem.
8497         (gimple_could_trap_p): Adjust call to gimple_could_trap_p_1.
8498         (gimple_assign_rhs_could_trap_p): Same.
8499         * gimple.h (gimple_could_trap_p_1): Declared.
8500         * tree-data-ref.h (same_data_refs_base_objects): New.
8501         (same_data_refs): New.
8502         * tree-if-conv.c (memrefs_read_or_written_unconditionally): New.
8503         (write_memrefs_written_at_least_once): New.
8504         (ifcvt_memrefs_wont_trap): New.
8505         (operations_could_trap): New.
8506         (ifcvt_could_trap_p): New.
8507         (if_convertible_gimple_assign_stmt_p): Call ifcvt_could_trap_p.
8508         Gets a vector of data refs.
8509         (if_convertible_stmt_p): Same.
8510         (if_convertible_loop_p_1): New.
8511         (if_convertible_loop_p): Call if_convertible_loop_p_1.
8512
8513 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
8514
8515         * common.opt (ftree-loop-if-convert-stores): New flag.
8516         * doc/invoke.texi (ftree-loop-if-convert-stores): Documented.
8517         * tree-if-conv.c (ifc_temp_var): Pass an extra parameter GSI.  Insert
8518         the created statement before GSI.
8519         (if_convertible_phi_p): Allow virtual phi nodes when
8520         flag_loop_if_convert_stores is set.
8521         (if_convertible_gimple_assign_stmt_p): Allow memory reads and writes
8522         Do not handle types that do not match is_gimple_reg_type.
8523         Remove loop and bb parameters.  Call gimple_could_trap_p instead of
8524         when flag_loop_if_convert_stores is set, as LHS can contain
8525         memory refs.
8526         (if_convertible_stmt_p): Remove loop and bb parameters.  Update calls
8527         to if_convertible_gimple_assign_stmt_p.
8528         (if_convertible_loop_p): Update call to if_convertible_stmt_p.
8529         (replace_phi_with_cond_gimple_assign_stmt): Renamed
8530         predicate_scalar_phi.  Do not handle virtual phi nodes.
8531         (ifconvert_phi_nodes): Renamed predicate_all_scalar_phis.
8532         Call predicate_scalar_phi.
8533         (insert_gimplified_predicates): Insert the gimplified predicate of a BB
8534         just after the labels for flag_loop_if_convert_stores, otherwise
8535         insert the predicate in the end of the BB.
8536         (predicate_mem_writes): New.
8537         (combine_blocks): Call predicate_all_scalar_phis.  When
8538         flag_loop_if_convert_stores is set, call predicate_mem_writes.
8539         (tree_if_conversion): Call mark_sym_for_renaming when
8540         flag_loop_if_convert_stores is set.
8541         (main_tree_if_conversion): Return TODO_update_ssa_only_virtuals when
8542         flag_loop_if_convert_stores is set.
8543
8544 2010-08-24  Anatoly Sokolov  <aesok@post.ru>
8545
8546         * config/pa/pa.c (hppa_register_move_cost, pa_libcall_value,
8547         pa_function_value_regno_p, pa_print_operand_punct_valid_p): New.
8548         (pa_function_value): Make static.
8549         (override_options): Rename to...
8550         (pa_option_override): ...this. Make static.
8551         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_REGISTER_MOVE_COST,
8552         TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P,
8553         TARGET_OPTION_OVERRIDE): Define.
8554         * config/pa/pa.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P,
8555         LIBCALL_VALUE, REGISTER_MOVE_COST, PRINT_OPERAND_PUNCT_VALID_P):
8556         Remove.
8557         * config/pa/pa-protos.h (override_options): Remove.
8558
8559 2010-08-24  Richard Guenther  <rguenther@suse.de>
8560
8561         PR middle-end/45379
8562         * tree-ssa-address.c (create_mem_ref_raw): Drop to MEM_REF
8563         if addr->index is NULL or zero.
8564         * tree-ssa-alias.c (indirect_refs_may_alias_p): Handle
8565         TARGET_MEM_REF more properly.
8566         (indirect_ref_may_alias_decl_p): Likewise.
8567         * emit-rtl.c (set_mem_attributes_minus_bitpos): Keep TARGET_MEM_REFs.
8568         * alias.c (ao_ref_from_mem): Handle TARGET_MEM_REF more properly.
8569
8570 2010-08-23  Anatoly Sokolov  <aesok@post.ru>
8571
8572         * config/m32c/m32c.c (m32c_function_value_regno_p): Make static.
8573         (m32c_override_options): Rename to...
8574         (m32c_option_override): ...this. Make static.
8575         (TARGET_FUNCTION_VALUE_REGNO_P, TARGET_OPTION_OVERRIDE): Define.
8576         * config/m32c/m32c.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P):
8577         Remove.
8578         * config/m32c/m32c-protos.h (m32c_override_options,
8579         m32c_function_value_regno_p): Remove.
8580
8581 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
8582
8583         * tree-ssa-loop-prefetch.c (gather_memory_references_ref) :
8584         Fix a typo in a previous commit.
8585
8586 2010-08-23  Kai Tietz  <kai.tietz@onevision.com>
8587
8588         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost):
8589         Pre-initialize innerloop_iters to one.
8590
8591 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
8592
8593         * tree-flow.h (may_be_nonaddressable_p): New definition. Make the
8594         existing static function global.
8595
8596         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): This function
8597         is changed to global.
8598
8599         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Call
8600         may_be_nonaddressable_p on base, and don't collect this reference
8601         if the address of the base could not be taken.
8602
8603 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
8604
8605         * config/rs6000/rs6000.opt (-mveclibabi=mass): New option to
8606         enable the compiler to autovectorize mathmetical functions for
8607         power7 using the Mathematical Acceleration Subsystem library.
8608
8609         * config/rs6000/rs6000.c (rs6000_veclib_handler): New variable to
8610         handle which vector math library we have.
8611         (rs6000_override_options): Add -mveclibabi=mass support.
8612         (rs6000_builtin_vectorized_libmass): New function to handle auto
8613         vectorizing math functions that are in the MASS library.
8614         (rs6000_builtin_vectorized_function): Call it.
8615
8616         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
8617         -mveclibabi=mass.
8618
8619 2010-08-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8620
8621         PR boehm-gc/34544
8622         * gthr-posix.h (__gthread_active_init): Delete.
8623         (__gthread_active_p): Do activity check here.
8624         Don't include errno.h on hppa-hpux.  Update comment.
8625         * gthr-posix95.h (__gthread_active_init): Delete.
8626         (__gthread_active_p): Do activity check here.
8627         Don't include errno.h on hppa-hpux.  Update comment.
8628         * config.gcc (hppa[12]*-*-hpux11*): Define extra_parts.
8629         * config/pa/pa64-hpux.h (LIB_SPEC): When -static is specified, only
8630         add -lpthread when -mt or -pthread is specified.
8631         * config/pa/pa-hpux11.h (LIB_SPEC): likewise.
8632         (LINK_GCC_C_SEQUENCE_SPEC): Define.
8633         * config/pa/t-pa-hpux11 (LIBGCCSTUB_OBJS): Define.
8634         (stublib.c, pthread_default_stacksize_np-stub.o,
8635         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o,
8636         $(T)libgcc_stub.a): Add methods.
8637         * config/pa/t-pa64 (LIBGCCSTUB_OBJS): Add pthread stubs.
8638         (stublib.c, pthread_default_stacksize_np-stub.o,
8639         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o): Add methods.
8640         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
8641         pthread_mutex_unlock): New stubs.
8642
8643 2010-08-22  Joseph Myers  <joseph@codesourcery.com>
8644
8645         * Makefile.in (gccspec.o, cppspec.o): Update dependencies.
8646         * common.opt (L, nodefaultlibs, nostdlib, pg, static): New
8647         options.
8648         * config/avr/avr.h (LIBSTDCXX): Remove initial "-l".
8649         * config/freebsd.h (MATH_LIBRARY_PROFILE): Remove initial "-l".
8650         * config/i386/djgpp.h (LIBSTDCXX): Remove initial "-l".
8651         * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove initial "-l".
8652         * config/s390/tpf.h (MATH_LIBRARY, LIBSTDCXX): Remove initial
8653         "-l".
8654         * cppspec.c: Include opts.h.
8655         (lang_specific_driver): Use cl_decoded_option structures.
8656         * doc/tm.texi.in (MATH_LIBRARY): Update documentation.
8657         * doc/tm.texi: Regenerate.
8658         * gcc.c (translate_options): Translate -d to -foutput-class-dir=.
8659         (driver_handle_option): Allow driver options needing no special
8660         processing.
8661         (process_command): Decode options before call to
8662         lang_specific_driver.  Pass decoded options to
8663         lang_specific_driver.
8664         * gcc.h (lang_specific_driver): Update prototype.
8665         * gccspec.c: Include opts.h.
8666         (lang_specific_driver): Use cl_decoded_option structures.
8667         * opts-common.c (option_ok_for_language, generate_option,
8668         generate_option_input_file): New.
8669         (decode_cmdline_option): Use option_ok_for_language.
8670         (decode_cmdline_options_to_array): Use generate_option_input_file.
8671         (handle_generated_option): Use generate_option.
8672         * opts.h (generate_option, generate_option_input_file): Declare.
8673
8674 2010-08-22  Anatoly Sokolov  <aesok@post.ru>
8675
8676         * config/mips/mips.c (mips_override_options): Rename to...
8677         (mips_option_override): ...this. Make static.
8678         (TARGET_OPTION_OVERRIDE): Define.
8679         (mips_in_small_data_p): Update comment.
8680         * config/mips/mips.h (OVERRIDE_OPTIONS): Remove.
8681         (FIXED_REGISTERS): Update comment.
8682         * config/mips/mips-protos.h (mips_override_options): Remove.
8683
8684 2010-08-21  Olivier Hainque  <hainque@adacore.com>
8685
8686         * config/rs6000/vxworks.h (TARGET_OS_CPP_BUILTINS): Define __PPC__.
8687
8688 2010-08-21  Olivier Hainque  <hainque@adacore.com>
8689
8690         * config/rs6000/vxworks.h (PREFERRED_STACK_BOUNDARY,
8691         ABI_STACK_BOUNDARY): Ensure STACK_BOUNDARY is honored despite EABI.
8692
8693 2010-08-20  Jan Hubicka  <jh@suse.cz>
8694
8695         * tree-pass.h (pass_ipa_cdtor_merge): New function.
8696         * cgraphunit.c (static_ctors, static_dtors): Move to ipa.c; make
8697         heap allocated.
8698         (record_cdtor_fn): Move to ipa.c; do not test for
8699         have_ctors_dtors.
8700         (build_cdtor): Move to ipa.c; add code avoiding construction
8701         when target have ctors/dtors and there is only one ctor/dtor at given
8702         priority.
8703         (compare_ctor, compare_dtor): Move to ipa.c; use DECL_UID to stabilize
8704         sort; reverse order of constructors.
8705         (cgraph_build_cdtor_fns): Move to ipa.c; rename to build_cdtor_fns.
8706         (cgraph_finalize_function): Do not call record_cdtor_fn.
8707         (cgraph_finalize_compilation_unit): Do not call cgraph_build_cdtor_fns.
8708         (cgraph_build_static_cdtor): Move to ipa.c.
8709         * ipa.c: Include target.h and tree-iterator.h.
8710         (cgraph_build_static_cdtor, static_ctors, static_dtors,
8711         record_cdtor_fn, build_cdtor, compare_ctor, compare_dtor,
8712         build_cdtor_fns, ipa_cdtor_merge, gate_ipa_cdtor_merge,
8713         pass_ipa_cdtor_merge): New.
8714         * passes.c (init_optimization_passes): Enqueue pass_ipa_cdtor_merge.
8715         * ipa-prop.c (update_indirect_edges_after_inlining): Avoid out of
8716         bounds access.
8717
8718 2010-08-20  Jan Hubicka  <jh@suse.cz>
8719
8720         PR c++/45307
8721         PR c++/17736
8722         * cgraph.h (cgraph_only_called_directly_p,
8723         cgraph_can_remove_if_no_direct_calls_and_refs_p): Handle
8724         static cdtors.
8725         * cgraphunit.c (cgraph_decide_is_function_needed): Static cdtors
8726         are not needed.
8727         (cgraph_finalize_function): Static cdtors are reachable.
8728         (cgraph_mark_functions_to_output): Use cgraph_only_called_directly_p.
8729
8730 2010-08-20  Jan Hubicka  <jh@suse.cz>
8731
8732         * lto-cgraph.c (lto_output_edge): Use gimple_has_body_p instead of
8733         flag_wpa.
8734         * lto-streamer-out.c (lto_output): Likewise.
8735         * passes.c (ipa_write_optimization_summaries): Initialize statement
8736         uids.
8737
8738 2010-08-20  Olivier Hainque  <hainque@adacore.com>
8739
8740         * tree.h (alias_diag_flags): New enum.
8741         (alias_pair): Add an 'emitted_diags' field.
8742         * varasm.c (finish_aliases_1): Honor and update p->emitted_diags.
8743         (assemble_alias): Initialize emitted_diags of new pairs.
8744
8745 2010-08-20  Eric Botcazou  <ebotcazou@adacore.com>
8746
8747         * config/rs6000/aix.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
8748         * config/rs6000/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
8749         * config/rs6000/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
8750         (STACK_CHECK_PROTECT): Define.
8751         * config/rs6000/rs6000.c (rs6000_emit_probe_stack_range): New function.
8752         (output_probe_stack_range): Likewise.
8753         (rs6000_emit_prologue): Invoke rs6000_emit_probe_stack_range if static
8754         builtin stack checking is enabled.
8755         * config/rs6000/rs6000-protos.h (output_probe_stack_range): Declare.
8756         * config/rs6000/rs6000.md (UNSPECV_PROBE_STACK_RANGE): New constant.
8757         (probe_stack_range): New insn.
8758
8759 2010-08-20  H.J. Lu  <hongjiu.lu@intel.com>
8760
8761         PR target/45336
8762         * config/i386/emmintrin.h (_mm_extract_epi16): Cast to unsigned
8763         short first.
8764
8765         * config/i386/smmintrin.h (_mm_extract_epi8): Cast to unsigned
8766         char first.
8767
8768 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
8769
8770         PR target/45336
8771         * config/i386/sse.md (*sse4_1_pextrb): Add SWI48 mode iterator
8772         to cover zero extension into 64-bit register.
8773         (*sse2_pextrw): Likewise.
8774         (*sse4_1_pextrd_zext): New insn.
8775
8776 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
8777
8778         revert r163410, partially revert r163267.
8779         * config/rs6000/darwin.h (LIB_SPEC): Remove.
8780         * config/darwin.h (REAL_LIBGCC_SPEC): Link lgcc for all
8781         Darwin versions.
8782
8783 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
8784
8785         PR middle-end/44974
8786         * builtins.c (expand_builtin): Don't optimize away
8787         calls to DECL_LOOPING_CONST_OR_PURE_P builtins.
8788
8789 2010-08-20  Uros Bizjak  <ubizjak@gmail.com>
8790
8791         * config/i386/i386.md (ashift %rsp splitter): Remove splitter.
8792         (pro_epilogue_adjust_stack_di_2): Use "l" constraint for
8793         alternative 1 of operand 2.
8794
8795 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
8796             Paolo Bonzini  <bonzini@gnu.org>
8797
8798         * simplify-rtx.c (simplify_unary_operation_1): Optimize
8799         (sign_extend (zero_extend (...)) and
8800         ({sign,zero}_extend (lshiftrt (ashift X (const_int I)) (const_int I))).
8801
8802 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
8803
8804         PR rtl-optimization/45353
8805         * sel-sched-ir.c (sel_bb_head): Return NULL even if next_nonnote_insn
8806         after bb_note is a BARRIER.
8807
8808 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
8809
8810         * config/rs6000/darwin.h (LIB_SPEC): New. Provide saveFP/restFP by
8811         linking libgcc.a.
8812
8813 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
8814             Michael Matz  <matz@suse.de>
8815
8816         * tree-ssa-address.c (tree_mem_ref_addr): Convert offset to sizetype.
8817
8818 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
8819
8820         * ggc-common.c (ggc_mark_root_tab): New function, split out from...
8821         (ggc_mark_roots): ...here.
8822
8823 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
8824
8825         * vec.h (FOR_EACH_VEC_ELT): Define.
8826         * c-decl.c: Use it.
8827         * cfgloop.c: Likewise.
8828         * cfgloopmanip.c: Likewise.
8829         * cgraph.c: Likewise.
8830         * cgraphunit.c: Likewise.
8831         * combine.c: Likewise.
8832         * config/bfin/bfin.c: Likewise.
8833         * config/mips/mips.c: Likewise.
8834         * config/rs6000/rs6000.c: Likewise.
8835         * dbxout.c: Likewise.
8836         * df-scan.c: Likewise.
8837         * dominance.c: Likewise.
8838         * dse.c: Likewise.
8839         * dwarf2out.c: Likewise.
8840         * except.c: Likewise.
8841         * expr.c: Likewise.
8842         * function.c: Likewise.
8843         * gcse.c: Likewise.
8844         * genattr.c: Likewise.
8845         * ggc-common.c: Likewise.
8846         * gimplify.c: Likewise.
8847         * graphite-blocking.c: Likewise.
8848         * graphite-clast-to-gimple.c: Likewise.
8849         * graphite-dependences.c: Likewise.
8850         * graphite-interchange.c: Likewise.
8851         * graphite-poly.c: Likewise.
8852         * graphite-scop-detection.c: Likewise.
8853         * graphite-sese-to-poly.c: Likewise.
8854         * graphite.c: Likewise.
8855         * haifa-sched.c: Likewise.
8856         * ifcvt.c: Likewise.
8857         * implicit-zee.c: Likewise.
8858         * ipa-prop.c: Likewise.
8859         * ipa-struct-reorg.c: Likewise.
8860         * ipa.c: Likewise.
8861         * ira-build.c: Likewise.
8862         * ira-color.c: Likewise.
8863         * ira-emit.c: Likewise.
8864         * lambda-code.c: Likewise.
8865         * loop-invariant.c: Likewise.
8866         * loop-unroll.c: Likewise.
8867         * lower-subreg.c: Likewise.
8868         * lto-cgraph.c: Likewise.
8869         * lto-opts.c: Likewise.
8870         * lto-streamer-in.c: Likewise.
8871         * lto-streamer-out.c: Likewise.
8872         * lto-streamer.c: Likewise.
8873         * lto-symtab.c: Likewise.
8874         * matrix-reorg.c: Likewise.
8875         * opts.c: Likewise.
8876         * predict.c: Likewise.
8877         * print-tree.c: Likewise.
8878         * sdbout.c: Likewise.
8879         * sel-sched-dump.c: Likewise.
8880         * sel-sched-ir.c: Likewise.
8881         * sel-sched.c: Likewise.
8882         * sese.c: Likewise.
8883         * stor-layout.c: Likewise.
8884         * tree-cfg.c: Likewise.
8885         * tree-cfgcleanup.c: Likewise.
8886         * tree-chrec.c: Likewise.
8887         * tree-data-ref.c: Likewise.
8888         * tree-emutls.c: Likewise.
8889         * tree-inline.c: Likewise.
8890         * tree-into-ssa.c: Likewise.
8891         * tree-loop-distribution.c: Likewise.
8892         * tree-loop-linear.c: Likewise.
8893         * tree-mudflap.c: Likewise.
8894         * tree-outof-ssa.c: Likewise.
8895         * tree-parloops.c: Likewise.
8896         * tree-predcom.c: Likewise.
8897         * tree-pretty-print.c: Likewise.
8898         * tree-scalar-evolution.c: Likewise.
8899         * tree-ssa-live.c: Likewise.
8900         * tree-ssa-loop-im.c: Likewise.
8901         * tree-ssa-loop-ivcanon.c: Likewise.
8902         * tree-ssa-loop-ivopts.c: Likewise.
8903         * tree-ssa-loop-manip.c: Likewise.
8904         * tree-ssa-loop-niter.c: Likewise.
8905         * tree-ssa-loop-prefetch.c: Likewise.
8906         * tree-ssa-phiprop.c: Likewise.
8907         * tree-ssa-pre.c: Likewise.
8908         * tree-ssa-reassoc.c: Likewise.
8909         * tree-ssa-sccvn.c: Likewise.
8910         * tree-ssa-structalias.c: Likewise.
8911         * tree-ssa.c: Likewise.
8912         * tree-vect-data-refs.c: Likewise.
8913         * tree-vect-loop-manip.c: Likewise.
8914         * tree-vect-loop.c: Likewise.
8915         * tree-vect-patterns.c: Likewise.
8916         * tree-vect-slp.c: Likewise.
8917         * tree-vect-stmts.c: Likewise.
8918         * tree-vrp.c: Likewise.
8919         * tree.c: Likewise.
8920         * value-prof.c: Likewise.
8921         * var-tracking.c: Likewise.
8922         * varasm.c: Likewise.
8923         * vmsdbgout.c: Likewise.
8924
8925 2010-08-19  Nathan Sidwell  <nathan@codesourcery.com>
8926             Richard Guenther  <richard.guenther@gmail.com>
8927
8928         * gimplify.c (gimplify_modify_expr): When assigning to volatiles,
8929         copy the src value and return a copy.
8930         * doc/extend.texi (Volatiles): Move from C++ to C and expand.
8931         (C++ Volatiles): Adjust to describe C++ semantics only.
8932
8933 2010-08-20  Joseph Myers  <joseph@codesourcery.com>
8934
8935         * doc/tm.texi.in (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Document to
8936         be zero or nonzero.
8937         * doc/tm.texi: Regenerate.
8938         * defaults.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define.
8939         * df-scan.c (df_get_exit_block_use_set), reginfo.c
8940         (init_reg_sets_1), rtlanal.c (rtx_unstable_p, rtx_varies_p):
8941         Handle new PIC_OFFSET_TABLE_REG_CALL_CLOBBERED semantics.
8942         * config/ia64/ia64.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define
8943         to 1.
8944
8945 2010-08-20  Olivier Hainque  <hainque@adacore.com>
8946
8947         * config/sparc/sparc.c (sparc_asm_function_epilogue): Don't output
8948         an extra nop past a sibling call at the very end.
8949
8950 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
8951
8952         PR bootstrap/45350
8953         * combine.c (try_combine): Initialize i1_is_used and i2_is_used.  Fix
8954         a comment.
8955
8956 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
8957
8958         * target.def (function_arg, function_incoming_arg): Remove const
8959         qualifier on CUMULATIVE_ARGS parameter.
8960         * targhooks.h (default_function_arg, default_function_incoming_arg):
8961         Likewise.
8962         * targhooks.c (default_function_arg, default_function_incoming_arg):
8963         Likewise.
8964         * config/i386/i386.c (ix86_function_arg): Likewise.
8965
8966 2010-08-19  Jakub Jelinek  <jakub@redhat.com>
8967
8968         PR target/45336
8969         * simplify-rtx.c (simplify_unary_operation_1): Optimize nested
8970         SIGN_EXTENDs or ZERO_EXTENDs.
8971
8972 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
8973
8974         PR target/42172
8975         * combine.c (combine_validate_cost): New arg I0.  All callers changed.
8976         Take its cost into account if nonnull.
8977         (insn_a_feeds_b): New static function.
8978         (combine_instructions): Look for four-insn combinations.
8979         (can_combine_p): New args PRED2, SUCC2.  All callers changed.  Take
8980         them into account when computing all_adjacent and looking for other
8981         uses.
8982         (combinable_i3pat): New args I0DEST, I0_NOT_IN_SRC.  All callers
8983         changed.  Treat them like I1DEST and I1_NOT_IN_SRC.
8984         (try_combine): New arg I0.  Handle four-insn combinations.
8985         (distribute_notes): New arg ELIM_I0.  All callers changed.  Treat it
8986         like ELIM_I1.
8987
8988 2010-08-19  Jason Merrill  <jason@redhat.com>
8989
8990         PR c++/45307
8991         * gimplify.c (gimplify_init_constructor): Just return GS_UNHANDLED
8992         if ctor is empty.
8993         (gimplify_modify_expr_rhs): Adjust.
8994
8995 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
8996
8997         * cfgloop.c (get_loop_body_in_bfs_order): Avoid redundant call to
8998         bitmap_bit_p.
8999         * config/bfin/bifn.c (bfin_discover_loop): Likewise.
9000         * dominance.c (iterate_fix_dominators): Likewise.
9001         * dse.c (set_usage_bits): Likewise.
9002         (set_position_unneeded, record_store): Likewise.
9003         * gimple-fold.c (get_maxval_strlen): Likewise.
9004         * haifa-sched.c (fix_inter_tick, fix_recovery_deps): Likewise.
9005         * ipa-inline.c (update_caller_keys): Likewise.
9006         * ipa-split.c (verify_non_ssa_vars): Likewise.
9007         * ipa-type-escape.c (mark_type, close_type_seen): Likewise.
9008         (close_type_exposed_parameter, close_type_full_escape): Likewise.
9009         (close_addressof_down): Likewise.
9010         * ira-color.c (assign_hard_reg, push_allocno_to_stack): Likewise.
9011         (setup_allocno_left_conflicts_size): Likewise.
9012         (ira_reassign_conflict_allocnos): Likewise.
9013         (ira_reassign_pseudos): Likewise.
9014         * ira-emit.c (change_loop): Likewise.
9015         * loop-invariant.c (mark_regno_live, mark_regno_death): Likewise.
9016         * lto-streamer-out.c (write_symbol): Likewise.
9017         * predict.c (expr_expected_value_1): Likewise.
9018         * regstat.c (regstat_bb_compute_ri): Likewise.
9019         * sel-sched.c (create_block_for_bookkeeping): Likewise.
9020         (track_scheduled_insns_and_blocks, sel_sched_region_1): Likewise.
9021         * stmt.c (expand_case): Likewise.
9022         * tree-eh.c (emit_eh_dispatch): Likewise.
9023         * tree-into-ssa.c (prune_unused_phi_nodes): Likewise.
9024         * tree-loop-distribution.c (make_nodes_having_upstream_mem_writes):
9025         Likewise.
9026         (rdg_flag_vertex, rdg_flag_loop_exits): Likewise.
9027         (rdg_build_components): Likewise.
9028         * tree-object-size.c (collect_object_sizes_for): Likewise.
9029         * tree-sra.c (convert_callers): Likewise.
9030         * tree-ssa-coalesce.c (live_track_add_partition): Likewise.
9031         * tree-ssa-live.c (mark_all_vars_used_1): Likewise.
9032         * tree-ssa-pre.c (bitmap_set_replace_value): Likewise.
9033
9034 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
9035
9036         * config/i386/i386.md (*lea_1): Use P mode iterator.
9037         (lea add splitter): Also handle DImode operands.
9038         (DImode lea add splitter): Use x86_64_immediate_operand for operand 2
9039         predicate.  Do not use ix86_lea_for_add_ok.
9040         (zext DImode lea add splitter): Use ix86_lea_for_add_ok.
9041         (lea ashift splitter): Also handle DImode operands.
9042         (DImode lea ashift splitter): Remove splitter.
9043
9044 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
9045
9046         * config/i386/i386.md (*add<SWI:mode>3_cconly_overflow): Do not use
9047         ix86_binary_operator_ok.
9048
9049 2010-08-19  Andrey Belevantsev  <abel@ispras.ru>
9050
9051         PR rtl-optimization/44691
9052         * sel-sched.c (count_occurrences_1): Also punt when SUBREG_REG
9053         is not a register.
9054
9055 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
9056
9057         PR target/45070
9058         * config/arm/arm.c (arm_output_epilogue): Ensure that return
9059          value of size 1-3 is handled correctly.
9060
9061 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
9062
9063         * tree-switch-conversion.c (gen_inbound_check): Ensure that the
9064         type for the conditional has wide enough range.
9065
9066 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
9067
9068         PR target/45327
9069         * config/i386/i386.md (<any_or:code><SWI:mode>_3): Do not use
9070         ix86_binary_operator_ok.
9071
9072 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
9073
9074         * config/i386/i386.md (*add<mode>_1) <TYPE_LEA>: Split insn to lea.
9075         <default>:  Swap operands 1 and 2 for alternative 2 to use existing
9076         code to output insn mnemonic.  Fix comment.
9077         (*addsi_1_zext): Add r-r-0 alternative 1.
9078         <TYPE_LEA>: Split insn to lea.
9079         <default>: Handle alternative 1.
9080         (*addhi_1_lea): Add r-r-0 alternative 2.  Use cond RTX instead of
9081         multi-level if_then_else RTX to set "type" attribute.
9082         <default>: Handle alternative 2.
9083         (*addqi_1_lea): Add q-q-0 alternative 2 and r-r-0 alternative 4.
9084         Use cond RTX instead of multi-level if_then_else RTX to set
9085         "type" attribute.
9086         <default>: Handle alternatives 2 and 4.
9087         (lea splitters): Update calls to ix86_lea_for_add_ok.
9088
9089         * config/i386/i386.c (ix86_lea_for_add_ok): Remove unused "code"
9090         argument.
9091         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Update prototype.
9092
9093 2010-08-18  Richard Guenther  <rguenther@suse.de>
9094
9095         * tree-ssa-uninit.c (find_uninit_use): Disregard debug stmts,
9096         use operand helpers.
9097
9098 2010-08-18  Paolo Bonzini  <bonzini@gnu.org>
9099
9100         PR middle-end/45292
9101         * optabs.c (expand_bool_compare_and_swap): Expand pending
9102         pops before trying the optab.
9103
9104 2010-08-18  Yao Qi  <yao@codesourcery.com>
9105
9106         PR target/45094
9107         * config/arm/arm.c (output_move_double): Fix typo generating
9108         instructions ('ldr'->'str').
9109
9110 2010-08-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
9111
9112         PR rtl-optimization/42575
9113         * optabs.c (expand_doubleword_mult): Generate new pseudos to shorten
9114         live ranges.
9115
9116 2010-08-18  Marcus Shawcroft  <marcus.shawcroft@arm.com>
9117
9118         * config/arm/arm-protos.h (arm_expand_sync): New.
9119         (arm_output_memory_barrier, arm_output_sync_insn): New.
9120         (arm_sync_loop_insns): New.
9121         * config/arm/arm.c (FL_ARCH7): New.
9122         (FL_FOR_ARCH7): Include FL_ARCH7.
9123         (arm_arch7): New.
9124         (arm_print_operand): Support %C markup.
9125         (arm_legitimize_sync_memory): New.
9126         (arm_emit, arm_insn_count, arm_count, arm_output_asm_insn): New.
9127         (arm_process_output_memory_barrier, arm_output_memory_barrier): New.
9128         (arm_ldrex_suffix, arm_output_ldrex, arm_output_strex): New.
9129         (arm_output_op2, arm_output_op3, arm_output_sync_loop): New.
9130         (arm_get_sync_operand, FETCH_SYNC_OPERAND): New.
9131         (arm_process_output_sync_insn, arm_output_sync_insn): New.
9132         (arm_sync_loop_insns,arm_call_generator, arm_expand_sync): New.
9133         * config/arm/arm.h (struct arm_sync_generator): New.
9134         (TARGET_HAVE_DMB, TARGET_HAVE_DMB_MCR): New.
9135         (TARGET_HAVE_MEMORY_BARRIER): New.
9136         (TARGET_HAVE_LDREX, TARGET_HAVE_LDREXBHD): New.
9137         * config/arm/arm.md: Include sync.md.
9138         (UNSPEC_MEMORY_BARRIER): New.
9139         (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK): New.
9140         (VUNSPEC_SYNC_OP):New.
9141         (VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): New.
9142         (sync_result, sync_memory, sync_required_value): New attributes.
9143         (sync_new_value, sync_t1, sync_t2): Likewise.
9144         (sync_release_barrier, sync_op): Likewise.
9145         (length): Add logic to length attribute defintion to call
9146         arm_sync_loop_insns when appropriate.
9147         * config/arm/sync.md: New file.
9148
9149 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
9150
9151         * tree.h (host_integerp): Add ATTRIBUTE_PURE when not
9152         ENABLE_TREE_CHECKING.
9153         (tree_low_cst): Add inline version for !ENABLE_TREE_CHECKING
9154         and GCC >= 4.3.
9155
9156 2010-08-17  H.J. Lu  <hongjiu.lu@intel.com>
9157
9158         * config/i386/i386.c (ix86_lea_for_add_ok): For !TARGET_OPT_AGU
9159         or optimizing for size, always avoid lea if possible.
9160
9161         * config/i386/i386.md (*add<mode>_1): Always avoid lea if possible.
9162
9163 2010-08-17  Iain Sandoe  <iains@gcc.gnu.org>
9164
9165         * unwind-dw2-fde-darwin.c (_darwin10_Unwind_FindEnclosingFunction):
9166         Dunmmy function with NULL return unless the target is
9167         OSX >= 10.6 (Darwin10).
9168
9169 2010-08-17  Jack Howarth  <howarth@bromo.med.uc.edu>
9170
9171         * gcc.c (spec_function): Add remove-outfile.
9172         (remove_outfile_spec_function): New function.
9173         * config/darwin.h (LINK_SPEC): Add removal of -ldl, -lm and -lpthread.
9174         * invoke.texi (replace-outfile): Document.
9175
9176 2010-08-17  Uros Bizjak  <ubizjak@gmail.com>
9177
9178         PR target/45296
9179         * reginfo.c (globalize_reg): Reject stack registers.
9180
9181 2010-08-17  Richard Guenther  <rguenther@suse.de>
9182
9183         * tree-ssa-dom.c (struct edge_info): Use a VEC for the
9184         list of conditional equivalences.
9185         (free_all_edge_infos): Adjust.
9186         (record_equivalences_from_incoming_edge): Likewise.
9187         (record_cond): Likewise.
9188         (build_and_record_new_cond): Likewise.
9189         (record_conditions): Likewise.
9190         (dom_opt_leave_block): Likewise.
9191
9192 2010-08-17  Kai Tietz  <kai.tietz@onevision.com>
9193
9194         * doc/invoke.texi (ms-extension): Add documentation.
9195
9196 2010-08-17  Richard Guenther  <rguenther@suse.de>
9197
9198         * fold-const.c (fold_comparison): Strip nops inside POINTER_PLUS_EXPR.
9199
9200 2010-08-17  Shujing Zhao  <pearly.zhao@oracle.com>
9201
9202         PR c/40563
9203         * c-decl.c (diagnose_uninitialized_cst_member): New function.
9204         (finish_decl): Use it to issue a -Wc++-compat warning about
9205         uninitialized const field in struct or union.
9206
9207         (finish_struct): Use strip_array_types.
9208
9209 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
9210
9211         * function.c (block_fragments_nreverse, blocks_nreverse_all): New
9212         functions.
9213         (reorder_blocks): Use blocks_nreverse_all instead of blocks_nreverse.
9214         (reorder_blocks_1): Assert BLOCK_FRAGMENT_ORIGIN is NULL.  Don't
9215         call block_nreverse here.
9216         (blocks_nreverse): Rename decl temporary to block.
9217
9218 2010-08-16  Bernd Schmidt  <bernds@codesourcery.com>
9219
9220         * config/arm/thumb2.md (thumb2_notsi_shiftsi,
9221         thumbsi_notsi_shiftsi_compare0, thumb2_not_shiftsi_compare0_scratch,
9222         thumb2_cmpsi_shiftsi, thumb2_cmpsi_shiftsi_swp, thumb2_arith_shiftsi,
9223         thumb2_arith_shiftsi splitter, thumb2_arith_shiftsi_compare0,
9224         thumb2_arith_shiftsi_compare0_scratch, thumb2_sub_shiftsi,
9225         thumb2_sub_shiftsi_compare0, thumb2_sub_shiftsi_compare0_scratch,
9226         thumb2_iorsi3): Delete.
9227         (orsi_notsi_si): No longer a named pattern.
9228         (orsi_not_shiftsi_si): Renamed from thumb_orsi_not_shiftsi_si.
9229         * config/arm/predicates.md (shift_amount_operand): New.
9230         (mult_operator): New.
9231         * config/arm/arm.md (attr arch, attr arch_enabled, attr insn_enabled,
9232         attr enabled): New.
9233         (iorsi3_insn): Renamed from arm_iorsi3.  Handle a new alternative if
9234         arch matches t2.
9235         (not_shiftsi): Renamed from arm_notsi_shiftsi.  Handle Thumb2 variant.
9236         (not_shiftsi_compare0): Likewise, renamed from
9237         arm_notsi_shiftsi_compare0.
9238         (not_shiftsi_compare0_scratch): Likweise, renamed from
9239         arm_notsi_shiftsi_compare0_scratch.
9240         (cmpsi_shiftsi): Likewise, renamed from arm_cmpsi_shiftsi.
9241         (cmpsi_shiftsi_swp): Likewise, renamed from arm_cmpsi_shiftsi_swp.
9242         (arith_shiftsi): Handle Thumb2 variant.  Set insn_enabled attribute
9243         so that the register alternative is disabled when the shift_operator
9244         is MULT.  Use "M" as the constraint for constants.
9245         (arith_shiftsi splitter): Enable for TARGET_32BIT.
9246         (arith_shiftsi_compare0): Handle Thumb2 variant.  Use "M" as the
9247         constraint for constants.
9248         (arith_shiftsi_compare0_scratch): Likewise.
9249         (sub_shiftsi, sub_shiftsi_compare0, sub_shiftsi_compare0_scratch):
9250         Handle Thumb2 alternative.
9251
9252 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
9253
9254         * doc/options.texi (NoDriverArg): Document.
9255         * gcc.c (cpp_unique_options): Generate -MD and -MMD instead of
9256         -MDX and -MMDX.
9257         * opt-functions.awk (switch_flags): Handle NoDriverArg.
9258         * opts-common.c (decode_cmdline_option): Ignore CL_SEPARATE
9259         marking for CL_NO_DRIVER_ARG options when in the driver.
9260         * opts.h (CL_NO_DRIVER_ARG): Define.
9261         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
9262         CL_COMMON): Update values.
9263
9264 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
9265
9266         * common.opt: Add driver options.
9267         (auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
9268         * doc/options.texi (Driver, RejectDriver): Document.
9269         * gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
9270         print_prog_name, print_multi_directory, print_sysroot,
9271         print_multi_os_directory, print_multi_lib,
9272         print_sysroot_headers_suffix, report_times, combine_flag,
9273         use_pipes, wrapper_string): Remove.
9274         (save_switch, driver_unknown_option_callback,
9275         driver_wrong_lang_callback, driver_post_handling_callback,
9276         driver_handle_option): New.
9277         (spec_lang, last_language_n_infiles): Make file-scope static
9278         instead of local to process_command.
9279         (process_command): Use decode_cmdline_options_to_array and
9280         read_cmdline_option for option processing.  Compute have_c in
9281         prescan of decoded options.
9282         * opt-functions.awk (switch_flags): Handle Driver and
9283         RejectDriver.
9284         (var_type, var_type_struct): Handle Separate options as generating
9285         const char * variables.
9286         * opts-common.c (decode_cmdline_option): Expect CL_COMMON and
9287         CL_TARGET to be passed by caller if required.
9288         (decode_cmdline_options_to_array): Update comment.
9289         * opts.c (complain_wrong_lang): Handle options only valid for the
9290         driver.
9291         (decode_options): Update call to decode_cmdline_options_to_array.
9292         (print_filtered_help): Ignore driver-only options.
9293         (print_specific_help): Ignore CL_DRIVER.
9294         (common_handle_option): Don't call print_specific_help for CL_DRIVER.
9295         * opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
9296         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
9297         Update values.
9298
9299 2010-08-16  Richard Guenther  <rguenther@suse.de>
9300
9301         * tree-cfg.c (verify_types_in_gimple_reference): Verify
9302         TARGET_MEM_REF a bit.
9303         * tree-ssa-address.c (addr_for_mem_ref): Adjust.
9304         (create_mem_ref_raw): Always create TMR_OFFSET, store the
9305         alias pointer type via it.
9306         (copy_mem_ref_info): Adjust.
9307         (maybe_fold_tmr): Likewise.
9308         * tree.c (mem_ref_offset): Also handle TARGET_MEM_REF.
9309         (reference_alias_ptr_type): Likewise.
9310         * tree.def (TARGET_MEM_REF): Remove TMR_ORIGINAL operand,
9311         adjust documentation of TMR_OFFSET operand.
9312         * alias.c (get_alias_set): Do not look at TMR_ORIGINAL but
9313         use the alias pointer type.
9314         * expr.c (expand_expr_real_1): Do not use TMR_ORIGINAL to
9315         initialize mem attrs but the TMR itself.
9316         * tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REF
9317         similar to MEM_REF.
9318         * tree-pretty-print.c (dump_generic_node): Do not dump TMR_ORIGINAL.
9319         * tree-ssa-loop-ivopts.c (idx_remove_ssa_names): Remove.
9320         (unshare_and_remove_ssa_names): Likewise.
9321         (copy_ref_info): Adjust.
9322         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Simplify
9323         TARGET_MEM_REF case.
9324         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Do not look
9325         at TMR_ORIGINAL.
9326         * tree.h (TMR_ORIGINAL): Remove.
9327         * gimple.c (get_base_address): For TARGET_MEM_REF with a
9328         symbol return that.
9329         * tree-dfa.c (get_ref_base_and_extent): Handle TARGET_MEM_REF
9330         with a symbol.
9331         (get_addr_base_and_unit_offset): Likewise.
9332         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Handle
9333         TARGET_MEM_REFs.
9334         (indirect_ref_may_alias_decl_p): Likewise.
9335         (refs_may_alias_p_1): Do not bail out for TARGET_MEM_REFs.
9336
9337 2010-08-15  Uros Bizjak  <ubizjak@gmail.com>
9338
9339         * doc/invoke.texi (-fomit-frame-pointer): Document that starting
9340         with GCC version 4.6, the default setting (when not optimizing
9341         for size) for 32-bit Linux x86 and 32-bit Darwin x86 targets has
9342         been changed to -fomit-frame-pointer.
9343
9344 2010-08-15  Iain Sandoe  <iains@gcc.gnu.org>
9345
9346         * config/darwin.h (REAL_LIBGCC_SPEC): Remove libgcc_s.10.5 stub for
9347         Darwin10.  Do not link libgcc.a for Darwin >= 9.
9348
9349 2010-08-15  Gerald Pfeifer  <gerald@pfeifer.com>
9350
9351         * doc/invoke.texi (Warning Options): Fix terminology and markup
9352         in the description of how unknown warning options are handled.
9353
9354 2010-08-15  Ira Rosen  <irar@il.ibm.com>
9355
9356         * tree-vect-data-refs.c (vect_setup_realignment): Support realignment
9357         in basic blocks.
9358         (vect_supportable_dr_alignment): Check alignment for basic blocks.
9359         * tree-vect-slp.c (vect_build_slp_tree): Allow different codes for
9360         data references.
9361         (vect_bb_vectorization_profitable_p): New function.
9362         (vect_slp_analyze_bb): Call vect_bb_vectorization_profitable_p() to
9363         check if it's worthwhile to vectorize the basic block.
9364
9365 2010-08-14  Anatoly Sokolov  <aesok@post.ru>
9366
9367         * reload.h (register_move_cost, memory_move_secondary_cost,
9368         secondary_reload_class): Adjust prototype.
9369         * rtl.h (reg_class_subset_p): Adjust prototype.
9370         * reload.c (secondary_reload_class): Change arguments type from
9371         enum reg_class to reg_class_t. Change result type to reg_class_t.
9372         * reginfo.c (register_move_cost, reg_class_subset_p): Change
9373         arguments type from enum reg_class to reg_class_t.
9374         (memory_move_secondary_cost): Change arguments type from
9375         enum reg_class to reg_class_t. Change type of saved_flags to
9376         reg_class_t.
9377
9378         * config/mips/mips.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
9379         Remove macros.
9380         (mips_cost): Remove.
9381         (struct mips_rtx_cost_data): Moved to mips.c.
9382         * config/mips/mips-protos.h (mips_register_move_cost): Remove.
9383         * config/mips/mips.c (struct mips_rtx_cost_data): Moved from mips.h.
9384         (mips_cost): Make static.
9385         (mips_canonicalize_move_class): Change argument type to reg_class_t.
9386         Change result type to reg_class_t.
9387         (mips_move_to_gpr_cost, mips_move_from_gpr_cost): Change arguments
9388         type from enum reg_class to reg_class_t.
9389         (mips_register_move_cost): Make static. Change arguments
9390         type from enum reg_class to reg_class_t.
9391         (mips_memory_move_cost): New function.
9392         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
9393
9394 2010-08-14  Richard Sandiford  <rdsandiford@googlemail.com>
9395
9396         PR rtl-optimization/43358
9397         * ira-lives.c (process_single_reg_class_operands): Adjust the costs
9398         of a single hard register, using simplify_subreg_regno to decide
9399         what that register should be.
9400
9401 2010-08-14  Mingjie Xing  <mingjie.xing@gmail.com>
9402
9403         * config/mips/mips.c (CODE_FOR_loongson_pmullh): Define.
9404         * config/mips/loongson.md (UNSPEC_LOONGSON_PMULL): Delete.
9405         (loongson_pmull<V_suffix>): Rename to...
9406         (mul<mode>3): ...this and use MULT instead of an UNSPEC.
9407
9408 2010-08-13  Jack Howarth  <howarth@bromo.med.uc.edu>
9409
9410         * configure.ac: Enable -fomit-frame-pointer on darwin
9411         which support dwarf2.
9412         * config/i386/i386.c (override_options): Same.
9413
9414 2010-08-13  Jie Zhang  <jie@codesourcery.com>
9415
9416         * config/arm/arm.md (cstoredf4): Only valid when !TARGET_VFP_SINGLE.
9417
9418 2010-08-12  Joseph Myers  <joseph@codesourcery.com>
9419
9420         * gcc.c (cpp_unique_options): Generate -MDX and -MMDX from -MD and
9421         -MMD.
9422
9423 2010-08-12  Changpeng Fang  <changpeng.fang@amd.com>
9424
9425         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Give
9426         up dot_prod pattern searching if a stmt is outside the loop.
9427
9428 2010-08-12  H.J. Lu  <hongjiu.lu@intel.com>
9429             Uros Bizjak  <ubizjak@gmail.com>
9430
9431         * config.gcc: Handle --enable-frame-pointer.
9432
9433         * configure.ac: Add --enable-frame-pointer.
9434         * configure: Regenerated.
9435
9436         * config/i386/i386.c (USE_IX86_FRAME_POINTER): Default to 0.
9437         (override_options): If not configured with --enable-frame-pointer,
9438         enable -fomit-frame-pointer (but not for TARGET_MACHO or when
9439         optimizing for size), -fasynchronous-unwind-tables and
9440         -maccumulate-outgoing-args by default.
9441
9442 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
9443
9444         * builtins.c (fold_builtin_memory_op): Avoid -Wsign-compare warning.
9445
9446         PR middle-end/45262
9447         * fold-const.c (make_range) <case NEGATE_EXPR>: Punt if
9448         -a overflows.  Normalize the range.
9449
9450 2010-08-12  Richard Guenther  <rguenther@suse.de>
9451
9452         PR tree-optimization/45232
9453         * tree-ssa-reassoc.c (can_reassociate_p): Disable re-association
9454         for types with undefined overflow.
9455         (reassociate_bb): Allow re-associating of bit and min/max
9456         operations for types with undefined overflow.
9457         * tree-ssa-forwprop.c (associate_plusminus): New function.
9458         (tree_ssa_forward_propagate_single_use_vars): Call it.
9459
9460 2010-08-12  Richard Guenther  <rguenther@suse.de>
9461
9462         * tree-flow.h (struct ptr_info_def): Add align and misalign fields.
9463         * tree-ssa-alias.c (get_ptr_info): Move ...
9464         * tree-ssanames.c (get_ptr_info): ... here.  Initialize
9465         align and misalign fields conservatively.
9466         * tree-ssa-ccp.c (ccp_finalize): From partially constant pointers
9467         derive alignment information.
9468         (evaluate_stmt): Derive alignment information from memory
9469         allocation functions.
9470         * tree.h (get_pointer_alignment): Make unsigned.
9471         * builtins.c (get_object_alignment): Use alignment information we
9472         have computed for pointers.
9473         (get_pointer_alignment): Likewise.  Make conservative, return
9474         and unsigned value.
9475         (expand_builtin_strlen): Adjust.
9476         (expand_builtin_memcmp): Likewise.
9477         (expand_builtin_strcmp): Likewise.
9478         (expand_builtin_strncmp): Likewise.
9479         (get_builtin_sync_mem): Use at least mode alignment.
9480         (fold_builtin_memset): Adjust.
9481         (fold_builtin_memory_op): Likewise.
9482         * gimple-pretty-print.c (dump_gimple_phi): Alongside alias
9483         information also dump pointer alignment knowledge.
9484         (dump_gimple_stmt): Likewise.
9485
9486 2010-08-12  Uros Bizjak  <ubizjak@gmail.com>
9487
9488         * config/i386/i386.c (LONG_TYPE_SIZE): Remove.
9489         (EMPTY_FIELD_BOUNDARY): Remove.
9490         * config/i386/i386-interix.h (PCC_BITFIELD_TYPE_MATTERS): Remove.
9491
9492 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
9493
9494         PR debug/45259
9495         * caller-save.c (save_call_clobbered_regs): Only swap notes with
9496         DEBUG_INSNs if n_regs_saved.
9497
9498 2010-08-12  Wei Guozhi  <carrot@google.com>
9499
9500         PR target/44999
9501         * config/arm/arm.md (andsi3): Change to zero extension if possible.
9502         * config/arm/thumb2.md (thumb2_zero_extendqisi2_v6): Change the name.
9503
9504 2010-08-11  Vladimir Makarov  <vmakarov@redhat.com>
9505
9506         * ira-int.h (ira_remove_allocno_copy_from_list): Remove.
9507
9508         * ira-build.c (ira_remove_allocno_copy_from_list): Remove.
9509
9510 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
9511
9512         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add back
9513         the case removed in the previous patch, when the only phi argument
9514         is defined in the same loop as the phi node itself.  Handle it
9515         separately from the invariant case by both propagating it outside
9516         the region and replacing the phi node with an assign.
9517
9518 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
9519
9520         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): The only
9521         constant phi nodes with one argument are is_gimple_min_invariant
9522         and SSA_NAME_IS_DEFAULT_DEF.
9523
9524 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
9525
9526         * graphite-cloog-util.c (oppose_constraint):
9527         Extend loop counter's value range (CLOOG_ORG).
9528         (cloog_matrix_to_ppl_constraint): Same.
9529         (new_Constraint_System_from_Cloog_matrix): Same.
9530         * graphite-cloog-compat.h (matrix_num_type): New.
9531
9532 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
9533
9534         * graphite.c (graphite_initialize): Do not initialize
9535         CLooG and initialize the Parma Polyhedra Library
9536         manually when using CLOOG_ORG.
9537         (graphite_finalize): Do not finalize CLooG and finalize
9538         the Parma Polyhedra Library manually when using CLOOG_ORG.
9539         * graphite-cloog-compat.h (cloog_initialize): Hide function
9540         when using CLOOG_ORG.
9541         (cloog_finalize): Same.
9542
9543 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
9544
9545         * graphite-clast-to-gimple.c (free_scattering): Change
9546         CloogDomainList/CloogDomain to CloogScatteringList/CloogScattering
9547         (CLOOG_ORG).
9548         (build_cloog_prog): Same.
9549         * graphite-cloog-compat.h (cloog_domain): Removed.
9550         (cloog_scattering): New.
9551         (cloog_set_domain): Removed.
9552         (cloog_set_scattering): New.
9553         (cloog_next_domain): Removed.
9554         (cloog_next_scattering): New.
9555         (cloog_set_next_domain): Removed.
9556         (cloog_set_next_scattering): New.
9557         (CloogScatteringList): New.
9558         (CloogScattering): New.
9559         (cloog_scattering_free): New.
9560         (new_Cloog_Scattering_from_ppl_Polyhedron): New.
9561         * graphite-cloog-util.c (new_Cloog_Scattering_from_ppl_Polyhedron):
9562         New.
9563
9564 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
9565
9566         * graphite-clast-to-gimple.c (build_cloog_prog): Extend with
9567         CloogState.
9568         (set_cloog_options): Same.
9569         (print_clast_stmt): Same.
9570         (scop_to_clast): Same.
9571         (print_generated_program): Same.
9572         (gloog): Same.
9573         * graphite-clast-to-gimple.h: Include graphite-cloog-util.h.
9574         (scop_to_clast): Extend with CloogState.
9575         * graphite-cloog-util.c: Include graphite-cloog-compat.h
9576         (new_Cloog_Domain_from_ppl_Polyhedron):
9577         Extend with CloogState.  Use cloog_domain_from_cloog_matrix (CLOOG_ORG).
9578         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Extend with CloogState.
9579         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
9580         * graphite-cloog-util.h (build_cloog_prog): Same.
9581         * graphite-cloog-copat.h (build_cloog_prog): New.
9582         (CloogState): New.
9583         (cloog_state_malloc): New.
9584         (cloog_state_free): New.
9585         (cloog_loop_malloc): New.
9586         (cloog_options_malloc): New.
9587         (cloog_statement_alloc): New.
9588         (cloog_domain_from_cloog_matrix): New.
9589         (new_Cloog_Domain_from_ppl_Pointset_Powerset): New.
9590         (new_Cloog_Domain_from_ppl_Polyhedron): New.
9591
9592 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
9593
9594         * graphite-clast-to-gimple.c (clast_name_to_gcc): Parameter
9595         type of NAME now depends on used CLooG version.
9596         (clast_to_gcc_expression): Replace expr_* with clast_expr_*.
9597         (gcc_type_for_clast_expr): Same.
9598         (print_clast_stmt): Replace pprint with clast_pprint.
9599         * graphite-cloog-compat.h: Provide compatibility macros for
9600         CLooG Legacy.
9601         (clast_name_p): New.
9602         (clast_expr_term): New.
9603         (clast_expr_red): New.
9604         (clast_expr_bin): New.
9605         (clast_pprint): New.
9606
9607 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
9608
9609         * graphite-clast-to-gimple.c (set_cloog_options): Make CLooG options
9610         compatible to newer CLooG releases (CLOOG_ORG).
9611         (build_cloog_prog): Pass CloogOptions to more functions (CLOOG_ORG).
9612         (scop_to_clast): Pass CloogOptions to build_cloog_prog (CLOOG_ORG).
9613         * graphite-cloog-compat.h: Add compatibility macros for CLooG Legacy.
9614         (build_cloog_prog) : New.
9615         (cloog_program_extract_scalars): New.
9616         (cloog_program_scatter): New.
9617
9618 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
9619
9620         * graphite-clast-to-gimple.c: Include graphite-cloog-compat.h
9621         conditionally (CLOOG_ORG).
9622         * graphite-cloog-compat.h: New.  Include graphite-cloog-compat.h.
9623         (cloog_statement_usr): New.
9624         (cloog_domain): Same.
9625         (cloog_set_domain): Same.
9626         (cloog_next_domain): Same.
9627         (cloog_set_next_domain): Same.
9628         (cloog_program_nb_scattdims): Same.
9629         (cloog_program_set_nb_scattdims): Same.
9630         (cloog_program_names): Same.
9631         (cloog_program_set_names): Same.
9632         (cloog_program_set_context): Same.
9633         (cloog_program_set_loop): Same.
9634         (cloog_program_blocklist): Same.
9635         (cloog_program_set_blocklist): Same.
9636         (cloog_program_scaldims): Same.
9637         (cloog_program_set_scaldims): Same.
9638         (cloog_names_nb_parameters): Same.
9639         (cloog_names_set_nb_parameters): Same.
9640         (cloog_names_parameters): Same.
9641         (cloog_names_set_parameters): Same.
9642         (cloog_names_set_nb_iterators): Same.
9643         (cloog_names_set_iterators): Same.
9644         (cloog_names_set_nb_scattering): Same.
9645         (cloog_names_set_scattering): Same.
9646         (cloog_statement_set_usr): Same.
9647         (cloog_loop_set_next): Same.
9648         (cloog_loop_set_domain): Same.
9649         (cloog_loop_set_block): Same.
9650         (cloog_block_list_next): Same.
9651         (cloog_block_list_set_next):
9652         (cloog_block_list_set_block): Same.
9653
9654 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
9655
9656         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Returns
9657         a bool.
9658         (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
9659         (rewrite_commutative_reductions_out_of_ssa_loop): Same.
9660         (rewrite_cross_bb_scalar_deps_out_of_ssa): Call scev_reset_htab
9661         when something has been changed.
9662         (rewrite_commutative_reductions_out_of_ssa): Same.
9663
9664 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
9665
9666         * graphite-sese-to-poly.c (propagate_expr_outside_region): Also
9667         handle the case when def is in the sese region.
9668         (rewrite_close_phi_out_of_ssa): Call propagate_expr_outside_region
9669         for invariant expressions.
9670         (rewrite_cross_bb_phi_deps): Removed.
9671         (rewrite_cross_bb_scalar_deps): Also handle GIMPLE_PHI nodes.
9672         (rewrite_cross_bb_scalar_deps_out_of_ssa): Do not call
9673         rewrite_cross_bb_phi_deps.
9674
9675 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
9676
9677         * graphite-sese-to-poly.c
9678         (rewrite_commutative_reductions_out_of_ssa_loop): Call
9679         scev_analyzable_p only on is_gimple_reg
9680
9681 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
9682
9683         * graphite-sese-to-poly.c (propagate_expr_outside_region): New.
9684         (rewrite_close_phi_out_of_ssa): Propagate constant values or
9685         parametric expressions outside the scop region.
9686         (rewrite_cross_bb_scalar_deps): Same.
9687         * sese.c (rename_uses): Use NULL_TREE instead of NULL for trees.
9688
9689 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
9690
9691         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Use
9692         SSA_NAME_DEF_STMT only on SSA_NAMEs.
9693
9694 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
9695
9696         * tree-scalar-evolution.c (instantiate_scev_name): Do not
9697         instantiate default definitions.
9698
9699 2010-08-11  Vladimir Kargov  <kargov@gmail.com>
9700             Sebastian Pop  <sebastian.pop@amd.com>
9701
9702         * cfgloop.c (is_loop_exit): Renamed loop_exits_to_bb_p.
9703         (loop_exits_from_bb_p): New.
9704         * cfgloop.h (is_loop_exit): Renamed loop_exits_to_bb_p.
9705         (loop_exits_from_bb_p): Declared.
9706         * graphite-scop-detection.c (scopdet_basic_block_info): Call
9707         loop_exits_to_bb_p.
9708
9709 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
9710
9711         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add an
9712         extra parameter for the region.  Call scev_analyzable_p.
9713         (rewrite_reductions_out_of_ssa): Update call to
9714         rewrite_close_phi_out_of_ssa.
9715         (rewrite_cross_bb_phi_deps): Same.
9716         (rewrite_commutative_reductions_out_of_ssa_loop): Add an extra
9717         parameter for the region.  Call scev_analyzable_p.
9718         (rewrite_commutative_reductions_out_of_ssa): Update call to
9719         rewrite_commutative_reductions_out_of_ssa_loop.
9720
9721 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
9722
9723         * sese.c (rename_uses): Call unshare_expr before force_gimple_operand.
9724
9725 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
9726
9727         * graphite-sese-to-poly.c (reduction_phi_p): Do not rewrite out of
9728         SSA scalar phi nodes that can be scev_analyzable_p.
9729
9730 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
9731
9732         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Correctly
9733         handle SSA_NAME_IS_DEFAULT_DEF.
9734
9735 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
9736
9737         * sese.c (rename_uses): Handl unconditionally gimple_debug statements.
9738
9739 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
9740
9741         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Special
9742         case non close-phi nodes with one argument.
9743
9744 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
9745
9746         * sese.h (scev_analyzable_p): Scevs could be expressions without
9747         chrecs and still be scev_analyzable_p.
9748
9749 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
9750
9751         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
9752
9753 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
9754
9755         * cfgloop.c (alloc_loop): Remove initialization of loop->single_iv.
9756         * cfgloop.h (struct loop): Remove single_iv field.
9757         * graphite-sese-to-poly.c (graphite_loop_normal_form): Removed.
9758         (scop_canonicalize_loops): Removed.
9759         (scop_ivs_can_be_represented): Do not use loop->single_iv.  Iterate
9760         over all the loop phi nodes in loop->header.
9761         (build_poly_scop): Remove use of scop_canonicalize_loops.
9762
9763 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
9764
9765         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Also
9766         handle GIMPLE_CALL.
9767
9768 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
9769
9770         * tree-chrec.c (chrec_apply): Should only apply to the specified
9771         variable.  Also handle multivariate chains of recurrences that
9772         satisfy evolution_function_is_affine_p.  Also handle CASE_CONVERT.
9773
9774 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
9775
9776         * graphite-clast-to-gimple.c (debug_clast_name_index): Removed.
9777         (debug_clast_name_indexes_1): Removed.
9778         (debug_clast_name_indexes): Removed.
9779         (pbb_to_depth_to_oldiv): Removed.
9780         (build_iv_mapping): Replace the use of rename_map with iv_map.
9781         (translate_clast_user): Remove uses of rename_map.  Allocate and
9782         free iv_map.
9783         (translate_clast_for_loop): Remove uses of rename_map.
9784         (translate_clast_for): Same.
9785         (translate_clast_guard): Same.
9786         (translate_clast): Same.
9787         (gloog): Same.
9788         * graphite-clast-to-gimple.h (debug_clast_name_indexes): Removed.
9789         * graphite-sese-to-poly.c (scev_analyzable_p): Moved...
9790         * sese.c (set_rename): Now static.
9791         (rename_variables_in_stmt): Removed.
9792         (rename_uses): New.
9793         (is_parameter): Removed.
9794         (is_iv): Removed.
9795         (expand_scalar_variables_call): Removed.
9796         (expand_scalar_variables_ssa_name): Removed.
9797         (expand_scalar_variables_expr): Removed.
9798         (expand_scalar_variables_stmt): Removed.
9799         (expand_scalar_variables): Removed.
9800         (rename_variables): Removed.
9801         (remove_condition): Removed.
9802         (get_true_edge_from_guard_bb): Removed.
9803         (get_false_edge_from_guard_bb): Removed.
9804         (struct igp): Removed.
9805         (default_before_guard): Removed.
9806         (convert_for_phi_arg): Removed.
9807         (add_guard_exit_phis): Removed.
9808         (insert_guard_phis): Removed.
9809         (graphite_copy_stmts_from_block): Now also uses iv_map and a
9810         region.  Do not copy conditions.  Do not copy induction variables.
9811         Call rename_uses.
9812         (copy_bb_and_scalar_dependences): Allocate a local rename_map for
9813         the translated statement.  Use the iv_map for the induction
9814         variable renaming.
9815         * sese.h (copy_bb_and_scalar_dependences): Update declaration.
9816         (set_rename): Removed declaration.
9817         (scev_analyzable_p): ...here.
9818         * tree-chrec.c (chrec_apply_map): New.
9819         * tree-chrec.h (chrec_apply_map): Declared.
9820
9821 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
9822
9823         * graphite-clast-to-gimple.c (translate_clast_for_loop): Do not call
9824         insert_loop_close_phis.
9825         * sese.c (name_defined_in_loop_p): Removed.
9826         (expr_defined_in_loop_p): Removed.
9827         (alive_after_loop): Removed.
9828         (close_phi_not_yet_inserted_p): Removed.
9829         (struct alep): Removed.
9830         (add_loop_exit_phis): Removed.
9831         (insert_loop_close_phis): Removed.
9832
9833 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
9834
9835         * graphite-cloog-util.c
9836         (cloog_matrix_to_ppl_constraint): Fix flipped condition.
9837         * graphite-poly.c
9838         (psct_scattering_dim_for_loop_depth): Same.
9839
9840 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
9841
9842         * graphite-cloog-util.h: Added cloog.h.
9843         * graphite-blocking.c: Removed cloog.h.
9844         * graphite-dependences.c: Same.
9845         * graphite-interchange.c: Same.
9846         * graphite-poly.c: Same.
9847         * graphite-ppl.c: Same.
9848         * graphite-scop-detection.c: Same.
9849         * graphite-sese-to-poly.c:
9850         Removed cloog.h.
9851         Removed graphite-clast-to-gimple.h.
9852         (check_poly_representation): Removed (unused).
9853         * graphite-sese-to-poly.h
9854         (check_poly_representation): Removed (unused).
9855
9856 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
9857
9858         * Makefile.in (OBJS-common): Added graphite-cloog-util.o.
9859         (graphite-clast-to-gimple.o): Added graphite-cloog-util.h.
9860         (graphite-cloog-util.o): New.
9861         (graphite-ppl.o): Added graphite-cloog-util.h.
9862         * graphite-clast-to-gimple.c:
9863         Added graphite-cloog-util.h to include statements.
9864         * graphite-cloog-util.c: New.
9865         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.c.
9866         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
9867         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
9868         (new_C_Polyhedron_from_Cloog_Matrix): Same.
9869         (insert_constraint_into_matrix): Same.
9870         (ppl_Constrain_System_number_of_constraints): Same.
9871         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
9872         (oppose_constraint): Same.
9873         (cloog_matrix_to_ppl_constraint): Same.
9874         (new_Constraint_System_from_Cloog_Matrix): Same.
9875         * graphite-cloog-util.h: New.
9876         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.h.
9877         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
9878         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
9879         (new_C_Polyhedron_from_Cloog_Matrix): Same.
9880         (insert_constraint_into_matrix): Same.
9881         * graphite-ppl.c:
9882         Added graphite-cloog-util.h to include statements.
9883         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to graphite-cloog-util.c.
9884         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
9885         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
9886         (new_C_Polyhedron_from_Cloog_Matrix): Same.
9887         (insert_constraint_into_matrix): Same.
9888         (ppl_Constrain_System_number_of_constraints): Same.
9889         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
9890         (oppose_constraint): Same.
9891         (cloog_matrix_to_ppl_constraint): Same.
9892         (new_Constraint_System_from_Cloog_Matrix): Same.
9893         * graphite-ppl.h:
9894         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to
9895         graphite-cloog-util.h.
9896         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
9897         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
9898         (new_C_Polyhedron_from_Cloog_Matrix): Same.
9899         (insert_constraint_into_matrix): Same.
9900
9901 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
9902
9903         * graphite-clast-to-gimple.c
9904         (precision_for_value): Resolve value_* calls to matching mpz_* calls.
9905         (precision_for_interval): Same.
9906         (gcc_type_for_interval): Same.
9907         (compute_type_for_level): Same.
9908         * graphite-interchange.c
9909         (lst_interchange_profitable_p): Same.
9910         * graphite-poly.c
9911         (psct_scattering_dim_for_loop_depth): Same.
9912         * graphite-ppl.c
9913         (ppl_max_for_le_pointset): Same.
9914         (ppl_min_for_le_pointset): Same.
9915
9916 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
9917
9918         * graphite-sese-to-poly.c (rewrite_degenerate_phi): New.
9919         (rewrite_reductions_out_of_ssa): Call it for degenerate_phi_result.
9920
9921 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
9922
9923         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Call
9924         rewrite_close_phi_out_of_ssa.
9925
9926 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
9927
9928         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Remove dead code.
9929
9930 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
9931
9932         * graphite-clast-to-gimple.c (build_iv_mapping): Rename map with
9933         rename_map.
9934         * sese.c (debug_rename_map): Same.
9935         (get_rename): Same.
9936         (set_rename): Same.
9937         (rename_variables_in_stmt): Same.
9938         (expand_scalar_variables_call): Same.
9939         (expand_scalar_variables_ssa_name): Same.
9940         (expand_scalar_variables_expr): Same.
9941         (expand_scalar_variables_stmt): Same.
9942         (expand_scalar_variables): Same.
9943         (rename_variables): Same.
9944         (graphite_copy_stmts_from_block): Same.
9945         (copy_bb_and_scalar_dependences): Same.
9946
9947 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
9948
9949         * graphite-clast-to-gimple.c (copy_renames): Removed.
9950         (translate_clast_for): Do not call copy_renames.
9951         (translate_clast_guard): Same.
9952
9953 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
9954
9955         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Moved up.
9956         (rewrite_cross_bb_phi_deps): Split out of rewrite_cross_bb_scalar_deps.
9957         (rewrite_cross_bb_scalar_deps_out_of_ssa): Run rewrite_cross_bb_phi_deps
9958         before rewrite_cross_bb_scalar_deps.
9959
9960 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
9961
9962         * graphite-sese-to-poly.c (rewrite_commutative_reductions_out_of_ssa):
9963         Early return in when flag_associative_math is not set.
9964
9965 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
9966
9967         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Always insert out
9968         of SSA copies on edges except for loop->latch.
9969
9970 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
9971
9972         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps_out_of_ssa):
9973         Split out of rewrite_reductions_out_of_ssa.
9974         * graphite-sese-to-poly.h (rewrite_cross_bb_scalar_deps_out_of_ssa):
9975         Declared.
9976         * graphite.c (graphite_transform_loops): Call it.
9977
9978 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
9979
9980         * graphite.c (graphite_transform_loops): Add two more dbg_cnt calls.
9981
9982 2010-08-11  Alexander Monakov  <amonakov@ispras.ru>
9983
9984         * dbgcnt.def (graphite_scop): New counter.
9985         * graphite.c: Include dbgcnt.h.
9986         (graphite_transform_loops): Use new counter to limit transformations.
9987         * Makefile.in (graphite.o): Depend on DBGCNT_H.
9988
9989 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
9990
9991         * passes.c (init_optimization_passes): Add pass_graphite.
9992         Schedule a pass_copy_prop before pass_graphite_transforms.
9993         * timevar.def (TV_GRAPHITE): Declared.
9994         * tree-pass.h (pass_graphite): Declared.
9995         * tree-ssa-loop.c (pass_graphite): New.
9996
9997 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
9998
9999         * graphite-clast-to-gimple.c (gloog): Do not pass scops in parameter.
10000         Remove calls to rename_nb_iterations and rename_sese_parameters.
10001         * graphite-clast-to-gimple.h (gloog): Update declaration.
10002         * graphite.c (graphite_transform_loops): Update call to gloog.
10003         * sese.c (rename_variables_in_expr): Removed.
10004         (rename_nb_iterations): Removed.
10005         (rename_sese_parameters): Removed.
10006         * sese.h (rename_nb_iterations): Removed.
10007         (rename_sese_parameters): Removed.
10008
10009 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
10010
10011         * graphite-clast-to-gimple.c (gloog): Remove call to
10012         sese_adjust_liveout_phis.
10013         * graphite-sese-to-poly.c (scev_analyzable_p): When scev returns an
10014         SSA_NAME, allow it to be handled by rewrite_cross_bb_scalar_deps.
10015         (rewrite_cross_bb_scalar_deps): Handle GIMPLE_PHI nodes: call
10016         rewrite_phi_out_of_ssa.
10017         * sese.c (get_vdef_before_sese): Removed.
10018         (sese_adjust_vphi): Removed.
10019         (sese_adjust_liveout_phis): Removed.
10020         * sese.h (sese_adjust_liveout_phis): Removed.
10021
10022 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
10023
10024         * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Pass an extra
10025         argument for the place after which to insert the out of SSA copy.
10026         (rewrite_close_phi_out_of_ssa): Update calls to insert_out_of_ssa_copy.
10027         (rewrite_phi_out_of_ssa): Same.
10028         (rewrite_cross_bb_scalar_deps): Same.
10029         (insert_copyout): Removed.
10030         (insert_copyin): Removed.
10031         (translate_scalar_reduction_to_array): Call insert_out_of_ssa_copy and
10032         insert_out_of_ssa_copy_on_edge instead of insert_copyout and
10033         insert_copyin.
10034
10035 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
10036
10037         * graphite-sese-to-poly.c (build_scop_bbs): Not static anymore.
10038         (rewrite_reductions_out_of_ssa): Same.
10039         (rewrite_commutative_reductions_out_of_ssa): Same.
10040         (build_poly_scop): Do not call these functions.
10041         * graphite-sese-to-poly.h (build_poly_scop): Declared.
10042         (rewrite_reductions_out_of_ssa): Declared.
10043         (rewrite_commutative_reductions_out_of_ssa): Declared.
10044         * graphite.c (graphite_transform_loops): Call on every scop
10045         rewrite_commutative_reductions_out_of_ssa before calling
10046         rewrite_reductions_out_of_ssa and build_scop_bbs.
10047
10048 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
10049
10050         * graphite-dependences.c (dot_deps): Make system call to dotty run
10051         in background.
10052         (dot_deps_stmt): Same.
10053         * graphite-poly.c (dot_lst): Same.
10054
10055 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
10056
10057         * graphite-sese-to-poly.c (loop_entry_phi_arg): Renamed
10058         phi_arg_in_outermost_loop.
10059         (remove_simple_copy_phi): Call phi_arg_in_outermost_loop.
10060         (remove_invariant_phi): Same.
10061
10062 2010-08-11  Anatoly Sokolov  <aesok@post.ru>
10063
10064         * target.def (output_addr_const_extra): New hook.
10065         * doc/tm.texi.in (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Document.
10066         * doc/tm.texi: Regenerate.
10067         * targhooks.c (default_asm_output_addr_const_extra): New function.
10068         * targhooks.h (default_asm_output_addr_const_extra): Declare.
10069         * final.c (output_addr_const): Use TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA
10070         target hook.
10071
10072         * config/i386/i386.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
10073         * config/i386/i386-protos.h (output_addr_const_extra): Remove.
10074         * config/i386/i386.h (output_addr_const_extra): Rename to...
10075         (i386_asm_output_addr_const_extra): ...this. Make static.
10076         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
10077
10078 2010-08-11  Richard Henderson  <rth@redhat.com>
10079
10080         * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): New.
10081
10082 2010-08-11  Nick Clifton  <nickc@redhat.com>
10083
10084         * config/stormy16/stormy16-lib2.c (__cmpsi2): New function.
10085         * config/stormy16/stormy16-lib2-cmpsi2.c: New file.
10086         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
10087         stormy16-lib2-cmpsi.c.
10088
10089         * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Change to
10090         -O2.
10091
10092 2010-08-11  Joseph Myers  <joseph@codesourcery.com>
10093
10094         * opts.h (struct cl_option_handler_func): Make handler take
10095         cl_decoded_option structure as parameter, not individual elements.
10096         (struct cl_option_handlers): Make callbacks take cl_decoded_option
10097         structure as parameter, not individual elements.
10098         (handle_option): Take cl_decoded_option structure as parameter,
10099         not individual elements.
10100         (handle_generated_option): Declare.
10101         * opts-common.c (handle_option): Take cl_decoded_option structure
10102         as parameter, not individual elements.  Update calls to callback
10103         and handler functions.
10104         (handle_generated_option): New.
10105         (read_cmdline_option): Update calls to callback functions and
10106         handle_option.
10107         * opts.c (common_handle_option, complain_wrong_lang,
10108         unknown_option_callback, post_handling_callback,
10109         lang_handle_option, target_handle_option): Take cl_decoded_option
10110         structure as parameter, not individual elements.
10111         (lang_handle_option, target_handle_option, common_handle_option):
10112         Assert option has at most one argument.
10113         (enable_warning_as_error): Call handle_generated_option instead of
10114         handle_option.  Do not pass -Werror argument as argument of
10115         generated option.
10116
10117 2010-08-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10118
10119         * config/pa/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
10120         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
10121         (SUBWORD_BOOL_CAS): Likewise.
10122         (SUBWORD_SYNC_OP): Likewise.
10123         (SUBWORD_TEST_AND_SET): Likewise.
10124         (FETCH_AND_OP_WORD): Parenthesise INF_OP
10125         (SUBWORD_SYNC_OP): Likewise.
10126         (OP_AND_FETCH_WORD): Likewise.
10127
10128 2010-08-10  Xinliang David Li  <davidxl@google.com>
10129
10130         * tree-ssa-loop-ivopts.c (get_address_cost): Properly
10131         compute max/min offset in address.
10132
10133 2010-08-10  Vladimir Makarov  <vmakarov@redhat.com>
10134
10135         * ira-live.c: Include sbitmap.h.
10136         (remove_some_program_points_and_update_live_ranges): Use sbitmaps.
10137         Compress live ranges even more.
10138
10139 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
10140
10141         * coverage.c (ctr_labels): Delete.
10142
10143 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
10144
10145         PR bootstrap/45177
10146         * config/arm/arm.c (multiple_operation_profitable_p): Move xscale
10147         test here from arm_gen_load_multiple_1.
10148         (arm_gen_load_multiple_1, arm_gen_store_multiple_1): Use
10149         multiple_operation_profitable_p.
10150
10151 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
10152
10153         * tree-ssa-pre.c (init_pre): Call alloc_aux_for_blocks.
10154         (fini_pre): Call free_aux_for_blocks.  Delete unused bb variable.
10155
10156 2010-08-10  Richard Henderson  <rth@redhat.com>
10157
10158         * config/i386/i386.c (ix86_compute_frame_layout): Re-align stack
10159         after saving registers.  Assert that SSE registers are only saved
10160         with a sufficiently aligned frame.
10161         (ix86_emit_save_reg_using_mov): Assert realigned only with DRAP;
10162         remove stack_realign_fp handling.
10163         (ix86_expand_prologue): Save int registers before stack_realign_fp,
10164         and do not mark the stack alignment as frame related.
10165         (ix86_expand_epilogue): SP is now invalid with stack_realign_fp.
10166
10167         * dwarf2out.c (dwarf2out_frame_debug_expr): Flush queued register
10168         saves when re-aligning the stack.
10169
10170 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
10171
10172         * basic-block.h (alloc_aux_for_block, alloc_aux_for_edge): Delete.
10173         * cfg.c (alloc_aux_for_block, alloc_aux_for_edge): Make static.
10174         (alloc_aux_for_blocks, clear_aux_for_blocks): Use FOR_ALL_BB.
10175
10176 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
10177
10178         * dwarf2out.c (struct die_struct): Move die_tag to the end.
10179
10180 2010-08-09  Sofiane Naci  <sofiane.naci@arm.com>
10181
10182         * config/arm/iterators.md: New file.
10183         * config/arm/arm.md: Include iterators.md.
10184         (QHSI): Move to new file.
10185         (LTUGEU, cnb, optab, ior_xor): Likewise.
10186         * config/arm/iwmmxt.md (VMMX): Move to new file.
10187         (VSHFT, MMX_char): Likewise.
10188         * config/arm/neon.md (VD): Move to new file.
10189         (VDX, VDI, VQ, VQX, VQI, VQXMOV, VSTRUCT, VTAB, V_TAB_n, VW): Likewise.
10190         (VN, VDQ, VDQW, VDQIW, VCVTF, VCVTI, VMD, VMQ, VMDQ, VMDI): Likewise.
10191         (VMDQI, VX, VE, V64, V32, V_CVTTO, V_elem, V_ext): Likewise.
10192         (V_two_elem, V_three_elem, V_four_elem, V_req, V_widen): Likewise.
10193         (V_narrow, V_HALF, V_half,V_DOUBLE, V_double): Likewise.
10194         (V_double_width, V_cmp_result, V_if_elem, V_s_elem): Likewise.
10195         (V_u_elem, V_uf_sclr, V_sz_elem, VD_dup): Likewise.
10196         (V_PAIR, vqh_ops, vqhs_ops, VQH_mnem, VQH_sign, V_suf64): Likewise.
10197         (scalar_mul_constraint,Is_float_mode, Scalar_mul_8_16): Likewise.
10198         (Is_d_reg, V_mode_nunits): Likewise.
10199         * config/arm/vec-common.md (VALL): Move to new file.
10200         (VALLW, VINT, VINTW): Likewise.
10201
10202 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
10203
10204         PR middle-end/45182
10205         * combine.c (make_compound_operation): Don't try to convert
10206         shifts into multiplications for modes that aren't SCALAR_INT_MODE_P.
10207
10208 2010-08-10  Richard Guenther  <rguenther@suse.de>
10209
10210         * tree.h (get_object_alignment): Adjust prototype.
10211         * builtins.c (get_object_alignment): Return unsigned int,
10212         drop the align parameter.  Handle MEM_REF, MISALIGNED_INDIRECT_REF
10213         and TARGET_MEM_REF properly.
10214         (get_pointer_alignment): Adjust.
10215         * emit-rtl.c (get_mem_align_offset): Adjust comment.
10216         (set_mem_attributes_minus_bitpos): Adjust.
10217         * tree-ssa-ccp.c (get_value_from_alignment): Adjust.
10218
10219 2010-08-10  Richard Guenther  <rguenther@suse.de>
10220
10221         * tree-ssa-copy.c (set_copy_of_val): Use operand_equal_p.
10222         (copy_prop_visit_assignment): Simplify.
10223         (copy_prop_visit_stmt): Also visit assignments from
10224         constants.
10225         (copy_prop_visit_phi_node): Use operand_equal_p.
10226
10227 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
10228
10229         * ipa-split.c (find_split_points): Free stack.
10230
10231 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
10232
10233         * tree.h (tree_node_kind) [perm_list_kind,temp_list_kind]: Delete.
10234         * tree.c (tree_node_kind): Delete corresponding entries.
10235
10236 2010-08-09  H.J. Lu  <hongjiu.lu@intel.com>
10237
10238         * alias.c (may_alias_p): Remove unused ret.
10239
10240 2010-08-09  Bingfeng Mei  <bmei@broadcom.com>
10241
10242         * ddg.c (walk_mems_2): Moved from alias.c, use may_alias_p instead of
10243         alias_sets_conflict_p.
10244         (walk_mems_1): Moved from alias.c.
10245         (insns_may_alias_p): New function, originally insn_alias_sets_conflict_p
10246         in alias.c.
10247         (add_inter_loop_mem_dep): Use insns_may_alias_p now.
10248         * cse.c (cse_insn): New argument in calling nonoverlapping_memrefs_p.
10249         * alias.c (walk_mems_2): Moved to ddg.c.
10250         (walk_mems_1): Ditto.
10251         (insn_alias_sets_conflict_p): Renamed to insns_may_alias_p and moved
10252         to ddg.c.
10253         (nonoverlapping_memrefs_p): Add flag to guard offset-based memory
10254         disambiguation.
10255         *(may_alias_p): New function to check whether two memory expression
10256         may alias or not. Currently used in buidling inter-iteration memory
10257         dependence.
10258         *alias.h (nonoverlapping_memrefs_p): New flag as third argument.
10259         (insn_alias_sets_conflict_p): Removed
10260         *rtl.h (may_alias_p): New function prototype.
10261
10262 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
10263
10264         * tree.c (nreverse): Assert that we don't have a BLOCK.
10265
10266 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
10267
10268         * builtins.c (fold_builtin_next_arg): Use stdarg_p.
10269         * config/arm/arm.c (arm_get_pcs_model): Likewise.
10270         * config/avr/avr.c (init_cumulative_args): Likewise.
10271         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
10272         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
10273         * config/m68k/m68k.c (m68k_return_pops_args): Likewise.
10274         * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
10275         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
10276         * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
10277         * config/rs6000/rs6000.c (init_cumulative_args): Likewise.
10278         * dwarf2out.c (gen_subprogram_die): Likewise.
10279         * function.c (allocate_struct_function): Likewise.
10280         * c-aux-info.c (gen_formal_list_for_func_dec): Likewise.
10281         (deserves_ellipsis): Delete.
10282
10283 2010-08-09  Richard Guenther  <rguenther@suse.de>
10284
10285         * tree-ssa-copy.c (cached_last_copy_of): Remove.
10286         (valueize_val): New function.
10287         (get_last_copy_of): Remove.
10288         (set_copy_of_val): Simplify.
10289         (dump_copy_of): Likewise.
10290         (copy_prop_visit_cond_stmt): Use valueize_val.
10291         (copy_prop_visit_phi_node): Properly handle unvisited names.
10292         Drop code managing copy-of chains.
10293         (init_copy_prop): Adjust.
10294         (fini_copy_prop): Likewise.
10295         (execute_copy_prop): Remove obsolete comment.
10296
10297 2010-08-09  Richard Guenther  <rguenther@suse.de>
10298
10299         PR middle-end/44632
10300         * function.c (gimplify_parameters): Do not clear addressable
10301         bit of the original parameter.
10302
10303 2010-08-09  Richard Guenther  <rguenther@suse.de>
10304
10305         PR middle-end/45212
10306         * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust
10307         alignment from MEM_REF offset only if we took it from the
10308         base object.
10309
10310 2010-08-09  Eric Fisher  <joefoxreal@gmail.com>
10311
10312         * doc/sourcebuild.texi (vect_int_mult): Remove duplicate entry.
10313
10314 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
10315
10316         * c-tree.h (build_arg_info): Declare.
10317         * c-decl.c (build_arg_info): Define.
10318         (get_parm_info): Call it.  Delete initialization code.
10319         * c-parser.c (c_parser_parms_declarator): Likewise.
10320         (c_parser_parms_list_declaractor): Likewise.
10321
10322 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
10323
10324         * c-tree.h (c_arg_tag): Define.  Define a VEC containing it.
10325         (struct c_arg_info): Change type of tags field.
10326         * c-decl.c (grokdeclarator): Update for changed type of tags field.
10327         (get_parm_info): Likewise.
10328         (store_parm_decls_newstyle): Likewise.
10329
10330 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
10331
10332         * config/rs6000/rs6000.c (branch_island): Define.  Define a VEC of it.
10333         (branch_island_list): Delete.
10334         (branch_islands): Declare.
10335         (add_compiler_branch_island): Adjust for branch_islands instead of
10336         branch_island_list.
10337         (macho_branch_islands): Likewise.
10338         (no_previous_def): Likewise.
10339         (get_prev_label): Likewise.
10340
10341 2010-08-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10342
10343         PR boehm-gc/34544
10344         * gthr-posix.h (__gthread_start): Delete.
10345         (__gthread_active_init): Use pthread_default_stacksize_np instead of
10346         pthread_create to determine if hpux pthreads are active.
10347         * gthr-posix95.h (__gthread_start): Delete.
10348         (__gthread_active_init): Likewise use pthread_default_stacksize_np.
10349
10350 2010-08-08  Kai Tietz  <kai.tietz@onevision.com>
10351
10352         * config/i386/mingw32.h ((EXTRA_OS_CPP_BUILTINS): Define
10353         _WIN64 not expanded.
10354
10355 2010-08-07  Uros Bizjak  <ubizjak@gmail.com>
10356             H.J. Lu  <hongjiu.lu@intel.com>
10357
10358         PR target/45213
10359         * config/i386/i386.c (ix86_print_operand): Handle 'q' operand modifier
10360         to output 32bit SFmode immediate as 8 byte sign extended value.
10361
10362 2010-08-07  Marcus Shawcroft  <marcus.shawcroft@arm.com>
10363
10364         * config/arm/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
10365         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
10366         (SUBWORD_BOOL_CAS): Likewise.
10367         (SUBWORD_SYNC_OP): Likewise.
10368         (SUBWORD_TEST_AND_SET): Likewise.
10369         (FETCH_AND_OP_WORD): Parenthesise INF_OP
10370         (SUBWORD_SYNC_OP): Likewise.
10371         (OP_AND_FETCH_WORD): Likewise.
10372
10373 2010-08-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10374
10375         * config/arm/cortex-a9.md: Rewrite VFP Pipeline description.
10376         * config/arm/arm.c (arm_xscale_tune): Initialize sched_adjust_cost.
10377         (arm_fastmul_tune,arm_slowmul_tune, arm_9e_tune): Likewise.
10378         (arm_adjust_cost): Split into xscale_sched_adjust_cost and a
10379         generic part.
10380         (cortex_a9_sched_adjust_cost): New function.
10381         (xscale_sched_adjust_cost): New function.
10382         * config/arm/arm-protos.h (struct tune_params): New field
10383         sched_adjust_cost.
10384         * config/arm/arm-cores.def: Adjust costs for cortex-a9.
10385
10386 2010-08-06  Eric Botcazou  <ebotcazou@adacore.com>
10387
10388         PR target/44942
10389         * config/sparc/sparc.c (function_arg_advance): Always take into account
10390         the padding, if any.
10391
10392 2010-08-06  Richard Guenther  <rguenther@suse.de>
10393
10394         * tree-ssa-ccp.c (struct prop_value_d): Add mask member.
10395         (dump_lattice_value): Dump it.
10396         (get_default_value): Adjust.
10397         (get_constant_value): Likewise.
10398         (set_value_varying): Likewise.
10399         (set_lattice_value): Make sure to not go up the lattice
10400         with bitwise constant values.
10401         (get_value_for_expr): Handle ADDR_EXPRs.
10402         (value_to_double_int): New function.
10403         (get_value_from_alignment): Likewise.
10404         (do_dbg_cnt): Adjust.
10405         (ccp_lattice_meet): Handle partially constant values.
10406         (bit_value_unop_1): New function.
10407         (bit_value_binop_1): Likewise.
10408         (bit_value_unop): Likewise.
10409         (bit_value_binop): Likewise.
10410         (evaluate_stmt): Track partially constant values if
10411         flag_tree_bit_ccp is set.
10412         (ccp_fold_stmt): Dump if we folded a predicate.
10413         (ccp_visit_stmt): Adjust.
10414         * common.opt (ftree-bit-ccp): New flag.
10415         * doc/invoke.texi (ftree-bit-ccp): Document.
10416         * opts.c (decode_options): Enable bit-CCP at -O1.
10417
10418 2010-08-06  Alan Modra  <amodra@gmail.com>
10419
10420         * doc/invoke.texi (RS/6000 and PowerPC Options): Rewrite -mrelocatable
10421         and -mrelocatable-lib description.
10422
10423 2010-08-05  Bernd Schmidt  <bernds@codesourcery.com>
10424
10425         From Martin Thuresson  <martint@google.com>
10426         * postreload.c (reload_cse_simplify_operands): Use
10427         SET_REGNO_RAW instead of SET_REGNO.
10428         * caller-save.c (reg_save_code): Use SET_REGNO_RAW instead of
10429         SET_REGNO.
10430         * ira.c (setup_prohibited_mode_move_regs): Use SET_REGNO_RAW
10431         instead of SET_REGNO.
10432         * rtl.h (SET_REGNO_RAW): New macro.
10433
10434 2010-08-05  Eric Botcazou  <ebotcazou@adacore.com>
10435
10436         * rtlanal.c (nonzero_bits1): Use unsigned HOST_WIDE_INT in all mask
10437         computations.  Fix formatting issues.
10438         (num_sign_bit_copies1): Likewise.
10439         (canonicalize_condition): Likewise.
10440
10441 2010-08-05  Richard Henderson  <rth@redhat.com>
10442
10443         * toplev.h (ctz_hwi, clz_hwi, ffs_hwi): New.
10444         (floor_log2): Use clz_hwi.
10445         (exact_log2): Use ctz_hwi.
10446         * toplev.c (ctz_hwi, clz_hwi, ffs_hwi): New.
10447         * builtins.c (fold_builtin_bitop): Use them.
10448         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
10449         * combine.c (get_pos_from_mask): Use ctz_hwi.
10450         * double-int.c (double_int_ctz): Likewise.
10451         * explow.c (force_reg): Likewise.
10452         * tree.h (SET_DECL_OFFSET_ALIGN): Use ffs_hwi.
10453
10454 2010-08-05  Richard Henderson  <rth@redhat.com>
10455
10456         PR target/45189
10457         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Make sure
10458         the alignment constant is properly sign-extended.
10459
10460 2010-08-05  Richard Guenther  <rguenther@suse.de>
10461
10462         * expr.c (store_expr): Use emit_block_move only if both
10463         source and target are MEMs.  Use store_bit_field if only
10464         the target is a MEM.
10465
10466 2010-08-05  Richard Henderson  <rth@redhat.com>
10467
10468         PR debug/45188
10469         * dwarf2out.c (DWARF2_UNWIND_INFO): Provide default definition.
10470         (INCOMING_RETURN_ADDR_RTX): Likewise.
10471         (dwarf2out_do_frame): Remove conditional compilation.
10472         (dwarf2out_frame_init): Likewise.
10473
10474 2010-08-05  Nicolas Setton  <setton@adacore.com>
10475
10476         * gcov.c (flag_display_progress): New static variable.
10477         (main): Display progress info on standard output if requested.
10478         (options): Add -d/--display-progress.
10479         (print_usage): Print them.
10480         (process_args): Handle them.
10481         * doc/gcov.texi: Document them.
10482
10483 2010-08-05  Martin Jambor  <mjambor@suse.cz>
10484
10485         * ipa-cp.c (ipcp_discover_new_direct_edges): New function.
10486         (ipcp_insert_stage): Redirect only edges not flagged with
10487         indirect_inlining_edge.  Call ipcp_discover_new_direct_edges for all
10488         discovered constants.
10489
10490 2010-08-05  Martin Jambor  <mjambor@suse.cz>
10491
10492         * ipa-prop.h (enum ipa_lattice_type): Changed comments.
10493         (struct ipa_param_descriptor): New fields types and
10494         cannot_devirtualize.
10495         (ipa_param_cannot_devirtualize_p): New function.
10496         (ipa_param_types_vec_empty): Likewise.
10497         (ipa_make_edge_direct_to_target): Declare.
10498         * ipa-cp.c: Fixed first stage driver name in initial comment,
10499         described devirtualization there too.
10500         (ipcp_analyze_node): Call ipa_analyze_params_uses.
10501         (ipcp_print_all_lattices): Print devirtualization info.
10502         (ipa_set_param_cannot_devirtualize): New function.
10503         (ipcp_initialize_node_lattices): Set cannot_devirtualize when setting
10504         lattice to BOTTOM.
10505         (ipcp_init_stage): Merged into...
10506         (ipcp_generate_summary): ...its caller.
10507         (ipcp_change_tops_to_bottom): Also process type lists.
10508         (ipcp_add_param_type): New function.
10509         (ipcp_copy_types): Likewise.
10510         (ipcp_propagate_types): Likewise.
10511         (ipcp_propagate_stage): Also propagate types.
10512         (ipcp_need_redirect_p): Variable jump_func moved to its scope block.
10513         Also return true if propagated types require it.
10514         (ipcp_update_callgraph): Dump redirection info.
10515         (ipcp_process_devirtualization_opportunities): New function.
10516         (ipcp_const_param_count): Include known type information.
10517         (ipcp_insert_stage): Call ipcp_process_devirtualization_opportunities
10518         on new node.  Fixed formatting.
10519         * ipa-prop.c (make_edge_direct_to_target): Renamed to
10520         ipa_make_edge_direct_to_target and changed all callers.  Made
10521         externally visible.
10522         (ipa_node_duplication_hook): Duplicate types vector.
10523         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Also try to
10524         redirect outgoing calls for which we can't get a decl from the
10525         statement.  Check that we can get a decl from the call statement.
10526         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
10527         ipa_analyze_params_uses only when ipa-cp is disabled.
10528         * tree-inline.c (get_indirect_callee_fndecl): Removed.
10529         (expand_call_inline): Do not call get_indirect_callee_fndecl.
10530         * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): New parameter.
10531         * Makefile.in (ipa-cp.o): Add gimple.h to dependencies.
10532
10533 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
10534
10535         * expmed.c (expand_mult_const) <case alg_shift>: Expand shift into
10536         temporary. Emit move from temporary to accum, so REG_EQUAL note will
10537         be attached to this insn in correct mode.
10538
10539 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
10540
10541         * config/i386/i386.c (ix86_decompose_address): Check for SI_REG
10542         using REGNO of base_reg directly.
10543
10544 2010-08-05  Jie Zhang  <jie@codesourcery.com>
10545
10546         PR tree-optimization/45144
10547         * tree-sra.c (type_consists_of_records_p): Return false
10548         if the record contains bit-field.
10549
10550 2010-08-04  Richard Henderson  <rth@redhat.com>
10551
10552         * config/i386/i386.c (struct ix86_frame): Remove padding and
10553         to_allocate members.
10554         (ix86_compute_frame_layout): Don't store them.
10555         (ix86_can_use_return_insn_p): Use a more direct and more obviously
10556         correct condition for the position of the stack pointer.
10557         (ix86_expand_prologue): Compute remaining stack allocation based
10558         on the ultimate stack pointer offset.
10559         (ix86_expand_epilogue): Use more obvious expressions testing for
10560         the stack pointer already pointing to the saved registers.
10561
10562         * config/i386/i386.c (ix86_expand_epilogue): Eliminate code
10563         duplication deconstructing the frame pointer.  Simplify
10564         deallocation of the local stack frame.
10565
10566         * reg-notes.def (CFA_EXPRESSION): New.
10567         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
10568         (dwarf2out_frame_debug_cfa_expression): New.
10569         (dwarf2out_frame_debug_def_cfa): Handle simple MEMs.
10570
10571         * config/i386/i386.h (struct machine_frame_state): Add realigned flag.
10572         * config/i386/i386.c (ix86_expand_prologue): Set it.
10573         (ix86_expand_epilogue): Clear it.
10574         (ix86_emit_save_reg_using_mov): For registers saved in a realigned
10575         context, add REG_CFA_EXPRESSION notes.
10576
10577         * config/i386/i386.h (struct machine_frame_state): Rename from
10578         machine_cfa_state.  Add members tracking SP and FP regardless
10579         of the current CFA register.
10580         (ix86_cfa_state): Remove.
10581         * config/i386/i386.c (struct ix86_frame): Add reg_save_offset
10582         and sse_reg_save_offset members.
10583         (ix86_compute_frame_layout): Set them.
10584         (gen_push): Increment sp_offset too.
10585         (choose_baseaddr_len, choose_baseaddr): New.
10586         (ix86_emit_save_reg_using_mov): New.
10587         (ix86_emit_save_regs_using_mov): Use it.
10588         (ix86_emit_save_sse_regs_using_mov): Likewise.
10589         (ix86_add_cfa_restore_note): Take cfa_offset not red_offset argument;
10590         compare vs the saved red_zone_offset.
10591         (pro_epilogue_adjust_stack): Adjust sp_offset.
10592         (ix86_adjust_stack_and_probe): Likewise.
10593         (ix86_expand_prologue): Set up, use, and validate the new
10594         frame_state_info members.  Use gen_frame_mem.
10595         (ix86_emit_restore_regs_using_pop): Remove red_offset parameter.
10596         (ix86_emit_restore_reg_using_pop): Likewise.  Use and update the
10597         new frame_state_info members.
10598         (ix86_emit_leave): Likewise.
10599         (ix86_emit_restore_regs_using_mov): Likewise.  Don't check for
10600         out-of-range stack pointer offsets here.
10601         (ix86_emit_restore_sse_regs_using_mov): Likewise.
10602         (ix86_expand_epilogue): Use and validate the new frame_state_info
10603         members.  Break up and simplify the logic selecting the
10604         restore_regs_via_mov code path.  Ensure that there will be no
10605         out-of-range stack pointer offsets.
10606
10607         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Remove.
10608
10609         * config/i386/i386.c (ix86_function_ms_hook_prologue): Fix
10610         argument name to reflect the expected tree; fix indentation.
10611         (ix86_asm_output_function_label): Output the entire 32-bit
10612         ms_hook here as bytes ...
10613         (ix86_expand_prologue): ... not here as insns.  Attach the
10614         unwind info for the ms_hook to a blockage insn.
10615         (ix86_handle_fndecl_attribute): Don't check HAVE_AS_IX86_SWAP.
10616         (ix86_ms_bitfield_layout_p): Fix indentation.
10617         * config/i386/i386.md (UNSPECV_VSWAPMOV, vswapmov): Remove.
10618
10619         * config/i386/i386.c (ix86_using_red_zone): New.
10620         (ix86_compute_frame_layout, ix86_add_cfa_restore_note,
10621         ix86_expand_prologue, ix86_force_to_memory): Use it.
10622
10623         * config/i386/i386.c (ix86_expand_prologue): Simplify logic
10624         saving the int registers.
10625
10626         * dwarf2out.c: Remove most of the DWARF2_DEBUGGING_INFO
10627         and DWARF2_UNWIND_INFO conditional compilation.
10628
10629 2010-08-04  Richard Henderson  <rth@redhat.com>
10630
10631         PR debug/45171
10632         * dwarf2out.c (gen_typedef_die): Don't re-generate the die of
10633         an is_naming_typedef_decl.
10634
10635 2010-08-04  Bernd Schmidt  <bernds@codesourcery.com>
10636
10637         PR rtl-optimization/45162
10638         * df-problems.c (df_word_lr_bb_local_compute): Ignore DEBUG_INSNs.
10639         * dce.c (word_dce_process_block): Likewise.
10640
10641 2010-08-04  Steve Ellcey  <sje@cup.hp.com>
10642
10643         PR target/44583
10644         * config/ia64/constraints.md (Z): New.
10645         * config/ia64/predicates.md (fr_reg_or_signed_fp01_operand): New.
10646         (xfreg_or_signed_fp01_operand): New.
10647         * config/ia64/ia64.md (addsf3): Replace fr_reg_or_fp01_operand
10648         with fr_reg_or_signed_fp01_operand and constraint G with Z.
10649         (subsf3): Ditto.
10650         (*maddsf4): Ditto.
10651         (*msubsf4): Ditto.
10652         (adddf3): Ditto.
10653         (adddf3_trunc): Ditto.
10654         (subdf3): Ditto.
10655         (*subdf3_trunc): Ditto.
10656         (*madddf4): Ditto.
10657         (*madddf4_trunc): Ditto.
10658         (*msubdf4): Ditto.
10659         (*msubdf4_trunc): Ditto.
10660         (addxf3): Replace xfreg_or_fp01_operand with
10661         xfreg_or_signed_fp01_operand and constraint G with Z.
10662         (*addxf3_truncsf): Ditto.
10663         (*addxf3_truncdf): Ditto.
10664         (subxf3): Ditto.
10665         (*subxf3_truncsf): Ditto.
10666         (*subxf3_truncdf): Ditto.
10667         (*maddxf4): Ditto.
10668         (*maddxf4_truncsf): Ditto.
10669         (*maddxf4_truncdf): Ditto.
10670         (*msubxf4): Ditto.
10671         (*msubxf4_truncsf): Ditto.
10672         (*msubxf4_truncdf): Ditto.
10673
10674 2010-08-04  Richard Guenther  <rguenther@suse.de>
10675
10676         * alias.c (rtx_refs_may_alias_p): Do not resort to TBAA
10677         if either alias-set is zero.
10678
10679 2010-08-04  Richard Guenther  <rguenther@suse.de>
10680
10681         * tree-ssa-propagate.h (struct prop_value_d, prop_value_t): Move ...
10682         * tree-ssa-ccp.c: ... here.
10683         * tree-ssa-copy.c: ... and here.
10684         * tree-ssa-propagate.h (enum value_range_type, struct value_range_d,
10685         value_range_t): Move ...
10686         * tree-vrp.c: ... here.
10687         * tree-ssa-propagate.h (ssa_prop_get_value_fn): New typedef.
10688         (substitute_and_fold): Adjust prototype.
10689         * tree-ssa-propagate.c (replace_uses_in): Adjust.
10690         (replace_phi_args_in): Likewise.
10691         (substitute_and_fold): Take callback to query lattice instead
10692         of pointer to lattice.  Replace SSA name defs with lattice
10693         values first.
10694         * tree-ssa-ccp.c (ccp_finalize): Adjust.
10695         * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust.
10696         (get_value): New function.
10697         (fini_copy_prop): Adjust.
10698         * tree-vrp.c (vrp_finalize): Adjust.
10699
10700 2010-08-04  Richard Guenther  <rguenther@suse.de>
10701
10702         PR middle-end/45176
10703         * expr.c (expand_expr_real_1): Also preserve TARGET_MEM_REF
10704         points-to set for original MEM_REF.
10705
10706 2010-08-04  Richard Guenther  <rguenther@suse.de>
10707
10708         * tree-ssa-ccp.c (get_constant_value): New function.
10709         (get_rhs_assign_op_for_ccp): Remove.
10710         (valueize_op): New function.
10711         (ccp_fold): Use get_constant_value and valueize_op.
10712         (fold_const_aggregate_ref): Likewise.
10713         (ccp_fold_stmt): Likewise.
10714         (visit_assignment): Simplify.
10715
10716 2010-08-04  Richard Guenther  <rguenther@suse.de>
10717
10718         * Makefile.in (double-int.o): Add $(TOPLEV_H) dependency.
10719         * double-int.h (double_int_ctz): Declare.
10720         * double-int.c (double_int_ctz): New function.
10721
10722 2010-08-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
10723
10724         * config/picochip/picochip.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE):
10725         Define.
10726         picochip_expand_movmemhi : Expand movmem pattern.
10727         * config/picochip/picochip-protos.h (picochip_expand_movmemhi) :
10728         Declare.
10729         * config/picochip/picochip.md (movmemhi) : New pattern.
10730
10731 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
10732
10733         * config/i386/unix.h (GLOBAL_ASM_OPS): Add tabs around .globl.
10734
10735 2010-08-03  Bernd Schmidt  <bernds@codesourcery.com>
10736
10737         * simplify-rtx.c (simplify_binary_operation_1): Try to simplify away
10738         NEG as operand of a MULT by merging it with the other operand.
10739         * combine.c (make_compound_operation): Use trunc_int_for_mode when
10740         generating a MULT with constant.  Canonicalize PLUS and MINUS involving
10741         MULT.
10742         * config/arm/constraints.md (M): Examine only 32 bits of a
10743         HOST_WIDE_INT.
10744         * config/arm/predicates.md (power_of_two_operand): Likewise.
10745
10746 2010-08-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10747
10748         * config/spu/spu.c (spu_emit_branch_hint): Do not access NOTE_KIND of
10749         non-NOTE insns.
10750
10751 2010-08-03  Jan Hubicka  <jh@suse.cz>
10752
10753         * ipa-split.c (struct split_point): Add split_part_set_retval.
10754         (find_retval): Forward declare.
10755         (test_nonssa_use, mark_nonssa_use): Special case return by reference.
10756         (consider_split): Compute current->split_part_set_retval.
10757         (visit_bb): Do not look into return value.
10758         (split_function): Handle !split_part_set_retval
10759
10760 2010-08-03  Martin Jambor  <mjambor@suse.cz>
10761
10762         * tree-sra.c (completely_scalarize_record): New parameter REF, create
10763         its own access->expr intead of using build_ref_for_offset.
10764
10765 2010-08-03  Joseph Myers  <joseph@codesourcery.com>
10766
10767         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Define.
10768         * config/alpha/osf5.h (LIB_SPEC): Don't handle -a.
10769         * config/bfin/bfin.h (ASM_SPEC, LINK_SPEC): Don't pass -G* options.
10770         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Handle -iframework.
10771         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Define.
10772         * config/iq2000/iq2000.h (SWITCH_TAKES_ARG): Remove.
10773         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Define using
10774         DEFAULT_SWITCH_TAKES_ARG.
10775         * config/rx/rx.opt (-patch=): Remove option.
10776         * config/rx/rx.c (rx_handle_option): Don't handle OPT_patch_.
10777         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Handle -imultilib.
10778         * doc/invoke.texi (RX Options): Remove -patch=.
10779         * gcc.c (cc1_options): Pass -aux-info* instead of -a* options.
10780         (option_map): Remove --profile-blocks, --quiet and --silent.
10781
10782 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
10783
10784         * config/i386/i386.h (ix86_compare_op0, ix86_compare_op1): Remove.
10785         * config/i386/i386.c (ix86_compare_op0, ix86_compare_op1): Remove.
10786         (ix86_expand_branch): Add op0 and op1 arguments.  Do not access
10787         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
10788         Update calls to ix86_expand_compare and ix86_expand_branch.
10789         (ix86_expand_setcc): Add op0 and op1 arguments.  Update calls to
10790         ix86_expand_compare.
10791         (ix86_expand_compare): Add op0 and op1 arguments.  Do not access
10792         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
10793         Make static.
10794         (ix86_expand_carry_flag_compare): Do not set ix86_compare_op0
10795         and ix86_compare_op1.  Update calls to ix86_expand_compare.
10796         (ix86_expand_int_movcc): Ditto.
10797         (ix86_expand_fp_movcc): Ditto.  Update calls to ix86_expand_setcc.
10798         * config/i386/i386-protos.h (ix86_expand_branch): Update prototype.
10799         (ix86_expand_setcc): Ditto.
10800         (ix86_expand_compare): Remove prototype.
10801         * config/i386/i386.md (cbranch<SDWIM:mode>4): Do not set
10802         ix86_compare_op0 and ix86_compare_op1.  Update calls
10803         to ix86_expand_branch to directly pass operands[1] and operands[2].
10804         (cbranchxf4): Ditto.
10805         (cbranch<MODEF:mode>4): Ditto.
10806         (cbranchcc4): Ditto.
10807         (cstore<SWIM:mode>4): Do not set ix86_compare_op0 and ix86_compare_op1.
10808         Update calls to ix86_expand_setcc to directly pass operands[2] and
10809         operands[3].
10810         (cstorexf4): Ditto.
10811         (cstore<MODEF:mode>4): Ditto.
10812         (cstorecc4): Ditto.
10813
10814 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
10815
10816         PR target/45063
10817         * caller-save.c (save_call_clobbered_regs): Remove regs from
10818         hard_regs_saved when they are set.
10819
10820 2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
10821
10822         PR target/41089
10823         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
10824         as volatile.
10825
10826 2010-08-02  Sebastian Pop  <sebastian.pop@amd.com>
10827
10828         * common.opt (ftree-loop-distribute-patterns): New.
10829         * invoke.texi (-ftree-loop-distribute-patterns): Documented.
10830         * opts.c (decode_options): Enable flag_tree_loop_distribute_patterns
10831         at -O3.
10832         * tree-data-ref.c (stores_zero_from_loop): New.
10833         * tree-data-ref.h (stores_zero_from_loop): Declared.
10834         * tree-loop-distribution.c (tree_loop_distribution): Call
10835         stores_zero_from_loop.
10836         (tree_loop_distribution): Check flag_tree_loop_distribute_patterns.
10837
10838 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
10839
10840         * postreload.c (reload_cse_simplify_operands): Take attribute enabled
10841         into account.
10842
10843         * final.c (final_scan_insn): Call CC_STATUS_INIT unconditionally.
10844         * config/arm/arm.c (thumb1_code): New variable.
10845         (arm_override_options): Set it.
10846         (thumb1_final_prescan_insn): Keep track of condition code status.
10847         (arm_adjust_cost): For Thumb, try to keep cc-setting insns next to
10848         jumps that depend on them.
10849         * config/arm/arm.h (thumb1_code): Declare variable.
10850         (struct machine_function): Guard with #ifndef GENERATOR_FILE.  Add
10851         members thumb1_cc_insn, thumb1_cc_op0, thumb1_cc_op1 and
10852         thumb1_cc_mode.
10853         (CC_STATUS_INIT): New macro.
10854         * config/arm/constraints.md (Pd): New constraint.
10855         * config/arm/predicates.md (noov_comparison_operator): New predicate.
10856         * config/arm/arm.md (is_thumb1): New define_attr.
10857         (conds): Set default to "clob" when generating Thumb1 code.
10858         (thumb1_bicsi3): Renamed from bicsi3.  All uses changed.  Condition
10859         code are set.  Use two-operand assembly syntax.
10860         (thumb1_subsi3_insn): Condition codes are set.  Now a properly named
10861         pattern.
10862         (thumb1_andsi3_insn, thumb1_iorsi3_insn, thumb1_xorsi3_insn): Condition
10863         codes are set.  Use two-operand assembly syntax.
10864         (zero_extendhisi splitter): Remove constraints.
10865         (thumb1_movsi_insn, thumb1_movhi_insn, thumb1_movqi_insn, thumb1_movhf,
10866         thumb1_movsf_insn): Set conds attribute as appropriate.
10867         (cbranchsi4_insn): Use condition code status from struct
10868         machine_function to determine whether the comparison can be eliminated.
10869         Discourage the alternative using high registers.
10870         (movsi_cbranchsi4, andsi3_cbranch, orrsi3_cbranch_scratch,
10871         orrsi3_cbranch, xorsi3_cbranch_scratch, xorsi3_cbranch,
10872         bicsi3_cbranch_scratch, bicsi3_cbranch, subsi3_cbranch_scratch,
10873         subsi3_cbranch): Delete.
10874         (movsi_cbranchsi4 peepholes): Rewrite to generate a sequence of
10875         one subtract and one cbranch insn.
10876
10877         * config/arm/thumb2.md (thumb2_movdi, thumb2_movsf_soft_insn,
10878         thumb2_movdf_soft_insn): Delete patterns.
10879         * config/arm/arm.md (arm_pool_range, thumb2_pool_range,
10880         arm_neg_pool_range, thumb2_neg_pool_range): New attributes.
10881         (pool_range, neg_pool_range): Use them to define defaults.
10882         (movdi, arm_movsf_soft_insn, arm_movdf_soft_insn): Define them
10883         and allow for TARGET_32BIT.
10884
10885         PR target/40457
10886         * config/arm/arm.h (arm_regs_in_sequence): Declare.
10887         * config/arm/arm-protos.h (emit_ldm_seq, emit_stm_seq,
10888         load_multiple_sequence, store_multiple_sequence): Delete
10889         declarations.
10890         (arm_gen_load_multiple, arm_gen_store_multiple): Adjust
10891         declarations.
10892         * config/arm/ldmstm.md: New file.
10893         * config/arm/arm.c (arm_regs_in_sequence): New array.
10894         (load_multiple_sequence): Now static.  New args SAVED_ORDER,
10895         CHECK_REGS.  All callers changed.
10896         If SAVED_ORDER is nonnull, copy the computed order into it.
10897         If CHECK_REGS is false, don't sort REGS.  Handle Thumb mode.
10898         (store_multiple_sequence): Now static.  New args NOPS_TOTAL,
10899         SAVED_ORDER, REG_RTXS and CHECK_REGS.  All callers changed.
10900         If SAVED_ORDER is nonnull, copy the computed order into it.
10901         If CHECK_REGS is false, don't sort REGS.  Set up REG_RTXS just
10902         like REGS.  Handle Thumb mode.
10903         (arm_gen_load_multiple_1): New function, broken out of
10904         arm_gen_load_multiple.
10905         (arm_gen_store_multiple_1): New function, broken out of
10906         arm_gen_store_multiple.
10907         (arm_gen_multiple_op): New function, with code from
10908         arm_gen_load_multiple and arm_gen_store_multiple moved here.
10909         (arm_gen_load_multiple, arm_gen_store_multiple): Now just
10910         wrappers around arm_gen_multiple_op.  Remove argument UP, all callers
10911         changed.
10912         (gen_ldm_seq, gen_stm_seq, gen_const_stm_seq): New functions.
10913         * config/arm/predicates.md (commutative_binary_operator): New.
10914         (load_multiple_operation, store_multiple_operation): Handle more
10915         variants of these patterns with different starting offsets.  Handle
10916         Thumb-1.
10917         * config/arm/arm.md: Include "ldmstm.md".
10918         (ldmsi_postinc4, ldmsi_postinc4_thumb1, ldmsi_postinc3, ldmsi_postinc2,
10919         ldmsi4, ldmsi3, ldmsi2, stmsi_postinc4, stmsi_postinc4_thumb1,
10920         stmsi_postinc3, stmsi_postinc2, stmsi4, stmsi3, stmsi2 and related
10921         peepholes): Delete.
10922         * config/arm/ldmstm.md: New file.
10923         * config/arm/arm-ldmstm.ml: New file.
10924
10925         * config/arm/arm.c (arm_rtx_costs_1): Remove second clause from the
10926         if statement which adds extra costs to frame-related expressions.
10927
10928 2010-08-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10929
10930         * config/arm/arm.c (COSTS_N_INSNS): Remove definition.
10931
10932 2010-08-01  Uros Bizjak  <ubizjak@gmail.com>
10933
10934         PR target/45142
10935         * config/i386/sse.md (vec_set<mode>_0): Do not set mode attribute for
10936         alternative 2.
10937         (vec_set<mode>_0 splitter): Use SSEMODE4S mode iterator to also
10938         split V4SI operands.
10939
10940 2010-08-01  Anatoly Sokolov  <aesok@post.ru>
10941
10942         * config/mmix/mmix.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
10943         * config/mmix/mmix-protos.h (mmix_asm_output_source_filename): Remove.
10944         * config/mmix/mmix.c (mmix_asm_output_source_filename): Make static.
10945         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
10946
10947 2010-07-31  Kai Tietz  <kai.tietz@onevision.com>
10948
10949         * cppdefault.c (cpp_include_defaults): Move GCC_INCLUDE_DIR before
10950         LOCAL_INCLUDE_DIR.
10951
10952 2010-07-31  Richard Sandiford  <rdsandiford@googlemail.com>
10953
10954         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Fix type
10955         used in the call to optab_for_tree_code.  Fix the second
10956         is_widening_mult_p call.  Check that both unwidened operands
10957         have the same sign.
10958
10959 2010-07-31  John Tytgat  <John.Tytgat@aaug.net>
10960
10961         * config/arm/arm.c (arm_function_arg): Remove superfluous test.
10962
10963 2010-07-31  Anatoly Sokolov  <aesok@post.ru>
10964
10965         * config/spu/spu.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
10966
10967 2010-07-30  DJ Delorie  <dj@redhat.com>
10968
10969         * config/rx/predicates.md (rx_constshift_operand): New.
10970         * config/rx/rx.md (zs_cond): New.
10971         (cbranchsi4): Remove mode.
10972         (*cbranchsi4_<code>): Likewise.
10973         (*tstbranchsi4_<code>): New.
10974         (*tstbranchsi4r_<code>): New.
10975         (*tstbranchsi4m_eq): New.
10976         (*tstbranchsi4m_ne): New.
10977         (cbranchsf4): Remove mode.
10978         (*cbranchsf4_<code>): Likewise.
10979
10980 2010-07-30  Bernd Schmidt  <bernds@codesourcery.com>
10981
10982         * rtlanal.c (simplify_subreg_regno): Don't treat
10983         HARD_FRAME_POINTER_REGNUM specially.
10984
10985 2010-07-30  Joseph Myers  <joseph@codesourcery.com>
10986
10987         * common.opt (-G): Don't define option here.
10988         * config/g.opt: New.
10989         * config.gcc: Use g.opt for alpha, frv, ia64, lm32, m32r, mips,
10990         rs6000/powerpc and score targets.
10991         * opts.c (common_handle_option): Don't handle -G here.
10992         * config/alpha/alpha.c (alpha_handle_option): Handle -G.
10993         * config/frv/frv.c (frv_handle_option): Handle -G.
10994         * config/ia64/ia64.c (ia64_handle_option): Handle -G.
10995         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION): New.
10996         * config/m32r/m32r.c (m32r_handle_option): Handle -G.
10997         * config/mips/mips.c (mips_handle_option): Handle -G.
10998         * config/rs6000/rs6000.c (rs6000_handle_option) Handle -G.
10999         * config/score/score.c (score_handle_option): Handle -G.
11000
11001 2010-07-30  Anatoly Sokolov  <aesok@post.ru>
11002
11003         * config/mmix/mmix.c: Include basic-block.h.
11004
11005 2010-07-30  Jakub Jelinek  <jakub@redhat.com>
11006
11007         PR debug/45055
11008         PR rtl-optimization/45137
11009         * rtl.h (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn): New
11010         prototypes.
11011         * emit-rtl.c (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn):
11012         New functions.
11013         * combine.c (next_nonnote_nondebug_insn): Removed.
11014         * ifcvt.c (noce_process_if_block): Use prev_nonnote_nondebug_insn.
11015         * haifa-sched.c (queue_to_ready): Use next_nonnote_nondebug_insn.
11016         * sched-deps.c (sched_analyze_insn): Likewise.
11017         (fixup_sched_groups, deps_start_bb): Use prev_nonnote_nondebug_insn.
11018         * rtlanal.c (canonicalize_condition): Likewise.
11019         * postreload.c (reload_combine_recognize_pattern): Likewise.
11020         (reload_cse_move2add): Use next_nonnote_nondebug_insn.
11021
11022 2010-07-29  Uros Bizjak  <ubizjak@gmail.com>
11023
11024         * config/i386/i386.md (int_cond): Remove code iterator.
11025         (fp_cond): Ditto.
11026         (cbranch<mode>4): Use ordered_comparison_operator predicate
11027         for operator0.
11028         (cstore<mode>4): Ditto for operator1.
11029         (mov<SWIM:mode>cc and corresponding splitter): Ditto.
11030         (add<mode>cc): ditto.
11031
11032 2010-07-30  Richard Guenther  <rguenther@suse.de>
11033
11034         PR middle-end/45141
11035         * expr.c (expand_expr_real_1): Check for not handled base address.
11036
11037 2010-07-30  Richard Guenther  <rguenther@suse.de>
11038
11039         * ipa-prop.c (ipa_modify_formal_parameters): Use
11040         build_distinct_type_copy.
11041
11042 2010-07-30  Anthony Green  <green@moxielogic.com>
11043
11044         * config/moxie/rtems.h: New file.
11045         * config.gcc: Add moxie-rtems support.
11046
11047 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
11048
11049         * dce.c (run_word_dce): Take flag_dce into account.  Clear and restore
11050         df flags as in run_fast_df_dce.
11051
11052 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
11053
11054         Revert:
11055         2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
11056
11057         * rtl.def (NOTE): Swap operands 4 and 5.
11058         * rtl.h (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK,
11059         NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_KIND):
11060         Adjust accordingly.
11061         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of NOTEs.
11062
11063 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
11064
11065         PR debug/45110
11066         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_object_pointer.
11067         (gen_formal_types_die): Add DW_AT_object_pointer in methods.
11068         (gen_subprogram_die): Likewise.  Remove it when removing declaration's
11069         formal parameters.
11070         (gen_decl_die): Change return type to dw_die_ref, return what
11071         gen_formal_parameter_die returned.
11072
11073 2010-07-29  Martin Jambor  <mjambor@suse.cz>
11074
11075         * dbgcnt.def (eipa_sra): New counter.
11076         * tree-sra.c (ipa_early_sra_gate): Also check eipa_sra debug counter.
11077
11078 2010-07-29  Xinliang David Li  <davidxl@google.com>
11079
11080         PR bootstrap/45119
11081         * tree-ssa-loop-ivopts.c (get_address_cost): Revert change
11082         in revision 162652.
11083
11084 2010-07-29  Richard Guenther  <rguenther@suse.de>
11085
11086         * timevar.def (TV_TREE_STORE_COPY_PROP): Remove.
11087         (TV_TREE_STORE_CCP): Likewise.
11088         (TV_TREE_REDPHI): Likewise.
11089
11090 2010-07-29  Richard Guenther  <rguenther@suse.de>
11091
11092         * double-int.h (double_int_and_not): New function.
11093         * combine.c (try_combine): Use it.
11094         * tree-vrp.c (simplify_bit_ops_using_ranges): Likewise.
11095
11096 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
11097
11098         PR rtl-optimization/42575
11099         * dce.c (word_dce_process_block): Renamed from byte_dce_process_block.
11100         Argument AU removed.  All callers changed.  Ignore artificial refs.
11101         Use return value of df_word_lr_simulate_defs to decide whether an insn
11102         is necessary.
11103         (fast_dce): Rename arg to WORD_LEVEL.
11104         (run_word_dce): Renamed from rest_of_handle_fast_byte_dce.  No longer
11105         static.
11106         (pass_fast_rtl_byte_dce): Delete.
11107         * dce.h (run_word_dce): Declare.
11108         * df-core.c (df_print_word_regset): Renamed from df_print_byteregset.
11109         All callers changed.  Simplify code to only deal with two-word regs.
11110         * df.h (DF_WORD_LR): Renamed from DF_BYTE_LR.
11111         (DF_WORD_LR_BB_INFO): Renamed from DF_BYTE_LR_BB_INFO.
11112         (DF_WORD_LR_IN): Renamed from DF_BYTE_LR_IN.
11113         (DF_WORD_LR_OUT): Renamed from DF_BYTE_LR_OUT.
11114         (struct df_word_lr_bb_info): Renamed from df_byte_lr_bb_info.
11115         (df_word_lr_mark_ref): Declare.
11116         (df_word_lr_add_problem, df_word_lr_mark_ref, df_word_lr_simulate_defs,
11117         df_word_lr_simulate_uses): Declare or rename from byte variants.
11118         (df_byte_lr_simulate_artificial_refs_at_top,
11119         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
11120         df_byte_lr_get_regno_len, df_compute_accessed_bytes): Delete
11121         declarations.
11122         (df_word_lr_get_bb_info): Rename from df_byte_lr_get_bb_info.
11123         (enum df_mm): Delete.
11124         * df-byte-scan.c: Delete file.
11125         * df-problems.c (df_word_lr_problem_data): Renamed from
11126         df_byte_lr_problem_data, all members deleted except for
11127         WORD_LR_BITMAPS, which is renamed from BYTE_LR_BITMAPS.  Uses changed.
11128         (df_word_lr_expand_bitmap, df_byte_lr_simulate_artificial_refs_at_top,
11129         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
11130         df_byte_lr_get_regno_len, df_byte_lr_check_regs,
11131         df_byte_lr_confluence_0): Delete functions.
11132         (df_word_lr_free_bb_info): Renamed from df_byte_lr_free_bb_info; all
11133         callers changed.
11134         (df_word_lr_alloc): Renamed from df_byte_lr_alloc; all callers changed.
11135         Don't initialize members that were deleted, don't try to discover data
11136         about registers.  Ignore hard regs.
11137         (df_word_lr_reset): Renamed from df_byte_lr_reset; all callers changed.
11138         (df_word_lr_mark_ref): New function.
11139         (df_word_lr_bb_local_compute): Renamed from
11140         df_byte_bb_lr_local_compute; all callers changed.  Use
11141         df_word_lr_mark_ref.  Assert that artificial refs don't include
11142         pseudos.  Ignore hard registers.
11143         (df_word_lr_local_compute): Renamed from df_byte_lr_local_compute.
11144         Assert that exit block uses don't contain pseudos.
11145         (df_word_lr_init): Renamed from df_byte_lr_init; all callers changed.
11146         (df_word_lr_confluence_n): Renamed from df_byte_lr_confluence_n; all
11147         callers changed.  Ignore hard regs.
11148         (df_word_lr_transfer_function): Renamed from
11149         df_byte_lr_transfer_function; all callers changed.
11150         (df_word_lr_free): Renamed from df_byte_lr_free; all callers changed.
11151         (df_word_lr_top_dump): Renamed from df_byte_lr_top_dump; all callers
11152         changed.
11153         (df_word_lr_bottom_dump): Renamed from df_byte_lr_bottom_dump; all
11154         callers changed.
11155         (problem_WORD_LR): Renamed from problem_BYTE_LR; uses changed;
11156         confluence operator 0 set to NULL.
11157         (df_word_lr_add_problem): Renamed from df_byte_lr_add_problem; all
11158         callers changed.
11159         (df_word_lr_simulate_defs): Renamed from df_byte_lr_simulate_defs.
11160         Return bool, true if bitmap changed or insn otherwise necessary.
11161         All callers changed.  Simplify using df_word_lr_mark_ref.
11162         (df_word_lr_simulate_uses): Renamed from df_byte_lr_simulate_uses;
11163         all callers changed.  Simplify using df_word_lr_mark_ref.
11164         * lower-subreg.c: Include "dce.h"
11165         (decompose_multiword_subregs): Call run_word_dce if df available.
11166         * Makefile.in (lower-subreg.o): Adjust dependencies.
11167         (df-byte-scan.o): Delete.
11168         * timevar.def (TV_DF_WORD_LR): Renamed from TV_DF_BYTE_LR.
11169
11170 2010-07-29  Richard Guenther  <rguenther@suse.de>
11171
11172         * tree.c (build_vector): Assert that the vector constant
11173         has enough elements.
11174         (build_vector_from_ctor): Pad with trailing zeros.
11175
11176 2010-07-29  Richard Guenther  <rguenther@suse.de>
11177
11178         PR tree-optimization/45120
11179         * tree-ssa-structalias.c (get_constraint_for_component_ref):
11180         Handle offset in DEREFs properly.
11181         (get_constraint_for_1): Handle MEM_REF offset properly.
11182
11183 2010-07-29  Richard Guenther  <rguenther@suse.de>
11184
11185         PR middle-end/45034
11186         * convert.c (convert_to_integer): Always use an unsigned
11187         type for narrowed negate and bitwise not.
11188
11189 2010-07-29  Ira Rosen  <irar@il.ibm.com>
11190
11191         * tree-vect-loop.c (vect_create_epilog_for_reduction): Switch
11192         to outer loop when creating reduction epilogue for double reduction,
11193         and switch back to the inner loop when updating the phi nodes.
11194         Update uses of outer loop exit phi nodes in double reduction (instead
11195         of uses of reduction).
11196
11197 2010-07-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
11198
11199         * config/rs6000/rs6000.c (rs6000_rtx_costs): Update costs for
11200         popcount on power7 and parity on power6 systems.
11201         (rs6000_emit_popcount): Rename gen_popcntwsi2 to gen_popcntddi2.
11202         (rs6000_emit_parity): Add support for power6 prtyd/prtyw
11203         instructions.
11204
11205         * config/rs6000/rs6000.md (UNSPEC_COPYSIGN): New unspec.
11206         (UNSPEC_PARITY): Ditto.
11207         (SFDF): New iterator for SF/DF.
11208         (rreg2): New mode attribute for floating register constraint.
11209         (TARGET_FLOAT): New mode attribute for whether single/double float
11210         is supported.
11211         (popcntd<mode>2): Combine popcntwsi2 and popcntddi2 into one
11212         pattern.
11213         (parity<mode>2_cmpb): New insn for parity on power6 and newer
11214         machines.
11215         (copysign<mode>3): Combine copysignsf3, copysigndf3 into one
11216         pattern.  Add support for fcpsgn instruction added in power6.
11217         (copysignsf3): Delete.
11218         (copysigndf3): Delete.
11219         (copysign<mode>3_fcpsgn): New insn to generate fcpsgn.  Use UNSPEC
11220         instead of if_then_else in RTL to avoid problems with -0.
11221
11222         * config/rs6000/vsx.md (vsx_copysign<mode>3): Use UNSPEC instead
11223         of if_then_else to mirror scalar code.
11224         (vsx_copysignsf3): Delete, use copysign<mode>3_fcpsgn in
11225         rs6000.md.
11226
11227         * config/rs6000/vector.md (vector_copysign<mode>3): Use UNSPEC
11228         instead of if_then_else.
11229
11230 2010-07-28  Xinliang David Li  <davidxl@google.com>
11231
11232         * tree-ssa-loop-ivopts.c (avg_loop_niter): New function.
11233         (dump_cand): Dump var_before/after.
11234         (htab_inv_expr_eq): New function.
11235         (htab_inv_expr_hash): New function.
11236         (tree_ssa_iv_optimize_init): Support pseudo invariants.
11237         (add_candidate_1): consider base type precision.
11238         (set_use_iv_cost): New parameter.
11239         (adjust_setup_cost): Use profile information.
11240         (get_address_cost): Do not hard code width in computing address
11241         offset limits.
11242         (compare_aff_trees): New function.
11243         (get_loop_invariant_expr_id): New function.
11244         (get_computation_cost_at): New parameter and use profile information.
11245         (get_computation_cost): New parameter.
11246         (determine_use_iv_cost_generic): Pass new parameter.
11247         (determine_use_iv_cost_address): Ditto.
11248         (determine_use_iv_cost_condition): Ditto.
11249         (autoinc_possible_for_pair): Ditto.
11250         (determine_use_iv_costs): More dumps.
11251         (iv_ca_get_num_inv_exprs): New function.
11252         (iv_ca_recount_cost): Consider loop invariants in register pressure
11253         cost.
11254         (iv_ca_add_use): New parameter.
11255         (iv_ca_dump): Better dumping.
11256         (iv_ca_extend): New parameter.
11257         (try_add_cand_for): Attempt to get better partial solution.
11258         (try_improve_iv_set): Pass new parameter to iv_ca_extend.
11259         (create_new-ivs): More dumps.
11260         (rewrite_use_compare): Ditto.
11261         (free_loop_data): More cleanup.
11262         (treee_ssa_iv_optimize_finalize): Ditto.
11263
11264 2010-07-28  Kai Tietz  <kai.tietz@onevision.com>
11265
11266         * config/i386/i386.h (MCOUNT_NAME_BEFORE_PROLOGUE): New.
11267         * config/i386/i386.c (ix86_profile_before_prologue): New.
11268         (override_options): Add special handling for -mfentry.
11269         (ix86_function_regparm): Likewise.
11270         (ix86_function_sseregparm): Likewise.
11271         (ix86_frame_pointer_required): Likewise.
11272         (ix86_expand_prologue): Check for ms_hook_prologue.
11273         (x86_function_profiler): Adjust mcount output.
11274         (TARGET_PROFILE_BEFORE_PROLOGUE): Define hook.
11275         * config/i386/i386.opt (mfentry): New.
11276         * doc/invoke.texi (mfentry): Add documentation.
11277         * doc/tm.texi: Regenerated..
11278         * doc/tm.texi.in (TARGET_PROFILE_BEFORE_PROLOGUE): New.
11279         * final.c (final_start_function): Replace macro
11280         PROFILE_BEFORE_PROLOGUE by target hook.
11281         * function.c (thread_prologue_and_epilogue_insns): Likewise.
11282         * target.def (profile_before_prologue): New hook.
11283         * targhooks.c (default_profile_before_prologue): New.
11284         * targhooks.h (default_profile_before_prologue): New.
11285
11286 2010-07-28  Jakub Jelinek  <jakub@redhat.com>
11287
11288         PR debug/45105
11289         * gcse.c (hoist_code): Use FOR_BB_INSNS macro.
11290
11291         PR debug/45103
11292         * dwarf2out.c (dwarf2out_var_location): Always consider
11293         NOTE_DURING_CALL_P notes, even when not followed by real instructions.
11294
11295 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
11296
11297         PR rtl-optimization/45107
11298         * gcse.c (hash_scan_set): Use max_distance for gcse-las.
11299
11300 2010-07-28  Richard Guenther  <rguenther@suse.de>
11301
11302         * tree-ssa-ccp.c: Remove comment regarding STORE-CCP.
11303         (set_lattice_value): Do not query an old default value.
11304         (get_value_for_expr): New function.  Properly canonicalize
11305         float values.
11306         (ccp_visit_phi_node): Use it.
11307
11308 2010-07-28  Chung-Lin Tang  <cltang@codesourcery.com>
11309
11310         * config/arm/arm.c (arm_pcs_default): Remove static.
11311         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_PCS or
11312         __ARM_PCS_VFP to indicate soft/hard-float calling convention.
11313         (arm_pcs_default): Declare.
11314
11315 2010-07-28  Iain Sandoe  <iains@gcc.gnu.org>
11316
11317         * config/rs6000/rs6000.c (rs6000_override_options):
11318         Use TARGET_MACHO inline, move darwin_one_byte_bool from here...
11319         ... to darwin_rs6000_override_options.
11320         (rs6000_return_in_memory): Update preceding comment for darwin
11321         64 bit ABI.  Use TARGET_MACHO inline.
11322         (rs6000_darwin64_struct_check_p): New.
11323         (function_arg_advance): Use rs6000_darwin64_struct_check_p.
11324         (function_arg): Likewise.
11325         (rs6000_arg_partial_bytes): Likewise.
11326         (rs6000_function_value): Likewise.
11327
11328 2010-07-28  Andi Kleen  <ak@linux.intel.com>
11329
11330         * lto-opts.c (lto_file_read_options): Add loop over all inputs.
11331
11332 2010-07-28  Richard Guenther  <rguenther@suse.de>
11333
11334         PR middle-end/44903
11335         * builtins.c (fold_builtin_memory_op): On STRICT_ALIGNMENT
11336         targets try harder to not generate unaligned accesses.
11337
11338 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
11339
11340         PR rtl-optimization/45101
11341         * gcse.c (hash_scan_set): Fix argument ordering of insert_expr_in_table
11342         for gcse-las.
11343
11344 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
11345
11346         PR tree-optimization/44885
11347         * tree-sra.c (find_param_candidates): Skip pointer types to arrays
11348         with non-aliased component.
11349
11350 2010-07-28  Joseph Myers  <joseph@codesourcery.com>
11351
11352         * config/darwin-driver.c (SWITCH_TAKES_ARG,
11353         WORD_SWITCH_TAKES_ARG): Remove.
11354         * cppspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
11355         * defaults.h (DEFAULT_SWITCH_TAKES_ARG,
11356         DEFAULT_WORD_SWITCH_TAKES_ARG): Move from gcc.h.
11357         (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move default
11358         definitions from gcc.c.
11359         * gcc.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move to
11360         defaults.h.
11361         * gcc.h (DEFAULT_SWITCH_TAKES_ARG, DEFAULT_WORD_SWITCH_TAKES_ARG):
11362         Move to defaults.h.
11363         * opts-common.c: Include tm.h.
11364         (decode_cmdline_option): Use SWITCH_TAKES_ARG and
11365         WORD_SWITCH_TAKES_ARG to count arguments to unknown options.
11366         Handle more than one argument.  Set canonical_option_num_elements.
11367         (decode_cmdline_options_to_array): Set
11368         canonical_option_num_elements and trailing elements of
11369         canonical_option.
11370         * opts.h (struct cl_decoded_option): Allow four elements in
11371         canonical_option.  Add field canonical_option_num_elements.
11372         * Makefile.in (opts-common.o): Update dependencies.
11373
11374 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
11375
11376         PR middle-end/44790
11377         PR middle-end/44993
11378         * expr.c (expand_expr_real_1) <MEM_REF>: Revert latest change.  Make
11379         sure the base has address_mode before adding the offset.
11380
11381 2010-07-27  Xinliang David Li  <davidxl@google.com>
11382
11383         * tree-flow.h (create_mem_ref): Add one new parameter.
11384         * tree-ssa-address.c (create_mem_ref): New parameter.
11385         (addr_to_parts): Ditto.
11386         (move_variant_to_index): New function.
11387         * tree-ssa-loop-ivopts.c (rewrite_use_address): Pass new argument.
11388
11389 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
11390
11391         * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, NOTE): Swap operands
11392         4 and 5.
11393         * rtl.h (PATTERN, INSN_LOCATOR, NOTE_DATA, NOTE_DELETED_LABEL_NAME,
11394         NOTE_BLOCK, NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION,
11395         NOTE_KIND, LABEL_NUSES, LABEL_REFS): Adjust accordingly.
11396         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of
11397         CODE_LABELs and NOTEs.
11398         * caller-save.c (init_caller_save): Fix up gen_rtx_INSN call.
11399         * combine.c (try_combine): Likewise.
11400         * ira.c (setup_prohibited_mode_move_regs): Likewise.
11401         * print-rtl.c (print_rtx): Start REG_NOTES on a new line.
11402
11403 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
11404
11405         * coretypes.h (struct cl_option_handlers): Declare.
11406         * hooks.c (hook_int_size_t_constcharptr_int_0): Remove.
11407         * hooks.h (hook_int_size_t_constcharptr_int_0): Remove.
11408         * langhooks-def.h (lhd_handle_option): Declare.
11409         (LANG_HOOKS_HANDLE_OPTION): Use lhd_handle_option.
11410         * langhooks.c (lhd_handle_option): New.
11411         * langhooks.h (struct lang_hooks): Update prototype and return
11412         value type of handle_option hook.
11413         * optc-gen.awk: Generate target_flags_explicit definition for the
11414         driver.
11415         * opts-common.c: Include diagnostic.h.
11416         (handle_option): Move from opts.c.  Update prototype and return
11417         value type.  Use handlers structure.
11418         (read_cmdline_option): Move from opts.c.  Update prototype.  Use
11419         handlers structure.
11420         (set_option): Move from opts.c.
11421         * opts.c (common_handle_option): Update prototype and return value
11422         type.  Update calls to handle_option and enable_warning_as_error.
11423         (unknown_option_callback, post_handling_callback,
11424         lang_handle_option, target_handle_option): New.
11425         (handle_option, read_cmdline_option): Move to opts-common.c.
11426         (read_cmdline_options): Update prototype.  Update call to
11427         read_cmdline_option.
11428         (decode_options): Initialize and use handlers structure.
11429         (set_option): Move to opts-common.c.
11430         (enable_warning_as_error): Update prototype.  Update call to
11431         handle_option.
11432         * opts.h (struct cl_option_handler_func, struct
11433         cl_option_handlers): New.
11434         (handle_option, enable_warning_as_error): Update prototypes.
11435         (read_cmdline_option): Declare.
11436         * Makefile.in (opts-common.o): Update dependencies.
11437
11438 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
11439
11440         * config/arm/arm.c (params.h): Include.
11441         (arm_override_options): Tune gcse-unrestricted-cost.
11442         * config/arm/t-arm (arm.o): Define dependencies.
11443
11444 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
11445
11446         PR target/42495
11447         PR middle-end/42574
11448         * basic-block.h (get_dominated_to_depth): Declare.
11449         * dominance.c (get_dominated_to_depth): New function, use
11450         get_all_dominated_blocks as a base.
11451         (get_all_dominated_blocks): Use get_dominated_to_depth.
11452
11453         * gcse.c (occr_t, VEC (occr_t, heap)): Define.
11454         (hoist_exprs): Remove.
11455         (alloc_code_hoist_mem, free_code_hoist_mem): Update.
11456         (compute_code_hoist_vbeinout): Add debug print outs.
11457         (hoist_code): Partially rewrite, simplify.  Use get_dominated_to_depth.
11458
11459         * params.def (PARAM_MAX_HOIST_DEPTH): New parameter to avoid
11460         quadratic behavior.
11461         * params.h (MAX_HOIST_DEPTH): New macro.
11462         * doc/invoke.texi (max-hoist-depth): Document.
11463
11464 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
11465
11466         PR rtl-optimization/40956
11467         * config/arm/arm.c (thumb1_size_rtx_costs): Fix cost of simple
11468         constants.
11469
11470 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
11471
11472         PR target/42495
11473         PR middle-end/42574
11474         * config/arm/arm.c (legitimize_pic_address): Use
11475         gen_calculate_pic_address pattern to emit calculation of PIC address.
11476         (will_be_in_index_register): New function.
11477         (arm_legitimate_address_outer_p, thumb2_legitimate_address_p,)
11478         (thumb1_legitimate_address_p): Use it provided !strict_p.
11479         * config/arm/arm.md (calculate_pic_address): New expand and split.
11480
11481 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
11482
11483         PR target/42495
11484         PR middle-end/42574
11485         * config/arm/arm.c (thumb1_size_rtx_costs): Add cost for "J" constants.
11486         * config/arm/arm.md (define_split "J", define_split "K"): Make
11487         IRA/reload friendly.
11488
11489 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
11490
11491         * gcse.c (insert_insn_end_basic_block): Update signature, remove
11492         unused checks.
11493         (pre_edge_insert, hoist_code): Update.
11494
11495 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
11496
11497         PR target/42495
11498         PR middle-end/42574
11499         * gcse.c (hoist_expr_reaches_here_p): Remove excessive check.
11500
11501 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
11502
11503         * gcse.c (hoist_code): Generate new pseudo for every new set insn.
11504
11505 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
11506
11507         PR rtl-optimization/40956
11508         PR target/42495
11509         PR middle-end/42574
11510         * gcse.c (compute_code_hoist_vbeinout): Consider more expressions
11511         for hoisting.
11512         (hoist_code): Count occurences in current block too.
11513
11514 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
11515
11516         * gcse.c (struct expr:max_distance): New field.
11517         (doing_code_hoisting_p): New static variable.
11518         (want_to_gcse_p): Change signature.  Allow constrained hoisting of
11519         simple expressions, don't change behavior for PRE.  Set max_distance.
11520         (insert_expr_in_table): Set new max_distance field.
11521         (hash_scan_set): Update.
11522         (hoist_expr_reaches_here_p): Stop search after max_distance
11523         instructions.
11524         (find_occr_in_bb): New static function.  Use it in ...
11525         (hoist_code): Calculate sizes of basic block before any changes are
11526         done.  Pass max_distance to hoist_expr_reaches_here_p.
11527         (one_code_hoisting_pass): Set doing_code_hoisting_p.
11528
11529         * params.def (PARAM_GCSE_COST_DISTANCE_RATIO,)
11530         (PARAM_GCSE_UNRESTRICTED_COST): New parameters.
11531         * params.h (GCSE_COST_DISTANCE_RATIO, GCSE_UNRESTRICTED_COST): New
11532         macros.
11533         * doc/invoke.texi (gcse-cost-distance-ratio, gcse-unrestricted-cost):
11534         Document.
11535
11536 2010-07-27  Jeff Law  <law@redhat.com>
11537             Maxim Kuvyrkov  <maxim@codesourcery.com>
11538
11539         * gcse.c (compute_transpout, transpout): Remove, move logic
11540         to prune_expressions.
11541         (compute_pre_data): Move pruning of trapping expressions ...
11542         (prune_expressions): ... here.  New static function.
11543         (compute_code_hoist_data): Use it.
11544         (alloc_code_hoist_mem, free_code_hoist_mem, hoist_code): Update.
11545
11546 2010-07-27  Xinliang David Li  <davidxl@google.com>
11547
11548         * tree-ssa-loop-ivopts.c (adjust_iv_update_pos): New function.
11549         (rewrite_use_address): Adjust iv update position when needed.
11550
11551 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
11552
11553         * dbgcnt.def (hoist_insn): New debug counter.
11554         * gcse.c (hoist_code): Use it.
11555
11556 2010-07-27  Xinliang David Li  <davidxl@google.com>
11557
11558         * tree-ssa-loop-ivopts.c (niter_for_exit): New parameter.
11559         (niter_for_single_dom_exit): Passes additional parameter.
11560         (iv_period): Fix comments.
11561         (may_eliminate_iv): Handles multiple exit loops properly.
11562         (free_tree_niter_desc): New function.
11563         (free_loop_data): Frees up loop iteration descriptors.
11564
11565 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
11566
11567         PR target/44542
11568         * cfgexpand.c (expand_one_stack_var_at): Limit align to maximum
11569         of max_used_stack_slot_alignment and PREFERRED_STACK_BOUNDARY
11570         instead of MAX_SUPPORTED_STACK_ALIGNMENT.
11571         (expand_one_var): Don't consider DECL_ALIGN for variables for
11572         which expand_one_stack_var_at has been already called.
11573
11574         PR testsuite/44701
11575         * doc/md.texi: Clarify m and es constraints on PowerPC and m and S
11576         constraints on IA-64.
11577
11578 2010-07-27  Jie Zhang  <jie@codesourcery.com>
11579
11580         PR target/44290
11581         Revert:
11582         2010-07-23  Jie Zhang  <jie@codesourcery.com>
11583
11584         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
11585         false if ! tree_versionable_function_p.
11586
11587 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
11588
11589         * dwarf2out.c (add_data_member_location_attribute): Use
11590         add_AT_unsigned instead of add_AT_int if offset is non-negative.
11591
11592 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
11593
11594         * postreload.c (try_replace_in_use): New static function.
11595         (reload_combine_recognize_const_pattern): Use it here.  Allow
11596         substituting into a final add insn, and substituting into a memory
11597         reference in an insn that sets the reg.
11598
11599 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
11600
11601         * common.opt (o): Add MissingArgError.
11602         * doc/options.texi (MissingArgError): Document.
11603         * hooks.c (hook_bool_constcharptr_size_t_false): Remove.
11604         * hooks.h (hook_bool_constcharptr_size_t_false): Remove.
11605         * langhooks-def.h (LANG_HOOKS_MISSING_ARGUMENT): Remove.
11606         (LANG_HOOKS_INITIALIZER): Remove missing_argument hook initializer.
11607         * langhooks.h (struct lang_hooks): Remove missing_argument.
11608         * optc-gen.awk: Handle MissingArgError and output new structure
11609         field initializers.
11610         * opts.c (read_cmdline_option): Use missing_argument_error field
11611         instead of missing_argument langhook.
11612         * opts.h (struct cl_option): Add missing_argument_error field.
11613         * system.h (LANG_HOOKS_MISSING_ARGUMENT): Poison.
11614
11615 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
11616
11617         PR target/29090
11618         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Special-case the
11619         Darwin64 ABI, for zero-sized objects.
11620
11621 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
11622
11623         PR target/35491
11624         PR target/29090
11625
11626         Merge from Apple local 4.2.1.
11627         2005-05-11  Stan Shebs  <shebs@apple.com>
11628         Fix 64-bit varargs for Darwin (Radar 4028089).
11629         * config/rs6000/rs6000.h (rs6000_args): New field floats_in_gpr.
11630         * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
11631         Add argument, add case for 8-byte register half-filled with a float.
11632         (rs6000_darwin64_record_arg_advance_recurse): Detect and handle
11633         single-precision floats specially.
11634
11635 2010-07-27  Ira Rosen  <irar@il.ibm.com>
11636
11637         PR tree-optimization/44152
11638         * tree-vect-slp.c (vect_build_slp_tree): Collect nodes with
11639         complex numbers for further check.
11640         (vect_supported_load_permutation_p): Check nodes with
11641         complex numbers.
11642
11643 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
11644
11645         * langhooks-def.h (lhd_init_options, LANG_HOOKS_OPTION_LANG_MASK,
11646         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): New.
11647         (LANG_HOOKS_INIT_OPTIONS): Update default definition.
11648         (LANG_HOOKS_INITIALIZER): Add new hooks.
11649         * langhooks.c (lhd_init_options, lhd_complain_wrong_lang_p): New.
11650         * langhooks.h (struct lang_hooks): Add new hooks option_lang_mask
11651         and complain_wrong_lang_p.  Update init_options prototype.
11652         * c-objc-common.c (c_initialize_diagnostics): First call
11653         c_common_initialize_diagnostics.
11654         * c-objc-common.h (LANG_HOOKS_OPTION_LANG_MASK,
11655         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): Define.
11656         * coretypes.h (struct cl_option, struct cl_decoded_option): Declare.
11657         * hooks.c (hook_uint_uint_constcharptrptr_0): Remove.
11658         (hook_uint_void_0): New.
11659         * hooks.h (hook_uint_uint_constcharptrptr_0): Remove.
11660         (hook_uint_void_0): New.
11661         * opts-common.c (decode_cmdline_option,
11662         decode_cmdline_options_to_array): Also fill in canonical_option field.
11663         * opts.c (complain_wrong_lang): Use langhook to determine whether
11664         to complain instead of special-casing LTO.
11665         (decode_options): Separate lang_mask determination with
11666         option_lang_mask hook from call of init_options hook.
11667         * opts.h (struct cl_decoded_option): Add canonical_option.
11668
11669 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
11670
11671         PR tree-optimization/45083
11672         * tree-inline.c (add_local_variables): Also remap DECL_DEBUG_EXPR.
11673
11674 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
11675
11676         * postreload.c (reload_combine_recognize_const_pattern): Move test
11677         for limiting the insn movement to the right scope.
11678
11679         PR rtl-optimization/45051
11680         * reload1.c (delete_output_reload): Use refers_to_regno_p rather
11681         than reg_mentioned_p.
11682
11683 2010-07-26  Richard Henderson  <rth@redhat.com>
11684
11685         PR target/44132
11686         * tree-emutls.c: New file.
11687         * Makefile.in (OBJS-common): Add it.
11688         * tree-pass.h (pass_ipa_lower_emutls): Declare.
11689         * passes.c (init_optimization_passes): Add it.
11690
11691         * dwarf2out.c (loc_list_from_tree): If emutls.debug_form_tls_address,
11692         pull the control variable from DECL_VALUE_EXPR, not emutls_decl.
11693         * expr.c (emutls_var_address): Delete.
11694         (expand_expr_addr_expr_1, expand_expr_real_1): Don't use it.
11695         * output.h (SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL): Delete.
11696         (emutls_finish): Delete.
11697         * toplev.c (compile_file): Don't call it.
11698         * tree.h (emutls_decl): Delete.
11699         * varasm.c (emutls_htab, DECL_EMUTLS_VAR_P): Delete.
11700         (emutls_finish, emutls_finalize_control_var): Delete.
11701         (emutls_object_type): Move to tree-emutls.c.
11702         (EMUTLS_SEPARATOR, prefix_name, get_emutls_object_name,
11703         default_emutls_var_fields, get_emutls_object_type,
11704         get_emutls_init_templ_addr, emutls_decl, emutls_common_1
11705         default_emutls_var_init): Likewise.
11706         (get_variable_section): Don't special case emutls.
11707         (assemble_variable, do_assemble_alias, categorize_decl_for_section,
11708         default_elf_select_section, default_unique_section,
11709         default_encode_section_info): Likewise.
11710         * varpool.c (decide_is_variable_needed): Likewise.
11711         * gimple-iterator.c (update_call_edge_frequencies): New
11712         (gsi_insert_on_edge_immediate): Use it.
11713         (gsi_insert_seq_on_edge_immediate): Likewise.
11714         (gsi_commit_one_edge_insert): Likewise.
11715
11716         * config/i386/i386.c (x86_64_elf_select_section): Don't handle
11717         SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL.
11718         (x86_64_elf_unique_section): Likewise.
11719
11720 2010-07-26  Jan Hubicka  <jh@suse.cz>
11721
11722         * lto-streamer.h (struct lto_file_decl_data): Mark resolutions with
11723         GTY((skip)).
11724
11725 2010-07-26  Anatoly Sokolov  <aesok@post.ru>
11726
11727         * target.def (output_source_filename): New hook.
11728         * doc/tm.texi.in (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Document.
11729         * doc/tm.texi: Regenerate.
11730         * toplev.c (output_file_directive) Remove function.
11731         * toplev.h (output_file_directive) Remove.
11732         * output.h (default_asm_output_source_filename,
11733         output_file_directive): Declare.
11734         * varasm.h (default_asm_output_source_filename,
11735         output_file_directive): New functions.
11736
11737         * config/mips/mips.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
11738         * config/mips/mips-protos.h (mips_output_filename): Remove.
11739         * config/mips/mips.c (mips_output_filename): Make Static.
11740         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
11741
11742 2010-07-26  Richard Guenther  <rguenther@suse.de>
11743
11744         PR tree-optimization/43784
11745         * tree-nrv.c (dest_safe_for_nrv_p): It's not safe to NRV
11746         if the destination is used by the call.
11747
11748 2010-07-26  Richard Guenther  <rguenther@suse.de>
11749
11750         PR middle-end/45073
11751         * gimple-fold.c (gimplify_and_update_call_from_tree): Conditionalize
11752         SSA updating on being in SSA form.
11753
11754 2010-07-26  Richard Guenther  <rguenther@suse.de>
11755
11756         PR middle-end/45056
11757         * gimple-fold.c (fold_stmt_1): Also fold references in debug stmts.
11758
11759 2010-07-26  Richard Guenther  <rguenther@suse.de>
11760
11761         PR tree-optimization/45071
11762         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Always
11763         adjust op->opcode.
11764
11765 2010-07-26  Naveen.H.S  <naveen.S@kpitcummins.com>
11766
11767         * config/v850/lib1funcs.asm (save_r2_r31, return_r2_r31,
11768         save_r20_r31, return_r20_r31, save_r21_r31, return_r21_r31,
11769         save_r22_r31, return_r22_r31, save_r23_r31, return_r23_r31,
11770         save_r24_r31, return_r24_r31, save_r25_r31, return_r25_r31,
11771         save_r26_r31, return_r26_r31, save_r27_r31, return_r27_r31,
11772         save_r28_r31, return_r28_r31, save_r29_r31, return_r29_r31,
11773         save_r31, return_r31, save_interrupt, return_interrupt,
11774         save_all_interrupt, return_all_interrupt, L_save_r2_r31,
11775         L_return_interrupt, callt_return_interrupt, L_restore_all_interrupt,
11776         L_save_##START##_r31c, L_callt_save_r31c): Updated as per the
11777         new ABI requirements.
11778         (save_r6_r9, L_callt_save_r6_r9): Remove.
11779         * config/v850/predicates.md (even_reg_operand, disp23_operand,
11780         const_float_1_operand const_float_0_operand): New Predicates.
11781         (pattern_is_ok_for_prepare, pattern_is_ok_for_prologue,
11782         pattern_is_ok_for_epilogue): Update as per the ABI requirements.
11783         * config/v850/t-v850: Update multilibs for new target variants.
11784         (save_varargs, callt_save_varargs, callt_save_r6_r9): Remove.
11785         * config/v850/t-v850e: Likewise.
11786         * config/v850/v850.c (v850_issue_rate): New.
11787         (v850_strict_argument_naming): New.
11788         (function_arg): Modify to generate a different ABI.
11789         (print_operand): Update case 'z' to support float modes.
11790         (output_move_single): Modify to generate appropriate and better
11791         assembly.
11792         (v850_float_z_comparison_operator, v850_select_cc_mode,
11793         v850_float_nz_comparison_operator,  v850_gen_float_compare,
11794         v850_gen_compare): New functions to support comparison of float values.
11795         (ep_memory_offset): Add support for V850E2 targets.
11796         (INTERRUPT_FIXED_NUM, INTERRUPT_ALL_SAVE_NUM): Update.
11797         (INTERRUPT_REGPARM_NUM): Remove.
11798         (compute_register_save_size): Add extra case to save/restore long call.
11799         (use_prolog_function): New function to support prologue.
11800         (expand_prologue): Add support for V850E2 targets and modified
11801         as per the current ABI requirements.
11802         (expand_epilogue): Likewise.
11803         (construct_restore_jr): Modify based on TARGET_LONG_CALLS.
11804         (construct_save_jarl): Likewise.
11805         (construct_dispose_instruction): Update as per the current ABI
11806         requirements.
11807         (construct_prepare_instruction): Likewise.
11808         * config/v850/v850.h (TARGET_CPU_DEFAULT): Add target predefines.
11809         (TARGET_CPU_v850e2, TARGET_CPU_v850e2v3): Define
11810         (CPP_SPEC): Updated to support v850e2 targets.
11811         (STRICT_ALIGNMENT): Modified.
11812         (FIRST_PSEUDO_REGISTER): Updated to add even registers.
11813         (FIXED_REGISTERS): Likewise.
11814         (CALL_USED_REGISTERS): Likewise.
11815         (CONDITIONAL_REGISTER_USAGE): Updated.
11816         (HARD_REGNO_MODE_OK): Updated.
11817         (reg_class): Updated to add even registers.
11818         (REG_CLASS_NAMES): Likewise.
11819         (REG_CLASS_CONTENTS): Likewise.
11820         (REGNO_REG_CLASS): Updated for CC registers.
11821         (REG_CLASS_FROM_LETTER): Added support for even registers.
11822         (REGNO_OK_FOR_BASE_P): Updated for CC registers.
11823         (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM, LINK_POINTER_REGNUM,
11824         ARG_POINTER_REGNUM): Updated.
11825         (FUNCTION_ARG_ADVANCE): Define.
11826         (REG_PARM_STACK_SPACE): Update as per the current ABI requirements.
11827         (OUTGOING_REG_PARM_STACK_SPACE): Remove.
11828         (EXTRA_CONSTRAINT): Add new constraint 'W' for 23-bit displacement.
11829         (GO_IF_LEGITIMATE_ADDRESS): Updated.
11830         (SELECT_CC_MODE): Define.
11831         (REGISTER_NAMES): Updated to add psw and fcc registers.
11832         (ADDITIONAL_REGISTER_NAMES): Updated.
11833         (ASM_OUTPUT_ADDR_DIFF_ELT): Updated to support new targets.
11834         (JUMP_TABLES_IN_TEXT_SECTION): Updated.
11835         * config/v850/v850.md (define_constants): Define new constants.
11836         (type): Update store,bit1,macc,div,fpu and single attributes.
11837         (cpu): New attribute.
11838         (cc): Add set_z attribute.
11839         (unsign23byte_load, sign23byte_load, unsign23hword_load,
11840         sign23hword_load, 23word_load, 23byte_store, 23hword_store,
11841         23word_store): New instructions for 23-bit displacement load and store.
11842         (movqi_internal, movhi_internal): Update the attributes.
11843         (movsi, movsi_internal_v850e): Updated to support v850e2 targets.
11844         (movsi_internal_v850e, movsi_internal, movsf_internal): Update
11845         the attributes.
11846         (v850_tst1): Modified using CC_REGNUM.
11847         (tstsi): Remove.
11848         (cmpsi): Modified as define_expand from define_insn.
11849         (cmpsi_insn, cmpsf, cmpdf): New instructions.
11850         (addsi3, subsi3, negsi2, divmodsi4, udivmodsi4, divmodhi4,
11851         udivmodhi4, v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3,
11852         v850_set1_1, v850_set1_3, iorsi3, v850_not1_1, v850_not1_3, xorsi3,
11853         one_cmplsi2): Clobber the CC_REGNUM register.
11854         (v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3, v850_set1_1,
11855         v850_set1_2, v850_set1_3, iorsi3, v850_not1_1, v850_not1_2,
11856         v850_not1_3, xorsi3, one_cmplsi2): Update the attributes accordingly.
11857         (setf_insn, set_z_insn, set_nz_insn): New instructions for
11858         v850e2v3 target.
11859         (movsicc_normal_cc, movsicc_reversed_cc): New instructions.
11860         (movsicc, movsicc_normal, movsicc_reversed): Add support for V850E2
11861         targets.
11862         (sasf_1, sasf_2): Remove.
11863         (sasf): New instruction.
11864         (rotlhi3, rotlhi3_8, rotlsi3, rotlsi3_16): Update to support V850E2
11865         targets. CC_REGNUM register is clobbered and attributes are
11866         updated.
11867         (branch_z_normal, branch_z_invert, branch_nz_normal,
11868         branch_nz_invert): New branch related instructions.
11869         (jump): Updated the attributes.
11870         (switch): Update to support new targets. CC_REGNUM register is
11871         clobbered and attributes are updated.
11872         (call_internal_short, call_internal_long, call_value_internal_short,
11873         call_value_internal_long): Updated the attributes.
11874         (zero_extendhisi2, zero_extendqisi2): CC_REGNUM register is
11875         clobbered and attributes are updated.
11876         (extendhisi_insn, extendhisi2, extendqisi_insn, extendqisi2):
11877         Update to support new targets. CC_REGNUM register is clobbered.
11878         (ashlsi3_v850e2, lshrsi3_v850e2, ashrsi3_v850e2): New shift
11879         instructions.
11880         (lshrsi3, ashrsi3): CC_REGNUM register is clobbered and attributes
11881         are updated.
11882         (ffssi2, addsf3, adddf3, subsf3, subdf3, mulsf3, muldf3, divsf3,
11883         divdf3, minsf3, mindf3, maxsf3, maxdf3, abssf2, absdf2, negsf2,
11884         negdf2, sqrtsf2, sqrtdf2, truncsfsi2, truncdfsi2, floatsisf2,
11885         floatsidf2, extendsfdf2, extenddfsf2, recipsf2, recipdf2,
11886         rsqrtsf2, rsqrtdf2, maddsf4, msubsf4, nmaddsf4, nmsubsf4,
11887         cmpsf_le_insn, cmpsf_lt_insn, cmpsf_ge_insn, cmpsf_gt_insn,
11888         cmpsf_eq_insn, cmpsf_ne_insn, cmpdf_le_insn, cmpdf_lt_insn,
11889         cmpdf_ge_insn, cmpdf_gt_insn, cmpdf_eq_insn, cmpdf_ne_insn, trfsr,
11890         movsfcc, movdfcc, movsfcc_z_insn, movsfcc_nz_insn, movdfcc_z_insn,
11891         movdfcc_nz_insn, movedfcc_z_zero, movedfcc_nz_zero): New floating
11892         point instructions defined for V850e2v3 target.
11893         (callt_save_interrupt, callt_return_interrupt, return_interrupt):
11894         Add support for V850E2 targets and CC_REGNUM register is clobbered.
11895         (callt_save_all_interrupt, callt_restore_all_interrupt): Add
11896         support for new targets.
11897         * config/v850/v850-modes.def: New file.
11898         * config/v850/v850.opt(mstrict-align): Remove.
11899         (mno-strict-align, mjump-tables-in-data-section, mv850e2,
11900         mv850e2v3): New command line options for V850.
11901         * config.gcc: Update the newly added files.
11902         * doc/invoke.texi: Update the newly added command line options for
11903         V850 target.
11904
11905 2010-07-26  Richard Guenther  <rguenther@suse.de>
11906
11907         PR tree-optimization/45052
11908         * ipa-pure-const.c (check_stmt): Check volatileness.
11909
11910 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
11911
11912         PR target/44707
11913         * config/sparc/sparc-protos.h (sparc_legitimize_reload_address): New.
11914         * config/sparc/sparc.c: Include reload.h.
11915         (legitimize_tls_address): Rename into...
11916         (sparc_legitimize_tls_address): ...this.
11917         (legitimize_pic_address): Rename into...
11918         (sparc_legitimize_pic_address): ...this.
11919         (sparc_expand_move): Adjust to above renaming.
11920         (sparc_tls_referenced_p): Likewise.
11921         (sparc_legitimize_tls_address): Likewise.
11922         (sparc_legitimize_pic_address): Likewise.
11923         (sparc_legitimize_address): Likewise.
11924         (sparc_output_mi_thunk): Likewise.
11925         (sparc_legitimize_reload_address): New global function.  Recognize
11926         (lo_sum (high ...) ...) patterns generated by earlier passes.
11927         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Use above function.
11928
11929 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
11930
11931         PR target/44484
11932         * config/sparc/predicates.md (memory_reg_operand): Delete.
11933         * config/sparc/sync.md (sync_compare_and_swap): Minor tweaks.
11934         (*sync_compare_and_swap): Encode the address form in the pattern.
11935         (*sync_compare_and_swapdi_v8plus): Likewise.
11936
11937 2010-07-24  Gerald Pfeifer  <gerald@pfeifer.com>
11938
11939         * doc/install.texi (Specific, *-*-freebsd*): Adjust to recent changes.
11940         Streamline paragraph on compatibility with the system compiler.
11941
11942 2010-07-24  Steven Bosscher  <steven@gcc.gnu.org>
11943
11944         PR middle-end/45035
11945         * alias.c (true_dependence_1): Fix thinko in merge of old
11946         true_dependence and canon_true_dependence.
11947
11948 2010-07-23  Jan Hubicka  <jh@suse.cz>
11949
11950         * lto-streamer-out.c (write_symbol): Fix visibilities of external
11951         references.
11952
11953 2010-07-23  Le-Chun Wu  <lcwu@google.com>
11954
11955         * omega.c (omega_eliminate_redundant): Remove a self-assign statement.
11956         * tree-ssa-ccp.c (ccp_lattice_meet): Remove a self-assign statement
11957         and an unnecessary assignment.
11958         * dbxout.c (DEBUGGER_ARG_OFFSET): Change OFFSET to OFFSET+0 to avoid
11959         self-assign warning.
11960         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Remove
11961         unnecessary self-init.
11962
11963 2010-07-23  Richard Guenther  <rguenther@suse.de>
11964
11965         PR lto/43071
11966         * gcc.c (LINK_COMMAND_SPEC): Filter out -fcompare-debug
11967         for -flto and -fwhopr.
11968
11969 2010-07-23  Kai Tietz  <kai.tietz@onevision.com>
11970
11971         PR target/41943
11972         * Makefile.in (USER_H_INC_NEXT_PRE, USER_H_INC_NEXT_POST): New.
11973         (stmp-int-hdrs): Prefix/postfix headers by include_next.
11974         * config.gcc (user_headers_inc_next_pre): New.
11975         (user_headers_inc_next_post): Likewise.
11976         (*-w64-mingw*): Use for float.h post-fixing, and for
11977         stddef.h/stdarg.h pre-fixing by include_next.
11978         * configure.ac (user_headers_inc_next_post): New.
11979         (user_headers_inc_next_pre): New.
11980         * configure: Regenerated.
11981
11982 2010-07-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11983
11984         * configure.ac: Don't disable TLS on Solaris 8/9 by default
11985         Set tga_func for Solaris 2/x86 resp. SPARC.
11986         Remove duplicate parts of sparc*-sun-solaris2.* TLS check.
11987         (LIB_THREAD_LDFLAGS_SPEC): Define.
11988         (LIB_TLS_SPEC): Define.  Check for required Sun ld version.
11989         * configure: Regenerate.
11990         * config.in: Regenerate.
11991         * config/sol2.h (LIB_SPEC): Use LIB_THREAD_LDFLAGS_SPEC with
11992         -pthread, -threads, LIB_TLS_SPEC with -pthread.
11993         * doc/install.texi (Specific, *-*-solaris2*): Document use of
11994         alternate thread libraries on Solaris 8.
11995         Document TLS patch requirements.
11996         * doc/sourcebuild.texi (Add Options): Sort alphabetically.
11997         Document tls.
11998
11999         PR target/18788
12000         * config/sol2.h (LIB_SPEC): Link with thread libraries even with
12001         -shared.
12002
12003 2010-07-23  Jakub Jelinek  <jakub@redhat.com>
12004
12005         * tree.h (struct tree_base): Add nameless_flag bitfield.
12006         (TYPE_NAMELESS, DECL_NAMELESS): Define.
12007         * omp-low.c (create_omp_child_function, scan_omp_parallel,
12008         scan_omp_task, lower_omp_taskreg): Set DECL_NAMELESS and/or
12009         DECL_ARTIFICIAL where needed.
12010         * dwarf2out.c (dwarf2_name): Return NULL if DECL_NAMELESS.
12011         (type_tag): Return NULL if TYPE_NAMELESS or if TYPE_DECL
12012         has DECL_NAMELESS set.
12013
12014 2010-07-23  Martin Jambor  <mjambor@suse.cz>
12015
12016         PR tree-optimization/44915
12017         * ipa-cp.c (cgraph_gate_cp): Also check that optimize is true.
12018         * ipa-inline.c (cgraph_mark_inline_edge): Likewise.
12019         (analyze_function): Likewise.
12020
12021 2010-07-23  Martin Jambor  <mjambor@suse.cz>
12022
12023         PR tree-optimization/44914
12024         * tree-sra.c (sra_modify_function_body): Return true if CFG was
12025         changed, add purging dead eh edges.
12026         (ipa_sra_modify_function_body): Return true if CFG was changed,
12027         simplify purging dead eh edges.
12028         (modify_function): Return true if CFG was changed.
12029         (perform_intra_sra): Add TODO_cleanup_cfg to the return value if CFG
12030         was changed.
12031         (ipa_early_sra): Likewise.
12032
12033 2010-07-23  Jie Zhang  <jie@codesourcery.com>
12034
12035         PR target/44290
12036         * attribs.c (decl_attributes): Insert "noinline" and "noclone"
12037         if "naked".
12038         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
12039         false if ! tree_versionable_function_p.
12040
12041 2010-07-23  Nathan Froyd  <froydnj@codesourcery.com>
12042
12043         * builtins.def (BUILT_IN_ARGS_INFO): Remove.
12044         * ipa-pure-const.c (special_builtlin_state): Remove
12045         BUILT_IN_ARGS_INFO case.
12046         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
12047         * builtins.c (expand_builtin): Likewise.
12048         (expand_builtin_args_info): Remove.
12049         * doc/tm.texi (__builtin_args_info): Remove.
12050         (__builtin_next_arg): Adjust to not refer to __builtin_args_info.
12051         * doc/tm.text.in: Likewise.
12052
12053 2010-07-23  Richard Guenther  <rguenther@suse.de>
12054
12055         * lto-symtab.c (lto_symtab_merge): Use gtc_mode enum values.
12056         (lto_symtab_merge_decls_2): Likewise.
12057         * tree-ssa.c (useless_type_conversion_p): Likewise.
12058         * lto-streamer-in.c (input_gimple_stmt): Likewise.
12059         * gimple.c (gtc_visited2, gtc_ob2): Remove.
12060         (struct type_pair_d): Make same_p an array indexed by mode.
12061         Update comment.
12062         (lookup_type_pair): Update initialization.
12063         (struct sccs): Adjust same_p type.
12064         (gimple_types_compatible_p_1, gtc_visit, gimple_types_compatible_p):
12065         Adjust.
12066         (print_gimple_types_stats): Likewise.
12067         * gimple.h (enum gtc_mode): New.
12068         (gimple_types_compatible_p): Adjust prototype.
12069
12070 2010-07-23  Daniel Jacobowitz  <dan@codesourcery.com>
12071
12072         * dwarf2out.c (dwarf2out_frame_debug): Check for queued saves
12073         again after processing insn.
12074
12075 2010-07-23  Jie Zhang  <jie@codesourcery.com>
12076
12077         * tree-sra.c (ipa_sra_preliminary_function_checks): Dump
12078         proper words when !tree_versionable_function_p.
12079
12080 2010-07-23  Richard Guenther  <rguenther@suse.de>
12081
12082         PR tree-optimization/45037
12083         * tree-ssa-loop-ivopts.c (copy_ref_info): Handle NULL base.
12084
12085 2010-07-23  Jie Zhang  <jie@codesourcery.com>
12086
12087         * doc/extend.texi: Remove IP2K from the description of naked attribute.
12088         Add MCORE instead.
12089
12090 2010-07-10  Andi Kleen  <ak@linux.intel.com>
12091
12092         PR lto/44992
12093         * lto-opts.c (lto_write_options): Add NULL file_data argument to
12094         lto_get_section_name.
12095         * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
12096         * lto-streamer-out.c (produce_asm): Likewise.
12097         (copy_function): Likewise.
12098         (produce_symtab): Likewise.
12099         (produce_asm_for_decls): Likewise.
12100         * lto-streamer.c (lto_get_section_name): Add file_data argument.
12101         Rewrite to add random postfix to LTO sections.
12102         * lto-streamer.h (lto_file_decl_data): Add next, id, resolutions.
12103         (lto_get_section_name): Add file_data argument to prototype.
12104
12105 2010-07-10  Andi Kleen  <ak@linux.intel.com>
12106
12107         * lto-section-in.c (lto_section_name): Synchronize names
12108         with lto_get_section_name.
12109
12110 2010-07-10  Andi Kleen  <ak@linux.intel.com>
12111
12112         * lto-opts.c (lto_read_file_options): Check for missing section.
12113
12114 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
12115
12116         * ira.c (check_allocation): Correctly handle the case where an allocno
12117         with two objects was allocated to a single reg.
12118
12119 2010-07-22  Richard Sandiford  <rdsandiford@googlemail.com>
12120
12121         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): New function.
12122         (is_widening_mult_p): Likewise.
12123         (convert_to_widen): Use them.
12124         (convert_plusminus_to_widen): Likewise.  Handle fixed-point types as
12125         well as integer ones.
12126
12127 2010-07-22  Steven Bosscher  <steven@gcc.gnu.org>
12128
12129         * alias.c (true_dependence_1): New function, merged version of
12130         true_dependence and canon_true_dependence.
12131         (true_dependence): Simplify.
12132         (canon_true_dependence): Simplify.
12133
12134 2010-07-22  Richard Henderson  <rth@redhat.com>
12135
12136         PR target/45027
12137         * config/i386/i386.c (setup_incoming_varargs_64): Force the use
12138         of V4SFmode for the SSE saves; increase stack alignment if needed.
12139         (ix86_gimplify_va_arg): Don't increase stack alignment here.
12140
12141 2010-07-22  Jakub Jelinek  <jakub@redhat.com>
12142
12143         PR bootstrap/45028
12144         * recgprop.c (copyprop_hardreg_forward_1): If changed is true,
12145         call cprop_find_used_regs again via note_uses.
12146
12147 2010-07-22  Eric Botcazou  <ebotcazou@adacore.com>
12148
12149         * alias.c (get_alias_set): Fix formatting issues.
12150
12151 2010-07-22  Steve Ellcey  <sje@cup.hp.com>
12152
12153         PR middle-end/44878
12154         * stmt.c (expand_value_return):  Call promote_function_mode with
12155         a for_return argument of 2 when returning by reference.
12156
12157 2010-07-22  Dodji Seketeli  <dodji@redhat.com>
12158
12159         PR debug/45024
12160         * dwarf2out.c (scope_die_for): Don't fall back to the compilation
12161         unit DIE if we can find the scope DIE.
12162
12163 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
12164
12165         * ira-build.c (ira_create_object): New arg SUBWORD; all callers
12166         changed.  Initialize OBJECT_SUBWORD.
12167         (ira_create_allocno): Clear ALLOCNO_NUM_OBJECTS.
12168         (ira_create_allocno_objects): Renamed from ira_create_allocno_object;
12169         all callers changed.
12170         (merge_hard_reg_conflicts): Iterate over allocno subobjects.
12171         (finish_allocno): Likewise.
12172         (move_allocno_live_ranges, copy_allocno_live_ranges): Likewise.
12173         (remove_low_level_allocnos): Likewise.
12174         (update_bad_spill_attribute): Likewise.
12175         (setup_min_max_allocno_live_range_point): Likewise.
12176         (sort_conflict_id_map): Likewise.
12177         (ira_flattening): Likewise.  Use ior_hard_reg_conflicts.
12178         (ior_hard_reg_conflicts): New function.
12179         (ior_allocate_object_conflicts): Renamed first argument to OBJ.
12180         (compress_conflict_vecs): Iterate over objects, not allocnos.
12181         (ira_add_live_range_to_object): New function.
12182         (object_range_compare_func): Renamed from allocno_range_compare_func.
12183         All callers changed.
12184         (setup_min_max_conflict_allocno_ids): For allocnos with multiple
12185         subobjects, widen the min/max range of the lowest-order object to
12186         potentially include all other such low-order objects.
12187         * ira.c (ira_bad_reload_regno_1): Iterate over allocno subobjects.
12188         (check_allocation): Likewise.  Use more fine-grained tests for register
12189         conflicts.
12190         * ira-color.c (allocnos_have_intersected_live_ranges_p): Iterate over
12191         allocno subobjects.
12192         (assign_hard_reg): Keep multiple sets of conflicts.  Make finer-grained
12193         choices about which bits to set in each set.  Don't use
12194         ira_hard_reg_not_in_set_p, perform a more elaborate test for conflicts
12195         using the multiple sets we computed.
12196         (push_allocno_to_stack): Iterate over allocno subobjects.
12197         (all_conflicting_hard_regs_coalesced): New static function.
12198         (setup_allocno_available_regs_num): Use it.
12199         (setup_allocno_left_conflicts_size): Likewise.  Iterate over allocno
12200         subobjects.
12201         (coalesced_allocno_conflict): Test subobject 0 in each allocno.
12202         (setup_allocno_priorities): Divide ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
12203         by ALLOCNO_NUM_OBJECTS.
12204         (calculate_spill_cost): Likewise.
12205         (color_pass): Express if statement in a more normal way.
12206         (ira_reassign_conflict_allocnos): Iterate over allocno subobjects.
12207         (slot_coalesced_allocno_live_ranges_intersect_p): Likewise.
12208         (setup_slot_coalesced_allocno_live_ranges): Likewise.
12209         (allocno_reload_assign): Likewise.
12210         (ira_reassign_pseudos): Likewise.
12211         (fast_allocation): Likewise.
12212         * ira-conflicts.c (build_conflict_bit_table): Likewise.
12213         (print_allocno_conflicts): Likewise.
12214         (ira_build_conflicts): Likewise.
12215         (allocnos_conflict_for_copy_p): Renamed from allocnos_conflict_p.  All
12216         callers changed.  Test subword 0 of each allocno for conflicts.
12217         (build_object_conflicts): Renamed from build_allocno_conflicts.  All
12218         callers changed.  Iterate over allocno subobjects.
12219         * ira-emit.c (modify_move_list): Iterate over allocno subobjects.
12220         * ira-int.h (struct ira_allocno): New member: num_objects.
12221         Rename object to objects and change it into an array.
12222         (ALLOCNO_OBJECT): Add new argument N.
12223         (ALLOCNO_NUM_OBJECTS, OBJECT_SUBWORD): New macros.
12224         (ira_create_allocno_objects): Renamed from ira_create_allocno_object.
12225         (ior_hard_reg_conflicts): Declare.
12226         (ira_add_live_range_to_object): Declare.
12227         (ira_allocno_object_iterator): New.
12228         (ira_allocno_object_iter_init, ira_allocno_object_iter_cond): New.
12229         (FOR_EACH_ALLOCNO_OBJECT): New macro.
12230         * ira-lives.c (objects_live): Renamed from allocnos_live; all
12231         uses changed.
12232         (allocnos_processed): New sparseset.
12233         (make_object_born): Renamed from make_allocno_born; take an
12234         ira_object_t argument.  All callers changed.
12235         (make_object_dead): Renamed from make_allocno_dead; take an
12236         ira_object_t argument.  All callers changed.
12237         (update_allocno_pressure_excess_length): Take an ira_obejct_t argument.
12238         All callers changed.
12239         (mark_pseudo_regno_live): Iterate over allocno subobjects.
12240         (mark_pseudo_regno_dead): Likewise.
12241         (mark_pseudo_regno_subword_live, mark_pseudo_regno_subword_dead): New
12242         functions.
12243         (mark_ref_live): Detect subword accesses and call
12244         mark_pseudo_regno_subword_live as appropriate.
12245         (mark_ref_dead): Likewise for mark_pseudo_regno_subword_dead.
12246         (process_bb_nodes_live): Deal with object-related updates first; set
12247         and test bits in allocnos_processed to avoid computing allocno
12248         statistics more than once.
12249         (create_start_finish_chains): Iterate over objects, not allocnos.
12250         (print_object_live_ranges): New function.
12251         (print_allocno_live_ranges): Use it.
12252         (ira_create_allocno_live_ranges): Allocate and free allocnos_processed
12253         and objects_live.
12254
12255 2010-07-22  Richard Guenther  <rguenther@suse.de>
12256
12257         PR lto/42451
12258         * gimple.c (gtc_next_dfs_num): New global.
12259         (struct sccs): Make value a union, add integer same_p member.
12260         (gtc_visit): New function.
12261         (gimple_types_compatible_p_1): New function, split out from ...
12262         (gimple_types_compatible_p): ... here.  Start a DFS walk here.
12263         (iterative_hash_gimple_type): Adjust for sccs change.
12264
12265 2010-07-22  Martin Jambor  <mjambor@suse.cz>
12266
12267         PR tree-optimization/44891
12268         * tree-sra.c: Include gimple-pretty-print.h.
12269         (replace_uses_with_default_def_ssa_name): Renamed to
12270         get_repl_default_def_ssa_name, return the new SSA name instead of
12271         replacing the old one.
12272         (sra_modify_assign): Dump a message when removing a load, if the LHS
12273         is an SSA_NAME, do not do any propagation, just set the RHS to a
12274         default definition SSA NAME, type convert if necessary.
12275         * Makefile.in (tree-sra.o): Add gimple-pretty-print.h to dependencies.
12276
12277 2010-07-22  Richard Guenther  <rguenther@suse.de>
12278
12279         PR tree-optimization/45017
12280         * tree-ssa-sccvn.c (vn_reference_eq): Make sure we honor
12281         TYPE_PRECISION of integral types in addition to size.
12282
12283 2010-07-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
12284
12285         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Default to GLIBC
12286         when no C library is specified.
12287
12288 2010-07-22  Martin Jambor  <mjambor@suse.cz>
12289
12290         * ipa-prop.h (struct ipa_node_params): Updated comment.
12291         (struct ipa_edge_args): Likewise.
12292         * Makefile.in (ipa-prop.o): Remove bogus $(GIMPLE_FOLD_H) dependency.
12293
12294 2010-07-22  Martin Jambor  <mjambor@suse.cz>
12295
12296         * cgraphunit.c (verify_edge_count_and_frequency): New function.
12297         (verify_cgraph_node): Verify frequencies of indirect edges.
12298         * tree-inline.c (tree_function_versioning): Update frequencies of
12299         indirect edges.
12300
12301 2010-07-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12302
12303         PR target/43698
12304         * config/arm/arm.md: Split arm_rev into *arm_rev and *thumb1_rev.
12305         Set *arm_rev to be predicable.
12306
12307 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
12308
12309         * config/darwin.h (LINK_COMMAND_SPEC): Split into...
12310         (LINK_COMMAND_SPEC_A): New.
12311         (DSYMUTIL): New.
12312         (DSYMUTIL_SPEC): New.
12313         * config/darwin9.h (LINK_COMMAND_SPEC): Remove.
12314         (DSYMUTIL_SPEC): Update for darwin >= 9 requirements.
12315
12316 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
12317
12318         * calls.c (load_register_parameters): Move check for zero
12319         sized items so that only the call to
12320         mem_overlaps_already_clobbered_arg_p () is protected.
12321
12322 2010-07-22  Jan Hubicka  <jh@suse.cz>
12323
12324         * ipa-pure-const.c (varying_state): Break out from ...
12325         (get_function_state): ... here; always return varying_state
12326         when state would be NULL otherwise.
12327         (remove_node_data): Do not free varying state.
12328
12329 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
12330
12331         PR bootstrap/44970
12332         PR middle-end/45009
12333         * postreload.c: Include "target.h".
12334         (reload_combine_closest_single_use): Don't take DEBUG_INSNs
12335         into account.
12336         (fixup_debug_insns): Don't copy the rtx.
12337         (reload_combine_recognize_const_pattern): DEBUG_INSNs can't have uses.
12338         Don't copy when replacing.  Call fixup_debug_insns in the case where
12339         we merged one add with another.
12340         (reload_combine_recognize_pattern): Fail if there aren't any uses.
12341         Try harder to determine whether we're picking a valid index register.
12342         Don't set store_ruid for an insn we're going to scan in the
12343         next iteration.
12344         (reload_combine): Remove unused code.
12345         (reload_combine_note_use): When updating use information for
12346         an old insn, ignore a use that occurs after store_ruid.
12347         * Makefile.in (postreload.o): Update dependencies.
12348
12349         * function.c (record_hard_reg_sets): Restrict the previous change
12350         to cases where the incoming nominal mode is the same as the
12351         incoming promoted mode and everything happens in MODE_INT.
12352
12353 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
12354
12355         PR debug/45015
12356         * var-tracking.c (adjust_mems): Ignore ASM_OPERANDS with non-zero
12357         ASM_OPERANDS_OUTPUT_IDX.
12358         (adjust_insn): For inline asm with multiple sets ensure first
12359         ASM_OPERANDS vectors are used by all following ASM_OPERANDS in
12360         the insn.
12361
12362 2010-07-21  Richard Henderson  <rth@redhat.com>
12363
12364         * config/i386/i386.c (setup_incoming_varargs_64): Emit a simple
12365         comparison for avoiding xmm register saves.  Emit the xmm register
12366         saves explicitly.
12367         * config/i386/i386.md (UNSPEC_SSE_PROLOGUE_SAVE): Remove.
12368         (UNSPEC_SSE_PROLOGUE_SAVE_LOW): Remove.
12369         (sse_prologue_save, sse_prologue_save_insn1, sse_prologue_save_insn):
12370         Remove patterns and the associated splitters.
12371
12372 2010-07-21  Changpeng Fang  <changpeng.fang@amd.com>
12373
12374         * tree-ssa-loop-prefetch.c (analyze_ref): Strip off the real
12375         and imagine parts of a complex, so that they can have the same
12376         base and fall into the same group.
12377
12378 2010-07-21  Richard Guenther  <rguenther@suse.de>
12379
12380         PR lto/45018
12381         * tree.c (find_decls_types_r): Do not follow TREE_CHAIN
12382         of TYPE_DECLs.  Do not follow TYPE_NEXT_VARIANT,
12383         TYPE_NEXT_PTR_TO, nor TYPE_NEXT_REF_TO or TYPE_CANONICAL.
12384
12385 2010-07-21  Martin Jambor  <mjambor@suse.cz>
12386
12387         PR tree-optimization/44900
12388         * tree-sra.c (load_assign_lhs_subreplacements): Updated comments.
12389         (sra_modify_assign): Move gsi to the next statmenent unconditionally.
12390
12391 2010-07-21  Bernd Schmidt  <bernds@codesourcery.com>
12392
12393         PR middle-end/44738
12394         * tree-ssa.c (warn_uninit): Avoid emitting an unnecessary message.
12395
12396 2010-07-21  Richard Guenther  <rguenther@suse.de>
12397
12398         PR middle-end/45013
12399         * tree-ssa.c (useless_type_conversion_p): Dispatch to
12400         gimple_types_compatible_p only when in lto.
12401         * gimple.c (gimple_types_compatible_p): Use canonical types
12402         to speed up comparison.
12403
12404 2010-07-21  Richard Guenther  <rguenther@suse.de>
12405
12406         * tree-flow.h (referenced_var): Move define ...
12407         * tree-flow-inline.h (referenced_var): ... here as an inline
12408         function.  Assert here ...
12409         * tree-dfa.c (referenced_var_lookup): ... instead of here.
12410         * tree-ssa.c (maybe_optimize_var): Check if the variable
12411         is in referenced vars.
12412         (execute_update_addresses_taken): Remove old broken check.
12413         * gimple-pretty-print.c (pp_points_to_solution): Use
12414         referenced_var_lookup.
12415         * tree-into-ssa.c (dump_decl_set): Likewise.
12416
12417 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
12418
12419         PR debug/45003
12420         * var-tracking.c (reverse_op): Also handle {SIGN,ZERO}_EXTEND of a MEM.
12421         * dwarf2out.c (loc_descriptor): Don't handle SIGN_EXTEND nor
12422         ZERO_EXTEND here.
12423
12424 2010-07-20  Richard Henderson  <rth@redhat.com>
12425
12426         * vxworks.c (vxworks_emutls_var_fields): Pass locus to build_decls.
12427
12428 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
12429
12430         * config/arm/arm.md (thumb1_addsi3): Add alternative and split for
12431         computing the sum of the stack pointer and a large constant.
12432         * config/arm/constraints.md (M): Remove superfluous parentheses.
12433         (Pc): New constraint.
12434
12435 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
12436
12437         PR debug/45006
12438         * cfgexpand.c (expand_debug_expr): Only look at TYPE_UNSIGNED of
12439         operand's type if exp is tcc_unary class tree.
12440
12441 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
12442
12443         * config/rs6000/rs6000.md (abs<mode>2_isel, nabs<mode>2_isel):
12444         Reverse sense of if_then_else condition.
12445
12446 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
12447
12448         * config/rs6000/rs6000.opt (mblock-move-inline-limit): New option.
12449         * config/rs6000/rs6000.c (rs6000_override_options): Set
12450         rs6000_block_move_inline_limit appropriately.
12451         (expand_block_move): Use rs6000_block_move_inline_limit.
12452         * doc/invoke.texi (mblock-move-inline-limit): Document.
12453
12454 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
12455
12456         * postreload.c (fixup_debug_insns): Remove arg REGNO.  New args
12457         FROM and TO.  All callers changed.  Don't look for tracked uses,
12458         just scan the RTL for DEBUG_INSNs and substitute.
12459         (reload_combine_recognize_pattern): Call fixup_debug_insns.
12460         (reload_combine): Ignore DEBUG_INSNs.
12461
12462 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
12463
12464         * var-tracking.c (vt_expand_loc, vt_expand_loc_dummy): Bump maximum
12465         depth to 8 from 5.
12466
12467         PR debug/45003
12468         * cfgexpand.c (expand_debug_expr) <case NOP_EXPR>: Use ZERO_EXTEND
12469         or SIGN_EXTEND depending on TYPE_UNSIGNED of the operand's type
12470         instead of the result's type.
12471
12472 2010-07-20  Richard Guenther  <rguenther@suse.de>
12473
12474         PR tree-optimization/44977
12475         * tree-ssa-dom.c (propagate_rhs_into_lhs): Do not create invalid
12476         SSA form.
12477
12478 2010-07-20  Richard Guenther  <rguenther@suse.de>
12479
12480         * lto-symtab.c (lto_symtab_merge): Use gimple_types_compatible_p.
12481         (lto_symtab_merge_decls_2): Likewise.
12482         * gimple.h (gimple_types_compatible_p): Declare.
12483         * gimple.c (gimple_queue_type_fixup): Remove.
12484         (gimple_fixup_complete_and_incomplete_subtype_p): Likewise.
12485         (gimple_compatible_complete_and_incomplete_type_p): New function.
12486         (gimple_types_compatible_p): Adjust.
12487         (gimple_register_type): Remove type fixup code.
12488         (print_gimple_types_stats): Adjust.
12489         (free_gimple_type_tables): Likewise.
12490         * lto-streamer-in.c (input_gimple_stmt): Use gimple_types_compatible_p.
12491         * tree-ssa.c (useless_type_conversion_p): Likewise.
12492
12493 2010-07-20  Richard Guenther  <rguenther@suse.de>
12494
12495         PR middle-end/44971
12496         PR middle-end/44988
12497         * tree-ssa.c (maybe_optimize_var): New function split out from ...
12498         (execute_update_addresses_taken): ... here.
12499         (non_rewritable_mem_ref_base): Likewise.
12500         (execute_update_addresses_taken): Do not iterate over all referenced
12501         vars but just all local decls and parms.
12502         Properly check call and asm arguments and rewrite call arguments.
12503
12504 2010-07-20  Maxim Kuvyrkov  <maxim@codesourcery.com>
12505
12506         * config.gcc (LIBC_GLIBC, LIBC_UCLIBC, LIBC_BIONIC): Move constants
12507         to top level.
12508         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Move Android-specific
12509         definitions ...
12510         * config/linux-android.h (ANDROID_TARGET_OS_CPP_BUILTINS): ... here.
12511         New macro.
12512         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Use it.
12513
12514 2010-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
12515
12516         * gengtype.c (start_root_entry): New function, split out from
12517         write_root.  Check whether V is null and raise an error if so.
12518         (write_field_root): Check for V being null.  Don't raise an error here;
12519         set V to null instead.
12520         (write_root): Update comment above function.  Use start_root_entry.
12521
12522 2010-07-19  Xinliang David Li  <davidxl@google.com>
12523
12524         PR testsuite/44932
12525         * tree-ssa-uninit.c (collect_phi_def_edges): Fix bug collecting
12526         def edges.
12527         (find_uninit_use): Add dump.
12528         (is_use_properly_guarded): Ditto.
12529         (warn_uninitialized_phi): Ditto.
12530         (execute_late_warn_uninitialized): Ditto.
12531
12532 2010-07-19  Richard Guenther  <rguenther@suse.de>
12533
12534         PR middle-end/44941
12535         * expr.c (emit_block_move_hints): Move zero size check first.
12536         Move asserts to more useful places.
12537         * calls.c (load_register_parameters): Check for zero size.
12538
12539 2010-07-19  Richard Henderson  <rth@redhat.com>
12540
12541         * tree-optimize.c (execute_all_early_local_passes): New.  Change
12542         cgraph_state here ...
12543         (execute_early_local_optimizations): ... not here.  Remove.
12544         (pass_early_local_passes, pass_all_early_optimizations): Update.
12545
12546 2010-07-19  Bernd Schmidt  <bernds@codesourcery.com>
12547
12548         * postreload.c (reload_combine_closest_single_use): Ignore the
12549         number of uses for DEBUG_INSNs.
12550         (fixup_debug_insns): New static function.
12551         (reload_combine_recognize_const_pattern): Use it.  Don't let the
12552         main loop be affected by DEBUG_INSNs.
12553         Really disallow moving adds past a jump insn.
12554         (reload_combine_recognize_pattern): Don't update use_ruid here.
12555         (reload_combine_note_use): Do it here.
12556         (reload_combine): Use control_flow_insn_p rather than JUMP_P.
12557
12558 2010-07-19  Bingfeng Mei  <bmei@broadcom.com>
12559
12560         * ddg.c (create_ddg): Exclude nodes of debug_insn in counting nodes
12561         of a loop.
12562         * loop-doloop.c (doloop_condition_get): Skip possible debug_insn.
12563
12564 2010-07-19  Iain Sandoe  <iains@gcc.gnu.org>
12565
12566         * config/i386/darwin.h: Define darwin_emit_branch_islands.
12567         (TARGET_MACHO_BRANCH_ISLANDS): New.
12568         (FUNCTION_PROFILER): Use TARGET_MACHO_BRANCH_ISLANDS.
12569         * config/i386/i386.h (TARGET_MACHO_BRANCH_ISLANDS): Define a
12570         default value.
12571         * config/i386/i386.c (output_pic_addr_const): Do not emit
12572         branch islands unless TARGET_MACHO_BRANCH_ISLANDS is set.
12573         (x86_output_mi_thunk): Adjust symbol creation.
12574         * config/rs6000/darwin.h: Define darwin_emit_branch_islands.
12575         Remove out of date comment.
12576         * config/rs6000/rs6000.c (print_operand): Adjust symbol.
12577         (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
12578         (DARWIN_GENERATE_ISLANDS): Ditto.
12579         (output_call):  Do not emit branch islands unless
12580         darwin_emit_branch_islands is set.
12581         * config/darwin.c: Declare darwin_emit_branch_islands.
12582         (machopic_indirect_data_reference): Do not emit unless
12583         darwin_emit_branch_islands is set.
12584         (darwin_override_options): Set darwin_emit_branch_islands
12585         where it is needed.
12586         * config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
12587
12588 2010-07-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12589
12590         * doc/sourcebuild.texi (Effective-Target Keywords): Document
12591         sse_runtime, sse2_runtime.
12592
12593 2010-07-18  Richard Sandiford  <rdsandiford@googlemail.com>
12594
12595         * config/mips/mips.c (mips16_build_call_stub): Zero-extend the
12596         low half of a single-register SCmode return value before ORing
12597         it with the high half.
12598         * config/mips/mips16.S (MERGE_GPRf): Likewise.
12599
12600 2010-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12601
12602         PR target/44805
12603         * config/pa/pa.h (CONSTANT_ALIGNMENT): Align strings to BITS_PER_WORD
12604         on all targets.
12605
12606 2010-07-17  Bernd Schmidt  <bernds@codesourcery.com>
12607
12608         PR target/42235
12609         * postreload.c (reload_cse_move2add): Return bool, true if anything.
12610         changed.  All callers changed.
12611         (move2add_use_add2_insn): Likewise.
12612         (move2add_use_add3_insn): Likewise.
12613         (reload_cse_regs): If reload_cse_move2add changed anything, rerun
12614         reload_combine.
12615         (RELOAD_COMBINE_MAX_USES): Bump to 16.
12616         (last_jump_ruid): New static variable.
12617         (struct reg_use): New members CONTAINING_MEM and RUID.
12618         (reg_state): New members ALL_OFFSETS_MATCH and REAL_STORE_RUID.
12619         (reload_combine_split_one_ruid, reload_combine_split_ruids,
12620         reload_combine_purge_insn_uses, reload_combine_closest_single_use
12621         reload_combine_purge_reg_uses_after_ruid,
12622         reload_combine_recognize_const_pattern): New static functions.
12623         (reload_combine_recognize_pattern): Verify that ALL_OFFSETS_MATCH
12624         is true for our reg and that we have available index regs.
12625         (reload_combine_note_use): New args RUID and CONTAINING_MEM.  All
12626         callers changed.  Use them to initialize fields in struct reg_use.
12627         (reload_combine): Initialize last_jump_ruid.  Be careful when to
12628         take PREV_INSN of the scanned insn.  Update REAL_STORE_RUID fields.
12629         Call reload_combine_recognize_const_pattern.
12630         (reload_combine_note_store): Update REAL_STORE_RUID field.
12631
12632 2010-07-16  Jason Merrill  <jason@redhat.com>
12633
12634         * Makefile.in (opts-common.o): Depend on options.h.
12635
12636 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
12637
12638         * tree.c (build_common_builtin_nodes): Use build_function_type_list
12639         instead of build_function_type.
12640         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
12641         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
12642
12643 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
12644
12645         * config/rs6000/rs6000.c (rs6000_emit_sISEL): Let rs6000_emit_int_cmove
12646         do all the work.
12647         (rs6000_emit_int_cmove): Use function pointers for insn generation.
12648         Don't force values into registers unnecessarily.
12649         (output_isel): Assert that we're not given conditions we can't handle.
12650         Delete corresponding code.
12651         * config/rs6000/rs6000.md (isel_signed_<mode>): Use
12652         scc_comparison_operator constraint.  Permit 0 for the consequent
12653         operand.  Permit any GPR for the alternative operand.
12654         (isel_unsigned_<mode>): Likewise.
12655
12656 2010-07-16  Jakub Jelinek  <jakub@redhat.com>
12657
12658         PR target/44942
12659         * config/i386/i386-protos.h (ix86_function_arg_boundary): Change second
12660         argument to const_tree.
12661         * config/i386/i386.c (function_arg_advance): If padding needs to be
12662         inserted before argument, increment cum->words by number of padding
12663         words as well.
12664         (contains_aligned_value_p): Change argument to const_tree.
12665         (ix86_function_arg_boundary): Change second argument to const_tree.
12666
12667 2010-07-16  Bernd Schmidt  <bernds@codesourcery.com>
12668
12669         PR target/42235
12670         * function.c (record_hard_reg_sets): New static function.
12671         (assign_parm_setup_reg): If an optab for extending exists and the
12672         generated code clobbbers no hard regs, emit the insn directly and
12673         create a REG_EQUIV note.
12674
12675 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
12676
12677         * c-decl.c (detect_field_duplicates): Use DECL_CHAIN insted of
12678         TREE_CHAIN.
12679         * c-typeck.c (push_init_level): Likewise.
12680         (process_init_element): Likewise.
12681
12682 2010-07-15  Anatoly Sokolov  <aesok@post.ru>
12683
12684         * tree.h (enum tree_index): Add TI_INTEGER_THREE.
12685         (integer_three_node): Add.
12686         * tree.c (build_common_tree_nodes_2): Use integer_type_node insead of
12687         NULL_TREE in build_int_cst calls. Initialize the integer_three_node.
12688         * builtins.c (expand_builtin_prefetch): Use common tree nodes instead
12689         of call build_int_cst.
12690         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ditto.
12691         * tree-ssa-loop-ivopts.c (idx_find_step): Ditto.
12692         (find_interesting_uses_address): Ditto.
12693         * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Ditto.
12694         * tree-eh.c (lower_eh_constructs_2): Ditto.
12695         * tree-vect-loop.c (get_initial_def_for_induction): Ditto.
12696         * c-typeck.c (really_start_incremental_init, push_init_level): Ditto.
12697         * expmed.c (expand_divmod): Ditto.
12698         * tree-mudflap.c (mx_register_decls): Ditto.
12699         * varasm.c (array_size_for_constructor): Ditto.
12700         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
12701         * c-parser.c (c_parser_postfix_expression): Ditto.
12702
12703 2010-07-15  Bernd Schmidt  <bernds@codesourcery.com>
12704
12705         * postreload.c (last_label_ruid, first_index_reg, last_index_reg):
12706         New static variables.
12707         (reload_combine_recognize_pattern): New static function, broken out
12708         of reload_combine.
12709         (reload_combine): Use it.  Only initialize first_index_reg and
12710         last_index_reg once.
12711
12712 2010-07-15  Richard Henderson  <rth@redhat.com>
12713
12714         * cgraphunit.c (cgraph_build_static_cdtor): Clear current_function_decl
12715         when done.
12716
12717 2010-07-15  Jan Hubicka  <jh@suse.cz>
12718
12719         * lto-symtab.c (lto_symtab_resolve_symbols): Remove hack handling
12720         comdats for broken gold.
12721         (lto_sy mtab_merge_decls_1): Set used_from_object_file correctly.
12722
12723 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
12724
12725         * tree.h (TREE_RTL_OPERAND_CHECK): Delete.
12726
12727 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
12728
12729         * tree.h (DECL_CHAIN): Define.
12730         * alias.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
12731         * c-decl.c: Likewise.
12732         * c-parser.c: Likewise.
12733         * c-typeck.c: Likewise.
12734         * cfgexpand.c: Likewise.
12735         * cgraph.c: Likewise.
12736         * cgraphunit.c: Likewise.
12737         * combine.c: Likewise.
12738         * config/alpha/alpha.c: Likewise.
12739         * config/arm/arm.c: Likewise.
12740         * config/frv/frv.c: Likewise.
12741         * config/i386/i386.c: Likewise.
12742         * config/i386/winnt-cxx.c: Likewise.
12743         * config/ia64/ia64.c: Likewise.
12744         * config/iq2000/iq2000.c: Likewise.
12745         * config/mep/mep.c: Likewise.
12746         * config/mips/mips.c: Likewise.
12747         * config/pa/som.h: Likewise.
12748         * config/rs6000/rs6000.c: Likewise.
12749         * config/s390/s390.c: Likewise.
12750         * config/sh/sh.c: Likewise.
12751         * config/sh/symbian-cxx.c: Likewise.
12752         * config/sparc/sparc.c: Likewise.
12753         * config/spu/spu.c: Likewise.
12754         * config/stormy16/stormy16.c: Likewise.
12755         * config/vxworks.c: Likewise.
12756         * config/xtensa/xtensa.c: Likewise.
12757         * coverage.c: Likewise.
12758         * dbxout.c: Likewise.
12759         * dwarf2out.c: Likewise.
12760         * emit-rtl.c: Likewise.
12761         * expr.c: Likewise.
12762         * function.c: Likewise.
12763         * gimple-low.c: Likewise.
12764         * gimple-pretty-print.c: Likewise.
12765         * gimplify.c: Likewise.
12766         * integrate.c: Likewise.
12767         * ipa-inline.c: Likewise.
12768         * ipa-prop.c: Likewise.
12769         * ipa-split.c: Likewise.
12770         * ipa-struct-reorg.c: Likewise.
12771         * ipa-type-escape.c: Likewise.
12772         * langhooks.c: Likewise.
12773         * lto-cgraph.c: Likewise.
12774         * omp-low.c: Likewise.
12775         * stor-layout.c: Likewise.
12776         * tree-cfg.c: Likewise.
12777         * tree-complex.c: Likewise.
12778         * tree-dfa.c: Likewise.
12779         * tree-dump.c: Likewise.
12780         * tree-inline.c: Likewise.
12781         * tree-mudflap.c: Likewise.
12782         * tree-nested.c: Likewise.
12783         * tree-object-size.c: Likewise.
12784         * tree-pretty-print.c: Likewise.
12785         * tree-sra.c: Likewise.
12786         * tree-ssa-live.c: Likewise.
12787         * tree-ssa-loop-niter.c: Likewise.
12788         * tree-ssa-math-opts.c: Likewise.
12789         * tree-ssa-reassoc.c: Likewise.
12790         * tree-ssa-sccvn.c: Likewise.
12791         * tree-ssa-structalias.c: Likewise.
12792         * tree-tailcall.c: Likewise.
12793         * tree-vrp.c: Likewise.
12794         * tree.c: Likewise.
12795         * var-tracking.c: Likewise.
12796         * varasm.c: Likewise.
12797
12798 2010-07-15  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12799
12800         PR target/44877
12801         * config/spu/spu.c (spu_expand_builtin_1): Allow references
12802         (as well as pointers) as argument to mask_for_load builtins.
12803
12804 2010-07-15  Richard Guenther  <rguenther@suse.de>
12805
12806         PR tree-optimization/44946
12807         * tree-ssa-structalias.c (get_constraint_for_component_ref): Deal
12808         with accessing only padding properly.
12809
12810 2010-07-15  Jan Hubicka  <jh@suse.cz>
12811
12812         * ipa.c (function_and_variable_visibility): Variables marked as used
12813         should not be localized.
12814
12815 2010-07-15  Jan Hubicka  <jh@suse.cz>
12816
12817         * cgraph.c: Include lto-streamer.h
12818         (change_decl_assembler_name): Work when assembler name hash is at place.
12819         (cgraph_make_decl_local): When localizing COMDAT symbol at WPA stage,
12820         be sure to rename it to avoid name clash.
12821         * ipa.c (cgraph_externally_visible_p, function_and_variable_visibility):
12822         Localize hidden symbols only when locally defined.
12823
12824 2010-07-15  Uros Bizjak  <ubizjak@gmail.com>
12825
12826         * config/i386/i386.h (SHIFT_COUNT_TRUNCATED): Expand comment.
12827
12828 2010-07-15  Magnus Granberg  <zorry@gentoo.org>
12829             Kevin F. Quinn  <kevquinn@gentoo.org>
12830
12831         * builtins.c (expand_builtin_init_trampoline): Warn for -Wtrampolines.
12832         * common.opt: Add -Wtrampolines.
12833         * doc/invoke.texi: Add -Wtrampolines.
12834
12835 2010-07-15  Jie Zhang  <jie@codesourcery.com>
12836
12837         * config/arm/cortex-a8.md (cortex_a8_load_store_2): Reserve
12838         cortex_a8_issue_ls.
12839
12840 2010-07-15  Dave Korn  <dave.korn.cygwin@gmail.com>
12841
12842         * config/i386/cygwin.h (LIBGCJ_SONAME): Update.
12843         * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.
12844
12845 2010-07-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12846
12847         * config/spu/spu.c (reg_names): Remove prototype.
12848         (call_used_regs): Likewise.
12849
12850 2010-07-14  Dave Korn  <dave.korn.cygwin@gmail.com>
12851
12852         * config/i386/cygming-crtend.c (__FRAME_END__): Replace attribute
12853         "unused" with attribute "used".
12854         (__JCR_END__): Likewise.
12855         * config/i386/cygming-crtbegin.c (__EH_FRAME_BEGIN__): Add missing
12856         "used" attribute.
12857         (__JCR_LIST__): Replace attribute "unused" with attribute "used".
12858
12859 2010-07-14  Richard Guenther  <rguenther@suse.de>
12860
12861         * lto-streamer-in.c (maybe_fixup_handled_component): Remove.
12862         (maybe_fixup_decls): Likewise.
12863         (input_gimple_stmt): Do not fixup anything.
12864         * lto-streamer-out.c (output_gimple_stmt): Make sure all
12865         non-automatic variable uses are wrapped inside a MEM_REF.
12866
12867 2010-07-14  Richard Henderson  <rth@redhat.com>
12868
12869         * passes.c (rest_of_decl_compilation): Do not call assemble_variable
12870         for functions.
12871         * varasm.c (assemble_variable): Remove early exit for functions;
12872         assert that we're given a variable.
12873
12874 2010-07-14  Jie Zhang  <jie@codesourcery.com>
12875
12876         * config/arm/cortex-a8.md (cortex_a8_alu): Don't use
12877         cortex_a8_default when neon_type is not none.
12878
12879 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
12880
12881         * lower-subreg.c (subreg_context): New static bitmap.
12882         (decompose_multiword_subregs): Allocate and free it.
12883         (find_decomposable_subregs): Set a bit in it for a register that
12884         occurs in a subreg that changes mode but not size.
12885         (can_decompose_p): Test it instead of non_decomposable_context.
12886
12887 2010-07-14  Richard Guenther  <rguenther@suse.de>
12888
12889         PR tree-optimization/44824
12890         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Use
12891         is_gimple_mem_ref_addr.
12892         (tree_ssa_forward_propagate_single_use_vars): Do not propagate
12893         non-decl_address_invariant_p addresses.
12894
12895 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
12896
12897         * reload.c (find_reloads): Revert code to penalize small register
12898         classes that was brought in with the IRA merge.
12899
12900 2010-07-14  Richard Guenther  <rguenther@suse.de>
12901
12902         * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle MEM_REF
12903         as base of ARRAY_REFs.
12904
12905 2010-07-14  Richard Guenther  <rguenther@suse.de>
12906
12907         PR middle-end/44930
12908         * tree-pretty-print.c (do_niy): Do not print a newline.
12909
12910 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
12911
12912         * ira-int.h (struct ira_object): New.
12913         (ira_object_t): New typedef.  Add DEF_VEC_P and DEF_VEC_ALLOC_P for it.
12914         (struct ira_allocno): Remove members min, max,
12915         conflict_allocno_array, conflict_id, conflict_allocno_array_size,
12916         conflict_allocnos_num and conflict_vec_p.  Add new member object.
12917         (OBJECT_CONFLICT_ARRAY, OBJECT_CONFLICT_VEC_P,
12918         OBJECT_NUM_CONFLICTS, OBJECT_CONFLICT_ARRAY_SIZE,
12919         OBJECT_CONFLICT_HARD_REGS, OBJECT_TOTAL_CONFLICT_HARD_REGS,
12920         OBJECT_MIN, OBJECT_MAX, OBJECT_CONFLICT_ID): Renamed from
12921         ALLOCNO_CONFLICT_ALLOCNO_ARRAY, ALLOCNO_CONFLICT_VEC_P,
12922         ALLOCNO_CONFLICT_ALLOCNOS_NUM, ALLOCNO_CONFLICT_ALLOCNO_ARRAY_SIZE,
12923         ALLOCNO_CONFLICT_HARD_REGS, ALLOCNO_TOTAL_CONFLICT_HARD_REGS)
12924         ALLOCNO_MIN, ALLOCNO_MAX, and ALLOCNO_CONFLICT_ID; now operate on
12925         an ira_object_t rather than ira_allocno_t.  All uses changed.
12926         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
12927         contains a vector of ira_object_t; all uses changed.
12928         (ira_objects_num): Declare variable.
12929         (ira_create_allocno_object): Declare function.
12930         (ira_conflict_vector_profitable_p): Adjust prototype.
12931         (ira_allocate_conflict_vec): Renamed from
12932         ira_allocate_allocno_conflict_vec; first arg now ira_object_t.
12933         (ira_allocate_object_conflicts): Renamed from
12934         ira_allocate_allocno_conflicts; first arg now ira_object_t.
12935         (struct ira_object_iterator): New.
12936         (ira_object_iter_init, ira_object_iter_cond, FOR_EACH_OBJECT): New.
12937         (ira_allocno_conflict_iterator): Renamed member allocno_conflict_vec_p
12938         to conflict_vec_p.  All uses changed.
12939         (ira_allocno_conflict_iter_init, ira_allocno_conflict_iter_cond):
12940         Changed to take into account that conflicts are now tracked for
12941         objects.
12942         * ira-conflicts.c (OBJECTS_CONFLICT_P): Renamed from CONFLICT_ALLOCNO_P.
12943         Args changed to accept ira_object_t.  All uses changed.
12944         (allocnos_conflict_p): New static function.
12945         (collected_conflict_objects): Renamed from collected_allocno_objects;
12946         now a vector of ira_object_t.  All uses changed.
12947         (build_conflict_bit_table): Changed to take into account that
12948         conflicts are now tracked for objects.
12949         (process_regs_for_copy, propagate_copies, build_allocno_conflicts)
12950         (print_allocno_conflicts, ira_build_conflicts): Likewise.
12951         * ira-color.c (assign_hard_reg, setup_allocno_available_regs_num)
12952         setup_allocno_left_conflicts_size, allocno_reload_assign,
12953         fast_allocation): Likewise.
12954         * ira-lives.c (make_hard_regno_born, make_allocno_born)
12955         process_single_reg_class_operands, process_bb_node_lives): Likewise.
12956         * ira-emit.c (modify_move_list, add_range_and_copies_from_move_list):
12957         Likewise.
12958         * ira-build.c (ira_objects_num): New variable.
12959         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
12960         contains a vector of ira_object_t; all uses changed.
12961         (ira_object_id_map_vec): Corresponding change.
12962         (object_pool): New static variable.
12963         (initiate_allocnos): Initialize it.
12964         (finish_allocnos): Free it.
12965         (ira_create_object, ira_create_allocno_object, create_allocno_objects):
12966         New functions.
12967         (ira_create_allocno): Don't set members that were removed.
12968         (ira_set_allocno_cover_class): Don't change conflict hard regs.
12969         (merge_hard_reg_conflicts): Changed to take into account that
12970         conflicts are now tracked for objects.
12971         (ira_conflict_vector_profitable_p, ira_allocate_conflict_vec,
12972         allocate_conflict_bit_vec, ira_allocate_object_conflicts,
12973         compress_conflict_vecs, remove_low_level_allocnos, ira_flattening,
12974         setup_min_max_allocno_live_range_point, allocno_range_compare_func,
12975         setup_min_max_conflict_allocno_ids, ):  Likewise.
12976         (add_to_conflicts): Renamed from add_to_allocno_conflicts, args changed
12977         to ira_object_t; all callers changed.
12978         (ira_add_conflict): Renamed from ira_add_allocno_conflict, args changed
12979         to ira_object_t, all callers changed.
12980         (clear_conflicts): Renamed from clear_allocno_conflicts, arg changed
12981         to ira_object_t, all callers changed.
12982         (conflict_check, curr_conflict_check_tick): Renamed from
12983         allocno_conflict_check and curr_allocno_conflict_check_tick; all uses
12984         changed.
12985         (compress_conflict_vec): Renamed from compress_allocno_conflict_vec,
12986         arg changed to ira_object_t, all callers changed.
12987         (create_cap_allocno): Call ira_create_allocno_object.
12988         (finish_allocno): Free the corresponding object.
12989         (sort_conflict_id_map): Renamed from sort_conflict_id_allocno_map; all
12990         callers changed.  Adjusted for dealing with objects.
12991         (ira_build): Call create_allocno_objects after ira_costs.  Adjusted for
12992         dealing with objects.
12993         * ira.c (ira_bad_reload_regno_1): Adjusted for dealing with objects.
12994
12995         * ira-int.h (struct live_range): Rename allocno member to object
12996         and change type to ira_object_t.
12997         (struct ira_object): New member live_ranges.
12998         (struct ira_allocno): Remove member live_ranges.
12999         (ALLOCNO_LIVE_RANGES): Remove.
13000         (OBJECT_LIVE_RANGES): New macro.
13001         (ira_create_live_range, ira_copy_live_range_list,
13002         ira_merge_live_range_list, ira_live_ranges_intersect_p,
13003         ira_finish_live_range, ira_finish_live_range_list): Adjust declarations.
13004         * ira-build.c (ira_create_object): Initialize live ranges here.
13005         (ira_create_allocno): Not here.
13006         (ira_create_live_range): Rename from ira_create_allocno_live_range, arg
13007         changed to ira_object_t, all callers changed.
13008         (copy_live_range): Rename from copy_allocno_live_range, all callers
13009         changed.
13010         (ira_copy_live_range_list): Rename from
13011         ira_copy_allocno_live_range_list, all callers changed.
13012         (ira_merge_live_ranges): Rename from ira_merge_allocno_live_range_list,
13013         all callers changed.
13014         (ira_live_ranges_intersect_p): Rename from
13015         ira_allocno_live_ranges_intersect_p, all callers changed.
13016         (ira_finish_live_range): Rename from ira_finish_allocno_live_range, all
13017         callers changed.
13018         (ira_finish_live_range_list): Rename from
13019         ira_finish_allocno_live_range_list, all callers changed.
13020         (change_object_in_range_list): Rename from change_allocno_in_range_list,
13021         last arg changed to ira_object_t, all callers changed.
13022         (finish_allocno): Changed to expect live ranges in the allocno's object.
13023         (move_allocno_live_ranges, copy_allocno_live_ranges,
13024         update_bad_spill_attribute, setup_min_max_allocno_live_range_point,
13025         ira_flattening, ira_build): Likewise.
13026         * ira-color.c (allocnos_have_intersected_live_ranges_p,
13027         slot_coalesced_allocno_live_ranges_intersect,
13028         setup_slot_coalesced_allocno_live_ranges, fast_allocation): Likewise.
13029         * ira-conflicts.c (build_conflict_bit_table): Likewise.
13030         * ira-emit.c (add_range_and_copies_from_move_list): Likewise.
13031         * ira-lives.c (make_allocno_born, update_allocno_pressure_excess_length,
13032         make_allocno_dead, create_start_finish_chains,
13033         remove_some_program_points_and_update_live_ranges,
13034         ira_debug_live_range_list): Likewise.
13035
13036         * ira-int.h (ira_object_conflict_iterator): Rename from
13037         ira_allocno_conflict_iterator.
13038         (ira_object_conflict_iter_init): Rename from
13039         ira_allocno_conflict_iter_init, second arg changed to
13040         * ira.c (check_allocation): Use FOR_EACH_OBJECT_CONFLICT rather than
13041         FOR_EACH_ALLOCNO_CONFLICT.
13042         * ira-color.c (assign_hard_reg, push_allocno_to_stack)
13043         setup_allocno_left_conflicts_size, coalesced_allocno_conflict_p,
13044         ira_reassign_conflict_allocnos, ira_reassign_pseudos): Likewise.
13045         * ira-conflicts.c (print_allocno_conflicts): Likewise.
13046
13047 2010-07-13  Joern Rennecke  <joern.rennecke@embecosm.com>
13048
13049         PR other/44874
13050         * tree-dump.c (dump_options): Add enumerate_locals entry.
13051         Add TDF_NOID exclusion to all entry.
13052         * tree-dump.h (dump_enumerated_decls): Declare.
13053         * tree-pretty-print.c (dump_generic_node): For TDF_NOID,
13054         Don't display type uid.
13055         (print_declaration): Don't crash on TREE_TYPE (t) == 0.
13056         * tree-pass.h (TDF_ENUMERATE_LOCALS): Define.
13057         * tree-ssa-live.c: Include gimple.h.
13058         (numbered_tree_d): New struct.
13059         (numbered_tree): New typedef.
13060         (DEF_VEC_O (numbered_tree): New.
13061         (DEF_VEC_ALLOC_O (numbered_tree, heap)): Likewise.
13062         (compare_decls_by_uid, dump_enumerated_decls_push): New functions.
13063         (dump_enumerated_decls): Likewise.
13064         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): If comparing
13065         debug info and flag_dump_final_insns, call dump_enumerated_decls.
13066         * tree-cfg.c (dump_function_to_file): Call dump_enumerated_decls.
13067         * Makefile.in (tree-ssa-live.o): Depend on $(GIMPLE_H).
13068
13069 2010-07-13  Richard Sandiford  <rdsandiford@googlemail.com>
13070
13071         * expmed.h (MAX_BITS_PER_WORD): Move to...
13072         * defaults.h (MAX_BITS_PER_WORD): ...here.
13073
13074 2010-07-13  DJ Delorie  <dj@redhat.com>
13075
13076         * config/h8300/h8300.c (h8300_init_once): Default to
13077         -fstrict_volatile_bitfields.
13078
13079         * config/sh/sh.c (sh_override_options): Default to
13080         -fstrict_volatile_bitfields.
13081
13082         * config/rx/rx.c (rx_option_override): New.
13083
13084         * config/m32c/m32c.c (m32c_override_options): Default to
13085         -fstrict_volatile_bitfields.
13086
13087 2010-07-13  Nathan Froyd  <froydnj@codesourcery.com>
13088
13089         * tree.h (build_function_call_expr): Delete.
13090         (build_call_expr_loc_array): New function.
13091         (build_call_expr_loc_vec): New function.
13092         * tree-flow.h (struct omp_region): Change type of ws_args field
13093         to a VEC.
13094         * builtins.c (build_function_call_expr): Delete.
13095         (build_call_expr_loc_array): New function.
13096         (build_call_expr_loc): Call it.  Use XALLOCAVEC.
13097         (build_call_expr): Likewise.
13098         (build_call_expr_loc_vec): New function.
13099         * cgraphunit.c (build_cdtor): Call build_call_expr instead of
13100         build_function_call_expr.
13101         * expr.c (emutls_var_address): Likewise.
13102         * varasm.c (emutls_common_1): Likewise.
13103         * omp-low.c (expand_omp_atomic_mutex): Likewise.
13104         (expand_omp_taskreg): Adjust for new type of region->ws_args.
13105         (get_ws_args_for): Return a VEC instead of a tree.
13106         (expand_parallel_call): Call build_call_expr_loc_vec instead of
13107         build_function_call_expr.
13108         * stor-layout.c (self_referential_size): Likewise.
13109
13110 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
13111
13112         PR testsuite/44701
13113         * recog.c (constrain_operands): Allow side-effects in memory
13114         operands if either < or > constraint is used, rather than if
13115         both < and > is used.
13116
13117 2010-07-13  Richard Guenther  <rguenther@suse.de>
13118
13119         PR middle-end/44911
13120         * tree-pretty-print.c (dump_generic_node): Use TDF_SLIM for
13121         MEM_REF pointer type dumping.  Avoid recursing for TYPE_DECLs
13122         without name.
13123
13124 2010-07-13  Kaz Kojima  <kkojima@gcc.gnu.org>
13125
13126         PR target/44761
13127         * mode-switching.c (optimize_mode_switching): Add ATTRIBUTE_UNUSED
13128         to variable emited.
13129         * config/sh/sh.c (sh_expand_epilogue): Remove unused variable.
13130         * config/sh/sh.md (symGOT_load): Likewise.
13131         (symDTPOFF2reg): Likewise.
13132         (symTPOFF2reg): Likewise.
13133
13134 2010-07-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13135
13136         * expmed.c (MAX_BITS_PER_WORD): Moved to expmed.h.
13137         * expmed.h (MAX_BITS_PER_WORD): Moved from expmed.c.
13138
13139 2010-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13140
13141         * config/i386/sol2-unwind.h (x86_64_fallback_frame_state): Correct
13142         explanation.
13143         Find ucontext_t * on Solaris 11.
13144         (x86_fallback_frame_state): Handle Solaris 9 multi-threaded pattern.
13145         Handle new Solaris 11 __sighndlr patterns.
13146
13147 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
13148
13149         PR debug/44901
13150         * vec.h (VEC_block_remove): Fix comment.
13151         * tree-ssa-live.c (remove_unused_locals): Don't use
13152         VEC_unordered_remove on local_decls, instead replace a single
13153         vector element in each iteration if at least one element had
13154         to be removed and VEC_truncate at the end.
13155         * omp-low.c (expand_omp_taskreg): Likewise.
13156
13157 2010-07-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13158
13159         * c-decl.c (finish_function): Fix typo in comment.
13160
13161 2010-07-12  H.J. Lu  <hongjiu.lu@intel.com>
13162
13163         PR bootstrap/44921
13164         * postreload.c (move2add_use_add3_insn): Silence gcc warning
13165         on min_regno.
13166
13167 2010-07-12  Jakub Jelinek  <jakub@redhat.com>
13168
13169         * tree-vrp.c (simplify_bit_ops_using_ranges): New function.
13170         (simplify_stmt_using_ranges): Use it.
13171
13172 2010-07-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13173
13174         * config/spu/spu.h (struct spu_builtin_description): Remove FNDECL
13175         member.  Do not mark as GTY(()).
13176         * config/spu/spu.c (spu_builtins): Remove FNDECL initializer elements.
13177         (spu_builtin_decls): New static variable.
13178         (spu_builtin_decl): Use it instead of spu_builtins[].fndecl.
13179         (spu_init_builtins): Likewise.
13180         (spu_builtin_mul_widen_even): Likewise.
13181         (spu_builtin_mul_widen_odd): Likewise.
13182         (spu_builtin_mask_for_load): Likewise.
13183         (spu_builtin_vec_perm): Likewise.
13184         * config/spu/spu-c.c: Include "target.h".
13185         (spu_resolve_overloaded_builtin): Call targetm.builtin_decl instead
13186         of using spu_builtins[].fndecl.
13187
13188 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13189
13190         * config/mips/mips.c (mips_override_options): Make -mflip-mips16
13191         imply -minterlink-mips16.
13192
13193 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13194
13195         * config/mips/mips.h (mips16_globals): Declare.
13196         (SWITCHABLE_TARGET): Define.
13197         * config/mips/mips.c: Include target-globals.h.
13198         (mips16_globals): New variable.
13199         (mips_set_mips16_mode): Use save_target_globals and
13200         restore_target_globals instead of target_reinit.
13201
13202 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13203
13204         * reginfo.c (init_reg_sets): Don't zero globals here.  Update comment
13205         to say that the function can be called more than once.
13206         * target-globals.c (save_target_globals): Call init_reg_sets.
13207
13208 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13209
13210         * Makefile.in (bb-reorder.o, target-globals.o): Depend on bb-reorder.h
13211         * bb-reorder.h: New file.
13212         * bb-reorder.c (default_target_bb_reorder): New variable.
13213         (this_target_bb_reorder): New conditional variable.
13214         (uncond_jump_length): Redefine as a macro.
13215         * target-globals.h (this_target_bb_reorder): Declare.
13216         (target_globals): Add a bb_reorder field.
13217         (restore_target_globals): Copy the bb_reorder field to
13218         this_target_bb-reorder.
13219         * target-globals.c: Include bb-reorder.h.
13220         (default_target_globals): Initialize the bb_reorder field.
13221         (save_target_globals): Likewise.
13222
13223 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13224
13225         * Makefile.in (gcse.o, target-globals.o): Depend on gcse.h..
13226         * gcse.h: New file.
13227         * gcse.c: Include gcse.h.
13228         (default_target_gcse): New variable.
13229         (this_target_gcse): New conditional variable.
13230         (can_copy): Redefine as a macro.
13231         (can_copy_init_p): New macro.
13232         (can_copy_p): Remove can_copy_init_p.
13233         * target-globals.h (this_target_gcse): Declare.
13234         (target_globals): Add a gcse field.
13235         (restore_target_globals): Copy the gcse field to this_target_gcse.
13236         * target-globals.c: Include gcse.h.
13237         (default_target_globals): Initialize the gcse field.
13238         (save_target_globals): Likewise.
13239
13240 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13241
13242         * ira-int.h (target_ira_int): Add x_ira_prohibited_mode_move_regs
13243         and x_ira_prohibited_mode_move_regs_initialized_p.
13244         (ira_prohibited_mode_move_regs): Redefine as a macro.
13245         * ira.c (ira_prohibited_mode_move_regs): Delete.
13246         (ira_prohibited_mode_move_regs_initialized_p): Redefine as a macro.
13247
13248 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13249
13250         * reload.h (target_reload): Add x_cached_reg_save_code and
13251         x_cached_reg_restore_code.
13252         * caller-save.c (cached_reg_save_code, cached_reg_restore_code):
13253         Redefine as macros.
13254
13255 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13256
13257         * Makefile.in (target-globals.o): Depend on builtins.h.
13258         * builtins.h: New file.
13259         * builtins.c: Include builtins.h.
13260         (default_target_builtins): New variable.
13261         (this_target_builtins): New conditional variable.
13262         (apply_args_mode, apply_result_mode): Redefine as macros.
13263         * target-globals.h (this_target_builtins): Declare.
13264         (target_globals): Add a builtins field.
13265         (restore_target_globals): Copy the builtins field to
13266         this_target_builtins.
13267         * target-globals.c: Include builtins.h.
13268         (default_target_globals): Initialize the builtins field.
13269         (save_target_globals): Likewise.
13270
13271 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13272
13273         * expmed.h (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST)
13274         (algorithm, alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved
13275         from expmed.c.
13276         (target_expmed): Add x_alg_hash and x_alg_hash_used_p.
13277         (alg_hash, alg_hash_used_p): New macros.
13278         * expmed.c (init_expmed): Clear alg_hash if reinitializing.
13279         (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST, algorithm)
13280         (alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved to expmed.h.
13281
13282 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13283
13284         * ira-int.h (target_ira_int): Add x_max_struct_costs_size, x_init_cost,
13285         x_temp_costs, x_op_costs, x_this_op_costs and x_cost_classes.
13286         * ira-costs.c (max_struct_costs_size, init_cost, temp_costs, op_costs)
13287         (this_op_costs, costs_classes): Redefine as macros.
13288         (record_reg_classes): Don't take op_costs as a parameter.
13289         (record_operand_costs): Likewise.  Update calls to record_reg_classes.
13290         (scan_one_insn): Update call to record_operand_costs.
13291
13292 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13293
13294         * Makefile.in (target-globals.o): Depend on $(IRA_INT_H).
13295         * ira-int.h (ira_max_nregs, ira_important_class_nums): Delete.
13296         (target_ira_int): New structure.
13297         (default_target_ira_int): Declare.
13298         (this_target_ira_int): Declare as a variable or define as a macro.
13299         (ira_reg_mode_hard_regset, ira_register_move_cost)
13300         (ira_may_move_in_cost, ira_may_move_out_cost, ira_class_subset_p)
13301         (ira_non_ordered_class_hard_regs, ira_class_hard_reg_index)
13302         (prohibited_class_mode_regs, ira_important_classes_num)
13303         (ira_important_classes, ira_reg_class_intersect)
13304         (ira_reg_classes_intersect_p, ira_reg_class_super_classes)
13305         (ira_reg_class_union): Redefine as macros.
13306         * ira.h (target_ira): New structure.
13307         (default_target_ira): Declare.
13308         (this_target_ira): Declare as a variable or define as a macro.
13309         (ira_available_class_regs, ira_hard_regno_cover_class)
13310         (ira_reg_class_cover_size, ira_reg_class_cover, ira_class_translate)
13311         (ira_reg_class_nregs, ira_memory_move_cost, ira_class_hard_regs)
13312         (ira_class_hard_regs_num): Redefine as macros.
13313         * ira.c (default_target_ira, default_target_ira_int): New variables.
13314         (this_target_ira, this_target_ira_int): New conditional variables.
13315         (ira_reg_mode_hard_regset, ira_memory_move_cost)
13316         (ira_register_move_cost, ira_may_move_in_cost, ira_may_move_out_cost)
13317         (ira_class_subset_p): Delete.
13318         (no_unit_alloc_regs): Redefine as a macro.
13319         (ira_class_hard_regs, ira_non_ordered_class_hard_regs)
13320         (ira_class_hard_regs_num, ira_class_hard_reg_index)
13321         (ira_available_class_regs): Delete.
13322         (alloc_reg_class_subclasses): Redefine as a macro.
13323         (ira_reg_class_cover_size, ira_reg_class_cover)
13324         (ira_important_classes_num, ira_important_classes)
13325         (ira_important_class_nums, ira_class_translate): Delete.
13326         (cover_class_order): Document the variable's lifetime.
13327         (reorder_important_classes): Don't set ira_important_class_nums.
13328         (ira_reg_class_intersect, ira_reg_classes_intersect_p)
13329         (ira_reg_class_super_classes, ira_reg_class_union)
13330         (ira_hard_regno_cover_class, ira_reg_class_nregs, ira_max_nregs):
13331         Delete.
13332         (setup_reg_class_nregs): Don't set ira_max_regs.
13333         (prohibited_class_mode_regs): Delete.
13334         * target-globals.h (this_target_ira, this_target_ira_int): Declare.
13335         (target_globals): Add ira and ira_int fields.
13336         (restore_target_globals): Copy the ira field to this_target_ira
13337         and the ira_int field to this_target_ira_int.
13338         * target-globals.c: Include ira-int.h.
13339         (default_target_globals): Initialize the ira and ira_int fields.
13340         (save_target_globals): Likewise.
13341
13342 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13343
13344         * Makefile.in (target-globals.o): Depend on $(CFGLOOP_H).
13345         * cfgloop.h (target_cfgloop): New structure.
13346         (default_target_cfgloop): Declare.
13347         (this_target_cfgloop): Declare as a variable or define as a macro.
13348         (target_avail_regs, target_clobbered_regs, target_res_regs)
13349         (target_reg_cost, target_spill_cost): Redefine as macros.
13350         * cfgloopanal.c (default_target_cfgloop): New variable.
13351         (this_target_cfgloop): New conditional variable.
13352         (target_avail_regs, target_clobbered_regs, target_res_regs)
13353         (target_reg_cost, target_spill_cost): Delete.
13354         * target-globals.h (this_target_cfgloop): Declare.
13355         (target_globals): Add a cfgloop field.
13356         (restore_target_globals): Copy the cfgloop field to
13357         this_target_cfgloop.
13358         * target-globals.c: Include cfgloop.h.
13359         (default_target_globals): Initialize the cfgloop field.
13360         (save_target_globals): Likewise.
13361
13362 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13363
13364         * regs.h (target_regs): Add x_direct_load, x_direct_store and
13365         x_float_extend_from_mem.
13366         (direct_load, direct_store, float_extend_from_mem): New macros.
13367         * expr.c (direct_load, direct_store, float_extend_from_mem): Delete.
13368
13369 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13370
13371         * Makefile.in (LIBFUNCS_H): Add $(HASHTAB_H).
13372         (target-globals.o): Depend on $(LIBFUNCS_H).
13373         * libfuncs.h: Include hashtab.h.
13374         (libfunc_entry): Moved from optabs.c.
13375         (target_libfuncs): New structure.
13376         (default_target_libfuncs): Declare.
13377         (this_target_libfuncs): Declare as a variable or define as a macro.
13378         (libfunc_table): Redefine as a macro.
13379         * optabs.c (default_target_libfuncs): New variable.
13380         (this_target_libfuncs): New conditional variable.
13381         (libfunc_table): Delete.
13382         (libfunc_entry): Moved to optabs.h.
13383         (libfunc_hash): Redefine as a macro.
13384         (hash_libfunc, eq_libfunc): Fix comments.
13385         (init_optabs): Use libfunc_hash to detect cases where the function
13386         has already been called.  Clear the hash table instead of
13387         recreating it.
13388         * target-globals.h (this_target_libfuncs): Declare.
13389         (target_globals): Add a libfuncs field.
13390         (restore_target_globals): Copy the libfuncs field to
13391         this_target_libfuncs.
13392         * target-globals.c: Include libfuncs.h.
13393         (default_target_globals): Initialize the libfuncs field.
13394         (save_target_globals): Likewise.
13395
13396 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13397
13398         * Makefile.in (LIBFUNCS_H): New variable.  Use instead of libfuncs.h
13399         in all dependency lists.
13400
13401 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13402
13403         * Makefile.in (target-globals.o): Depend on $(EXPR_H) and $(OPTABS_H).
13404         * optabs.h (target_optabs): New structure.
13405         (default_target_optabs): Declare.
13406         (this_target_optabs): Declare as a variable or define as a macro.
13407         (optab_table, convert_optab_table, direct_optab_table): Redefine
13408         as macros.
13409         * optabs.c (default_target_optabs): New variable.
13410         (this_target_optabs): New conditional variable.
13411         (optab_table, convert_optab_table, direct_optab_table): Delete.
13412         * target-globals.h (this_target_optabs): Declare.
13413         (target_globals): Add a optabs field.
13414         (restore_target_globals): Copy the optabs field to
13415         this_target_optabs.
13416         * target-globals.c: Include expr.h and optabs.h.
13417         (default_target_globals): Initialize the optabs field.
13418         (save_target_globals): Likewise.
13419
13420 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13421
13422         * flags.h (target_flagstate): Add x_flag_excess_precision.
13423         (flag_excess_precision): Redefine as a macro.
13424         * toplev.c (flag_excess_precision): Delete.
13425
13426 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13427
13428         * defaults.h (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Define if not defined.
13429         * libgcc2.c (MIN_UNITS_PER_WORD): Delete.
13430         * hard-reg-set.h (target_hard_regs): Add x_no_caller_save_reg_set.
13431         (no_caller_save_reg_set): Redefine as a macro.
13432         * reload.h (target_reload): Add x_caller_save_initialized_p and
13433         x_regno_save_mode.
13434         (caller_save_initialized_p): Redefine as a macro.
13435         * caller-save.c (caller_save_initialized_p, no_caller_save_reg_set)
13436         (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Delete.
13437         (regno_save_mode): Redefine as a macro.
13438
13439 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13440
13441         * Makefile.in (expmed.o, target-globals.o): Depend on expmed.h.
13442         * expmed.h: New file.
13443         * expmed.c (default_target_costs): New variable.
13444         (this_target_costs): New conditional variable.
13445         (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost, neg_cost)
13446         (shift_cost, shiftadd_cost, shiftsub0_cost, shiftsub1_cost, mul_cost)
13447         (sdiv_cost, udiv_cost, mul_widen_cost, mul_highpart_cost): Delete.
13448         * target-globals.h (this_target_expmed): Declare.
13449         (target_globals): Add a expmed field.
13450         (restore_target_globals): Copy the expmed field to
13451         this_target_expmed.
13452         * target-globals.c: Include expmed.h.
13453         (default_target_globals): Initialize the expmed field.
13454         (save_target_globals): Likewise.
13455
13456 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13457
13458         * Makefile.in (target-globals.o): Depend on reload.h.
13459         * reload.h (target_reload): New structure.
13460         (default_target_reload): Declare.
13461         (this_target_reload): Declare as a variable or define as a macro.
13462         (indirect_symref_ok, double_reg_address_ok): Redefine as macros.
13463         * reload1.c (default_target_reload): New variable
13464         (this_target_reload): New conditional variable.
13465         (indirect_symref_ok, double_reg_address_ok): Delete.
13466         (spill_indirect_levels): Redefine as a macro.
13467         * target-globals.h (this_target_reload): Declare.
13468         (target_globals): Add a reload field.
13469         (restore_target_globals): Copy the reload field to
13470         this_target_reload.
13471         * target-globals.c: Include hard-reg-set.h.
13472         (default_target_globals): Initialize the reload field.
13473         (save_target_globals): Likewise.
13474
13475 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13476
13477         * rtl.h (target_rtl): Add x_static_reg_base_value.
13478         * alias.c (static_reg_base_value): Redefine as a macro.
13479
13480 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13481
13482         * Makefile.in (reginfo.o): Don't depend on $(GGC_H) or gt-reginfo.h.
13483         (GTFILES): Remove reginfo.c.
13484         * rtl.h (target_rtl): Add x_top_of_stack.
13485         (top_of_stack): New macro.
13486         * reginfo.c: Don't include ggc.h or gt-reginfo.h.
13487         (top_of_stack): Delete.
13488
13489 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13490
13491         * regs.h (target_regs): Add x_hard_regs_of_mode,
13492         x_contains_reg_of_mode, x_move_cost, x_may_move_in_cost,
13493         x_may_move_out_cost and x_last_mode_for_init_move_cost.
13494         (have_regs_of_mode, contains_reg_of_mode, move_cost)
13495         (may_move_in_cost, may_move_out_cost): Redefine as macros.
13496         * reginfo.c (have_regs_of_mode, contains_reg_of_mode, move_cost)
13497         (may_move_in_cost, may_move_out_cost): Delete.
13498         (last_mode_for_init_move_cost): Redefine as a macro.
13499
13500 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13501
13502         * hard-reg-set.h (target_hard_regs): New structure.
13503         (default_target_hard_regs): Declare.
13504         (this_target_hard_regs): Declare as a variable or define as a macro.
13505         (fixed_regs, fixed_reg_set, call_used_regs, call_really_used_regs)
13506         (call_used_reg_set, call_fixed_reg_set, regs_invalidated_by_call)
13507         (reg_alloc_order, inv_reg_alloc_order, reg_class_contents)
13508         (reg_class_size, reg_class_subclasses, reg_class_subunion)
13509         (reg_class_superunion, reg_names): Redefine as macros.
13510         * reginfo.c (fixed_regs, fixed_reg_set, call_used_regs)
13511         (call_used_reg_set, call_really_used_regs, call_fixed_reg_set)
13512         (regs_invalidated_by_call, reg_alloc_order, inv_reg_alloc_order)
13513         (reg_class_contents, reg_class_size, reg_class_subclasses)
13514         (reg_class_subunion, reg_class_superunion, reg_names): Delete.
13515         (default_target_hard_regs): New variable
13516         (this_target_hard_regs, initial_call_really_used_regs)
13517         (initial_reg_alloc_order): New conditional variables.
13518         (initial_reg_names): New variable.
13519         (init_reg_sets): Assert that initial_call_really_used_regs,
13520         initial_reg_alloc_order and initial_reg_names
13521         are all the same size as their variable counterparts.  Use them to
13522         initialize those counterparts.
13523         * target-globals.h (this_target_hard_regs): Declare.
13524         (target_globals): Add a hard_regs field.
13525         (restore_target_globals): Copy the hard_regs field to
13526         this_target_hard_regs.
13527         * target-globals.c: Include hard-reg-set.h.
13528         (default_target_globals): Initialize the hard_regs field.
13529         (save_target_globals): Likewise.
13530
13531 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13532
13533         * Makefile.in (target-globals.o): Depend on $(RTL_H).
13534         * rtl.h (target_rtl): New structure.
13535         (default_target_rtl): Declare.
13536         (this_target_rtl): Declare as a variable or define as a macro.
13537         (global_rtl, pic_offset_table_rtx, return_address_pointer_rtx):
13538         Redefine as macros.
13539         * emit-rtl.c (default_target_rtl): New variable.
13540         (this_target_rtl): New conditional variable.
13541         (global_rtl, static_regno_reg_rtx, pic_offset_table_rtx)
13542         (return_address_pointer_rtx): Delete.
13543         (initial_regno_reg_rtx): New macro.
13544         (init_emit): Use initial_regno_reg_rtx instead of static_regno_reg_rtx.
13545         (init_emit_regs): Likewise.
13546         * target-globals.h (this_target_rtl): Declare.
13547         (target_globals): Add a rtl field.
13548         (restore_target_globals): Copy the rtl field to this_target_rtl.
13549         * target-globals.c: Include rtl.h.
13550         (default_target_globals): Initialize the rtl field.
13551         (save_target_globals): Likewise.
13552
13553 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13554
13555         * Makefile.in (target-globals.o): Depend on $(REGS_H).
13556         * regs.h (target_reg_modes): New structure.
13557         (default_target_reg_modes): Declare.
13558         (this_target_reg_modes): Declare as a variable or define as a macro.
13559         (hard_regno_nregs, reg_raw_mode): Redefine as macros.
13560         * reginfo.c (default_target_reg_modes): New variable.
13561         (this_target_reg_modes): New conditional variable.
13562         (hard_regno_nregs, reg_raw_mode): Delete.
13563         * target-globals.h (this_target_regs): Declare.
13564         (target_globals): Add a regs field.
13565         (restore_target_globals): Copy the regs field to this_target_regs.
13566         * target-globals.c: Include regs.h.
13567         (default_target_globals): Initialize the regs field.
13568         (save_target_globals): Likewise.
13569
13570 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
13571
13572         * doc/tm.texi.in (SWITCHABLE_TARGET): Document.
13573         * doc/tm.texi: Regenerate.
13574         * Makefile.in (OBJS-common): Add target-globals.o.
13575         (gtype-desc.o): Depend on $(IPA_PROP_H), $(LTO_STREAMER_H)
13576         and target-globals.h.
13577         (target-globals.o): New rule.
13578         (GTFILES): Include $(srcdir)/target-globals.h.
13579         * defaults.h (SWITCHABLE_TARGET): Define.
13580         * gengtype.c (open_base_files): Add target-globals.h to the
13581         list of includes.
13582         * target-globals.h: New file.
13583         * target-globals.c: Likewise.
13584
13585         * Makefile.in (target-globals.o): Depend on $(FLAGS_H).
13586         * flags.h (target_flag_state): New structure.
13587         (default_target_flag_state): Declare.
13588         (this_target_flag_state): Declare as a variable or define as a macro.
13589         (align_loops_log): Redefine as a macro.
13590         (align_loops_max_skip, align_jumps_log): Likewise.
13591         (align_jumps_max_skip, align_labels_log): Likewise.
13592         (align_labels_max_skip, align_functions_log): Likewise.
13593         * toplev.c (default_target_flag_state): New variable.
13594         (this_target_flag_state): New conditional variable.
13595         (align_loops_log): Delete.
13596         (align_loops_max_skip, align_jumps_log): Likewise.
13597         (align_jumps_max_skip, align_labels_log): Likewise.
13598         (align_labels_max_skip, align_functions_log): Likewise.
13599         * target-globals.h (this_target_flag_state): Declare.
13600         (target_globals): Add a flag_state field.
13601         (restore_target_globals): Copy the flag_state field to
13602         this_target_flag_state.
13603         * target-globals.c: Include flags.h.
13604         (default_target_globals): Initialize the flag_state field.
13605         (save_target_globals): Likewise.
13606
13607 2010-07-12  Jie Zhang  <jie@codesourcery.com>
13608
13609         * postreload.c (reg_symbol_ref[]): New.
13610         (move2add_use_add2_insn): New.
13611         (move2add_use_add3_insn): New.
13612         (reload_cse_move2add): Handle SYMBOL + OFFSET case.
13613         (move2add_note_store): Likewise.
13614
13615 2010-07-12  Joern Rennecke  <joern.rennecke@embecosm.com>
13616
13617         PR rtl-optimization/44752
13618         * genautomata.c (main): Don't emit an empty file even if there
13619         is no automaton.
13620
13621 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13622
13623         * config/i386/i386.c (ix86_sol10_return_in_memory): Rename to
13624         ix86_solaris_return_in_memory.
13625         * config/i386-protos.h: Reflect this.
13626         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
13627         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
13628         Move ...
13629         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): ... here.
13630
13631 2010-07-12  Jie Zhang  <jie@codesourcery.com>
13632
13633         * config/arm/arm.c (arm_get_frame_offsets): Don't use r3 to
13634         align the stack when it's going to be saved.
13635
13636 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13637
13638         PR pch/14940
13639         * config/host-solaris.c (mmap_fixed): New function.
13640         (sol_gt_pch_get_address): Use it.
13641         (sol_gt_pch_use_address): Likewise.
13642
13643 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13644
13645         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
13646         pentiumpro on Solaris 8 and 9/x86.
13647         * doc/install.texi (Specific, i?86-*-solaris2.[89]): Recommend GNU as.
13648         Document SSE/SSE2 support.
13649         * doc/sourcebuild.texi (Effective-Target Keywords): Document sse.
13650
13651 2010-07-12  Andi Kleen  <ak@linux.intel.com>
13652
13653         * lto-symtab.c (lto_symtab_merge_decls_1): Use fatal_error
13654         instead of gcc_assert to print better error message for multiple
13655         prevailing defs.
13656
13657 2010-07-12  Uros Bizjak  <ubizjak@gmail.com>
13658
13659         * config/i386/i386.c (ix86_asm_output_function_label): Change format
13660         string placeholder from 0x%x to %#x.
13661         (ix86_code_end): Use putc to output '\n'.
13662         (ix86_print_operand) <case ';'>: Use putc to output ';'.
13663
13664 2010-07-11  Kai Tietz  <kai.tietz@onevision.com>
13665
13666         * config/i386/winnt.c (i386_pe_file_end): Quote symbol name
13667         in directive -export.
13668
13669 2010-07-10  Anatoly Sokolov  <aesok@post.ru>
13670
13671         * reginfo.h (reg_classes_intersect_p): Change arguments type to
13672         reg_class_t.
13673         * rtl.h (reg_classes_intersect_p): Adjust prototype.
13674
13675         * config/rs6000/rs6000.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
13676         Remove macros.
13677         * config/rs6000/rs6000-protos.h (rs6000_register_move_cost,
13678         rs6000_memory_move_cost): Remove
13679         * config/rs6000/rs6000.c (TARGET_REGISTER_MOVE_COST,
13680         TARGET_MEMORY_MOVE_COST): Define.
13681         (rs6000_register_move_cost): Make static. Change arguments type from
13682         enum reg_class to reg_class_t. Adjust rs6000_memory_move_cost calls.
13683         (rs6000_memory_move_cost): Make static. Change arguments type from
13684         'enum reg_class' to reg_class_t.
13685
13686 2010-07-10  Sandra Loosemore  <sandra@codesourcery.com>
13687
13688         PR middle-end/42505
13689         * tree-inline.c (estimate_num_insns): Refactor builtin complexity
13690         lookup code into....
13691         * builtins.c (is_simple_builtin, is_inexpensive_builtin): ...these
13692         new functions.
13693         * tree.h (is_simple_builtin, is_inexpensive_builtin): Declare.
13694         * cfgloopanal.c (target_clobbered_regs): Define.
13695         (init_set_costs): Initialize target_clobbered_regs.
13696         (estimate_reg_pressure_cost): Add call_p argument.  When true,
13697         adjust the number of available registers to exclude the
13698         call-clobbered registers.
13699         * cfgloop.h (target_clobbered_regs): Declare.
13700         (estimate_reg_pressure_cost): Adjust declaration.
13701         * tree-ssa-loop-ivopts.c (struct ivopts_data): Add body_includes_call.
13702         (ivopts_global_cost_for_size): Pass it to estimate_reg_pressure_cost.
13703         (determine_set_costs): Dump target_clobbered_regs.
13704         (loop_body_includes_call): New function.
13705         (tree_ssa_iv_optimize_loop): Use it to initialize new field.
13706         * loop-invariant.c (gain_for_invariant): Adjust arguments to pass
13707         call_p flag through.
13708         (best_gain_for_invariant): Likewise.
13709         (find_invariants_to_move): Likewise.
13710         (move_single_loop_invariants): Likewise, using already-computed
13711         has_call field.
13712
13713 2010-07-10  Richard Guenther  <rguenther@suse.de>
13714             Joern Rennecke  <joern.rennecke@embecosm.com>
13715
13716         PR debug/44832
13717         * tree-ssa-live.c (mark_all_vars_used_1): Set TREE_USED for LABEL_DECL.
13718         (remove_unused_scope_block_p): Don't drop TREE_USED LABEL_DECLs
13719         unless they have DECL_IGNORED_P set.
13720
13721 2010-07-10  Richard Guenther  <rguenther@suse.de>
13722
13723         PR lto/44889
13724         * gimple.c (gimple_fixup_complete_and_incomplete_subtype_p): New
13725         helper function.
13726         (gimple_types_compatible_p): Similar to pointed-to
13727         types allow and merge a mix of complete and incomplete aggregate.
13728         Use gimple_fixup_complete_and_incomplete_subtype_p for that.
13729         (iterative_hash_gimple_type): Adjust for that.
13730
13731 2010-07-10  Richard Sandiford  <r.sandiford@uk.ibm.com>
13732
13733         * tree.h (DECL_REPLACEABLE_P): Strengthen check for weak symbols.
13734
13735 2010-07-10  Iain Sandoe  <iains@gcc.gnu.org>
13736
13737         PR objc/44140
13738         * config/darwin.c (output_objc_section_asm_op): Save and restore
13739         section when outputting ObjC section list.
13740
13741 2010-07-09  Jan Hubicka  <jh@suse.cz>
13742
13743         * lto-streamer-out.c (produce_symtab): Do not write alias
13744         cgraph/varpool nodes.
13745
13746 2010-07-09  Jan Hubicka  <jh@suse.cz>
13747
13748         * tree-inline.c (declare_return_variable): Fix ICE while
13749         inlining DECL_BY_VALUE function not in SSA form
13750
13751 2010-07-09  Changpeng Fang  <changpeng.fang@amd.com>
13752
13753         PR tree-optimization/44576
13754         * tree-ssa-loop-prefetch.c (trip_count_to_ahead_ratio_too_small_p):
13755         New.  Pull out from is_loop_prefetching_profitable to implement
13756         the trip count to ahead ratio heuristic.
13757         (mem_ref_count_reasonable_p): New.  Pull out from
13758         is_loop_prefetching_profitable to implement the instruction to
13759         memory reference ratio heuristic.  Also consider not reasonable if
13760         the memory reference count is above a threshold (to avoid
13761         explosive compilation time.
13762         (insn_to_prefetch_ratio_too_small_p): New.  Pull out from
13763         is_loop_prefetching_profitable to implement the instruction to
13764         prefetch ratio heuristic.
13765         (is_loop_prefetching_profitable): Removed.
13766         (loop_prefetch_arrays): Distribute the cost analysis across the
13767         function to allow early exit of the prefetch analysis.
13768         is_loop_prefetching_profitable is splitted into three functions,
13769         with each one called as early as possible.
13770         (PREFETCH_MAX_MEM_REFS_PER_LOOP): New.  Threshold above which the
13771         number of memory references in a loop is considered too many.
13772
13773 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
13774
13775         * reload.c (find_reloads): Don't clear badop if we have a winreg
13776         alternative, but not win, and the class only has fixed regs.
13777         * hard-reg-set.h (class_only_fixed_regs): Declare.
13778         * reginfo.c (class_only_fixed_regs): New array.
13779         (init_reg_sets_1): Initialize it.
13780         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn): Don't
13781         discourage alternatives using the stack pointer.
13782
13783         * config/arm/arm.md (addsi3_cbranch): Switch alternatives 0 and 1.
13784
13785         * config/arm/arm.md (Thumb-1 ldrsb peephole): New.
13786
13787         * config/arm/arm.md (cbranchqi4): Fix array size.
13788         (addsi3_cbranch): Also andle alternative 2 like alternative 3 when
13789         calculating length.
13790
13791 2010-07-09  Richard Guenther  <rguenther@suse.de>
13792
13793         * gimple.c (struct type_fixup_s): New struct and VEC type.
13794         (gimple_register_type_fixups): New static global.
13795         (gimple_queue_type_fixup): New function.
13796         (gimple_types_compatible_p): Queue type fixups instead of
13797         applying them here.
13798         (gimple_register_type): Apply queued fixups for the
13799         canonical type.  Empty the type fixup queue.
13800
13801 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
13802
13803         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Fix test.
13804         * configure: Regenerate.
13805         * config.in: Ditto.
13806
13807 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
13808             Denys Vlasenko  <dvlasenk@redhat.com>
13809             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
13810
13811         PR tree-optimization/28632
13812         * tree-vrp.c (zero_nonzero_bits_from_vr): New function.
13813         (extract_range_from_binary_expr): Further optimize
13814         BIT_AND_EXPR and BIT_IOR_EXPR.
13815
13816 2010-07-09  Sebastian Pop  <sebastian.pop@amd.com>
13817
13818         * tree-if-conv.c (fold_or_predicates): New.
13819         (add_to_predicate_list): Call it.
13820
13821 2010-07-09  Richard Guenther  <rguenther@suse.de>
13822
13823         PR middle-end/44890
13824         * tree-ssa-address.c (create_mem_ref_raw): Only build a MEM_REF
13825         if base is a pointer.
13826         * tree-cfg.c (verify_expr): Update MEM_REF checking.
13827
13828 2010-07-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
13829
13830         PR target/44877
13831         * config/rs6000/rs6000.c (rs6000_expand_builtin): Use
13832         POINTER_TYPE_P instead of checking only for POINTER_TYPE for the
13833         builtin mask for load/store builtins.
13834
13835 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
13836
13837         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Also check
13838         for "lock addl".
13839         * configure: Regenerate.
13840         * config/i386/i386.c (ix86_print_operand) <case ';'>:
13841         Remove TARGET_MACHO.
13842
13843 2010-07-09  Peter Bergner  <bergner@vnet.ibm.com>
13844
13845         * config/rs6000/rs6000.c (rs6000_override_options): Fix setting of
13846         default ISA flags.
13847         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mvsx.
13848
13849 2010-07-09  Tom de Vries  <tjvries@xs4all.nl>
13850
13851         * tree.c (type_hash_if_marked_p): Removed non-ggc_marked_p clause.
13852
13853 2010-07-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
13854
13855         * config/picochip/picochip.md (commsTestPort): Emit more
13856         efficient sequence for tstport instruction.
13857
13858 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
13859
13860         * config/i386/i386.c (ix86_veclib_handler): Make static.
13861
13862 2010-07-09  Richard Guenther  <rguenther@suse.de>
13863
13864         PR tree-optimization/44852
13865         * tree-ssa-alias.c: Include toplev.h for exact_log2.
13866         (indirect_ref_may_alias_decl_p): Properly handle negative offsets
13867         in MEM_REF.
13868         (indirect_refs_may_alias_p): Likewise.
13869         * Makefile.in (tree-ssa-alias.o): Add $(TOPLEV_H).
13870
13871 2010-07-09  Richard Guenther  <rguenther@suse.de>
13872
13873         PR tree-optimization/44882
13874         * tree-vect-stmts.c (vectorizable_store): Do not assert alias
13875         sets do conflict.
13876         (vectorizable_load): Likewise.
13877
13878 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
13879
13880         PR target/40657
13881         * config/arm/arm.c (thumb1_extra_regs_pushed): New arg FOR_PROLOGUE.
13882         All callers changed.
13883         Handle the case when we're called for the epilogue.
13884         (thumb_unexpanded_epilogue): Use it.
13885         (thumb1_expand_epilogue): Likewise.
13886
13887 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
13888
13889         * tree-vrp.c (extract_range_from_binary_expr) <BIT_AND_EXPR>: If
13890         both ranges are range_int_cst_p with non-negative minimum,
13891         try harder to derive smaller range.
13892
13893 2010-07-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13894
13895         * genrecog.c: Include diagnostic-core.h before toplev.h.
13896         * genoutput.c: Likewise.
13897         * genextract.c: Likewise.
13898         * genautomata.c: Likewise.
13899         * genemit.c: Likewise.
13900         * genpeep.c: Likewise.
13901         * genattrtab.c: Likewise.
13902         * genconditions.c: Likewise.
13903         * genpreds.c: Likewise.
13904
13905 2010-07-08  Andi Kleen  <ak@linux.intel.com>
13906
13907         * lto-section-in.c (lto_section_name): Add missing comma.
13908
13909 2010-07-08  Anatoly Sokolov  <aesok@post.ru>
13910
13911         * config/ia64/ia64.h (OVERRIDE_OPTIONS): Remove macros.
13912         * config/ia64/ia64-protos.h (ia64_override_options): Remove.
13913         * config/ia64/ia64.c (TARGET_OPTION_OVERRIDE): Define.
13914         (ia64_override_options): Rename to...
13915         (ia64_option_override): ... this one. Make static.
13916
13917 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
13918
13919         PR middle-end/44843
13920         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not rely on the
13921         pointed-to type of the offset in a MEM_REF to compute the alignment.
13922
13923 2010-07-08  Kai Tietz  <kai.tietz@onevision.com>
13924
13925         * final.c (final_scan_insn): Replace
13926         TARGET_UNWIND_INFO macro check by unwind_emit
13927         hook NULL check.
13928         * targhooks.c (default_unwind_emit): Removed.
13929         * targhooks.h (default_unwind_emit): Likewise.
13930         * target.def (unwind_emit): Set default value to NULL.
13931
13932         * config/i386/i386-protos.h (ix86_asm_output_function_label):
13933         New prototype.
13934         * config/i386/i386.c (ix86_function_ms_hook_prologue): Check
13935         for NULL fntype argument and allow 64-bit targets.
13936         (ix86_asm_output_function_label): New function.
13937         (ix86_expand_prologue): Handle 64-bit ms hook prologue.
13938         (ix86_handle_fndecl_attribute): Likewise.
13939         * doc/extend.texi (ms_hook_prologue): Adjust documentation.
13940         * doc/doc/tm.texi: Regenerated.
13941         * doc/doc/doc/tm.texi.in (ASM_OUTPUT_FUNCTION_LABEL): New.
13942         (ASM_DECLARE_FUNCTION_NAME): Adjust documentation.
13943         * defaults.h (ASM_OUTPUT_FUNCTION_LABEL): New macro.
13944         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use
13945         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
13946         * config/elfos.h: Likewise.
13947         * config/i386/cygming.h: Likewise.
13948         * config/netbsd-aout.h: Likewise.
13949         * config/openbsd.h: Likewise.
13950         * config/i386/i386.h (ASM_OUTPUT_FUNCTION_LABEL): Override
13951         by ix86_asm_output_function_label function call.
13952         * varasm.c (assemble_start_function): Use
13953         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
13954
13955 2010-07-08  Jan Hubicka  <jh@suse.cz>
13956
13957         * cgraph.c (cgraph_will_be_removed_from_program_if_no_direct_calls):
13958         New function.
13959         * cgraph.h (cgraph_will_be_removed_from_program_if_no_direct_calls):
13960         Declare.
13961         * ipa-cp.c (ipcp_estimate_growth): Use it.
13962         * ipa-inline.c (cgraph_estimate_growth, cgraph_decide_inlining):
13963         Likewise.
13964
13965 2010-07-08  Jan Hubicka  <jh@suse.cz>
13966
13967         * tree-inline.c (declare_return_variable): Allocate annotation for new
13968         temporary.
13969
13970 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
13971
13972         PR tree-optimization/44710
13973         * tree-if-conv.c (parse_predicate): New.
13974         (add_to_predicate_list): Call it, call maybe_fold_or_comparisons.
13975         Make sure that the predicates are either SSA_NAMEs or gimple_condexpr.
13976
13977 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
13978
13979         * common.opt (ftree-loop-if-convert): New flag.
13980         * doc/invoke.texi (ftree-loop-if-convert): Documented.
13981         * tree-if-conv.c (gate_tree_if_conversion): Enable if-conversion
13982         when flag_tree_loop_if_convert is set.
13983
13984 2010-07-08  Uros Bizjak  <ubizjak@gmail.com>
13985
13986         * config/i386/i386.c: Use short syntax for function calls
13987         through function pointers.
13988         * config/i386/i386.md: Ditto.
13989
13990 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
13991
13992         * emit-rtl.c (set_mem_attributes_minus_bitpos): Fix formatting issues.
13993
13994 2010-07-08  Richard Guenther  <rguenther@suse.de>
13995
13996         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Fix
13997         stmt check for POINTER_PLUS_EXPRs, fix the pointer assignment.
13998
13999 2010-07-08  Jakub Jelinek  <jakub@redhat.com>
14000
14001         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_const[48]u
14002         instead of DW_OP_addr for DW_OP_GNU_push_tls_address operand.
14003         (loc_list_from_tree): Likewise.
14004         (output_loc_operands): Handle outputting DW_OP_const[48]u
14005         with loc->dtprel set.
14006         (resolve_addr_in_expr): Handle loc->dtprel like DW_OP_addr.
14007
14008 2010-07-08  Jan Hubicka  <jh@suse.cz>
14009
14010         * ipa.c: Include pointer-set.h
14011         (cgraph_externally_visible_p): New attribute ALIASED;
14012         when in LTO, hidden symbols are local unless they are aliased.
14013         (function_and_variable_visibility): Compute aliased nodes;
14014         handle LTO and hidden symbol on functions and vars.
14015         * cgraph.c (cgraph_make_decl_local): Clear NAMED_SECTION
14016         for COMDAT symbols; handle COMDAT_GROUPS also at vars.
14017
14018 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
14019
14020         * config/i386/cygming.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
14021         * config/i386/freebsd.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
14022         * config/i386/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
14023         * config/i386/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
14024         * config/i386/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
14025         * config/i386/i386.c (ix86_gen_adjust_stack_and_probe): New variable.
14026         (ix86_gen_probe_stack_range): Likewise.
14027         (override_options): Set them.
14028         (ix86_target_stack_probe): New function.
14029         (ix86_compute_frame_layout): Force use of push instructions to
14030         save registers if stack checking with probes is enabled.
14031         (get_scratch_register_on_entry): New function.
14032         (release_scratch_register_on_entry): Likewise.
14033         (ix86_adjust_stack_and_probe): Likewise.
14034         (output_adjust_stack_and_probe): Likewise.
14035         (ix86_emit_probe_stack_range): Likewise.
14036         (output_probe_stack_range): Likewise.
14037         (ix86_expand_prologue): Emit stack checking code if static built-in
14038         stack checking is enabled.
14039         Test ix86_target_stack_probe instead of TARGET_STACK_PROBE.
14040         * config/i386/i386-protos.h (ix86_target_stack_probe): Declare.
14041         (output_adjust_stack_and_probe): Likewise.
14042         (output_probe_stack_range): Likewise.
14043         * config/i386/i386.md (UNSPECV_PROBE_STACK_RANGE): New constant.
14044         (allocate_stack_worker_32): Test ix86_target_stack_probe instead of
14045         TARGET_STACK_PROBE.
14046         (allocate_stack_worker_64): Likewise.
14047         (allocate_stack): Likewise.
14048         (adjust_stack_and_probe): New insn.
14049         (probe_stack_range): Likewise.
14050
14051 2010-07-08  Richard Guenther  <rguenther@suse.de>
14052
14053         PR tree-optimization/44831
14054         * tree-ssa-phiprop.c (phiprop_insert_phi): Properly build
14055         a MEM_REF preserving TBAA info of the original dereference.
14056         Dereference the original pointer if the address is not invariant.
14057         (propagate_with_phi): Fixup type checks wrt MEM_REFs.  Require
14058         at least one invariant address that we are going to dereference.
14059
14060 2010-07-08  Richard Guenther  <rguenther@suse.de>
14061
14062         PR tree-optimization/44861
14063         * tree-vect-stmts.c (vectorizable_store): Preserve TBAA
14064         information when building MEM_REFs.
14065         (vectorizable_load): Likewise.
14066         * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
14067
14068 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
14069
14070         * config/sol2-c.c: Do not include diagnostic-core.h.
14071
14072 2010-07-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14073
14074         PR bootstrap/44768
14075         * cfgexpand.c (estimated_stack_frame_size): Make self-contained
14076         with respect to current_function_decl. Pass decl of the function.
14077         * tree-inline.h (estimated_stack_frame_size): Adjust prototype.
14078         * ipa-inline.c (compute_inline_parameters): Pass decl to
14079         estimated_stack_frame_size.
14080
14081 2010-07-08  Richard Guenther  <rguenther@suse.de>
14082
14083         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
14084         New function.
14085         (valueize_refs): Call it.
14086
14087 2010-07-08  Richard Guenther  <rguenther@suse.de>
14088
14089         PR rtl-optimization/44838
14090         * tree-ssa-alias.c (indirect_refs_may_alias_p): When not in
14091         SSA form do not use pointer equivalence.
14092
14093 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
14094
14095         * dwarf2out.c (AT_linkage_name): Delete.
14096         (add_linkage_attr): New function.
14097         (add_linkage_name): Call it to emit the linkage attribute.
14098         (dwarf2out_finish): Likewise.
14099         (move_linkage_attr): Explicitly accept both attribute variants.
14100
14101 2010-07-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14102
14103         * toplev.h: Do not include diagnostic-core.h.
14104         Include diagnostic-core.h in every file that includes toplev.h.
14105         * c-tree.h: Do not include toplev.h.
14106         * pretty-print.h: Update comment.
14107         * Makefile.in: Update dependencies.
14108         * alias.c: Include diagnostic-core.h in every file that includes
14109         toplev.h.
14110         * attribs.c: Likewise.
14111         * auto-inc-dec.c: Likewise.
14112         * bb-reorder.c: Likewise.
14113         * bt-load.c: Likewise.
14114         * caller-save.c: Likewise.
14115         * calls.c: Likewise.
14116         * cfg.c: Likewise.
14117         * cfganal.c: Likewise.
14118         * cfgbuild.c: Likewise.
14119         * cfgcleanup.c: Likewise.
14120         * cfghooks.c: Likewise.
14121         * cfgloop.c: Likewise.
14122         * combine.c: Likewise.
14123         * config/alpha/alpha.c: Likewise.
14124         * config/arc/arc.c: Likewise.
14125         * config/arm/arm.c: Likewise.
14126         * config/arm/pe.c: Likewise.
14127         * config/avr/avr.c: Likewise.
14128         * config/bfin/bfin.c: Likewise.
14129         * config/cris/cris.c: Likewise.
14130         * config/crx/crx.c: Likewise.
14131         * config/darwin-c.c: Likewise.
14132         * config/darwin.c: Likewise.
14133         * config/fr30/fr30.c: Likewise.
14134         * config/frv/frv.c: Likewise.
14135         * config/h8300/h8300.c: Likewise.
14136         * config/host-darwin.c: Likewise.
14137         * config/i386/i386.c: Likewise.
14138         * config/i386/netware.c: Likewise.
14139         * config/i386/nwld.c: Likewise.
14140         * config/i386/winnt-cxx.c: Likewise.
14141         * config/i386/winnt-stubs.c: Likewise.
14142         * config/i386/winnt.c: Likewise.
14143         * config/ia64/ia64-c.c: Likewise.
14144         * config/ia64/ia64.c: Likewise.
14145         * config/iq2000/iq2000.c: Likewise.
14146         * config/lm32/lm32.c: Likewise.
14147         * config/m32c/m32c-pragma.c: Likewise.
14148         * config/m32c/m32c.c: Likewise.
14149         * config/m32r/m32r.c: Likewise.
14150         * config/m68hc11/m68hc11.c: Likewise.
14151         * config/m68k/m68k.c: Likewise.
14152         * config/mcore/mcore.c: Likewise.
14153         * config/mep/mep-pragma.c: Likewise.
14154         * config/mep/mep.c: Likewise.
14155         * config/mmix/mmix.c: Likewise.
14156         * config/mn10300/mn10300.c: Likewise.
14157         * config/moxie/moxie.c: Likewise.
14158         * config/pa/pa.c: Likewise.
14159         * config/pdp11/pdp11.c: Likewise.
14160         * config/picochip/picochip.c: Likewise.
14161         * config/rs6000/rs6000-c.c: Likewise.
14162         * config/rs6000/rs6000.c: Likewise.
14163         * config/rx/rx.c: Likewise.
14164         * config/s390/s390.c: Likewise.
14165         * config/score/score.c: Likewise.
14166         * config/score/score3.c: Likewise.
14167         * config/score/score7.c: Likewise.
14168         * config/sh/sh.c: Likewise.
14169         * config/sh/symbian-base.c: Likewise.
14170         * config/sh/symbian-c.c: Likewise.
14171         * config/sh/symbian-cxx.c: Likewise.
14172         * config/sol2-c.c: Likewise.
14173         * config/sol2.c: Likewise.
14174         * config/sparc/sparc.c: Likewise.
14175         * config/spu/spu.c: Likewise.
14176         * config/stormy16/stormy16.c: Likewise.
14177         * config/v850/v850-c.c: Likewise.
14178         * config/v850/v850.c: Likewise.
14179         * config/vax/vax.c: Likewise.
14180         * config/vxworks.c: Likewise.
14181         * config/xtensa/xtensa.c: Likewise.
14182         * convert.c: Likewise.
14183         * cse.c: Likewise.
14184         * cselib.c: Likewise.
14185         * dbgcnt.c: Likewise.
14186         * dbxout.c: Likewise.
14187         * ddg.c: Likewise.
14188         * dominance.c: Likewise.
14189         * emit-rtl.c: Likewise.
14190         * explow.c: Likewise.
14191         * expmed.c: Likewise.
14192         * fixed-value.c: Likewise.
14193         * fold-const.c: Likewise.
14194         * fwprop.c: Likewise.
14195         * gcse.c: Likewise.
14196         * ggc-common.c: Likewise.
14197         * ggc-page.c: Likewise.
14198         * ggc-zone.c: Likewise.
14199         * gimple-low.c: Likewise.
14200         * gimplify.c: Likewise.
14201         * graph.c: Likewise.
14202         * haifa-sched.c: Likewise.
14203         * ifcvt.c: Likewise.
14204         * implicit-zee.c: Likewise.
14205         * integrate.c: Likewise.
14206         * ira-build.c: Likewise.
14207         * ira-color.c: Likewise.
14208         * ira-conflicts.c: Likewise.
14209         * ira-costs.c: Likewise.
14210         * ira-lives.c: Likewise.
14211         * ira.c: Likewise.
14212         * lists.c: Likewise.
14213         * loop-doloop.c: Likewise.
14214         * loop-iv.c: Likewise.
14215         * lto-opts.c: Likewise.
14216         * lto-symtab.c: Likewise.
14217         * main.c: Likewise.
14218         * modulo-sched.c: Likewise.
14219         * optabs.c: Likewise.
14220         * params.c: Likewise.
14221         * plugin.c: Likewise.
14222         * postreload-gcse.c: Likewise.
14223         * postreload.c: Likewise.
14224         * predict.c: Likewise.
14225         * profile.c: Likewise.
14226         * real.c: Likewise.
14227         * regcprop.c: Likewise.
14228         * reginfo.c: Likewise.
14229         * regmove.c: Likewise.
14230         * reorg.c: Likewise.
14231         * resource.c: Likewise.
14232         * rtl.c: Likewise.
14233         * rtlanal.c: Likewise.
14234         * sched-deps.c: Likewise.
14235         * sched-ebb.c: Likewise.
14236         * sched-rgn.c: Likewise.
14237         * sdbout.c: Likewise.
14238         * sel-sched-dump.c: Likewise.
14239         * sel-sched-ir.c: Likewise.
14240         * simplify-rtx.c: Likewise.
14241         * stmt.c: Likewise.
14242         * stor-layout.c: Likewise.
14243         * store-motion.c: Likewise.
14244         * targhooks.c: Likewise.
14245         * tree-cfg.c: Likewise.
14246         * tree-cfgcleanup.c: Likewise.
14247         * tree-dump.c: Likewise.
14248         * tree-eh.c: Likewise.
14249         * tree-inline.c: Likewise.
14250         * tree-nomudflap.c: Likewise.
14251         * tree-object-size.c: Likewise.
14252         * tree-optimize.c: Likewise.
14253         * tree-outof-ssa.c: Likewise.
14254         * tree-phinodes.c: Likewise.
14255         * tree-profile.c: Likewise.
14256         * tree-ssa-ccp.c: Likewise.
14257         * tree-ssa-coalesce.c: Likewise.
14258         * tree-ssa-live.c: Likewise.
14259         * tree-ssa-loop-niter.c: Likewise.
14260         * tree-ssa-loop-prefetch.c: Likewise.
14261         * tree-ssa-loop.c: Likewise.
14262         * tree-ssa-structalias.c: Likewise.
14263         * tree-ssa-uninit.c: Likewise.
14264         * tree-ssa.c: Likewise.
14265         * tree-vect-data-refs.c: Likewise.
14266         * tree-vect-loop-manip.c: Likewise.
14267         * tree-vect-loop.c: Likewise.
14268         * tree-vect-patterns.c: Likewise.
14269         * tree-vect-stmts.c: Likewise.
14270         * tree-vrp.c: Likewise.
14271         * varasm.c: Likewise.
14272         * vec.c: Likewise.
14273         * web.c: Likewise.
14274         * xcoffout.c: Likewise.
14275
14276 2010-07-07  Richard Sandiford  <rdsandiford@googlemail.com>
14277
14278         * gengtype.c (write_field_root): New function.
14279         (write_root): Use it.
14280
14281 2010-07-07  Wei Guozhi  <carrot@google.com>
14282
14283         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
14284         of lowest bits to lshift/compare): Add a missing line.
14285
14286 2010-07-07  Wei Guozhi  <carrot@google.com>
14287
14288         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
14289         of lowest bits to lshift/compare): New.
14290
14291 2010-07-07  Tom Tromey  <tromey@redhat.com>
14292
14293         * doc/tm.texi: Update.
14294         * doc/tm.texi.in (SDB and DWARF) <TARGET_WANT_DEBUG_PUB_SECTIONS>:
14295         Add @hook.
14296         * target.def (want_debug_pub_sections): New hook.
14297         * config/darwin.h (TARGET_WANT_DEBUG_PUB_SECTIONS): Define.
14298         * dwarf2out.c (add_pubname_string): Check
14299         targetm.want_debug_pub_sections.
14300         (add_pubname): Likewise.
14301         (add_pubtype): Likewise.
14302
14303 2010-07-07  Jie Zhang  <jie@codesourcery.com>
14304
14305         * genautomata.c (output_automata_list_min_issue_delay_code):
14306         Correctly decompress min_issue_delay.
14307
14308 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
14309
14310         PR rtl-optimization/44404
14311         * auto-inc-dec.c (find_inc): Avoid calling count_occurrences if
14312         possible, use reg_overlap_mentioned_p instead.
14313
14314 2010-07-07  Duncan Sands  <baldrick@free.fr>
14315
14316         PR middle-end/41355
14317         * tree.c (build_function_type_skip_args): Copy the original type using
14318         build_distinct_type_copy rather than copy_node.
14319
14320 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
14321
14322         PR target/44850
14323         * config/i386/i386.c (ix86_function_ms_hook_prologue): Revert
14324         revision 161876.
14325         (ix86_expand_prologue): Likewise.
14326         (ix86_handle_fndecl_attribute): Likewise.
14327         (ix86_asm_declare_function_name): Likewise.
14328         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
14329         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
14330         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): Likewise.
14331         * config/i386/i386-protos.h (ix86_asm_declare_function_name): Likewise.
14332         * doc/extend.texi: Likewise.
14333
14334 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
14335
14336         PR target/44844
14337         * config/i386/i386.md (rdrand<mode>): Changed to expand to
14338         retry if the carry flag isn't valid.
14339         (rdrand<mode>_1): New.
14340
14341 2010-07-07  Richard Guenther  <rguenther@suse.de>
14342
14343         PR middle-end/44790
14344         * expr.c (expand_expr_real_1): Go the POINTER_PLUS_EXPR path
14345         for expanding the constant offset for MEM_REFs.
14346
14347 2010-07-07  Richard Guenther  <rguenther@suse.de>
14348
14349         * tree-ssa-propagate.h (valid_gimple_call_p): Remove.
14350         * tree-ssa-propagate.c (valid_gimple_call_p): Make static.  Fix.
14351         * gimple.h (is_gimple_operand): Remove.
14352         * gimple.c (is_gimple_operand): Likewise.
14353         (walk_gimple_op): Fix wi->val_only setting for calls.
14354         * tree-cfg.c (verify_gimple_call): Fix argument validation.
14355         * tree-profile.c (tree_gen_ic_func_profiler): Do not create
14356         invalid gimple calls.
14357
14358 2010-07-06  Jan Hubicka  <jh@suse.cz>
14359
14360         * lto-cgraph.c (output_cgraph): Add missing declaration.
14361
14362 2010-07-06  Jan Hubicka  <jh@suse.cz>
14363
14364         * lto-cgraph.c (output_cgraph): Output toplevel asms only into first
14365         partition.
14366
14367 2010-07-06  Alexandre Oliva  <aoliva@redhat.com>
14368
14369         * doc/gimple.texi (GIMPLE_DEBUG): Document.
14370         * doc/rtl.texi (Debug Information): New node.
14371         (NOTE_INSN_VAR_LOCATION): Document.
14372         (debug_insn): Likewise.
14373         * doc/generic.texi (DEBUG_EXPR_DECL): Document.
14374
14375 2010-07-07  Jan Hubicka  <jh@suse.cz>
14376
14377         With parts by Richard Guenther.
14378
14379         PR middle-end/44813
14380         * tree-ssa-uninit.c (ssa_undefined_value_p): Result decl is defined
14381         for functions passed by reference.
14382         * tree.c (needs_to_live_in_memory): RESULT_DECL don't need to live
14383         in memory when passed by reference.
14384         * tree-ssa-ccp.c (get_default_value): Only VAR_DECL is undefined at
14385         beggining.
14386         * ipa-split.c (split_function): Cleanup way return value is passed;
14387         handle SSA DECL_BY_REFERENCE retvals.
14388         * tree-ssa.c (verify_def): Verify that RESULT_DECL is read only when
14389         DECL_BY_REFERENCE is set.
14390         * tree-ssa-structalias.c (get_constraint_for_ssa_var, get_fi_for_callee,
14391         find_what_p_points_to): Handle RESULT_DECL.
14392         * tree-inline.c (declare_return_variable): Get new entry_block argument;
14393         when passing by reference ensure that RESULT_DECL is gimple_val.
14394         (remap_gimple_op_r): Remap RESULT_DECL ssa name.
14395         (remap_gimple_stmt): Handle SSA DECL_BY_REFERENCE returns.
14396
14397 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
14398
14399         PR rtl-optimization/44787
14400         * config/arm/arm.md (arith_shiftsi): Allow stack pointer in operand 2.
14401         * config/arm/thumb2.md (thumb2_arith_shiftsi): Likewise.
14402
14403 2010-07-06  Jan Hubicka  <jh@suse.cz>
14404
14405         * lto-symtab.c (lto_cgraph_replace_node): Handle aliases.
14406         (lto_symtab_resolve_can_prevail_p): Also alias of cgraph node
14407         with body can prevail.
14408         (lto_symtab_resolve_symbols): Use cgraph_get_node_or_alias.
14409         (lto_symtab_merge_cgraph_nodes_1): Do not remove nodes from aliases.
14410         * cgraph.c (cgraph_get_node_or_alias): New function.
14411         * cgraph.h (cgraph_get_node_or_alias): Declare.
14412
14413 2010-07-06  Kai Tietz  <kai.tietz@onevision.com>
14414
14415         * config/i386/i386.c (ix86_function_ms_hook_prologue): Enable x64
14416         support.
14417         (ix86_expand_prologue): Likewise.
14418         (ix86_handle_fndecl_attribute): Likewise.
14419         (ix86_asm_declare_function_name): New function for
14420         ASM_DECLARE_FUNCTION_NAME.
14421         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): New macro.
14422         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Removed.
14423         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): New macro.
14424         * config/i386/i386-protos.h (ix86_asm_declare_function_name): New.
14425         * doc/extend.texi: Adjust documentation about ms_hook_prologue
14426         attribute.
14427
14428 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
14429
14430         * config/i386/i386.md (immediate_operand): New mode attribute.
14431
14432         (pro_epilogue_adjust_stack_<mode>_1): Macroize insn from
14433         pro_epilogue_adjust_stack  and pro_epilogue_adjust_stack_rex64
14434         using P mode iterator.
14435         (pro_epilogue_adjust_stack_di_2): Rename from
14436         pro_epilogue_adjust_stack_rex64_2.
14437
14438         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for rename.
14439
14440 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
14441
14442         * config/i386/i386.md (insv): Call gen_movdi_insv1 or gen_movsi_insv1
14443         through gen_mov_insv_1 function pointer.
14444         (fmod<mode>3): Call gen_truncxf<mode>2_i387_noop_unspec or
14445         gen_truncxf<mode>2 through gen_truncxf function pointer.
14446         (remainder<mode>3): Ditto.
14447         (cmpstrnsi): Rename cmp_insn function pointer to gen_cmp.
14448         (allocate_stack): Call gen_allocate_stack_worker_64 or
14449         gen_allocate_stack_worker_32 through gen_allocate_stack_worker
14450         function pointer.
14451         (probe_stack): Call gen_iordi3 or gen_iorsi3 through gen_ior3
14452         function pointer.
14453
14454 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
14455
14456         * config/i386/i386.md (*add<mode>3_cconly_overflow): Use <g>
14457         operand constraint instead of <r><i>m.
14458
14459 2010-07-06  Richard Guenther  <rguenther@suse.de>
14460
14461         PR middle-end/44828
14462         * convert.c (convert_to_integer): Watch out for overflowing
14463         MULT_EXPR as well.
14464
14465 2010-07-05  Jan Hubicka  <jh@suse.cz>
14466
14467         * lto-streamer.c (write_symbol_vec): Rename to ...
14468         (write_symbol) ... this one; write only symbol given and when
14469         present in cache. Sanity check that what is defined is present
14470         in cgraph/varpool with body/finalized decl.
14471         (write_symbols_of_kind): Remove.
14472         (produce_symtab): Take outputblock and sets; use cgraph/varpool/alias
14473         pairs to produce symtab.
14474         (produce_asm_for_decls): Update call of produce_symtab; don't do so
14475         when doing WPA streaming.
14476
14477 2010-07-05  Jan Hubicka  <jh@suse.cz>
14478
14479         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Check that
14480         function is still available to fold into.
14481
14482 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
14483
14484         * vec.h (FOR_EACH_VEC_ELT_REVERSE): New macro.
14485         * function.h (struct_function): Change type of local_decls field
14486         to a VEC.
14487         (add_local_decl): New function.
14488         (FOR_EACH_LOCAL_DECL): New macro.
14489         * cfgexpand.c (init_vars_expansion): Adjust for new type of
14490         cfun->local_decls.
14491         (estimated_stack_frame_size): Likewise.
14492         (expand_used_vars): Likewise.
14493         * cgraphbuild.c (build_cgraph_edges): Likewise.
14494         * function.c (instantiate_decls_1): Likewise.
14495         * ipa-struct-reorg.c (build_data_structure): Likewise.
14496         * ipa-type-escape.c (analyze_function): Likewise.
14497         * lto-streamer-in.c (input_function): Likewise.
14498         * lto-streamer-out.c (output_function): Likewise.
14499         * tree-ssa-live.c (remove_unused_locals): Likewise.
14500         * tree.c (free_lang_data_in_decl): Likewise.
14501         (find_decls_types_in_node): Likewise.
14502         * omp-low.c (remove_exit_barrier): Likewise.
14503         (expand_omp_taskreg): Likewise.
14504         (list2chain): Rename to...
14505         (vec2chain): ...this.  Adjust.
14506         * cgraphunit.c (assemble_thunk): Call add_local_decl.
14507         * tree-cfg.c (replace_by_duplicate_decl): Likewise.
14508         * gimple-low.c (record_vars_into): Likewise.
14509         * tree-inline.c (remap_decls): Likewise.
14510         (declare_return_variable): Likewise.
14511         (declare_inline_vars): Likewise.
14512         (copy_forbidden): Adjust for new type of cfun->local_decls.
14513         (add_local_variables): New function.
14514         (expand_call_inline): Call it.
14515         (tree_function_versioning): Likewise.
14516
14517 2010-07-05  H.J. Lu  <hongjiu.lu@intel.com>
14518
14519         AVX Programming Reference (June, 2010)
14520         * config/i386/cpuid.h (bit_F16C): New.
14521         (bit_RDRND): Likewise.
14522         (bit_FSGSBASE): Likewise.
14523
14524         * config/i386/i386-builtin-types.def: Add
14525         "DEF_FUNCTION_TYPE (UINT16)", function types for
14526         float16 <-> float conversions and
14527         "DEF_FUNCTION_TYPE (VOID, UINT64)".
14528
14529         * config/i386/i386-c.c (ix86_target_macros_internal): Support
14530         OPTION_MASK_ISA_FSGSBASE, OPTION_MASK_ISA_RDRND and
14531         OPTION_MASK_ISA_F16C.
14532
14533         * config/i386/i386.c (OPTION_MASK_ISA_FSGSBASE_SET): New.
14534         (OPTION_MASK_ISA_RDRND_SET): Likewise.
14535         (OPTION_MASK_ISA_F16C_SET): Likewise.
14536         (OPTION_MASK_ISA_FSGSBASE_UNSET): Likewise.
14537         (OPTION_MASK_ISA_RDRND_UNSET): Likewise.
14538         (OPTION_MASK_ISA_F16C_UNSET): Likewise.
14539         (OPTION_MASK_ISA_AVX_UNSET): Add OPTION_MASK_ISA_F16C_UNSET.
14540         (ix86_handle_option): Handle OPT_mfsgsbase, OPT_mrdrnd and OPT_mf16c.
14541         (ix86_target_string): Support -mfsgsbase, -mrdrnd and -mf16c.
14542         (pta_flags): Add PTA_FSGSBASE, PTA_RDRND and PTA_F16C.
14543         (override_options): Handle them.
14544         (ix86_valid_target_attribute_inner_p): Handle fsgsbase, rdrnd and f16c.
14545         (ix86_builtins): Add IX86_BUILTIN_RDFSBASE32,
14546         IX86_BUILTIN_RDFSBASE64, IX86_BUILTIN_RDGSBASE32,
14547         IX86_BUILTIN_RDGSBASE64, IX86_BUILTIN_WRFSBASE32,
14548         IX86_BUILTIN_WRFSBASE64, IX86_BUILTIN_WRGSBASE32,
14549         IX86_BUILTIN_WRGSBASE64, IX86_BUILTIN_RDRAND16,
14550         IX86_BUILTIN_RDRAND32, IX86_BUILTIN_RDRAND64,
14551         IX86_BUILTIN_CVTPH2PS, IX86_BUILTIN_CVTPH2PS256,
14552         IX86_BUILTIN_CVTPS2PH and IX86_BUILTIN_CVTPS2PH256.
14553         (bdesc_args): Likewise.
14554         (ix86_expand_args_builtin): Handle V8SF_FTYPE_V8HI,
14555         V4SF_FTYPE_V8HI, V8HI_FTYPE_V8SF_INT and V8HI_FTYPE_V4SF_INT.
14556         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_UINT64,
14557         VOID_FTYPE_UNSIGNED, UNSIGNED_FTYPE_VOID and UINT16_FTYPE_VOID.
14558         Handle non-memory store.
14559
14560         * config/i386/i386.h (TARGET_FSGSBASE): New.
14561         (TARGET_RDRND): Likewise.
14562         (TARGET_F12C): Likewise.
14563
14564         * config/i386/i386.md (UNSPEC_VCVTPH2PS): New.
14565         (UNSPEC_VCVTPS2PH): Likewise.
14566         (UNSPECV_RDFSBASE): Likewise.
14567         (UNSPECV_RDGSBASE): Likewise.
14568         (UNSPECV_WRFSBASE): Likewise.
14569         (UNSPECV_WRGSBASE): Likewise.
14570         (UNSPECV_RDRAND): Likewise.
14571         (rdfsbase<mode>): Likewise.
14572         (rdgsbase<mode>): Likewise.
14573         (wrfsbase<mode>): Likewise.
14574         (wrgsbase<mode>): Likewise.
14575         (rdrand<mode>): Likewise.
14576
14577         * config/i386/i386.opt: Add -mfsgsbase, -mrdrnd and -mf16c.
14578
14579         * config/i386/immintrin.h (_rdrand_u16): New.
14580         (_rdrand_u32): Likewise.
14581         (_readfsbase_u32): Likewise.
14582         (_readfsbase_u64): Likewise.
14583         (_readgsbase_u32): Likewise.
14584         (_readgsbase_u64): Likewise.
14585         (_writefsbase_u32): Likewise.
14586         (_writefsbase_u64): Likewise.
14587         (_writegsbase_u32): Likewise.
14588         (_writegsbase_u64): Likewise.
14589         (_rdrand_u64): Likewise.
14590         (_cvtsh_ss): Likewise.
14591         (_mm_cvtph_ps): Likewise.
14592         (_mm256_cvtph_ps): Likewise.
14593         (_cvtss_sh): Likewise.
14594         (_mm_cvtps_ph): Likewise.
14595         (_mm256_cvtps_ph): Likewise.
14596
14597         * config/i386/sse.md (vcvtph2ps): New.
14598         (*vcvtph2ps_load): Likewise.
14599         (vcvtph2ps256): Likewise.
14600         (vcvtps2ph): Likewise.
14601         (*vcvtps2ph): Likewise.
14602         (*vcvtps2ph_store): Likewise.
14603         (vcvtps2ph256): Likewise.
14604
14605         * doc/extend.texi: Document FSGSBASE and RDRND built-in functions.
14606
14607         * doc/invoke.texi: Document -mfsgsbase, -mrdrnd and -mf16c.
14608
14609 2010-07-05  Joern Rennecke  <joern.rennecke@embecosm.com>
14610
14611         PR bootstrap/44512
14612         * genenums.c (main): Output include of insn-constants.h
14613         * Makefile.in (insn-enums.o): Depend on insn-constants.h.
14614
14615 2010-07-05  Uros Bizjak  <ubizjak@gmail.com>
14616
14617         * config/i386/i386.c (ix86_gen_allocate_stack_worker): New.
14618         (override_options): Initialize it.
14619         (ix86_expand_prologue): Use it.
14620
14621 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
14622
14623         * tree-nrv.c (tree_nrv): Set DECL_VALUE_EXPR on found to result.
14624
14625 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
14626
14627         * double-int.h (fit_double_type): Remove declaration.
14628         * double-int.c (fit_double_type): Remove function.
14629         * tree.h (int_fits_type_p): Adjust prototype.
14630         * tree.c (int_fits_type_p): Return bool. Use double_int_fits_to_tree_p
14631         instead of fit_double_type.
14632         (build_int_cst_type): Use double_int_to_tree and shwi_to_double_int
14633         instead of fit_double_type and build_int_cst_wide.
14634         * builtins.c (): Use double_int_fits_to_tree_p and double_int_to_tree
14635         instead of fit_double_type and build_int_cst_wide.
14636         (fold_builtin_object_size): Use double_int_fits_to_tree_p instead
14637         of fit_double_type.
14638
14639 2010-07-05  Jan Hubicka  <jh@suse.cz>
14640
14641         * cgraph.h (cgraph_node, cgraph_varpool_node): Update docmentation of
14642         in_other_partition.
14643         * lto-cgraph.c (referenced_from_other_partition_p,
14644         reachable_from_other_partition_p): Use in_other_partition flags.
14645         (output_node, output_varpool_node): COMDAT nodes always have private
14646         copies and thus are never used from other partition.
14647
14648 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
14649
14650         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
14651         * config/ia64/t-ia64 (ia64.o): Depend on reload.h.
14652         * config/ia64/ia64.c Include reload.h.
14653         (ia64_memory_move_cost): New function.
14654         (TARGET_MEMORY_MOVE_COST): Define.
14655         (ia64_register_move_cost): Replace MEMORY_MOVE_COST with
14656         memory_move_cost.
14657
14658 2010-07-05  Sandra Loosemore  <sandra@codesourcery.com>
14659
14660         PR middle-end/42505
14661         * tree-ssa-loop-ivopts.c (determine_set_costs): Delete obsolete
14662         comments about cost model.
14663         (try_add_cand_for):  Add second strategy for choosing initial set
14664         based on original IVs, controlled by ORIGINALP argument.
14665         (get_initial_solution): Add ORIGINALP argument.
14666         (find_optimal_iv_set_1): New function, split from find_optimal_iv_set.
14667         (find_optimal_iv_set): Try two different strategies for choosing
14668         the IV set, and return the one with lower cost.
14669
14670 2010-07-05  Richard Guenther  <rguenther@suse.de>
14671
14672         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Copy alias info.
14673
14674 2010-07-05  Richard Guenther  <rguenther@suse.de>
14675
14676         * tree.c (reference_alias_ptr_type): New function.
14677         * tree.h (reference_alias_ptr_type): Declare.
14678         * tree-ssa-loop-ivopts.c (copy_ref_info): Restructure to
14679         allow non-TARGET_MEM_REF new refs.
14680         (rewrite_use_address): Pass old alias pointer type to create_mem_ref.
14681         * tree-ssa-address.c (create_mem_ref_raw): Get alias pointer type.
14682         Build a MEM_REF instead of a TARGET_MEM_REF if possible.
14683         (create_mem_ref): Get alias pointer type.  Adjust calls to
14684         create_mem_ref_raw.
14685         (maybe_fold_tmr): Likewise.
14686         * tree-flow.h (create_mem_ref): Adjust prototype.
14687
14688 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
14689
14690         PR c++/44808
14691         * gimplify.c (gimplify_modify_expr): Only SET_DECL_DEBUG_EXPR if
14692         *from_p is VAR_DECL.
14693
14694 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
14695
14696         * tree.h (build_call_list): Remove.
14697         * tree.c (build_call_list): Remove.
14698
14699 2010-07-05  Richard Guenther  <rguenther@suse.de>
14700
14701         * double-int.h (double_int_sub): Declare.
14702         * double-int.c (double_int_sub): New function.
14703         * dwarf2out.c (field_byte_offset): Use it.
14704         * fixed-value.c (do_fixed_add): Likewise.
14705         (do_fixed_multiply): Likewise.
14706         (do_fixed_divide): Likewise.
14707         * tree-predcom.c (add_ref_to_chain): Likewise.
14708         (determine_roots_comp): Likewise.
14709         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
14710
14711 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
14712
14713         * vec.h (VEC_splice, VEC_safe_splice): New macros.  Add function
14714         implementations.
14715
14716 2010-07-05  Bernd Schmidt  <bernds@codesourcery.com>
14717
14718         * config/arm/arm.c (get_arm_condition_code): Remove CC_NOTBmode case.
14719         * arm-modes.def (CC_NOTB): Don't define.
14720         * config/arm/arm.md (arm_adddi3): Generate canonical RTL.
14721         (adddi_sesidi_di, adddi_zesidi_di): Likewise.
14722         (LTUGEU): New code_iterator.
14723         (cnb, optab): New corresponding code_attrs.
14724         (addsi3_carryin_<optab>): Renamed from addsi3_carryin.  Change pattern
14725         to canonical form.  Operands 1 and 2 are commutative.  Parametrize
14726         using LTUGEU.
14727         (addsi3_carryin_shift_<optab>): Likewise.
14728         (addsi3_carryin_alt2_<optab>): Renamed from addsi3_carryin_alt2.
14729         Operands 1 and 2 are commutative.  Parametrize using LTUGEU.
14730         (addsi3_carryin_alt1, addsi3_carryin_alt3): Remove.
14731         (subsi3_compare): Renamed from subsi3_compare0_c.
14732         Change CC_NOTB to CC.
14733         (arm_subsi3_insn): Allow constants for operand 0.
14734         (compare_scc peephole for eq case): New.
14735         (compare_scc splitters): Change CC_NOTB to CC.
14736
14737 2010-07-05  Richard Guenther  <rguenther@suse.de>
14738
14739         * tree-ssa-loop-im.c (for_each_index): Do not handle
14740         ALIGN_INDIRECT_REF.
14741         (gen_lsm_tmp_name): Likewise.
14742         * tree-dump.c (dequeue_and_dump): Likewise.
14743         * tree-pretty-print.c (dump_generic_node): Likewise.
14744         (op_code_prio): Likewise.
14745         (op_symbol_code): Likewise.
14746         * tree.c (staticp): Likewise.
14747         (build1_stat): Likewise.
14748         * tree.h (INDIRECT_REF_P): Likewise.
14749         * fold-const.c (maybe_lvalue_p): Likewise.
14750         (operand_equal_p): Likewise.
14751         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
14752         (ao_ref_init_from_vn_reference): Likewise.
14753         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
14754         (find_interesting_uses_address): Likewise.
14755         * dwarf2out.c (loc_list_from_tree): Likewise.
14756         * gimplify.c (gimplify_expr): Likewise.
14757         * tree-eh.c (tree_could_trap_p): Likewise.
14758         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
14759         * cfgexpand.c (expand_debug_expr): Likewise.
14760         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
14761         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
14762         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
14763         * config/rs6000/rs6000 (rs6000_check_sdmode): Likewise.
14764         * tree-ssa-operands.c (get_expr_operands): Likewise.
14765         * expr.c (safe_from_p): Likewise.
14766         (expand_expr_real_1): Likewise.  TER BIT_AND_EXPRs into MEM_REFs.
14767         * tree-vect-data-refs.c (vect_setup_realignment): Build
14768         BIT_AND_EXPR and MEM_REF instead of ALIGN_INDIRECT_REF.
14769         * tree-vect-stmts.c (vectorizable_load): Likewise.
14770         * tree.def (ALIGN_INDIRECT_REF): Remove.
14771
14772 2010-07-05  Richard Guenther  <rguenther@suse.de>
14773
14774         PR tree-optimization/44784
14775         * tree-ssa-pre.c (bitmap_find_leader): Fix dominance check
14776         for inserted stmts.
14777         (find_or_generate_expression): Fix SCCVN insertion check.
14778
14779 2010-07-05  Nathan Sidwell  <nathan@codesourcery.com>
14780
14781         * config/rs6000/e500crtsavg64gprctr.asm: Correct done label name.
14782         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
14783         * config/rs6000/e500crtres64gprctr.asm: Likewise. Add FUNC_END
14784         directives.
14785
14786 2010-07-05  Ira Rosen  <irar@il.ibm.com>
14787
14788         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Skip
14789         statements that are not vectorized.
14790         * tree-vect-stmts.c (vect_get_load_cost): Update the value stored
14791         in INSIDE_COST.
14792
14793 2010-07-05  Mikael Pettersson  <mikpe@it.uu.se>
14794
14795         PR bootstrap/44820
14796         * config/arm/arm.c (arm_attr_length_move_neon): Delete regno.
14797
14798 2010-07-05  Richard Guenther  <rguenther@suse.de>
14799
14800         * tree-cfg.c (verify_gimple_return): Handle DECL_BY_REFERENCE
14801         RESULT_DECLs properly.
14802
14803 2010-07-04  H.J. Lu  <hongjiu.lu@intel.com>
14804
14805         PR rtl-optimization/44695
14806         * config/i386/i386.md (extract_code): Removed.
14807         (<u>divmodqi4): Likewise.
14808         (divmodqi4): New.
14809         (udivmodqi4): Likewise.
14810         (divmodhiqi3): Change div/mod to HImode and extend operand 2 to HImode.
14811         (udivmodhiqi3): Likewise.
14812
14813 2010-07-04  Jan Hubicka  <jh@suse.cz>
14814
14815         * lto-cgraph.c (input_edge): Do not care about resolution decisions.
14816
14817 2010-07-04  Jan Hubicka  <jh@suse.cz>
14818
14819         * cgraphunit.c (init_cgraph): Only initialize dump file if it
14820         is not already initialized.
14821
14822 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
14823
14824         * optabs.h (reload_in_optab, reload_out_optab, code_to_optab)
14825         (vcond_gen_code, vcondu_gen_code, movmem_optab, setmem_optab)
14826         (cmpstr_optab, cmpstrn_optab, cmpmem_optab, sync_add_optab)
14827         (sync_sub_optab, sync_ior_optab, sync_and_optab, sync_xor_optab)
14828         (sync_nand_optab, sync_old_add_optab, sync_old_sub_optab)
14829         (sync_old_ior_optab, sync_old_and_optab, sync_old_xor_optab)
14830         (sync_old_nand_optab, sync_new_add_optab, sync_new_sub_optab)
14831         (sync_new_ior_optab, sync_new_and_optab, sync_new_xor_optab)
14832         (sync_new_nand_optab): Redefine as macros.
14833         (sync_compare_and_swap, sync_lock_test_and_set, sync_lock_release):
14834         Delete.
14835         (direct_optab_index): New enum.
14836         (direct_optab_d): New structure.
14837         (direct_optab): New typedef.
14838         (direct_optab_table): Declare.
14839         (direct_optab_handler, set_direct_optab_handler): New functions.
14840         (sync_compare_and_swap_optab, sync_lock_test_and_set_optab)
14841         (sync_lock_release_optab): New macros.
14842         * optabs.c (direct_optab_table): New variable.
14843         (movcc_gen_code, vcond_gen_code, vcondu_gen_code): Delete.
14844         (prepare_cmp_insn): Use direct_optab_handler for cmpmem_optab,
14845         cmpstr_optab and cmpstrn_optab.
14846         (emit_conditional_move): Likewise for movcc_optab.
14847         (can_conditionally_move_p): Likewise for movcc_gen_code.
14848         (init_insn_codes): Clear direct_optab_table.
14849         (init_optabs): Don't initialize the new "direct optabs" here.
14850         (get_vcond_icode): Use direct_optab_handler for vcondu_gen_code and
14851         vcond_gen_code.
14852         (expand_val_compare_and_swap): Likewise sync_compare_and_swap_optab.
14853         (expand_bool_compare_and_swap): Likewise sync_compare_and_swap_optab.
14854         (expand_compare_and_swap_loop): Likewise sync_compare_and_swap_optab.
14855         (expand_sync_operation): Likewise other sync_*_optabs.
14856         (expand_sync_fetch_operation): Likewise.  Rename sync_compare_and_swap
14857         to sync_compare_and_swap_optab.
14858         (expand_sync_lock_test_and_set): Use direct_optab_handler for
14859         sync_lock_test_and_set and sync_compare_and_swap, adding "_optab"
14860         to the names of both.
14861         * builtins.c (expand_builtin_strcmp): Use direct_optab_handler for
14862         cmpstr_optab and cmpstrn_optab.
14863         (expand_builtin_lock_release): Likewise sync_lock_release.
14864         * expr.c (movmem_optab, setmem_optab, cmpstr_optab, cmpstrn_optab)
14865         (cmpmem_optab, sync_add_optab, sync_sub_optab, sync_ior_optab)
14866         (sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab)
14867         (sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab)
14868         (sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab)
14869         (sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab)
14870         (sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap)
14871         (sync_lock_test_and_set, sync_lock_release): Delete.
14872         (emit_block_move_via_movmem): Use direct_optab_handler for movmem_optab.
14873         (emit_block_move_via_setmem): Use direct_optab_handler for setmem_optab.
14874         * genopinit.c (optabs): Use set_direct_optab_handler for the new
14875         macro optabs.
14876         * omp-low.c (expand_omp_atomic_fetch_op): Update the type of
14877         the "optab" local variable.  Use direct_optab_handler for optab and
14878         sync_compare_and_swap_optab.
14879         * reload1.c (reload_in_optab, reload_out_optab): Delete.
14880         * targhooks.c (default_secondary_reload): Use direct_optab_handler for
14881         reload_in_optab and reload_out_optab.
14882         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
14883         * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
14884         * config/pa/pa.c (pa_secondary_reload): Likewise.
14885         * java/builtins.c (compareAndSwapInt_builtin): Use direct_optab_handler
14886         for sync_compare_and_swap, renaming it to sync_compare_and_swap_optab.
14887         (compareAndSwapLong_builtin, compareAndSwapObject_builtin): Likewise.
14888         (VMSupportsCS8_builtin): Likewise.
14889
14890 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
14891
14892         * optabs.h (optab_handlers): Change type of insn_code to int.
14893         (optab_handler, set_optab_handler, convert_optab_handler)
14894         (set_convert_optab_handler): Treat the insn_code field as "insn_code -
14895         CODE_FOR_nothing".
14896         * optabs.c (optab_table, convert_optab_table): Always zero-initialize.
14897         (init_insn_codes): Zero both the above arrays.
14898         (init_optabs): Never call init_insn_codes first time around.
14899
14900 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
14901
14902         * optabs.h (optab_handler, convert_optab_handler): Turn into
14903         inline functions that return an insn code.
14904         (set_optab_handler, set_convert_optab_handler): New functions.
14905         * builtins.c: Replace optab_handler(X)->insn_code with
14906         optab_handler or set_optab_handler thoughout.  Likewise
14907         convert_optab_handler(X)->insn_code with convert_optab_handler
14908         and set_convert_optab_handler.
14909         * expmed.c, expr.c, genopinit.c, ifcvt.c, optabs.c, reload.c,
14910         reload1.c, stmt.c, targhooks.c, tree-ssa-loop-prefetch.c,
14911         tree-ssa-math-opts.c, tree-vect-data-refs.c, tree-vect-generic.c,
14912         tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
14913         tree-vect-stmts.c, config/m32c/m32c.c, config/rs6000/rs6000.c,
14914         config/spu/spu.c: Likewise.
14915
14916 2010-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
14917
14918         PR target/44531
14919         * config.gcc (sh*-*-*): Use regular expressions instead of
14920         the 'i' modifier for sed substitutions.
14921
14922 2010-07-04  Jeremie Salvucci  <jeremie.salvucci@free.fr>
14923
14924         * gimple.c (gimple_body): Comments added.
14925
14926 2010-07-04  Richard Guenther  <rguenther@suse.de>
14927
14928         PR middle-end/44809
14929         * gimplify.c (gimplify_expr): Properly build a MEM_REF instead
14930         of an INDIRECT_REF.
14931
14932 2010-07-04  Richard Guenther  <rguenther@suse.de>
14933
14934         PR tree-optimization/44479
14935         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid
14936         extra SSA name copy statements which preserves points-to
14937         information.
14938         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
14939         Copy points-to information for all pointers.  Properly handle
14940         MEM_REFs.
14941         (vect_create_data_ref_ptr): Likewise.  Avoid extra SSA name
14942         copy statements.
14943         * Makefile.in (tree-ssa-loop-ivopts.o): Add tree-ssa-propagate.h
14944         dependency.
14945
14946 2010-07-04  Richard Guenther  <rguenther@suse.de>
14947
14948         PR middle-end/44785
14949         * tree-inline.c (initialize_inlined_parameters): Do not
14950         re-use pointer-map slot over remap_type call.
14951
14952 2010-07-04  Richard Guenther  <rguenther@suse.de>
14953
14954         * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix last commit.
14955
14956 2010-07-04  Richard Guenther  <rguenther@suse.de>
14957
14958         PR tree-optimization/44656
14959         * tree-ssa-sccvn.c (vn_reference_lookup_3): Try disambiguation
14960         again after value-replacing in the defintions lhs.
14961
14962 2010-07-04  Ira Rosen  <irar@il.ibm.com>
14963             Revital Eres  <eres@il.ibm.com>
14964
14965         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST):
14966         Document new arguments.
14967         * doc/tm.texi: Regenerate.
14968         * targhooks.c (default_builtin_vectorization_cost): Add new arguments.
14969         Handle unaligned store.
14970         * targhooks.h (default_builtin_vectorization_cost): Add new arguments.
14971         * target.def (builtin_vectorization_cost): Add new arguments.
14972         * target.h (enum vect_cost_for_stmt): Add unaligned_store.
14973         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Take number
14974         of iterations of prolog loop directly from LOOP_PEELING_FOR_ALIGNMENT.
14975         (vect_vfa_segment_size): Fix indentation.
14976         * tree-vectorizer.h (struct _vect_peel_info): New.
14977         (struct _vect_peel_extended_info): New.
14978         (struct _loop_vec_info): Add new field for peeling hash table and a
14979         macro for its access.
14980         (VECT_MAX_COST): Define.
14981         (vect_get_load_cost): Declare.
14982         (vect_get_store_cost, vect_get_known_peeling_cost,
14983         vect_get_single_scalar_iteraion_cost): Likewise.
14984         (vect_supportable_dr_alignment): Add new argument.
14985         * tree-vect-loop.c (new_loop_vec_info): Initialize peeling hash table
14986         field.
14987         (destroy_loop_vec_info): Free peeling hash table.
14988         (vect_analyze_loop_form): Update call to builtin_vectorization_cost.
14989         (vect_analyze_loop): Move vect_enhance_data_refs_alignment before
14990         vect_analyze_slp. Fix indentation.
14991         (vect_get_single_scalar_iteraion_cost): New function.
14992         (vect_get_known_peeling_cost): Likewise.
14993         (vect_estimate_min_profitable_iters): Rename byte_misalign to npeel.
14994         Call vect_get_single_scalar_iteraion_cost instead of cost_for_stmt per
14995         statement. Move outside cost calculation inside unknown peeling case.
14996         Call vect_get_known_peeling_cost for known amount of peeling.
14997         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Add data
14998         reference to the print message of forced alignment.
14999         (vect_verify_datarefs_alignment): Update call to
15000         vect_supportable_dr_alignment.
15001         (vect_get_data_access_cost): New function.
15002         (vect_peeling_hash, vect_peeling_hash_eq, vect_peeling_hash_insert,
15003         vect_peeling_hash_get_most_frequent, vect_peeling_hash_get_lowest_cost,
15004         vect_peeling_hash_choose_best_peeling): Likewise.
15005         (vect_enhance_data_refs_alignment): Fix documentation. Use hash table
15006         to store all the accesses in the loop and find best possible access to
15007         align using peeling for known alignment case. For unknown alignment
15008         check if stores are preferred or if peeling is worthy.
15009         (vect_find_same_alignment_drs): Analyze pairs of loads too.
15010         (vect_supportable_dr_alignment): Add new argument and check aligned
15011         accesses according to it.
15012         * tree-vect-stmts.c (vect_get_stmt_cost): New function.
15013         (cost_for_stmt): Call vect_get_stmt_cost.
15014         (vect_model_simple_cost): Likewise.
15015         (vect_model_store_cost): Call vect_get_stmt_cost. Call
15016         vect_get_store_cost to calculate the cost of the statement.
15017         (vect_get_store_cost): New function.
15018         (vect_model_load_cost): Call vect_get_stmt_cost. Call
15019         vect_get_load_cost to calculate the cost of the statement.
15020         (vect_get_load_cost): New function.
15021         (vectorizable_store): Update call to vect_supportable_dr_alignment.
15022         (vectorizable_load): Likewise.
15023         * config/spu/spu.c (spu_builtin_vectorization_cost): Add new arguments.
15024         * config/i386/i386.c (ix86_builtin_vectorization_cost): Add new
15025         arguments. Handle unaligned store.
15026         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): New.
15027         (rs6000_builtin_support_vector_misalignment): Return true for word and
15028         double word alignments for VSX.
15029         * tree-vect-slp.c (vect_build_slp_tree): Update calls to
15030         vect_supportable_dr_alignment and builtin_vectorization_cost.
15031
15032 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15033
15034         PR target/44597
15035         * config/pa/predicates.md (prefetch_cc_operand): Remove.
15036         (prefetch_nocc_operand): Likewise.
15037         * config/pa/pa.md (prefetch): Revise expander to use prefetch_20.
15038         (prefetch_20): New insn.
15039         (prefetch_cc): Remove.
15040         (prefetch_nocc): Likewise.
15041
15042 2010-07-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15043
15044         * expr.c (vector_mode_valid_p): Move to c-common.c.
15045         * expr.h (vector_mode_valid_p): Do not declare here.
15046         * system.h: Poison GCC_EXPR_H in front-ends.
15047         * Makefile.in: Update dependencies.
15048
15049 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15050
15051         PR target/44705
15052         * config/pa/pa.h (GO_IF_LEGITIMATE_ADDRESS): Reject LABEL_REF.
15053
15054 2010-07-03  Jan Hubicka  <jh@suse.cz>
15055
15056         * timevar.def (TV_OUT_OF_SSA, TV_VAR_EXPAND, TV_POST_EXPAND,
15057         TV_VAR_TRACKING_DATAFLOW, TV_VAR_TRACKING_EMIT): New timevars.
15058         * cfgexpand.c (gimple_expand_cfg): Use new timevars.
15059         * var-tracking.c (vt_find_locations, variable_tracking_main_1):
15060         Likewise.
15061
15062         * lto-stramer-out.c (pass_ipa_lto_gimple_out, pass_ipa_lto_finish_out):
15063         Update timevars.V
15064         * timevar.def (TV_IPA_LTO_GIMPLE_IO, TV_IPA_LTO_DECL_IO): Remove.
15065         (TV_IPA_LTO_GIMPLE_IN, TV_IPA_LTO_GIMPLE_OUT, TV_IPA_LTO_DECL_IN,
15066         TV_IPA_LTO_DECL_OUT): New.
15067         * lto.c (read_cgraph_and_symbols, materialize_cgraph): Update timevars.
15068
15069 2010-07-03  Jan Hubicka  <jh@suse.cz>
15070
15071         * ipa-inline.c (update_edge_key): Break out from ...
15072         update_callers_keys): ... here;
15073         (update_callee_keys): Update only the edges from caller to callee.
15074         (update_all_calle_keys): Do what update_calle_keys did.
15075         (decide_inlining_of_small_functions): Avoid recomputing of all
15076         callees when badness increase.
15077
15078 2010-07-03  Jie Zhang  <jie@codesourcery.com>
15079
15080         * config/arm/arm.c (arm_attr_length_move_neon): New.
15081         * config/arm/arm-protos.h (arm_attr_length_move_neon): Declare.
15082         * config/arm/neon.md (define_mode_attr V_slen): Remove.
15083         (neon_mov<mode> for VSTRUCT): Use arm_attr_length_move_neon
15084         to compute length attribute.
15085
15086 2010-07-03  Jie Zhang  <jie@codesourcery.com>
15087
15088         * config/arm/vfp.md (*push_multi_vfp): Use vfp_register_operand
15089         as predicate for operand 1 and remove its constraint.
15090         * config/arm/predicates.md (vfp_register_operand): New.
15091         * config/arm/arm.md (*push_multi): Remove the constraint of operand 1.
15092         (*push_fp_multi): Likewise.
15093
15094 2010-07-03  Eric Botcazou  <ebotcazou@adacore.com>
15095
15096         * gimplify.c (mostly_copy_tree_r): Deal with BIND_EXPR.
15097
15098 2010-07-03  Jan Hubicka  <jh@suse.cz>
15099
15100         * config/i386/i386.c (override_options): Revert accidental commit.
15101
15102 2010-07-02  Le-Chun Wu  <lcwu@google.com>
15103
15104         PR c++/44128
15105         * doc/invoke.texi: Update documentation of -Wshadow.
15106
15107 2010-07-02  Daniel Jacobowitz  <dan@codesourcery.com>
15108             Julian Brown  <julian@codesourcery.com>
15109             Sandra Loosemore  <sandra@codesourcery.com>
15110
15111         * config/arm/arm.c (arm_canonicalize_comparison): Canonicalize DImode
15112         comparisons.  Adjust to take both operands.
15113         (arm_select_cc_mode): Handle DImode comparisons.
15114         (arm_gen_compare_reg): Generate a scratch register for DImode
15115         comparisons which require one.  Use xor for Thumb equality checks.
15116         (arm_const_double_by_immediates): New.
15117         (arm_print_operand): Allow 'Q' and 'R' for constants.
15118         (get_arm_condition_code): Handle new CC_CZmode and CC_NCVmode.
15119         * config/arm/arm.h (CANONICALIZE_COMPARISON): Always use
15120         arm_canonicalize_comparison.
15121         * config/arm/arm-modes.def: Add CC_CZmode and CC_NCVmode.
15122         * config/arm/arm-protos.h (arm_canonicalize_comparison): Update
15123         prototype.
15124         (arm_const_double_by_immediates): Declare.
15125         * config/arm/constraints.md (Di): New constraint.
15126         * config/arm/predicates.md (arm_immediate_di_operand)
15127         (arm_di_operand, cmpdi_operand): New.
15128         * config/arm/arm.md (cbranchdi4): Handle non-Cirrus also.
15129         (*arm_cmpdi_insn, *arm_cmpdi_unsigned)
15130         (*arm_cmpdi_zero, *thumb_cmpdi_zero): New insns.
15131         (cstoredi4): Handle non-Cirrus also.
15132
15133 2010-07-02  Julian Brown  <julian@codesourcery.com>
15134             Sandra Loosemore  <sandra@codesourcery.com>
15135
15136         PR target/43703
15137         * config/arm/vec-common.md (add<mode>3, sub<mode>3, smin<mode>3)
15138         (smax<mode>3): Disable for NEON float modes when
15139         flag_unsafe_math_optimizations is false.
15140         * config/arm/neon.md (*add<mode>3_neon, *sub<mode>3_neon)
15141         (*mul<mode>3_neon)
15142         (mul<mode>3add<mode>_neon, mul<mode>3neg<mode>add<mode>_neon)
15143         (reduc_splus_<mode>, reduc_smin_<mode>, reduc_smax_<mode>): Disable
15144         for NEON float modes when flag_unsafe_math_optimizations is false.
15145         (quad_halves_<code>v4sf): Only enable if
15146         flag_unsafe_math_optimizations is true.
15147         * doc/invoke.texi (ARM Options): Add note about floating point
15148         vectorization requiring -funsafe-math-optimizations.
15149
15150 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
15151             Julian Brown  <julian@codesourcery.com>
15152
15153         * config/arm/neon.md (UNSPEC_VABA): Delete.
15154         (UNSPEC_VABAL): Delete.
15155         (UNSPEC_VABS): Delete.
15156         (UNSPEC_VMUL_N): Delete.
15157         (adddi3_neon): New.
15158         (subdi3_neon): New.
15159         (mul<mode>3add<mode>_neon): Make the pattern named.
15160         (mul<mode>3neg<mode>add<mode>_neon): Likewise.
15161         (neon_vadd<mode>): Replace with define_expand, and move the remaining
15162         unspec parts...
15163         (neon_vadd<mode>_unspec): ...to this.
15164         (neon_vmla<mode>, neon_vmla<mode>_unspec): Likewise.
15165         (neon_vlms<mode>, neon_vmls<mode>_unspec): Likewise.
15166         (neon_vsub<mode>, neon_vsub<mode>_unspec): Likewise.
15167         (neon_vaba<mode>): Rewrite in terms of vabd.
15168         (neon_vabal<mode>): Rewrite in terms of vabdl.
15169         (neon_vabs<mode>): Rewrite without unspec.
15170         * config/arm/arm.md (*arm_adddi3): Disable for TARGET_NEON.
15171         (*arm_subdi3): Likewise.
15172         * config/arm/neon.ml (Vadd, Vsub): Split out 64-bit variants and add
15173         No_op attribute to disable assembly output checks.
15174         * config/arm/arm_neon.h: Regenerated.
15175         * doc/arm-neon-intrinsics.texi: Regenerated.
15176
15177 2010-07-02  Jan Hubicka  <jh@suse.cz>
15178
15179         * ipa-split.c (split_function): For aggregate values, set the return
15180         slot optimization bit.  When passing DECL_BY_REFERENCE, produce
15181         *<retval> = fncall.part ().
15182         (execute_split_functions): Do not care about DECL_BY_REFERENCE.
15183
15184 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
15185
15186         * config/arm/neon.md (UNSPEC_VAND): Delete.
15187         (UNSPEC_VBIC): Delete.
15188         (UNSPEC_VCLZ): Delete.
15189         (UNSPEC_VCNT): Delete.
15190         (UNSPEC_VEOR): Delete.
15191         (UNSPEC_VORN): Delete.
15192         (UNSPEC_VORR): Delete.
15193         (iordi3_neon): Rewrite RTL without unspec.  Add alternatives to handle
15194         core registers too.
15195         (anddi3_neon): Likewise.
15196         (orndi3_neon): Likewise.
15197         (bicdi3_neon): Likewise.
15198         (xordi3_neon): Likewise.
15199         (neon_vclz<mode>): Rewrite as define_expand and clz<mode>2 to get
15200         rid of unspec and handle unused operand.
15201         (neon_vcnt<mode>): Similarly, with popcount<mode>2.
15202         * config/arm/predicates.md (imm_for_neon_logic_operand):
15203         Require TARGET_NEON.
15204         (imm_for_neon_inv_logic_operand): Likewise.
15205         * config/arm/arm.md (define_split for logical_binary_operator):
15206         Disable for NEON registers.
15207         (anddi3): Add new define_expand, and rename the insn.  Disable
15208         this insn for NEON, where anddi3_neon now applies.
15209         (*anddi_notdi_di): Disable for TARGET_NEON, where bicdi3_neon applies.
15210         (iordi3): As for anddi3.
15211         (xordi3): Likewise.
15212         * config/arm/neon.ml (Vand): Split DImode variants and mark them
15213         as No_op to disable testing for exact instruction match.
15214         (Vorr): Likewise.
15215         (Veor): Likewise.
15216         (Vbic): Likewise.
15217         (Vorn): Likewise.
15218         * config/arm/arm_neon.h: Regenerated.
15219         * doc/arm-neon-intrinsics.texi: Regenerated.
15220
15221 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
15222
15223         * expr.h (emit_stack_probe): Declare.
15224         * explow.c (emit_stack_probe): Make global.
15225         (anti_adjust_stack_and_probe): Fix comments.
15226         * config/sparc/linux.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
15227         * config/sparc/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
15228         * config/sparc/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
15229         * config/sparc/sparc.c: Include except.h.
15230         (sparc_emit_probe_stack_range): New function.
15231         (output_probe_stack_range): Likewise.
15232         (sparc_expand_prologue): Invoke sparc_emit_probe_stack_range if static
15233         built-in stack checking is enabled.
15234         * config/sparc/sparc-protos.h (output_probe_stack_range): Declare.
15235         * config/sparc/sparc.md (UNSPECV_PROBE_STACK_RANGE): New constant.
15236         (probe_stack_range): New insn.
15237
15238 2010-07-02  Richard Guenther  <rguenther@suse.de>
15239
15240         PR target/43958
15241         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Use pointer arithmetic
15242         for argument alignment.
15243
15244 2010-07-02  Jan Hubicka  <jh@suse.cz>
15245
15246         * ipa-split.c (verify_non_ssa_vars): Break out from ...; perform DFS
15247         walk backwards from entry_bb to check only those basic block of header
15248         that might lead to execution of split part.
15249         (consider_split) ... here.
15250         (find_return_bb): Allow assignment in return BB.
15251         (find_retval): New.
15252         (split_function): Fix name of cloned function; take care of updating
15253         return value in return_bb containing move.
15254
15255 2010-07-02  Andreas Schwab  <schwab@linux-m68k.org>
15256
15257         PR target/44771
15258         * config/m68k/m68k.c (m68k_expand_prologue): Remove set but not
15259         used variable insn.
15260
15261 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
15262
15263         * implicit-zee.c (combine_reaching_defs): Fix long lines.
15264         (is_set_with_extension_DI): Delete.
15265         (struct zero_extend_info): New structure.
15266         (add_removable_zero_extend): New function.
15267         (find_removable_zero_extends): Use note_stores to find SETs.
15268         (find_and_remove_ze): Fix long line, remove superfluous parentheses.
15269
15270 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
15271
15272         * tree-ssa-loop-prefetch.c (compute_miss_rate): Rename to
15273         is_miss_rate_acceptable. Pull total_positions computation
15274         out of the loops.  Early return if miss_positions exceeds
15275         the acceptable threshold.
15276         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Call
15277         is_miss_rate_acceptable after renaming of compute_miss_rate.
15278
15279 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
15280
15281         PR middle-end/44576
15282         * tree-ssa-loop-prefetch.c (compute_miss_rate): Return 1000 (out
15283         of 1000) for miss rate if the address diference is greater than or
15284         equal to the cache line size (the two reference will never hit the
15285         same cache line).
15286
15287 2010-07-02  Bernd Schmidt  <bernds@codesourcery.com>
15288
15289         PR target/42835
15290         * config/arm/arm-modes.def (CC_NOTB): New mode.
15291         * config/arm/arm.c (get_arm_condition_code): Handle it.
15292         * config/arm/thumb2.md (thumb2_compare_scc): Delete pattern.
15293         * config/arm/arm.md (subsi3_compare0_c): New pattern.
15294         (compare_scc): Now a define_and_split.  Add a number of extra
15295         splitters before it.
15296
15297         PR target/42172
15298         * config/arm/arm.c (thumb1_rtx_costs): Improve support for SIGN_EXTEND
15299         and ZERO_EXTEND.
15300         (arm_rtx_costs_1): Likewise.
15301         (arm_size_rtx_costs): Use arm_rtx_costs_1 for these codes.
15302         * config/arm/arm.md (is_arch6): New attribute.
15303         (zero_extendhisi2, zero_extendqisi2, extendhisi2,
15304         extendqisi2): Tighten the code somewhat, avoiding invalid
15305         RTL to occur in the expander patterns.
15306         (thumb1_zero_extendhisi2): Merge with thumb1_zero_extendhisi2_v6.
15307         (thumb1_zero_extendhisi2_v6): Delete.
15308         (thumb1_extendhisi2): Merge with thumb1_extendhisi2_v6.
15309         (thumb1_extendhisi2_v6): Delete.
15310         (thumb1_extendqisi2): Merge with thumb1_extendhisi2_v6.
15311         (thumb1_extendqisi2_v6): Delete.
15312         (zero_extendhisi2 for register input splitter): New.
15313         (zero_extendqisi2 for register input splitter): New.
15314         (thumb1_extendhisi2 for register input splitter): New.
15315         (extendhisi2 for register input splitter): New.
15316         (extendqisi2 for register input splitter): New.
15317         (TARGET_THUMB1 extendqisi2 for memory input splitter): New.
15318         (arm_zero_extendhisi2): Allow nonimmediate_operand for operand 1,
15319         and add support for a register alternative requiring a split.
15320         (thumb1_zero_extendqisi2): Likewise.
15321         (arm_zero_extendqisi2): Likewise.
15322         (arm_extendhisi2): Likewise.
15323         (arm_extendqisi2): Likewise.
15324
15325 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
15326
15327         * config/arm/arm.c (neon_vdup_constant): Expand into canonical RTL
15328         instead of an unspec.
15329         (neon_expand_vector_init): Likewise.
15330         * config/arm/neon.md (UNSPEC_VCOMBINE): Delete.
15331         (UNSPEC_VDUP_LANE): Delete.
15332         (UNSPEC VDUP_N): Delete.
15333         (UNSPEC_VGET_HIGH): Delete.
15334         (UNSPEC_VGET_LANE): Delete.
15335         (UNSPEC_VGET_LOW): Delete.
15336         (UNSPEC_VMVN): Delete.
15337         (UNSPEC_VSET_LANE): Delete.
15338         (V_double_vector_mode): New.
15339         (vec_set<mode>_internal): Make code emitted match that for the
15340         corresponding intrinsics.
15341         (vec_setv2di_internal): Likewise.
15342         (neon_vget_lanedi): Rewrite to expand into emit_move_insn.
15343         (neon_vget_lanev2di): Rewrite to expand into vec_extractv2di.
15344         (neon_vset_lane<mode>): Combine double and quad patterns and
15345         expand into vec_set<mode>_internal instead of UNSPEC_VSET_LANE.
15346         (neon_vset_lanedi): Rewrite to expand into emit_move_insn.
15347         (neon_vdup_n<mode>): Rewrite RTL without unspec.
15348         (neon_vdup_ndi): Rewrite as define_expand and use emit_move_insn.
15349         (neon_vdup_nv2di): Rewrite RTL without unspec and merge with
15350         with neon_vdup_lanev2di, adjusting the pattern from the latter
15351         to be predicable for consistency.
15352         (neon_vdup_lane<mode>_internal): New.
15353         (neon_vdup_lane<mode>): Turn into a define_expand and rewrite
15354         to avoid using an unspec.
15355         (neon_vdup_lanedi): Rewrite RTL pattern to avoid unspec.
15356         (neon_vdup_lanev2di): Turn into a define_expand.
15357         (neon_vcombine): Rewrite pattern to eliminate UNPSEC_VCOMBINE.
15358         (neon_vget_high<mode>): Replace with....
15359         (neon_vget_highv16qi): New pattern using canonical RTL.
15360         (neon_vget_highv8hi): Likewise.
15361         (neon_vget_highv4si): Likewise.
15362         (neon_vget_highv4sf): Likewise.
15363         (neon_vget_highv2di): Likewise.
15364         (neon_vget_low<mode>): Replace with....
15365         (neon_vget_lowv16qi): New pattern using canonical RTL.
15366         (neon_vget_lowv8hi): Likewise.
15367         (neon_vget_lowv4si): Likewise.
15368         (neon_vget_lowv4sf): Likewise.
15369         (neon_vget_lowv2di): Likewise.
15370
15371         * config/arm/neon.ml (Vget_lane): Add No_op attribute to suppress
15372         test for this emitting vmov.
15373         (Vset_lane): Likewise.
15374         (Vdup_n): Likewise.
15375         (Vmov_n): Likewise.
15376
15377         * doc/arm-neon-intrinsics.texi: Regenerated.
15378
15379 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
15380
15381         * config/arm/neon.md (vec_extractv2di): Correct error in register
15382         numbering to reconcile with neon_vget_lanev2di.
15383
15384 2010-07-02  Richard Guenther  <rguenther@suse.de>
15385
15386         * tree-ssa-structalias.c (pt_solution_set_var): New function.
15387         * tree-ssa-alias.h (pt_solution_set_var): Declare.
15388         * tree-ssa-loop-ivopts.c (copy_ref_info): Also copy or create
15389         points-to information.
15390
15391 2010-07-02  Christian Borntraeger  <borntraeger@de.ibm.com>
15392
15393         * config/s390/s390.c (override_options): Adopt prefetching
15394         at -O3 to handle flag_prefetch_loop_arrays as a tristate.
15395
15396 2010-07-02  Jan Hubicka  <jh@suse.cz>
15397
15398         * df-problems.c (df_kill_notes): Do not collect dead  notes.
15399         (df_set_note): Just call add_reg_note.
15400         (df_set_unused_notes_for_mw, df_set_dead_notes_for_mw,
15401         df_create_unused_note): Do not deal with lists of old notes.
15402         (df_note_bb_compute): Likewise.
15403
15404 2010-07-02  Richard Guenther  <rguenther@suse.de>
15405
15406         * tree-ssa-structalias.c (find_func_aliases): Handle
15407         pointer alignment via BIT_AND_EXPR.
15408         * tree-vrp.c (extract_range_from_binary_expr): Likewise.
15409
15410 2010-07-02  Richard Guenther  <rguenther@suse.de>
15411
15412         * tree-data-ref.c (initialize_data_dependence_relation): Handle
15413         mismatching number of dimensions properly.
15414
15415 2010-07-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15416
15417         PR target/44707
15418         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Recognize
15419         (lo_sum (high ...) ...) patterns generated by earlier passes.
15420
15421 2010-07-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15422
15423         * doc/install.texi (Prerequisites): Document Perl requirement on
15424         Solaris 2.
15425         (Specific, *-*-solaris2*): Document GNU c++filt requirement.
15426
15427 2010-07-02  Richard Guenther  <rguenther@suse.de>
15428
15429         PR middle-end/44777
15430         * tree-cfg.c (gimple_block_ends_with_call_p): Handle empty BBs.
15431
15432 2010-07-02  Jan Hubicka  <jh@suse.cz>
15433
15434         PR middle-end/44706
15435         * predict.c (predict_paths_for_bb): Handle case when control dependence
15436         BB has only abnormal edges.
15437
15438 2010-07-02  Richard Guenther  <rguenther@suse.de>
15439
15440         PR tree-optimization/44748
15441         * tree-ssa-ccp.c (fold_const_aggregate_ref): Properly handle
15442         the embedded conversion in MEM_REFs.
15443
15444 2010-07-01  López-Ibáñez  <manu@gcc.gnu.org>
15445
15446         * reload.c: Include toplev.h.
15447         * recog.c:  Likewise.
15448         * Makefile.in: Adjust dependencies.
15449
15450 2010-07-01  Jakub Jelinek  <jakub@redhat.com>
15451
15452         PR debug/44694
15453         * dwarf2out.c (reg_loc_descriptor): For eliminated arg_pointer_rtx
15454         or frame_pointer_rtx use DW_OP_fbreg offset DW_OP_stack_value.
15455
15456 2010-07-01  Richard Guenther  <rguenther@suse.de>
15457
15458         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use unsigned
15459         types for offsets.
15460
15461 2010-07-01  Joern Rennecke  <joern.rennecke@embecosm.com>
15462
15463         PR target/44732
15464         * config/ia64/ia64.c (ia64_register_move_cost): Remove stray '{'.
15465         Fix argument types.
15466
15467 2010-07-01  Bernd Schmidt  <bernds@codesourcery.com>
15468
15469         PR target/44727
15470         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
15471         Make sure operand 0 dies.
15472
15473 2010-07-01  Richard Guenther  <rguenther@suse.de>
15474
15475         PR middle-end/42834
15476         PR middle-end/44468
15477         * doc/gimple.texi (is_gimple_mem_ref_addr): Document.
15478         * doc/generic.texi (References to storage): Document MEM_REF.
15479         * tree-pretty-print.c (dump_generic_node): Handle MEM_REF.
15480         (print_call_name): Likewise.
15481         * tree.c (recompute_tree_invariant_for_addr_expr): Handle MEM_REF.
15482         (build_simple_mem_ref_loc): New function.
15483         (mem_ref_offset): Likewise.
15484         * tree.h (build_simple_mem_ref_loc): Declare.
15485         (build_simple_mem_ref): Define.
15486         (mem_ref_offset): Declare.
15487         * fold-const.c: Include tree-flow.h.
15488         (operand_equal_p): Handle MEM_REF.
15489         (build_fold_addr_expr_with_type_loc): Likewise.
15490         (fold_comparison): Likewise.
15491         (fold_unary_loc): Fold
15492         VIEW_CONVERT_EXPR <T1, MEM_REF <T2, ...>> to MEM_REF <T1, ...>.
15493         (fold_binary_loc): Fold MEM[&MEM[p, CST1], CST2] to MEM[p, CST1 + CST2],
15494         fold MEM[&a.b, CST2] to MEM[&a, offsetof (a, b) + CST2].
15495         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle MEM_REF.
15496         (ptr_deref_may_alias_ref_p_1): Likewise.
15497         (ao_ref_base_alias_set): Properly differentiate base object for
15498         offset and TBAA.
15499         (ao_ref_init_from_ptr_and_size): Use MEM_REF.
15500         (indirect_ref_may_alias_decl_p): Handle MEM_REFs properly.
15501         (indirect_refs_may_alias_p): Likewise.
15502         (refs_may_alias_p_1): Likewise.  Remove pointer SSA name def
15503         chasing code.
15504         (ref_maybe_used_by_call_p_1): Handle MEM_REF.
15505         (call_may_clobber_ref_p_1): Likewise.
15506         * dwarf2out.c (loc_list_from_tree): Handle MEM_REF.
15507         * expr.c (expand_assignment): Handle MEM_REF.
15508         (store_expr): Handle MEM_REFs from STRING_CSTs.
15509         (store_field): If expanding a MEM_REF of a non-addressable
15510         decl use bitfield operations.
15511         (get_inner_reference): Handle MEM_REF.
15512         (expand_expr_addr_expr_1): Likewise.
15513         (expand_expr_real_1): Likewise.
15514         * tree-eh.c (tree_could_trap_p): Handle MEM_REF.
15515         * alias.c (ao_ref_from_mem): Handle MEM_REF.
15516         (get_alias_set): Likewise.  Properly handle VIEW_CONVERT_EXPRs.
15517         * tree-data-ref.c (dr_analyze_innermost): Handle MEM_REF.
15518         (dr_analyze_indices): Likewise.
15519         (dr_analyze_alias): Likewise.
15520         (object_address_invariant_in_loop_p): Likewise.
15521         * gimplify.c (mark_addressable): Handle MEM_REF.
15522         (gimplify_cond_expr): Build MEM_REFs.
15523         (gimplify_modify_expr_to_memcpy): Likewise.
15524         (gimplify_init_ctor_preeval_1): Handle MEM_REF.
15525         (gimple_fold_indirect_ref): Adjust.
15526         (gimplify_expr): Handle MEM_REF.  Gimplify INDIRECT_REF to MEM_REF.
15527         * tree.def (MEM_REF): New tree code.
15528         * tree-dfa.c: Include toplev.h.
15529         (get_ref_base_and_extent): Handle MEM_REF.
15530         (get_addr_base_and_unit_offset): New function.
15531         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle MEM_REF.
15532         * gimple-fold.c (may_propagate_address_into_dereference): Handle
15533         MEM_REF.
15534         (maybe_fold_offset_to_array_ref): Allow possibly out-of bounds
15535         accesses if the array has just one dimension.  Remove always true
15536         parameter.  Do not require type compatibility here.
15537         (maybe_fold_offset_to_component_ref): Remove.
15538         (maybe_fold_stmt_indirect): Remove.
15539         (maybe_fold_reference): Remove INDIRECT_REF handling.
15540         Fold back to non-MEM_REF.
15541         (maybe_fold_offset_to_address): Simplify.  Deal with type
15542         mismatches here.
15543         (maybe_fold_reference): Likewise.
15544         (maybe_fold_stmt_addition): Likewise.  Also handle
15545         &ARRAY + I in addition to &ARRAY[0] + I.
15546         (fold_gimple_assign): Handle ADDR_EXPR of MEM_REFs.
15547         (gimple_get_relevant_ref_binfo): Handle MEM_REF.
15548         * cfgexpand.c (expand_debug_expr): Handle MEM_REF.
15549         * tree-ssa.c (useless_type_conversion_p): Make most pointer
15550         conversions useless.
15551         (warn_uninitialized_var): Handle MEM_REF.
15552         (maybe_rewrite_mem_ref_base): New function.
15553         (execute_update_addresses_taken): Implement re-writing of MEM_REFs
15554         to SSA form.
15555         * tree-inline.c (remap_gimple_op_r): Handle MEM_REF, remove
15556         INDIRECT_REF handling.
15557         (copy_tree_body_r): Handle MEM_REF.
15558         * gimple.c (is_gimple_addressable): Adjust.
15559         (is_gimple_address): Likewise.
15560         (is_gimple_invariant_address): ADDR_EXPRs of MEM_REFs with
15561         invariant base are invariant.
15562         (is_gimple_min_lval): Adjust.
15563         (is_gimple_mem_ref_addr): New function.
15564         (get_base_address): Handle MEM_REF.
15565         (count_ptr_derefs): Likewise.
15566         (get_base_loadstore): Likewise.
15567         * gimple.h (is_gimple_mem_ref_addr): Declare.
15568         (gimple_call_fndecl): Handle invariant MEM_REF addresses.
15569         * tree-cfg.c (verify_address): New function, split out from ...
15570         (verify_expr): ... here.  Use for verifying ADDR_EXPRs and
15571         the address operand of MEM_REFs.  Verify MEM_REFs.  Reject
15572         INDIRECT_REFs.
15573         (verify_types_in_gimple_min_lval): Handle MEM_REF.  Disallow
15574         INDIRECT_REF.  Allow conversions.
15575         (verify_types_in_gimple_reference): Verify VIEW_CONVERT_EXPR of
15576         a register does not change its size.
15577         (verify_types_in_gimple_reference): Verify MEM_REF.
15578         (verify_gimple_assign_single): Disallow INDIRECT_REF.
15579         Handle MEM_REF.
15580         * tree-ssa-operands.c (opf_non_addressable, opf_not_non_addressable):
15581         New.
15582         (mark_address_taken): Handle MEM_REF.
15583         (get_indirect_ref_operands): Pass through opf_not_non_addressable.
15584         (get_asm_expr_operands): Pass opf_not_non_addressable.
15585         (get_expr_operands): Handle opf_[not_]non_addressable.
15586         Handle MEM_REF.  Remove INDIRECT_REF handling.
15587         * tree-vrp.c (check_array_ref): Handle MEM_REF.
15588         (search_for_addr_array): Likewise.
15589         (check_array_bounds): Likewise.
15590         (vrp_stmt_computes_nonzero): Adjust for MEM_REF.
15591         * tree-ssa-loop-im.c (for_each_index): Handle MEM_REF.
15592         (ref_always_accessed_p): Likewise.
15593         (gen_lsm_tmp_name): Likewise.  Handle ADDR_EXPR.
15594         * tree-complex.c (extract_component): Do not handle INDIRECT_REF.
15595         Handle MEM_REF.
15596         * cgraphbuild.c (mark_load): Properly check for NULL result
15597         from get_base_address.
15598         (mark_store): Likewise.
15599         * tree-ssa-loop-niter.c (array_at_struct_end_p): Handle MEM_REF.
15600         * tree-loop-distribution.c (generate_builtin): Exchange INDIRECT_REF
15601         handling for MEM_REF.
15602         * tree-scalar-evolution.c (follow_ssa_edge_expr): Handle
15603         &MEM[ptr + CST] similar to POINTER_PLUS_EXPR.
15604         * builtins.c (stabilize_va_list_loc): Use the function ABI
15605         valist type if we couldn't canonicalize the argument type.
15606         Always dereference with the canonical va-list type.
15607         (maybe_emit_free_warning): Handle MEM_REF.
15608         (fold_builtin_memory_op): Simplify and handle MEM_REFs in folding
15609         memmove to memcpy.
15610         * builtins.c (fold_builtin_memory_op): Use ref-all types
15611         for all memcpy foldings.
15612         * omp-low.c (build_receiver_ref): Adjust for MEM_REF.
15613         (build_outer_var_ref): Likewise.
15614         (scan_omp_1_op): Likewise.
15615         (lower_rec_input_clauses): Likewise.
15616         (lower_lastprivate_clauses): Likewise.
15617         (lower_reduction_clauses): Likewise.
15618         (lower_copyprivate_clauses): Likewise.
15619         (expand_omp_atomic_pipeline): Likewise.
15620         (expand_omp_atomic_mutex): Likewise.
15621         (create_task_copyfn): Likewise.
15622         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MEM_REF.
15623         Remove old union trick.  Initialize constant offsets.
15624         (ao_ref_init_from_vn_reference): Likewise.  Do not handle
15625         INDIRECT_REF.  Init base_alias_set properly.
15626         (vn_reference_lookup_3): Replace INDIRECT_REF handling with MEM_REF.
15627         (vn_reference_fold_indirect): Adjust for MEM_REFs.
15628         (valueize_refs): Fold MEM_REFs.  Re-evaluate constant offset
15629         for ARRAY_REFs.
15630         (may_insert): Remove.
15631         (visit_reference_op_load): Do not test may_insert.
15632         (run_scc_vn): Remove parameter, do not fiddle with may_insert.
15633         * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
15634         a field to store the constant offset this op applies.
15635         (run_scc_vn): Adjust prototype.
15636         * cgraphunit.c (thunk_adjust): Adjust for MEM_REF.
15637         * tree-ssa-ccp.c (ccp_fold): Replace INDIRECT_REF folding with
15638         MEM_REF.  Propagate &foo + CST as &MEM[&foo, CST].  Do not
15639         bother about volatile qualifiers on pointers.
15640         (fold_const_aggregate_ref): Handle MEM_REF, do not handle INDIRECT_REF.
15641         * tree-ssa-loop-ivopts.c
15642         * tree-ssa-loop-ivopts.c (determine_base_object): Adjust for MEM_REF.
15643         (strip_offset_1): Likewise.
15644         (find_interesting_uses_address): Replace INDIRECT_REF handling with
15645         MEM_REF handling.
15646         (get_computation_cost_at): Likewise.
15647         * ipa-pure-const.c (check_op): Handle MEM_REF.
15648         * tree-stdarg.c (check_all_va_list_escapes): Adjust for MEM_REF.
15649         * tree-ssa-sink.c (is_hidden_global_store): Handle MEM_REF
15650         and constants.
15651         * ipa-inline.c (likely_eliminated_by_inlining_p): Handle MEM_REF.
15652         * tree-parloops.c (take_address_of): Adjust for MEM_REF.
15653         (eliminate_local_variables_1): Likewise.
15654         (create_call_for_reduction_1): Likewise.
15655         (create_loads_for_reductions): Likewise.
15656         (create_loads_and_stores_for_name): Likewise.
15657         * matrix-reorg.c (may_flatten_matrices_1): Sanitize.
15658         (ssa_accessed_in_tree): Handle MEM_REF.
15659         (ssa_accessed_in_assign_rhs): Likewise.
15660         (update_type_size): Likewise.
15661         (analyze_accesses_for_call_stmt): Likewise.
15662         (analyze_accesses_for_assign_stmt): Likewise.
15663         (transform_access_sites): Likewise.
15664         (transform_allocation_sites): Likewise.
15665         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF.
15666         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
15667         not handle INDIRECT_REF.
15668         * tree-ssa-phiopt.c (add_or_mark_expr): Handle MEM_REF.
15669         (cond_store_replacement): Likewise.
15670         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
15671         MEM_REF, no not handle INDIRECT_REFs.
15672         (insert_into_preds_of_block): Properly initialize avail.
15673         (phi_translate_1): Fold MEM_REFs.  Re-evaluate constant offset
15674         for ARRAY_REFs.  Properly handle reference lookups that
15675         require a bit re-interpretation.
15676         (can_PRE_operation): Do not handle INDIRECT_REF.  Handle MEM_REF.
15677         * tree-sra.c (build_access_from_expr_1): Handle MEM_REF.
15678         (build_ref_for_offset_1): Remove.
15679         (build_ref_for_offset): Build MEM_REFs.
15680         (gate_intra_sra): Disable for now.
15681         (sra_ipa_modify_expr): Handle MEM_REF.
15682         (ipa_early_sra_gate): Disable for now.
15683         * tree-sra.c (create_access): Swap INDIRECT_REF handling for
15684         MEM_REF handling.
15685         (disqualify_base_of_expr): Likewise.
15686         (ptr_parm_has_direct_uses): Swap INDIRECT_REF handling for
15687         MEM_REF handling.
15688         (sra_ipa_modify_expr): Remove INDIRECT_REF handling.
15689         Use mem_ref_offset.  Remove bogus folding.
15690         (build_access_from_expr_1): Properly handle MEM_REF for non IPA-SRA.
15691         (make_fancy_name_1): Add support for MEM_REF.
15692         * tree-predcom.c (ref_at_iteration): Handle MEM_REFs.
15693         * tree-mudflap.c (mf_xform_derefs_1): Adjust for MEM_REF.
15694         * ipa-prop.c (compute_complex_assign_jump_func): Handle MEM_REF.
15695         (compute_complex_ancestor_jump_func): Likewise.
15696         (ipa_analyze_virtual_call_uses): Likewise.
15697         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Replace
15698         INDIRECT_REF folding with more generalized MEM_REF folding.
15699         (tree_ssa_forward_propagate_single_use_vars): Adjust accordingly.
15700         (forward_propagate_addr_into_variable_array_index): Also handle
15701         &ARRAY + I in addition to &ARRAY[0] + I.
15702         * tree-ssa-dce.c (ref_may_be_aliased): Handle MEM_REF.
15703         * tree-ssa-ter.c (find_replaceable_in_bb): Avoid TER if that
15704         creates assignments with overlap.
15705         * tree-nested.c (get_static_chain): Adjust for MEM_REF.
15706         (get_frame_field): Likewise.
15707         (get_nonlocal_debug_decl): Likewise.
15708         (convert_nonlocal_reference_op): Likewise.
15709         (struct nesting_info): Add mem_refs pointer-set.
15710         (create_nesting_tree): Allocate it.
15711         (convert_local_reference_op): Insert to be folded mem-refs.
15712         (fold_mem_refs): New function.
15713         (finalize_nesting_tree_1): Perform defered folding of mem-refs
15714         (free_nesting_tree): Free the pointer-set.
15715         * tree-vect-stmts.c (vectorizable_store): Adjust for MEM_REF.
15716         (vectorizable_load): Likewise.
15717         * tree-ssa-phiprop.c (phiprop_insert_phi): Adjust for MEM_REF.
15718         (propagate_with_phi): Likewise.
15719         * tree-object-size.c (addr_object_size): Handle MEM_REFs
15720         instead of INDIRECT_REFs.
15721         (compute_object_offset): Handle MEM_REF.
15722         (plus_stmt_object_size): Handle MEM_REF.
15723         (collect_object_sizes_for): Dispatch to plus_stmt_object_size
15724         for &MEM_REF.
15725         * tree-flow.h (get_addr_base_and_unit_offset): Declare.
15726         (symbol_marked_for_renaming): Likewise.
15727         * Makefile.in (tree-dfa.o): Add $(TOPLEV_H).
15728         (fold-const.o): Add $(TREE_FLOW_H).
15729         * tree-ssa-structalias.c (get_constraint_for_1): Handle MEM_REF.
15730         (find_func_clobbers): Likewise.
15731         * ipa-struct-reorg.c (decompose_indirect_ref_acc): Handle MEM_REF.
15732         (decompose_access): Likewise.
15733         (replace_field_acc): Likewise.
15734         (replace_field_access_stmt): Likewise.
15735         (insert_new_var_in_stmt): Likewise.
15736         (get_stmt_accesses): Likewise.
15737         (reorg_structs_drive): Disable.
15738         * config/i386/i386.c (ix86_va_start): Adjust for MEM_REF.
15739         (ix86_canonical_va_list_type): Likewise.
15740
15741 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
15742
15743         PR other/44566
15744         * coretypes.h [!USED_FOR_TARGET] (reg_class_t): Define.
15745         * target.def (struct gcc_target): Replace enum reg_class with
15746         reg_class_t in hook argument / return types.
15747         * doc/tm.texi.in (TARGET_SECONDARY_RELOAD): Likewise.
15748         (TARGET_IRA_COVER_CLASSES, TARGET_MEMORY_MOVE_COST): Likewise.
15749         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise.
15750         * targhooks.h (default_branch_target_register_class): Likewise.
15751         (default_ira_cover_classes, default_secondary_reload): Likewise.
15752         (default_memory_move_cost, default_register_move_cost): Likewise.
15753         * targhooks.c (default_branch_target_register_class): Likewise.
15754         (default_ira_cover_classes, default_secondary_reload): Likewise.
15755         (default_memory_move_cost, default_register_move_cost): Likewise.
15756         * reload.c (push_secondary_reload, secondary_reload_class): Likewise.
15757         * bt-load.c (branch_target_load_optimize): Likewise.
15758         * ira.c (setup_cover_and_important_classes): Likewise.
15759         * ira-costs.c (copy_cost): Likewise.
15760         * reload1.c (emit_input_reload_insns): Likewise.
15761         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
15762         * config/frv/frv.c (frv_secondary_reload): Likewise.
15763         * config/s390/s390.c (s390_secondary_reload): Likewise.
15764         * config/i386/i386.c (i386_ira_cover_classes): Likewise.
15765         (ix86_secondary_reload, ix86_memory_move_cost): Likewise.
15766         (ix86_register_move_cost): Likewise.
15767         * config/sh/sh-protos.h (sh_secondary_reload): Likewise.
15768         * config/sh/sh.c (sh_target_reg_class, sh_secondary_reload): Likewise.
15769         * config/xtensa/xtensa.c (xtensa_secondary_reload): Likewise.
15770         * config/xtensa/xtensa-protos.h (xtensa_secondary_reload): Likewise.
15771         * config/rs6000/rs6000.c (rs6000_secondary_reload): Likewise.
15772         (rs6000_ira_cover_classes): Likewise.
15773         * config/picochip/picochip.c (picochip_secondary_reload): Likewise.
15774         * config/picochip/picochip-protos.h (picochip_secondary_reload):
15775         Likewise.
15776         * config/pa/pa.c (pa_secondary_reload): Likewise.
15777         * config/mips/mips.c (mips_ira_cover_classes): Likewise.
15778         * config/bfin/bfin.c (bfin_secondary_reload): Likewise.
15779         * config/ia64/ia64.c (ia64_register_move_cost): Likewise.
15780         * doc/tm.texi: Regenerate.
15781
15782 2010-06-30  Sebastian Pop  <sebastian.pop@amd.com>
15783
15784         PR bootstrrap/44726
15785         * graphite-sese-to-poly.c (build_poly_dr): Avoid uninitialized
15786         use.
15787         (build_alias_set_optimal_p): Likewise.
15788         (build_base_obj_set_for_drs): Likewise.
15789
15790 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
15791
15792         * target.def: Remove comment about licensing problems of function
15793         declarations.
15794
15795         * target.def (declare_constant_name): Change exp to expr.  Use DEFHOOK.
15796         * doc/tm.texi.in (TARGET_ASM_DECLARE_CONSTANT_NAME): Use @hook.
15797         * doc/tm.texi: Regenerate.
15798
15799         * target.def (builtin_reciprocal): Change tm_fn to md_fn.  Use DEFHOOK.
15800         * doc/tm.texi.in (TARGET_BUILTIN_RECIPROCAL): Use @hook.
15801
15802         * target.def (enum_va_list_p): Use DEFHOOK.
15803         * doc/tm.texi.in (TARGET_ENUM_VA_LIST_P): Use @hook.
15804         Rename ptype to ptree.
15805         * doc/tm.texi: Regenerate.
15806
15807         * target.def (fold_builtin): Rename nargs to n_args.  Use DEFHOOK.
15808         * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Use @hook.
15809         * doc/tm.texi: Regenerate.
15810
15811         * target.def (memory_move_cost): Use DEFHOOK.
15812         * doc/tm.texi.in (TARGET_MEMORY_MOVE_COST): Use @hook.
15813         Rename regclass AKA class to rclass.
15814         * doc/tm.texi: Regenerate.
15815
15816         * target.def (pragma_parse): Use DEFHOOK.
15817         * doc/tm.texi.in (TARGET_OPTION_PRAGMA_PARSE): Use @hook.
15818         s/TARGET_VALID_OPTION_ATTRIBUTE_P/TARGET_OPTION_VALID_ATRIBUTE_P/ .
15819         * doc/tm.texi: Regenerate.
15820
15821         * target.def (pass_by_reference): Use DEFHOOK.
15822         * doc/tm.texi.in (TARGET_PASS_BY_REFERENCE): Use @hook.
15823         * doc/tm.texi: Regenerate.
15824
15825         * target.def (resolve_overloaded_builtin): Rename params to arglist.
15826         Use DEFHOOK.
15827         * doc/tm.texi.in (TARGET_RESOLVE_OVERLOADED_BUILTIN): Use @hook.
15828         * doc/tm.texi: Regenerate.
15829
15830         * target.def (return_pops_args): Use DEFHOOK.
15831         * doc/tm.texi.in (TARGET_RETURN_POPS_ARGS): Use @hook.
15832         Rename stack-size to size.
15833         * doc/tm.texi: Regenerate.
15834
15835         * target.def (dfa_new_cycle): Use DEFHOOK.  Rename dump_file to dump,
15836         last-sched_cycle to last_clock, cur_cycle to clock.
15837         * doc/tm.texi.in: Use @hook.
15838         * doc/tm.texi: Regenerate.
15839
15840         * target.def (print_operand, print_operand_address): Update comment.
15841         (print_operand_punct_valid_p): Likewise.
15842
15843 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15844
15845         * toplev.h (_fatal_insn_not_found, _fatal_insn): Move declarations
15846         to rtl.h.
15847         (error_for_asm, warning_for_asm): Move declarations to rtl-error.h.
15848         * rtl.h (_fatal_insn_not_found, _fatal_insn): Move declarations here.
15849         * rtl-error.h: New.
15850         * regrename.c: Do not include toplev.h. Include rtl-error.h.
15851         * rtl-error.c: Likewise.
15852         * reload.c: Likewise.
15853         * recog.c:  Likewise.
15854         * sel-sched.c: Likewise.
15855         * function.c: Likewise.
15856         * reg-stack.c: Likewise.
15857         * cfgrtl.c: Likewise.
15858         * reload1.c: Likewise.
15859         * final.c: Include rtl-error.
15860         * Makefile.in: Adjust dependencies.
15861
15862 2010-06-30  Jan Hubicka  <jh@suse.cz>
15863
15864         PR middle-end/PR44706
15865         * ipa-split (split_function): Refine conditions when to use DECL_RESULT
15866         to return the value.
15867
15868 2010-06-30  Michael Matz  <matz@suse.de>
15869
15870         PR bootstrap/44699
15871         * tree-vrp.c (vrp_finalize): Deal with changing num_ssa_names.
15872         * gimple-fold.c (gimplify_and_update_call_from_tree): If LHS is
15873         a gimple reg, attach the original VDEF to the last store in the
15874         sequence.
15875
15876 2010-06-30  Iain Sandoe  <iains@gcc.gnu.org>
15877
15878         PR other/44034
15879         * config/darwin.c (darwin_override_options): Use renamed
15880         targetm.asm_out.emit_unwind_label.
15881
15882 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
15883
15884         PR tree-optimization/39799
15885         * tree-inline.c (remap_ssa_name): Initialize variable only if
15886         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
15887
15888 2010-06-30  Nathan Froyd  <froydnj@codesourcery.com>
15889
15890         * c-parser.c (c_parser_omp_for_loop): Use a VEC for for_block.
15891
15892 2010-06-30  Richard Guenther  <rguenther@suse.de>
15893
15894         PR target/44722
15895         * config/i386/i386.md (peephole2 for fix:SSEMODEI24): Guard
15896         against oscillation with reverse peephole2.
15897
15898 2010-06-30  H.J. Lu  <hongjiu.lu@intel.com>
15899
15900         PR target/44721
15901         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
15902         Fix last commit.
15903
15904 2010-06-30  Nick Clifton  <nickc@redhat.com>
15905
15906         * config/rx/rx-modes.def: New file.
15907         * config/rx/rx.h (FIRST_PSEUDO_REGISTER): Increase to 17.
15908         (CC_REGNUM): Define.
15909         (FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add cc
15910         register.
15911         (CC_NO_CARRY, NOTICE_UPDATE_CC): Delete.
15912         (SELECT_CC_MODE): Define.
15913         * config/rx/rx.md (CC_REG): Define.  Update all patterns to use
15914         (reg:CC CC_REG) instead of (cc0).
15915         (attr "cc"): Delete.
15916         (cbranchsi4): Do not split compare and branch here. Instead move
15917         it to...
15918         (cbranchsi4_<code>): ... here.  New patterns.
15919         (cmpsi): Call rx-compare_redundant to find out if it is necessary
15920         to emit the compare instruction.
15921         * config/rx/rx.c (rx_gen-cond_branch_template): Remove tests of
15922         cc_status flags.
15923         (rx_get_stack_layout): Iterate up to before CC_REGNUM not
15924         FIRST_PSEUDO_REGNUM.
15925         (rx_expand_prologue, rx_expand_epilogue): Likewise.
15926         (rx_notice_update_cc): Delete.
15927         (rx_cc_modes_compatible): New function.
15928         (flags_needed_for_conditional): New function.
15929         (flags_from_mode): New function.
15930         (rx_compare_redundant): New function - scans backwards through
15931         insn list to find out if condition flags are already set correctly.
15932         (TARGET_CC_MODES_COMPATIBLE): Define.
15933         * config/rx/rx-protos.h (rx_compare_redundant): Prototype.
15934
15935         * config/rx/rx.h (BRANCH_COST): Define.
15936         (REGISTER_MOVE_COST): Define.
15937         * config/rx/predicates (rx_source_operand): Allow all constant types.
15938         * config/rx/rx.md (addsi3): Add alternative for swapped operands.
15939         (tstsi4): New pattern.
15940         * config/rx/rx.c (rx_memory_move_cost): Define.
15941         (TARGET_MEMORY_MOVE_COST): Define.
15942
15943 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15944
15945         * tree.h (block_may_fallthru): Declare here.
15946         * tree-flow.h (block_may_fallthru): Do not declare here.
15947         * c-typeck.c: Do not include tree-flow.h. Include gimple.h and
15948         bitmap.h
15949         * Makefile.in (c-typeck.o): Update dependencies.
15950
15951 2010-06-30  Jakub Jelinek  <jakub@redhat.com>
15952
15953         PR debug/44694
15954         * cselib.h (cselib_preserve_cfa_base_value): Add regno argument.
15955         * cselib.c (cfa_base_preserved_regno): New static variable.
15956         (cselib_reset_table): Don't reset cfa_base_preserved_regno instead
15957         of REGNO (cfa_base_preserved_val->locs->loc).
15958         (cselib_preserve_cfa_base_value): Add regno argument, set
15959         cfa_base_preserved_regno to it.
15960         (cselib_invalidate_regno): Allow removal of registers other than
15961         cfa_base_preserved_regno from cfa_base_preserved_val.
15962         (cselib_finish): Set cfa_base_preserved_regno to INVALID_REGNUM.
15963         * var-tracking.c (adjust_mems): Replace sp or hfp even outside
15964         of MEM addresses, if not on LHS.
15965         (reverse_op): Don't add reverse ops for cfa_base_rtx.
15966         (vt_init_cfa_base): Adjust cselib_preserve_cfa_base_value caller.
15967
15968 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
15969
15970         * recog.c (peep2_do_rebuild_jump_labels, peep2_do_cleanup_cfg): New
15971         static variables.
15972         (peep2_buf_position): New static function.
15973         (peep2_regno_dead_p, peep2_reg_dead_p, peep2_find_free_register,
15974         peephole2_optimize): Use it.
15975         (peep2_attempt, peep2_update_life): New static functions, broken out
15976         of peephole2_optimize.
15977         (peep2_fill_buffer): New static function.
15978         (peephole2_optimize): Change the main loop to try to fill the buffer
15979         with the maximum number of insns before matching them against
15980         peepholes.  Use a forward scan.  Remove special case for targets with
15981         conditional execution.
15982         * genrecog.c (change_state): Delete dead code.
15983         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
15984         Rewrite so as not to expect the second insn to have had a peephole
15985         applied yet.
15986
15987 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
15988
15989         * genhooks.c (emit_findices): Cast field precision to int.
15990         (emit_documentation): Likewise.
15991
15992 2010-06-29  Jakub Jelinek  <jakub@redhat.com>
15993
15994         PR tree-optimization/43801
15995         * cgraph.c (cgraph_create_virtual_clone): Clear DECL_SECTION_NAME
15996         if old_decl was DECL_ONE_ONLY.
15997
15998         PR debug/44668
15999         * dwarf2out.c (add_accessibility_attribute): New function.
16000         (gen_subprogram_die, gen_variable_die, gen_field_die): Use it
16001         instead of adding DW_AT_accessibility manually.
16002         (gen_enumeration_type_die, gen_struct_or_union_type_die,
16003         gen_typedef_die): Use it.
16004
16005 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
16006
16007         * vmsdbgout.c (full_name): Just output the file name if not native.
16008
16009 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
16010
16011         * vmsdbgout.c (func_table): Replace with VEC func{nam,num}_tables.
16012         (funcnam_table): New static table.
16013         (funcnum_table): New static table.
16014         (write_rtnbeg): Write value saved in funcnum_table.
16015         (write_rtnend): Write value saved in funcnum_table.
16016         (vmsdbgout_begin_function): Save current function info in
16017         (vmsdbgout_init): Initialize func{nam,num}_tables. Minor reformatting.
16018         (vmsdbgout_finish): Iterate over funcnum_table.
16019
16020 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
16021
16022         * vmsdbgout.c (vmsdbgout_begin_epilogue): Declare
16023         (vmsdbgout_type_decl): Declare
16024         (vmsdbg_debug_hooks): Add entry for type_decl and begin_epilogue.
16025         (FUNC_EPILOGUE_LABEL): New macro
16026         (vmsdbgout_begin_epilogue): New function.
16027         (vmsdbgout_type_decl): New function.
16028
16029 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
16030
16031         * vmsdbg.h: Update copyright.
16032
16033 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
16034
16035         * vmsdbg.h (DST_K_TBG): New DST constant.
16036         * vmsdbgout.c (addr_const_to_string): Removed, not referenced.
16037         (write_modbeg): Cast module_language to avoid warning.
16038         (write_rtnbeg): Use DST_K_TBG vice magic mystery number.
16039
16040 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
16041
16042         PR other/44034
16043         * target.def, doc/tm.texi.in, genhooks.c: New files.
16044         * target.h: Instead of defining individual hook members,
16045         define DEFHOOKPOD / DEFHOOK / DEFHOOK_UNDOC / HOOKSTRUCT and
16046         include target.def.
16047         * target-def.h: Instead of defining individual hook initializers,
16048         include target-hooks-def.h.
16049         * df-scan.c, haifa-sched.c, sel-sched.c: Rename targetm members:
16050         targetm.live_on_entry -> targetm.extra_live_on_entry
16051         targetm.sched.md_finish ->targetm.sched.finish
16052         targetm.sched.md_init -> targetm.sched.init
16053         targetm.sched.md_init_global -> targetm.sched.init_global
16054         targetm.asm_out.unwind_label -> targetm.asm_out.emit_unwind_label
16055         targetm.asm_out.except_table_label ->
16056           targetm.asm_out.emit_except_table_label
16057         targetm.asm_out.visibility -> targetm.asm_out.assemble_visibility
16058         targetm.target_help -> targetm.help
16059         targetm.vectorize.builtin_support_vector_misalignment ->
16060           targetm.vectorize.support_vector_misalignment
16061         targetm.file_start_app_off -> targetm.asm_file_start_app_off
16062         targetm.file_start_file_directive ->
16063          targetm.asm_file_start_file_directive
16064         * dwarf2out.c, opts.c, tree-vect-data-refs.c, except.c: Likewise.
16065         * varasm.c, config/alpha/alpha.c, config/cris/cris.c: Likewise.
16066         * config/spu/spu.c, config/ia64/ia64.c: Rename target macros:
16067         TARGET_VECTOR_ALIGNMENT_REACHABLE ->
16068           TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE
16069         TARGET_SUPPORT_VECTOR_MISALIGNMENT ->
16070           TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT
16071         TARGET_UNWIND_EMIT -> TARGET_ASM_UNWIND_EMIT
16072         * config/rs6000/rs6000.c, config/arm/arm.c: Likewise.
16073         * Makefile.in (TARGET_H): Depend on target.def.
16074         (TARGET_DEF_H): Depend on target-hooks-def.h.
16075         (target-hooks-def.h, tm.texi, s-target-hooks-def-h): New rules.
16076         (s-tm-texi, build/genhooks.o, build/genhooks): Likewise.
16077         * doc/tm.texi: Regenerate.
16078
16079         * Makefile.in (s-tm-texi): Remove stray tab / rule.
16080
16081         * config/m68k/m68k.c (targetm.sched.init_global): Update comment.
16082         (targetm.sched.init): Likewise.
16083
16084 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
16085
16086         PR bootstrap/44713
16087         * config/i386/i386.c (type_natural_mode): Const-ify CUM parameter.
16088         (function_arg_advance_32): Const-ify TYPE parameter.
16089         (function_arg_advance_64): Likewise.  Change type of NAMED to bool.
16090         (ix86_function_arg_advance): Change type of NAMED to bool.
16091         (function_arg_32): Const-ify CUM and TYPE parameters.
16092         (function_arg_64): Likewise.  Change type of NAMED to bool.
16093         (function_arg_ms_64): Const-ify CUM parameter. Change type of NAMED
16094         to bool.
16095         (ix86_function_arg): Change type of NAMED to bool.
16096         (ix86_setup_incoming_varargs): Call ix86_function_arg_advance.  Pass
16097         last argument as a bool.
16098
16099 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
16100
16101         * doc/tm.texi (TARGET_OPTION_OVERRIDE): Document.
16102         (OVERRIDE_OPTIONS): Add note of obsolescence.
16103         Replace references with references to TARGET_OPTION_OVERRIDE.
16104         (Except for C_COMMON_OVERRIDE_OPTIONS, which remains similar to
16105          the macro).
16106         * targhooks.c (default_target_option_override): New function.
16107         * targhooks.h (default_target_option_override): Declare.
16108         * target.h (struct gcc_target): Add override member to
16109         target_option member.
16110         * toplev.c (process_options): Replace OVERRIDE_OPTIONS use with
16111         targetm.target_option.override call.
16112         * target-def.h (TARGET_OPTION_OVERRIDE): Define.
16113         (TARGET_OPTION_HOOKS): Add TARGET_OPTION_OVERRIDE.
16114
16115 2010-06-29  Jan Hubicka  <jh@suse.cz>
16116
16117         * tree-inline.c: Replace incomming by incomin and clonning by cloning.
16118
16119 2010-06-29  Jan Hubicka  <jh@suse.cz>
16120
16121         * predict.c (propagate_freq): Clear EXIT_BLOCK_PTR frequency if it is
16122         unreachable.
16123         (rebuild_frequencies): New function.
16124         * predict.h (rebuild_frequencies): Declare.
16125         * tree-inline.c (copy_cfg_body): Compute properly count & frequency of
16126         entry block and edge reaching new_entry.
16127         (tree_function_versioning): When doing partial cloning, rebuild
16128         frequencies when done.
16129         * passes.c (execute_function_todo): Use rebild_frequencies.
16130
16131 2010-06-29  Richard Guenther  <rguenther@suse.de>
16132
16133         * tree-dfa.c (dump_variable): Remove noalias_state dumping.
16134         * tree-flow.h (enum noalias_state): Remove.
16135         (struct var_ann_d): Remove noalias_state member.
16136
16137 2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
16138
16139         PR target/43902
16140         * config/arm/arm.md (maddsidi4, umaddsidi4): New expanders.
16141         (maddhisi4): Renamed from mulhisi3addsi.  Operands renumbered.
16142         (maddhidi4): Likewise.
16143
16144         Revert parts of the change for PR25130.
16145         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
16146         MEM_ALIAS_SET.
16147
16148 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
16149
16150         * calls.c, dse.c, expr.c, function.c: Call targetm.calls.function_arg,
16151         targetm.calls.function_incoming_arg, and
16152         targetm.calls.function_arg_advance instead of FUNCTION_ARG,
16153         FUNCTION_INCOMING_ARG, and FUNCTION_ARG_ADVANCE, respectively.
16154         * target.h (struct gcc_target): Add function_arg_advance,
16155         function_arg, and function_incoming_arg fields.
16156         * target-def.h (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG):
16157         (TARGET_FUNCTION_INCOMING_ARG): Define.
16158         (TARGET_CALLS): Add TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG,
16159         and TARGET_FUNCTION_INCOMING_ARG.
16160         * targhooks.h (default_function_arg_advance): Declare.
16161         (default_function_arg, default_function_incoming_arg): Declare.
16162         * targhooks.c (default_function_arg_advance): New function.
16163         (default_function_arg, default_function_incoming_arg): New function.
16164         * config/i386/i386.c (function_arg_advance): Rename to...
16165         (ix86_function_arg_advance): ...this.  Make static.
16166         (function_arg): Rename to...
16167         (ix86_function_arg): ...this.  Make static.
16168         (TARGET_FUNCTION_ARG_ADVANCE): Define.
16169         (TARGET_FUNCTION_ARG): Define.
16170         * config/i386/i386.h (FUNCTION_ARG_ADVANCE): Delete.
16171         (FUNCTION_ARG): Delete.
16172         * config/i386/i386-protos.h (function_arg_advance): Delete prototype.
16173         (function_arg): Delete prototype.
16174
16175 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
16176
16177         * reginfo.c (init_reg_sets_1): Adjust comments.
16178         * combine-stack-adj.c (rest_of_handle_stack_adjustments): Likewise.
16179         * calls.c (prepare_call_address): Likewise.
16180         (emit_call_1): Use targetm.calls.return_pops_args.
16181         (expand_call): Likewise.
16182         * function.c (assign_parms): Likewise.
16183         * system.h (RETURN_POPS_ARGS): Add to #pragma poison list.
16184         * target.h (struct gcc_target) [struct calls]: Add
16185         return_pops_args field.
16186         * targhooks.h (default_return_pops_args): Declare.
16187         * targhooks.c (default_return_pops_args): Define.
16188         * target-def.h (TARGET_RETURN_POPS_ARGS): Define.
16189         (TARGET_CALLS): Add TARGET_RETURN_POPS_ARGS.
16190         * doc/tm.texi (RETURN_POPS_ARGS): Rename to...
16191         (TARGET_RETURN_POPS_ARGS): ...this.  Use deftypefn.  Adjust
16192         documentation.
16193         * config/alpha/alpha.h (RETURN_POPS_ARGS): Delete.
16194         * config/arc/arc.h (RETURN_POPS_ARGS): Likewise.
16195         * config/arm/arm.h (RETURN_POPS_ARGS): Likewise.
16196         * config/avr/avr.h (RETURN_POPS_ARGS): Likewise.
16197         * config/bfin/bfin.h (RETURN_POPS_ARGS): Likewise.
16198         * config/cris/cris.h (RETURN_POPS_ARGS): Likewise.
16199         * config/crx/crx.h (RETURN_POPS_ARGS): Likewise.
16200         * config/fr30/fr30.h (RETURN_POPS_ARGS): Likewise.
16201         * config/frv/frv.h (RETURN_POPS_ARGS): Likewise.
16202         * config/h8300/h8300.h (RETURN_POPS_ARGS): Likewise.
16203         * config/ia64/ia64.h (RETURN_POPS_ARGS): Likewise.
16204         * config/iq2000/iq2000.h (RETURN_POPS_ARGS): Likewise.
16205         * config/lm32/lm32.h (RETURN_POPS_ARGS): Likewise.
16206         * config/m32c/m32c.h (RETURN_POPS_ARGS): Likewise.
16207         * config/m32r/m32r.h (RETURN_POPS_ARGS): Likewise.
16208         * config/m68hc11/m68hc11.h (RETURN_POPS_ARGS): Likewise.
16209         * config/mcore/mcore.h (RETURN_POPS_ARGS): Likewise.
16210         * config/mep/mep.h (RETURN_POPS_ARGS): Likewise.
16211         * config/mips/mips.h (RETURN_POPS_ARGS): Likewise.
16212         * config/mmix/mmix.h (RETURN_POPS_ARGS): Likewise.
16213         * config/mn10300/mn10300.h (RETURN_POPS_ARGS): Likewise.
16214         * config/moxie/moxie.h (RETURN_POPS_ARGS): Likewise.
16215         * config/pa/pa.h (RETURN_POPS_ARGS): Likewise.
16216         * config/pdp11/pdp11.h (RETURN_POPS_ARGS): Likewise.
16217         * config/picochip/picochip.h (RETURN_POPS_ARGS): Likewise.
16218         * config/rs6000/rs6000.h (RETURN_POPS_ARGS): Likewise.
16219         * config/rx/rx.h (RETURN_POPS_ARGS): Likewise.
16220         * config/s390/s390.h (RETURN_POPS_ARGS): Likewise.
16221         * config/score/score.h (RETURN_POPS_ARGS): Likewise.
16222         * config/sh/sh.h (RETURN_POPS_ARGS): Likewise.
16223         * config/sparc/sparc.h (RETURN_POPS_ARGS): Likewise.
16224         * config/spu/spu.h (RETURN_POPS_ARGS): Likewise.
16225         * config/stormy16/stormy16.h (RETURN_POPS_ARGS): Likewise.
16226         * config/v850/v850.h (RETURN_POPS_ARGS): Likewise.
16227         * config/xtensa/xtensa.h (RETURN_POPS_ARGS): Likewise.
16228         * config/i386/i386-protos.h (ix86_return_pops_args): Delete.
16229         * config/i386/i386.h (RETURN_POPS_ARGS): Delete.
16230         * config/i386/i386.c (ix86_return_pops_args): Make static.
16231         Constify arguments.
16232         (TARGET_RETURN_POPS_ARGS): Define.
16233         * config/m68k/m68k.h (RETURN_POPS_ARGS): Move to...
16234         * config/m68k/m68k.c (m68k_return_pops_args): ...here.  New function.
16235         (TARGET_RETURN_POPS_ARGS): Define.
16236         * config/vax/vax.h (RETURN_POPS_ARGS): Move to...
16237         * config/vax/vax.c (vax_return_pops_args): ...here.  New function.
16238         (TARGET_RETURN_POPS_ARGS): Define.
16239
16240 2010-06-29  Richard Guenther  <rguenther@suse.de>
16241
16242         PR middle-end/44667
16243         * tree-inline.c (initialize_inlined_parameters): Make sure
16244         to remap the inlined parameter variable substitutions types.
16245
16246 2010-06-29  Eric Botcazou  <ebotcazou@adacore.com>
16247
16248         PR rtl-optimization/44659
16249         * combine.c (make_compound_operation) <SUBREG>: Do not return the
16250         result of force_to_mode if it partially re-expanded the compound.
16251
16252 2010-06-28  Jan Hubicka  <jh@suse.cz>
16253
16254         PR middle-end/44671
16255         * ipa-split.c (test_nonssa_use, mark_nonssa_use): Check also uses of
16256         RESULT_DECL.
16257
16258 2010-06-28  Anatoly Sokolov  <aesok@post.ru>
16259
16260         * double-int.h (force_fit_type_double): Remove declaration.
16261         * double-int.c (force_fit_type_double): Move to tree.c.
16262         * tree.h (force_fit_type_double): Declare.
16263         * tree.h (force_fit_type_double): Moved from double-int.c. Use
16264         double_int type for 'cst' argument. Use double_int_fits_to_tree_p and
16265         double_int_to_tree instead of fit_double_type and build_int_cst_wide.
16266         * convert.c (convert_to_pointer): Adjust call to
16267         force_fit_type_double.
16268         * tree-vrp.c (extract_range_from_assert,
16269         extract_range_from_unary_expr): Adjust call to force_fit_type_double.
16270         * fold-const.c: Update comment.
16271         (int_const_binop, fold_convert_const_int_from_int,
16272         fold_convert_const_int_from_real, fold_convert_const_int_from_fixed,
16273         extract_muldiv_1, fold_div_compare, fold_sign_changed_comparison,
16274         fold_unary_loc, fold_negate_const, fold_abs_const, fold_not_const,
16275         round_up_loc): Adjust call to force_fit_type_double.
16276
16277 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
16278
16279         * config/rs6000/rs6000.h (PROCESSOR_TITAN): Declare.
16280
16281 2010-06-28  Martin Jambor  <mjambor@suse.cz>
16282
16283         * tree-sra.c (convert_callers): New parameter, change fndecls of
16284         recursive calls.
16285         (modify_function): Pass the old decl to convert_callers.
16286
16287 2010-06-28  Martin Jambor  <mjambor@suse.cz>
16288
16289         * ipa-cp.c (ipcp_init_cloned_node): Replace calls to
16290         ipa_check_create_node_params and ipa_initialize_node_params with
16291         checking asserts they are not necessary.
16292
16293 2010-06-28  Jan Hubicka  <jh@suse.cz>
16294
16295         PR tree-optimization/44687
16296         * ipa-split.c (split_function): Use DECL_RESULT to store return value.
16297
16298 2010-06-28  Martin Jambor  <mjambor@suse.cz>
16299
16300         PR c++/44535
16301         * gimple-fold.c (get_first_base_binfo_with_virtuals): New function.
16302         (gimple_get_relevant_ref_binfo): Use get_first_base_binfo_with_virtuals
16303         instead of BINFO_BASE_BINFO.
16304
16305 2010-06-28  Michael Matz  <matz@suse.de>
16306
16307         PR middle-end/44592
16308         * gimple-fold.c (gimplify_and_update_call_from_tree): Maintain
16309         proper VDEF chain for intermediate stores in the sequence.
16310
16311 2010-06-28  Jan Hubicka  <jh@suse.cz>
16312
16313         PR tree-optimization/44357
16314         * ipa-inline.c (add_new_edges_to_heap): Do not add edges to
16315         uninlinable functions.
16316
16317 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
16318
16319         * config.gcc (powerpc*-*-*): Handle titan.
16320         * config/rs6000/rs6000.c (titan_cost): New costs.
16321         (rs6000_override_options): Add "titan" to processor_target_table.
16322         Add Titan to branch alignment logic.
16323         Correctly set rs6000_cost for titan.
16324         * config/rs6000/rs6000.md (cpu): Add titan.  Include "titan.md".
16325         * config/rs6000/titan.md: New file.
16326         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=titan.
16327
16328 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
16329
16330         * tree-browser.c (TB_history_stack): Convert to a VEC.
16331         (TB_SET_HEAD): Adjust for new type of TB_history_stack.
16332         (TB_history_prev): Likewise.
16333
16334 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
16335
16336         * vec.h (vec_heap_free): Add parentheses around free.
16337
16338 2010-06-28  Steven Bosscher  <steven@gcc.gnu.org>
16339
16340         * system.h: Poison GCC_EXCEPT_H for front-end files.
16341
16342         * langhooks.h (struct lang_hooks): Add eh_protect_cleanup_actions
16343         langhook.
16344         * langhooks-def.h (LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS) New.
16345         Define to NULL by default.
16346         * except.h: Define GCC_EXCEPT_H.
16347         (doing_eh): Remove prototype.
16348         (init_eh, init_eh_for_function): Move prototypes to toplev.h.
16349         (lang_protect_cleanup_actions): Remove.
16350         * except.c (lang_protect_cleanup_actions): Remove.
16351         (doing_eh): Remove.
16352         (gen_eh_region): Don't check doing_eh here.
16353         * toplev.h (init_eh, init_eh_for_function_): Moved from except.h.
16354         * tree-eh.c (honor_protect_cleanup_actions): Use new langhook
16355         instead of lang_protect_cleanup_actions.
16356         * omp-low.c (maybe_catch_exception): Likewise.
16357         * Makefile.in: Update dependencies.
16358
16359 2010-06-28  Bingfeng Mei  <bmei@broadcom.com>
16360
16361         * cgraph.h (struct varpool_node): new used_from_object_file flag.
16362         (struct cgraph_local_info): new used_from_object_file flag.
16363         * cgraph.c (dump_cgraph_node): dump used_from_object_file flag.
16364         (cgraph_clone_node): initialize used_from_object_file.
16365         (cgraph_create_virtual_clone): initialize used_from_object_file.
16366         * lto-symbtab.c (lto_symtab_merge_decls_1): Set
16367         used_from_object_file flags for symbols of LDPR_PREVAILING_DEF
16368         when compiling with -fwhole-program.
16369         (lto_symtab_resolve_symbols) Use LDPR_PREVAILING_DEF_IRONLY for
16370         internal resolver.
16371         * ipa.c (function_and_variable_visibility): Set externally_visible
16372         flag of varpool_node if used_from_object_file flag is set.
16373         (cgraph_externally_visible_p): check used_from_object_file flag.
16374         * doc/invoke.texi (-fwhole-program option): Change description of
16375         externally_visible attribute accordingly.
16376         * doc/extend.texi (externally_visible): Ditto.
16377
16378 2010-06-27  Jan Hubicka  <jh@suse.cz>
16379
16380         * params.def (max-inline-insns-auto): Default to 40.
16381         * doc/invoke.texi (max-inline-insns-auto): Document the change.
16382
16383 2010-06-27  Jan Hubicka  <jh@suse.cz>
16384
16385         PR middle-end/44671
16386         PR middle-end/44686
16387         * tree.c (build_function_decl_skip_args): Clear DECL_BUILT_IN on
16388         signature change.
16389         * ipa-split.c (split_function): Always clear DECL_BUILT_IN.
16390         * ipa-prop.c (ipa_modify_formal_parameters): Likewise.
16391
16392 2010-06-27  Anatoly Sokolov  <aesok@post.ru>
16393
16394         * target.h (struct gcc_target): Add register_move_cost field.
16395         * target-def.h (TARGET_REGISTER_MOVE_COST): New.
16396         (TARGET_INITIALIZER): Use TARGET_REGISTER_MOVE_COST.
16397         * targhooks.c (default_register_move_cost): New function.
16398         * targhooks.h (default_register_move_cost): Declare function.
16399         * defaults.h (REGISTER_MOVE_COST): Delete.
16400         * ira-int.h (ira_register_move_cost): Update comment.
16401         * ira.c (ira_register_move_cost): Update comment.
16402         * reload.h (register_move_cost): Declare.
16403         * reginfo.c (register_move_cost): New function.
16404         (move_cost): Update comment.
16405         (init_move_cost, memory_move_secondary_cost): Replace
16406         REGISTER_MOVE_COST with register_move_cost.
16407         * postreload.c (reload_cse_simplify_set): (Ditto.).
16408         * reload.c (find_valid_class, find_reloads): (Ditto.).
16409         * reload1.c (choose_reload_regs): (Ditto.).
16410         * doc/tm.texi (TARGET_REGISTER_MOVE_COST): New.
16411         (REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Update documentation.
16412         * doc/md.texi (can_create_pseudo_p): Update documentation.
16413
16414         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
16415         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
16416         * config/i386/i386.h (ix86_memory_move_cost): Make static.
16417         (TARGET_MEMORY_MOVE_COST): Define.
16418
16419         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
16420         * config/ia64/ia64-protos.h (int ia64_memory_move_cost): Remove.
16421         * config/ia64/ia64.h (ia64_memory_move_cost): Make static.
16422         (TARGET_MEMORY_MOVE_COST): Define.
16423
16424 2010-06-27  Richard Guenther  <rguenther@suse.de>
16425
16426         PR tree-optimization/44683
16427         * tree-ssa-dom.c (record_edge_info): Record equivalences for the
16428         false edge from the inverted condition.
16429
16430 2010-06-27  Richard Guenther  <rguenther@suse.de>
16431
16432         PR middle-end/44684
16433         * tree-ssa-alias.c (refs_may_alias_p_1): Allow SSA name refs.
16434         (stmt_may_clobber_ref_p_1): Do not bother to call the oracle
16435         for register LHS.  Or non-store assignments.
16436
16437 2010-06-26  Eric Botcazou  <ebotcazou@adacore.com>
16438
16439         * config/sparc/sparc.c (sparc_emit_set_const32): Make static.
16440         (sparc_emit_set_const64): Likewise.  Remove disabled code.
16441         * config/sparc/sparc-protos.h (sparc_emit_set_const32): Delete.
16442         (sparc_emit_set_const64): Likewise.
16443
16444 2010-06-26  Catherine Moore  <clm@codesourcery.com>
16445
16446         * config/mips/mips.md (alu_type): New attribute.
16447         (type): Infer type from alu_type.
16448         (*add<mode>3, *add<mode>3_mips16, *addsi3_extended,
16449         *baddu_si_eb, *baddu_si_el, *baddu_di, sub<mode>3,
16450         *subsi3_extended, negsi2, negdi2, *low<mode>,
16451         *low<mode>_mips16, *ior<mode>3, *ior<mode>3_mips16,
16452         xor<mode>3, *nor<mode>3,
16453         *zero_extend<GPR:mode>_trunc<SHORT:mode>,
16454         *zero_extendhi_truncqi):  Set alu_type instead of type.
16455
16456 2010-06-26  Douglas B Rupp  <rupp@gnat.com>
16457
16458         * config/alpha/alpha.c (alpha_need_linkage): Adjust
16459         splay_tree_new_ggc call.
16460         (alpha_use_linkage): Likewise.
16461
16462 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
16463
16464         * collect2.c (main): Remove SWITCHES_NEED_SPACES conditional.
16465         * doc/tm.texi (SWITCHES_NEED_SPACES): Don't document.
16466         * gcc.c (SWITCHES_NEED_SPACES, switches_need_spaces): Remove.
16467         (static_specs): Remove switches_need_spaces.
16468         (process_command, do_self_spec): Hardcode handling "-o" instead of
16469         checking switches_need_spaces.
16470         * system.h (SWITCHES_NEED_SPACES): Poison.
16471
16472 2010-06-26  Richard Guenther  <rguenther@suse.de>
16473
16474         PR tree-optimization/44393
16475         * tree-loop-distribution.c (generate_loops_for_partition): Fix
16476         stmt removal and VOP renaming.
16477         (generate_memset_zero): Remove redundant stmt updating.
16478         * tree-flow.h (mark_virtual_ops_in_bb): Remove.
16479         * tree-cfg.c (mark_virtual_ops_in_bb): Likewise.
16480
16481 2010-06-26  Jan Hubicka  <jh@suse.cz>
16482
16483         * ipa-split.c (consider_split): PHI in entry block is OK as long as all
16484         edges comming from header are equivalent.
16485         (visit_bb): Handle PHIs correctly.
16486         * tree-inline.c (copy_phis_for_bb): Be able to copy
16487         PHI from entry edge.
16488         (copy_cfg_body): Produce edge from entry BB before copying PHIs.
16489
16490 2010-06-26  Richard Guenther  <rguenther@suse.de>
16491
16492         PR middle-end/44674
16493         * tree-ssa-alias.c (refs_may_alias_p_1): Allow all kind of
16494         decls.  Handle LABEL_DECLs like FUNCTION_DECLs.
16495
16496 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
16497
16498         * gcc.c (n_switches_alloc, n_infiles_alloc, alloc_infile,
16499         add_infile, alloc_switch): New.
16500         (process_command): Remove variable lang_n_infiles.  Process
16501         options in a single pass.  Use new functions for allocating
16502         infiles and switches arrays.  Properly skip operands of
16503         -Xpreprocessor and -Xassembler.
16504
16505 2010-06-26  Jan Hubicka  <jh@suse.cz>
16506
16507         PR middle-end/44671
16508         * cgraphunit.c (cgraph_function_versioning): Remove wrong
16509         cgraph_make_decl_local call; fix typo copying RTL data.
16510
16511 2010-06-25  DJ Delorie  <dj@redhat.com>
16512
16513         * config/m32c/m32c-protos.h (m32c_note_pragma_address): Declare.
16514         (m32c_output_aligned_common): Likewise.
16515         * config/m32c/m32c.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
16516         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
16517         * config/m32c/m32c-pragma.c (m32c_pragma_address): New.
16518         (m32c_register_pragmas): Register it.
16519         * config/m32c/m32c.c (m32c_get_pragma_address): New.
16520         (m32c_insert_attributes): Set #pragma address decls volatile.
16521         (pragma_entry_eq): New.
16522         (pragma_entry_hash): New.
16523         (m32c_note_pragma_address): New.
16524         (m32c_get_pragma_address): New.
16525         (m32c_output_aligned_common): New.
16526         * doc/extend.texi: Document the new pragma.
16527
16528         * config/m32c/m32c.c (m32c_illegal_subreg_p): Reject illegal MEMs
16529         also.
16530         * config/m32c/predicates.md (m32c_any_operand): Check the code
16531         instead of memory_operand so as to allow matching volatile MEMs.
16532         (m32c_nonimmediate_operand): Likewise.
16533         (mra_operand): Allow volatiles.
16534
16535 2010-06-25  Alexandre Oliva  <aoliva@redhat.com>
16536
16537         PR debug/44610
16538         * simplify-rtx.c (delegitimize_mem_from_attrs): Don't use a base
16539         address if the offset is unknown.
16540
16541 2010-06-25  Douglas B Rupp  <rupp@gnat.com>
16542
16543         * dwarf2out.c (dwarf2out_vms_debug_main_pointer): New function.
16544         * dwarf2out.h (dwarf2out_vms_debug_main_pointer): Declare new function.
16545         * config/ia64/ia64-protos.h (ia64_start_function): Declare.
16546         * config/ia64/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Move contents
16547         to ia64_start_function. Invoke it.
16548         * config/ia64/ia64.c (ia64_start_function): Call new function
16549         dwarf2out_vms_debug_main_pointer.
16550
16551 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
16552
16553         * tree-if-conv.c (insert_gimplified_predicates): Do not insert
16554         statements computing the true predicate.
16555
16556 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
16557
16558         * tree-if-conv.c (init_bb_predicate): Initialize the predicate
16559         to boolean_true_node.
16560         (reset_bb_predicate): New.
16561         (predicate_bbs): Call reset_bb_predicate.
16562
16563 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
16564
16565         * tree-if-conv.c (combine_blocks): Remove FIXME comment.
16566         (tree_if_conversion): Returns true when something has been changed.
16567         (main_tree_if_conversion): Return TODO_cleanup_cfg when if-conversion
16568         changed something.
16569
16570 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
16571
16572         * Makefile.in (tree-if-conv.o): Depends on DBGCNT_H.
16573         * dbgcnt.def (if_conversion_tree): New DEBUG_COUNTER.
16574         * tree-if-conv.c: Include dbgcnt.h.
16575         (tree_if_conversion): Use if_conversion_tree to count the number of
16576         if-convertible loops.
16577
16578 2010-06-25  Changpeng Fang  <changpeng.fang@amd.com>
16579
16580         * common.opt (fprefetch-loop-arrays): Re-define
16581         -fprefetch-loop-arrays as a tri-state option with the initial
16582         value of -1.
16583         * tree-ssa-loop.c (gate_tree_ssa_loop_prefetch): Invoke prefetch
16584         pass only when flag_prefetch_loop_arrays > 0.
16585         * toplev.c (process_options): Note that, with tri-states,
16586         flag_prefetch_loop_arrays>0 means prefetching is enabled.
16587         * config/i386/i386.c (override_options): Enable prefetching at -O3
16588         for a set of CPUs that sw prefetching is helpful.
16589         (software_prefetching_beneficial_p): New.  Return TRUE if software
16590         prefetching is beneficial for the given CPU.
16591
16592 2010-06-25  H.J. Lu  <hongjiu.lu@intel.com>
16593
16594         PR rtl-optimization/44326
16595         * implicit-zee.c (find_removable_zero_extends): Replace
16596         INSN_P with NONDEBUG_INSN_P.
16597
16598 2010-06-25  Martin Jambor  <mjambor@suse.cz>
16599
16600         * ipa-prop.h (struct ipa_param_descriptor): Removed the modified flag.
16601         (struct ipa_node_params): Removed the modification_analysis_done flag.
16602         (ipa_is_param_modified): Removed.
16603         (ipa_analyze_node): Declare.
16604         (ipa_compute_jump_functions): Remove declaration.
16605         (ipa_count_arguments): Likewise.
16606         (ipa_detect_param_modifications): Likewise.
16607         (ipa_analyze_params_uses): Likewise.
16608         * ipa-prop.c (struct param_analysis_info): New type.
16609         (visit_store_addr_for_mod_analysis): Removed.
16610         (visit_load_for_mod_analysis): Renamed to visit_ref_for_mod_analysis,
16611         moved down in the file.
16612         (ipa_detect_param_modifications): Merged into ipa_analyze_params_uses.
16613         (ipa_count_arguments): Made static.
16614         (mark_modified): New function.
16615         (is_parm_modified_before_call): New function.
16616         (compute_pass_through_member_ptrs): New parameter parms_info, call
16617         is_parm_modified_before_call instead of ipa_is_param_modified.
16618         (ipa_compute_jump_functions_for_edge): New parameter parms_info, pass
16619         it to compute_pass_through_member_ptrs.
16620         (ipa_compute_jump_functions): New parameter parms_info, pass it to
16621         ipa_compute_jump_functions_for_edge.  Call ipa_initialize_node_params
16622         on the callee if it is analyzed.  Made static.
16623         (ipa_analyze_indirect_call_uses): New parameter parms_info, call
16624         is_parm_modified_before_call instead of ipa_is_param_modified.
16625         (ipa_analyze_call_uses): New parameter parms_info, pass it to
16626         ipa_analyze_indirect_call_uses.
16627         (ipa_analyze_stmt_uses): New parameter parms_info, pass it to
16628         ipa_analyze_call_uses.
16629         (ipa_analyze_params_uses): New parameter parms_info, pass it to
16630         ipa_analyze_stmt_uses.  Also perform the used analysis.  Made static.
16631         (ipa_analyze_node): New function.
16632         (ipa_print_node_params): Do not dump the modified flag.
16633         (ipa_write_node_info): Assert uses_analysis_done rather than streaming
16634         it.  Do not stream the modified parameter flag.
16635         (ipa_read_node_info): Set uses_analysis_done to 1 instead of streaming
16636         it.  Do not stream the modified parameter flag.
16637         * ipa-cp.c (ipcp_analyze_node): Removed.
16638         (ipcp_init_stage): Iterate only once over the nodes, analyze each one
16639         with only a call to ipa_analyze_node.
16640         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Analyze the
16641         node with only a call to ipa_analyze_node.
16642
16643 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
16644
16645         * doc/invoke.texi (-Wsuggest-attribute): Add item for noreturn.
16646
16647 2010-06-25  Jan Hubicka  <jh@suse.cz>
16648
16649         * tree-pass.h (pass_split_functions): Declare.
16650         * opts.c (decode_options): Enable function splitting at -O2
16651         * timevar.def (TV_IPA_FNSPLIT): New macro.
16652         * ipa-split.c: New file.
16653         * common.opt (-fpartial-inlining): New flag.
16654         * Makefile.in (ipa-split.o): New object file.
16655         * passes.c (init_optimization_passes): Add ipa-split.
16656         * params.def (partial-inlining-entry-probability): New parameters.
16657         * doc/invoke.texi (-fpartial-inlining): New.
16658
16659 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
16660
16661         PR 44665
16662         * tree-inline.c (gimple_expand_calls_inline): Fix typo in comment.
16663         * gimplify.c (is_gimple_reg_rhs_or_call): Likewise.
16664         (gimplify_expr): Likewise.
16665
16666 2010-06-25  Martin Jambor  <mjambor@suse.cz>
16667
16668         * ipa-prop.c (determine_cst_member_ptr): Ignore non-clobbering
16669         statements instead of bailing out on them.
16670         (ipa_analyze_indirect_call_uses): Do not require that loads from the
16671         parameter are in the same BB as the condition.  Update comments.
16672
16673 2010-06-25  Jakub Jelinek  <jakub@redhat.com>
16674
16675         PR middle-end/43866
16676         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): If stmt is always
16677         true or always false, return NULL_TREE.
16678         (tree_unswitch_single_loop): Optimize conditions even when reaching
16679         max-unswitch-level parameter.  If num > 0, optimize first all conditions
16680         using entry checks, then do still reachable block discovery and consider
16681         only conditions in still reachable basic blocks in the loop.
16682
16683         PR tree-optimization/44539
16684         * tree-cfgcleanup.c (fixup_noreturn_call): Call update_stmt even when
16685         the call doesn't have LHS, but has VDEF.
16686
16687 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
16688
16689         * config/pa/pa.h (MODIFY_TARGET_NAME): Remove.
16690         * doc/tm.texi (MODIFY_TARGET_NAME): Don't document.
16691         * gcc.c (enum add_del, struct modify_target, modify_target): Remove.
16692         (process_command): Remove code conditional on MODIFY_TARGET_NAME.
16693         * system.h (MODIFY_TARGET_NAME): Poison.
16694
16695 2010-06-25  Alan Modra  <amodra@gmail.com>
16696
16697         * doc/invoke.texi: Delete mcmodel=medium from powerpc options.
16698         * config/rs6000/rs6000.h (enum rs6000_cmodel): Delete CMODEL_MEDIUM.
16699         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
16700         CMODEL_LARGE as default.
16701         * config/rs6000/rs6000.c (rs6000_handle_option): Remove mcmodel=medium.
16702         (offsettable_ok_by_alignment): Delete.
16703         (rs6000_emit_move): Remove mcmodel=medium optimization.
16704
16705 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
16706
16707         With large parts from Jim Wilson:
16708         PR target/43902
16709         * tree-pretty-print.c (dump_generic_node, op_code_prio): Add
16710         WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
16711         * optabs.c (optab_for_tree_code): Likewise.
16712         (expand_widen_pattern_expr): Likewise.
16713         * tree-ssa-math-opts.c (convert_mult_to_widen): New function, broken
16714         out of execute_optimize_widening_mul.
16715         (convert_plusminus_to_widen): New function.
16716         (execute_optimize_widening_mul): Use the two new functions.
16717         * expr.c (expand_expr_real_2): Add support for GIMPLE_TERNARY_RHS.
16718         Remove code to generate widening multiply-accumulate.  Add support
16719         for WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
16720         * gimple-pretty-print.c (dump_ternary_rhs): New function.
16721         (dump_gimple_assign): Call it when appropriate.
16722         * tree.def (WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR): New codes.
16723         * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
16724         (expand_gimple_stmt_1): Likewise.
16725         (expand_debug_expr): Support WIDEN_MULT_PLUS_EXPR and
16726         WIDEN_MULT_MINUS_EXPR.
16727         * tree-ssa-operands.c (get_expr_operands): Likewise.
16728         * tree-inline.c (estimate_operator_cost): Likewise.
16729         * gimple.c (extract_ops_from_tree_1): Renamed from
16730         extract_ops_from_tree.  Add new arg for a third operand; fill it.
16731         (gimple_build_assign_stat): Support operations with three operands.
16732         (gimple_build_assign_with_ops_stat): Likewise.
16733         (gimple_assign_set_rhs_from_tree): Likewise.
16734         (gimple_assign_set_rhs_with_ops_1): Renamed from
16735         gimple_assign_set_rhs_with_ops.  Add new arg for a third operand.
16736         (get_gimple_rhs_num_ops): Support GIMPLE_TERNARY_RHS.
16737         (get_gimple_rhs_num_ops): Handle WIDEN_MULT_PLUS_EXPR and
16738         WIDEN_MULT_MINUS_EXPR.
16739         * gimple.h (enum gimple_rhs_class): Add GIMPLE_TERNARY_RHS.
16740         (extract_ops_from_tree_1): Adjust declaration.
16741         (gimple_assign_set_rhs_with_ops_1): Likewise.
16742         (gimple_build_assign_with_ops): Pass NULL for last operand.
16743         (gimple_build_assign_with_ops3): New macro.
16744         (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3,
16745         gimple_assign_set_rhs_with_ops, extract_ops_from_tree): New inline
16746         functions.
16747         * tree-cfg.c (verify_gimple_assign_ternary): New static function.
16748         (verify_gimple_assign): Call it.
16749         * doc/gimple.texi (Manipulating operands): Document GIMPLE_TERNARY_RHS.
16750         (Tuple specific accessors, subsection GIMPLE_ASSIGN): Document new
16751         functions for dealing with three-operand statements.
16752         * tree.c (commutative_ternary_tree_code): New function.
16753         * tree.h (commutative_ternary_tree_code): Declare it.
16754         * tree-vrp.c (gimple_assign_nonnegative_warnv_p): Return false for
16755         ternary statements.
16756         (gimple_assign_nonzero_warnv_p): Likewise.
16757         * tree-ssa-sccvn.c (stmt_has_constants): Handle GIMPLE_TERNARY_RHS.
16758         * tree-ssa-ccp.c (get_rhs_assign_op_for_ccp): New static function.
16759         (ccp_fold): Use it.  Handle GIMPLE_TERNARY_RHS.
16760         * tree-ssa-dom.c (enum expr_kind): Add EXPR_TERNARY.
16761         (struct hashtable_expr): New member ternary in the union.
16762         (initialize_hash_element): Handle GIMPLE_TERNARY_RHS.
16763         (hashable_expr_equal_p): Fix indentation.  Handle EXPR_TERNARY.
16764         (iterative_hash_hashable_expr): Likewise.
16765         (print_expr_hash_elt): Handle EXPR_TERNARY.
16766         * gimple-fold.c (fold_gimple_assign): Handle GIMPLE_TERNARY_RHS.
16767         * tree-ssa-threadedge.c (fold_assignment_stmt): Remove useless break
16768         statements.  Handle GIMPLE_TERNARY_RHS.
16769
16770 2010-06-25  Jan Hubicka  <jh@suse.cz>
16771
16772         * doc/invoke.texi (-Wsuggest-attribute): Add noreturn.
16773
16774 2010-06-25  Shujing Zhao  <pearly.zhao@oracle.com>
16775
16776         PR c/44517
16777         * c-parser.c (c_parser_parms_list_declarator): Return NULL if one of
16778         parameters are not good.
16779         (c_parser_parameter_declaration): Error unknown type name if the type
16780         name can't start declaration specifiers.
16781
16782 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
16783
16784         * gcc.c (translate_options): Don't mention +e in comment.
16785         (process_command): Don't handle +e specially.
16786
16787 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
16788
16789         * ira.c (allocno_pool, copy_pool, allocno_live_range_pool): Delete.
16790
16791         * ira-build.c (merge_hard_reg_conflicts): New function.
16792         (create_cap_allocno, copy_info_to_removed_store_destinations,
16793         propagate_some_info_from_allocno, propagate_allocno_info): Use it.
16794         (move_allocno_live_ranges, copy_allocno_live_ranges): New functions.
16795         (remove_unnecessary_allocnos, remove_low_level_allocnos)
16796         copy_nifo_to_removed_store_destination): Use them.
16797         * ira-lives.c (make_hard_regno_born): New function, split out of
16798         make_regno_born.
16799         (make_allocno_born): Likewise.
16800         (make_hard_regno_dead): New function, split out of make_regno_dead.
16801         (make_allocno_dead): Likewise.
16802         (inc_register_pressure): New function, split out of set_allocno_live.
16803         (dec_register_pressure): New function, split out of clear_allocno_live.
16804         (mark_pseudo_regno_live): New function, split out of mark_reg_live.
16805         (mark_hard_reg_live): Likewise.  Use inc_register_pressure.
16806         (mark_pseudo_regno_dead): New function, split out of mark_reg_dead.
16807         (mark_hard_reg_dead): Likewise.  Use dec_register_pressure.
16808         (make_pseudo_conflict): Use mark_pseudo_regno_dead and
16809         mark_pseudo_regno_live.
16810         (process_bb_node_lives): Use mark_pseudo_regno_live,
16811         make_hard_regno_born and make_allocno_dead.
16812         (make_regno_born, make_regno_dead, mark_reg_live, mark_reg_dead,
16813         set_allocno_live, clear_allocno_live): Delete functions.
16814
16815         * ira-int.h (ira_parent_allocno, ira_parent_or_cap_allocno): Declare.
16816         * ira-build.c (ira_parent_allocno, ira_parent_or_cap_allocno): New
16817         functions.
16818         (ira_flattening): Use ira_parent_allocno.
16819         * ira-conflicts.c (process_regs_for_copy, propagate_copies)
16820         build_allocno_conflicts): Use ira_parent_or_cap_allocno.
16821
16822         * ira-color.c (assign_hard_reg): Improve formatting of multi-line for
16823         statement.
16824
16825         * ira-int.h (SET_MINMAX_SET_BIT, CLEAR_MINMAX_SET_BIT,
16826         TEST_MINMAX_SET_BIT, minmax_set_iterator, minmax_set_iter_init,
16827         minmax_set_iter_cond, minmax_set_iter_next,
16828         FOR_EACH_BIT_IN_MINMAX_SET): Renamed from SET_ALLOCNO_SET_BIT,
16829         CLEAR_ALLOCNO_SET_BIT, TEST_ALLOCNO_SET_BIT, ira_allocno_set_iterator,
16830         ira_allocno_set_iter_init, ira_allocno_set_iter_cond,
16831         ira_allocno_set_iter_Next and FOR_EACH_ALLOCNO_IN_ALLOCNO_SET.  All
16832         uses changed.
16833
16834         * ira-int.h (struct live_range, live_range_t): Renamed from struct
16835         ira_allocno_live_range and allocno_live_range_t; all uses changed.
16836         * ira-build.c (live_range_pool): Renamed from allocno_live_range_pool.
16837         All uses changed.
16838
16839 2010-06-24  Richard Earnshaw  <rearnsha@arm.com>
16840
16841         * thumb2.md (thumb2_tlobits_cbranch): Delete.
16842         (peephole2 to convert zero_extract/compare of single bit to
16843          lshift/compare): New.
16844
16845 2010-06-24  Anatoly Sokolov  <aesok@post.ru>
16846
16847         * fold-const.c (const_binop): Remove 'notrunc' argement. Adjust
16848         recursive call and call to 'int_const_binop'.
16849         (build_range_check, fold_cond_expr_with_comparison, unextend,
16850         fold_truthop, extract_muldiv_1, fold_comparison, fold_binary_loc,
16851         multiple_of_p): Adjust call to const_binop.
16852
16853 2010-06-24  Uros Bizjak  <ubizjak@gmail.com>
16854
16855         * config/i386/i386.md (XFmode push splitter): Use GET_MODE_SIZE to
16856         determine size of XFmode operand.
16857         (XFmode extended DFmode push splitter): Ditto.
16858         (XFmode extended SFmode push splitter): Ditto.
16859
16860 2010-06-24  H.J. Lu  <hongjiu.lu@intel.com>
16861
16862         PR target/44588
16863         * config/i386/i386.md (extract_code): New.
16864         (<u>divmodqi4): Likewise.
16865         (divmodhiqi3): Likewise.
16866         (udivmodhiqi3): Likewise.
16867         (<u>divqi3): Remvoved.
16868
16869 2010-06-24  Jakub Jelinek  <jakub@redhat.com>
16870
16871         PR middle-end/44492
16872         * recog.h (struct recog_data): Add is_asm field.
16873         * recog.c (asm_operand_ok, constrain_operands): If neither < nor > is
16874         present in constraints of inline-asm operand and memory operand
16875         contains {PRE,POST}_{INC,DEC,MODIFY}, return 0.
16876         (extract_insn): Initialize recog_data.is_asm.
16877         * doc/md.texi (Constraints): Document operand side-effect rules.
16878
16879 2010-06-24  Andi Kleen  <ak@linux.intel.com>
16880
16881         * c-parser.c (c_parser_conditional_expression): Call
16882         warn_for_omitted_condop.
16883         * doc/invoke.texi: Document omitted condop warning.
16884
16885 2010-06-24  Nick Clifton<nickc@redhat.com>
16886
16887         * loop-unswitch.c (compare_and_jump_seq): Assert that the last
16888         insn in the sequence is a jump insn before setting its label.
16889
16890 2010-06-24  Alan Modra  <amodra@gmail.com>
16891
16892         * collect2.c (main): Match exactly --version and --help.
16893
16894 2010-06-24  DJ Delorie  <dj@redhat.com>
16895
16896         * config/m32c/m32c-pragma.c: Don't include rtl.h.
16897
16898 2010-06-23  Uros Bizjak  <ubizjak@gmail.com>
16899
16900         * config/i386/i386.md (mov<mode>): Macroize expander from mov{sf,df,xf}
16901         using X87MODEF mode iterator.
16902         (pushsf splitter): Macroize splitter using P mode iterator.
16903         (*swap<mode>): Macroize insn from *swap{sf,df} using MODEF
16904         mode iterator.
16905
16906         (*movxf_internal): Rename from *movxf_integer.
16907         (*movxf_internal_nointeger): Rename from *movxf_nointeger.
16908         (*movdf_internal_rex64): Rename from *movdf_integer_rex64.
16909         (*movdf_internal): Rename from *movdf_integer.
16910         (*movdf_internal_nointeger): Rename from *movdf_nointeger.
16911         (*movsf_internal): Rename from *movdf_1.
16912
16913 2010-06-23  Basile Starynkevitch  <basile@starynkevitch.net>
16914
16915         * coretypes.h (gimple_seq_node_d, gimple_seq_node)
16916         (const_gimple_seq_node): Removed typedefs.
16917
16918         * gimple.h (gimple_seq_node_d, gimple_seq_node)
16919         (const_gimple_seq_node): Added typedefs moved from coretypes.h.
16920
16921 2010-06-23  H.J. Lu  <hongjiu.lu@intel.com>
16922
16923         * config/i386/i386.c (bdesc_args): Replace CODE_FOR_avx_si_si256,
16924         CODE_FOR_avx_ps_ps256 and CODE_FOR_avx_pd_pd256 with
16925         CODE_FOR_vec_extract_lo_v8si, CODE_FOR_vec_extract_lo_v8sf
16926         and CODE_FOR_vec_extract_lo_v4df.
16927
16928         * config/i386/sse.md (vec_extract_lo_<AVX256MODE4P:mode>):
16929         Changed to define_insn_and_split.
16930         (vec_extract_lo_<AVX256MODE8P:mode>): Likewise.
16931         (vec_extract_lo_v16hi): Likewise.
16932         (vec_extract_lo_v32qi): Likewise.
16933         (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
16934         (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Removed.
16935
16936 2010-06-23  Joern Rennecke  <joern.rennecke@embecosm.com>
16937
16938         PR target/44640
16939         * config/spu/spu-protos.h (spu_expand_epilogue) Use bool.
16940         * config/spu/spu.c (spu_scalar_mode_supported_p): Declare with bool.
16941         (spu_vector_mode_supported_p, spu_handle_fndecl_attribute): Likewise.
16942         (spu_handle_vector_attribute, spu_pass_by_reference): Likewise.
16943         (spu_rtx_costs, spu_function_ok_for_sibcall): Likewise.
16944
16945         PR target/44640
16946         * config/spu/spu.c (ea_load_store_inline): Use add_reg_note.
16947
16948         PR other/44644
16949         * df-core.c (struct df): Rename to df_d.
16950         * df.h (struct df): Likewise.
16951         * dse.h (struct df): Remove forward declaration.
16952         * recog.h (struct insn_data): Rename to:
16953         (struct_insn_data_d).  Adjusted all users.
16954
16955 2010-06-23  Arnaud Charlet  <charlet@adacore.com
16956
16957         PR ada/22220
16958         * doc/install.texi: Update requirements to build GNAT.
16959
16960 2010-06-22  Andreas Schwab  <schwab@linux-m68k.org>
16961
16962         * config/m68k/m68k.c (m68k_output_addr_const_extra): Add cast to
16963         enum type.
16964         (m68k_sched_attr_opx_type): Remove unreachable return.
16965         (m68k_sched_attr_opy_type): Likewise.
16966         (m68k_sched_attr_size): Likewise.
16967         (sched_get_opxy_mem_type): Likewise.
16968         (m68k_sched_attr_op_mem): Likewise.
16969
16970 2010-06-22  Eric Botcazou  <ebotcazou@adacore.com>
16971
16972         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Chain the
16973         new statement and adjust VDEF only if necessary.  Remove superfluous
16974         call to maybe_clean_or_replace_eh_stmt.
16975         * gimple.c (gimple_call_copy_skip_args): Use gimple_call_copy_flags to
16976         copy the flags.
16977         * gimple-iterator.c (gsi_replace): Clear BB of old statement here...
16978         * tree-inline.c (copy_bb): ...and not there.
16979
16980 2010-06-22  Cary Coutant  <ccoutant@google.com>
16981
16982         * dwarf2out.c (is_nested_in_subprogram): New function.
16983         (should_move_die_to_comdat): Use it.
16984         (copy_ancestor_tree): Don't mark DIEs here.
16985         (copy_decls_walk): Start walk from root of newly-added tree;
16986         mark DIEs here instead.
16987
16988 2010-06-22  H.J. Lu  <hongjiu.lu@intel.com>
16989
16990         * config/i386/i386.md (unit): Also check sseishft1.
16991
16992 2010-06-22  Jan Hubicka  <jh@suse.cz>
16993
16994         * gimple.h (gimple_expr_code): Do checking on when gimple checking is
16995         enabled.
16996
16997 2010-06-22  Jan Hubicka  <jh@suse.cz>
16998
16999         * df-problems.c (df_rd_confluence_n, df_lr_confluence_n,
17000         df_live_confluence_n, df_byte_lr_confluence_n, df_md_confluence_n):
17001         Return true if something changed.
17002         * df.h (df_confluence_function_n): Return bool.
17003         * df-core.c (df_worklist_propagate_forward,
17004         df_worklist_propagate_backward): Track changes and ages.
17005         (df_worklist_dataflow_doublequeue): Use bitmap iterator for main walk;
17006         track ages.
17007         * dse.c (dse_confluence_n): Return always true.
17008
17009 2010-06-22  Jan Hubicka  <jh@suse.cz>
17010
17011         * bitmap.c (bitmap_clear_bit): Micro optimize.
17012
17013 2010-06-22  Uros Bizjak  <ubizjak@gmail.com>
17014
17015         * config/i386/i386.md (SWI1248x): New mode iterator.
17016         (SWI48x): Ditto.
17017         (SWI12): Ditto.
17018         (SWI24): Ditto.
17019
17020         (mov<mode>): Macroize expander from mov{qi,hi,si,di} using
17021         SWI1248x mode iterator.
17022         (*push<mode>2_rex64): Macroize insn from *push{qi,hi,si}_rex64
17023         using SWI124 mode iterator.
17024         (*push<mode>2): Macroize insn from *push{qi,hi} using SWI12
17025         mode iterator.
17026         (*push<mode>2_prologue): Macroize insn from  *pushsi2_prologue and
17027         *pushdi2_prologue_rex64 using P mode iterator.
17028         (*mov<mode>_xor): Macroize insn from *movsi_xor and *movdi_xor_rex64
17029         using SWI48 mode iterator.
17030         (*mov<mode>_or): Ditto from *movsi_or and *movdi_or_rex64.
17031         (*movabs<mode>_1): Macroize insn from *movabs{qi,hi,si,di}_1_rex64
17032         using SWI1248x mode iterator.
17033         (*movabs<mode>_2): Ditto from *movabs{qi,hi,si,di}_1_rex64.
17034         (*swap<mode>): Macroize insn from *swapsi and *swapdi_rex64 using
17035         SWI48 mode iterator.
17036         (*swap<mode>_1): Macroize insn from *swap{qi,hi}_1 using SWI12 mode
17037         iterator.
17038         (*swap<mode>_2): Ditto from *swap{qi,hi}_2.
17039         (movstrict<mode>): Macroize expander from movstrict{qi,hi} using
17040         SWI12 mode iterator.
17041         (*movstrict<mode>_1): Macroize insn from *movstrict{qi,hi}_1 using
17042         SWI12 mode iterator.
17043         (*movstrict<mode>_xor): Ditto from *movstrict{qi,hi}_xor.
17044         (*mov<mode>_extv_1): Macroize insn from *mov{hi,si}_extv_1 using
17045         SWI24 mode iterator.
17046         (*mov<mode>_extzv_1): Macroize insn from *mov{si,di}_extzv_1 using
17047         SWI48 mode iterator.
17048         (mov<mode>_insn_1): New expander.
17049         (*mov<mode>_insv_1_rex64): Macroize insn from *mov{si,di}_insv_1_rex64
17050         using SWI48x mode iterator.
17051
17052         (*movoi_internal_avx): Rename from *movoi_internal.
17053         (*movti_internal_rex64): Rename from *movti_rex64.
17054         (*movti_internal_sse): Rename from *movti_sse.
17055         (*movdi_internal_rex64): Rename from *movdi_1_rex64.
17056         (*movdi_internal): Rename from *movdi_2.
17057         (*movsi_internal): Rename from *movsi_1.
17058         (*movhi_internal): Rename from *movhi_1.
17059         (*movqi_internal): Rename from *movqi_1.
17060
17061         (insv): Update the call to gen_movsi_insv_1 for rename.
17062         * config/i386/i386.c (promote_duplicated_reg): Ditto.
17063
17064 2010-06-22  Jan Hubicka  <jh@suse.cz>
17065
17066         * passes.c (execute_function_todo): Move call of statistics_fini_pass
17067         to ...
17068         (execute_todo) ... this one.
17069
17070 2010-06-22  Alan Modra  <amodra@gmail.com>
17071
17072         PR target/44364
17073         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
17074         * caller-save.c (insert_restore, insert_save): Use non-validate
17075         form of adjust_address.
17076
17077 2010-06-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17078
17079         PR target/39690
17080         * config/pa/pa.c (override_options): Disable
17081         -freorder-blocks-and-partition.
17082
17083 2010-06-21  H.J. Lu  <hongjiu.lu@intel.com>
17084
17085         PR target/44615
17086         * config/i386/atom.md (atom_sseishft_2): Also check sseishft1.
17087
17088         * config/i386/i386.md (type): Add sseishft1
17089
17090         * config/i386/ppro_insn (ppro_insn): Also check sseishft1.
17091         (ppro_insn_load): Likewise.
17092         (ppro_insn_store): Likewise.
17093         (ppro_insn_both): Likewise.
17094
17095         * config/i386/sse.md (sse2_lshrv1ti3): Add atom_unit.
17096         (*vec_extractv2di_1_rex64_avx): Replace sseishft with sseishft1
17097         for type.
17098         (*vec_extractv2di_1_avx): Likewise.
17099         (*vec_extractv2di_1_rex64): Replace sseishft with sseishft1 for
17100         type.  Remove atom_unit.
17101         (*vec_extractv2di_1_sse2): Likewise.
17102
17103 2010-06-21  DJ Delorie  <dj@redhat.com>
17104
17105         * diagnostic.h (diagnostic_classification_change_t): New.
17106         (diagnostic_context): Add history and push/pop list.
17107         (diagnostic_push_diagnostics): Declare.
17108         (diagnostic_pop_diagnostics): Declare.
17109         * diagnostic.c (diagnostic_classify_diagnostic): Store changes
17110         from pragmas in a history chain instead of the global table.
17111         (diagnostic_push_diagnostics): New.
17112         (diagnostic_pop_diagnostics): New.
17113         (diagnostic_report_diagnostic): Scan history chain to find state
17114         of diagnostics as of the diagnostic location.
17115         * opts.c (set_option): Pass UNKNOWN_LOCATION to
17116         diagnostic_classify_diagnostic.
17117         (enable_warning_as_error): Likewise.
17118         * diagnostic-core.h (DK_POP): Add after "real" diagnostics, for
17119         use in the history chain.
17120         * doc/extend.texi: Document pragma GCC diagnostic changes.
17121
17122 2010-06-21  Jakub Jelinek  <jakub@redhat.com>
17123
17124         * dwarf2out.c (add_linkage_name): New function.  Don't add
17125         anything to DW_TAG_member DIEs.
17126         (add_name_and_src_coords_attributes): Use it.
17127         (gen_variable_die): Call it for C++ static data members if
17128         specification is DW_TAG_member.
17129
17130         * dwarf2out.c (base_type_die): Use DW_ATE_UTF for
17131         C++ char16_t and char32_t.
17132
17133         * Makefile.in (build/genattrtab.o): Depend on vecprim.h.
17134         * genattrtab.c: Include vecprim.h.
17135         (cached_attrs, cached_attr_count, attrs_seen_once,
17136         attrs_seen_more_than_once, attrs_to_cache, attrs_cached_inside,
17137         attrs_cached_after): New variables.
17138         (find_attrs_to_cache): New function.
17139         (FLG_BITWISE, FLG_AFTER, FLG_INSIDE, FLG_OUTSIDE_AND): Define.
17140         (write_test_expr): Add attrs_cached argument, return it too,
17141         attempt to cache non-const attributes used more than once in
17142         a single case handling.
17143         (write_attr_get): Use find_attrs_to_cache, for caching candidates
17144         emit cached_* variables.  Adjust write_attr_set callers.
17145         (write_attr_set): Add attrs_cached attribute, use find_attrs_to_cache
17146         to find attributes that should be cached in this block.  Adjust
17147         write_test_expr callers.
17148         (write_attr_case): Clear attrs_to_cache.  Adjust write_attr_set
17149         callers.
17150         (make_automaton_attrs): Adjust write_test_expr caller.
17151
17152         * Makefile.in (cfgexpand.o): Depend on $(INSN_ATTR_H).
17153         * genattrtab.c (check_tune_attr, find_tune_attr): New functions.
17154         (make_automaton_attrs): If find_tune_attr returns non-NULL,
17155         write separate internal_dfa_insn_code_* and insn_default_latency_*
17156         functions for each attribute's value and emit init_sched_attrs
17157         function and function pointers.
17158         * genattr.c (const_attrs, reservations): New variables.
17159         (gen_attr): Add const attributes to const_attrs vector.
17160         (check_tune_attr, find_tune_attr): New functions.
17161         (main): Add reservations to reservations vector.  If find_tune_attr
17162         returns true, add prototype for init_sched_attrs and make
17163         internal_dfa_insn_code and insn_default_latency function pointers,
17164         otherwise define init_sched_attrs as dummy macro.
17165         * cfgexpand.c: Include insn-attr.h.
17166         (gimple_expand_cfg): Call init_sched_attrs.
17167
17168         * stmt.c (resolve_asm_operand_names): Fix handling of %%.
17169
17170         PR target/44575
17171         * config/i386/i386.c (ix86_gimplify_va_arg): When copying
17172         va_arg from a set of register save slots into a temporary,
17173         if the container is bigger than type size, do the copying
17174         using smaller mode or using memcpy.
17175
17176         PR bootstrap/44426
17177         * sel-sched-dump.h (sel_prepare_string_for_dot_label): Remove
17178         prototype.
17179         (sel_print_to_dot): Remove macro.
17180         (sel_print): Likewise.  New prototype.
17181         * sel-sched-dump.c (sel_prepare_string_for_dot_label): Make static.
17182         (sel_print): New function.
17183
17184 2010-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17185
17186         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define
17187         __STDC_VERSION__=199901L, _XOPEN_SOURCE=600 for C++.
17188
17189 2010-06-21  Nick Clifton  <nickc@redhat.com>
17190
17191         * config/rx/rx.h (PTRDIFF_TYPE): Define.
17192         (SMALL_REGISTER_CLASS): Define (to zero).
17193         (PRINT_OPERAND): Delete.
17194         (PRINT_OPERAND_ADDRESS): Delete.
17195         * config/rx/rx-protos.h (rx_print_operand): Delete prototype.
17196         (rx_print_operand_address): Delete prototype.
17197         * config/rx/rx.c (rx_print_operand): Make static.
17198         Allow %H and %L to handle CONST_DOUBLEs.
17199         (rx_print_operand_address): Make static.
17200         (rx_gen_move_template): Rename local variable 'template' to
17201         out_template.
17202         (rx_function_arg): Do not pass unknown sized objects in registers.
17203         (TARGET_PRINT_OPERAND): Define.
17204         (TARGET_PRINT_OPERAND_ADDRESS): Define.
17205
17206 2010-06-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
17207
17208         * Makefile.in (POD2MAN): Provide --date from $(DATESTAMP).
17209
17210 2010-06-21  Kai Tietz  <kai.tietz@onevision.com>
17211
17212         * config/i386/i386.c (ix86_compute_frame_layout): Avoid
17213         stack-alignment for simple leaf-functions.
17214
17215 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
17216
17217         * doc/install.texi: Document bootstrap-lto.
17218
17219 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
17220
17221         PR debug/44248
17222         * lto-streamer-in.c (input_bb): Leave debug stmts alone.
17223         (input_function): Drop them here, if VTA is disabled.
17224
17225 2010-06-20  Uros Bizjak  <ubizjak@gmail.com>
17226
17227         PR target/44546
17228         * config/i386/predicates.md (ix86_swapped_fp_comparsion_operator):
17229         New predicate.
17230         * config/i386/i386.md (*fp_jcc_8<mode>_387 and splitters): Use
17231         ix86_swapped_fp_comparsion_operator instead of
17232         ix86_fp_comparison_operator.
17233
17234         (*fp_jcc_1_387): Rename from *fp_jcc_3_387.
17235         (*fp_jcc_1r_387): Rename from *fp_jcc_4_387.
17236         (*fp_jcc_2_387): Rename from *fp_jcc_5_387.
17237         (*fp_jcc_2r_387): Rename from *fp_jcc_6_387.
17238         (*fp_jcc_3_387): Rename from *fp_jcc_7_387.
17239         (*fp_jcc_4_<mode>_387): Rename from *fp_jcc_8<mode>_387.
17240
17241 2010-06-20  Joseph Myers  <joseph@codesourcery.com>
17242
17243         PR other/32998
17244         * opth-gen.awk: Generate definitions of OPT_SPECIAL_unknown,
17245         OPT_SPECIAL_program_name and OPT_SPECIAL_input_file.
17246         * opts-common.c (find_opt): Return OPT_SPECIAL_unknown on failure.
17247         (decode_cmdline_option): Update for this return value.  Set
17248         orig_option_with_args_text field.  Set arg field for unknown
17249         options.  Make static.
17250         (decode_cmdline_options_to_array): New.
17251         (prune_options): Update handling of find_opt return value.
17252         * opts.c (read_cmdline_option): Take decoded option.  Return void.
17253         (read_cmdline_options): Take decoded options.
17254         (decode_options): Add parameters for decoded options.  Use
17255         decode_cmdline_options_to_array.  Use decoded options for -O
17256         scan.  Use integral_argument for -O parameters.  Update call to
17257         read_cmdline_options.
17258         (enable_warning_as_error): Update handling of find_opt return value.
17259         * opts.h: Update comment on unknown options.
17260         (struct cl_decoded_option): Update comments on opt_index and arg.
17261         Add orig_option_with_args_text.
17262         (decode_cmdline_option): Remove.
17263         (decode_cmdline_options_to_array): Declare.
17264         (decode_options): Update prototype.
17265         * toplev.c (save_argv): Remove.
17266         (save_decoded_options, save_decoded_options_count): New.
17267         (read_integral_parameter): Remove.
17268         (print_switch_values): Use decoded options.
17269         (toplev_main): Don't set save_argv.  Update call to decode_options.
17270         * toplev.h (read_integral_parameter): Remove.
17271         * varasm.c (elf_record_gcc_switches): Don't handle holding back names.
17272
17273 2010-06-19  Richard Earnshaw  <rearnsha@arm.com>
17274
17275         PR target/44072
17276         * arm.md (cmpsi2_addneg): Prefer emitting adds to subs with a negative
17277         immediate.
17278         * constraints.md (Pw, Px): New constraints.
17279         * thumb2.md (cmpsi2_addneg peephole2): New peepholes.
17280
17281 2010-06-19  H.J. Lu  <hongjiu.lu@intel.com>
17282
17283         * config/i386/sse.md (fma4modesuffixf4): Removed.
17284         (ssemodesuffixf2s): Likewise.
17285         (ssemodesuffixf4): Likewise.
17286         (ssemodesuffixf2c): Likewise.
17287         (ssescalarmodesuffix2s): Likewise.
17288         (avxmodesuffixf2c): Likewise.
17289         (ssemodesuffix): New.
17290         (ssescalarmodesuffix): Likewise.
17291         Update patterns with ssemodesuffix and ssescalarmodesuffix.
17292
17293 2010-06-19  Philip Herron  <herron.philip@googlemail.com>
17294
17295         * c-decl.c (c_write_global_declarations): Don't check flag_syntax_only.
17296
17297 2010-06-18  H.J. Lu  <hongjiu.lu@intel.com>
17298
17299         * stor-layout.c (debug_rli): Remove unused local variables.
17300
17301 2010-06-18  Eric Botcazou  <ebotcazou@adacore.com>
17302
17303         PR rtl-optimization/40900
17304         * expr.c (expand_expr_real_1) <SSA_NAME>: Fix long line.  Save the
17305         original expression for later reuse.
17306         <expand_decl_rtl>: Use promote_function_mode to compute the signedness
17307         of the promoted RTL for a SSA_NAME on the LHS of a call statement.
17308
17309 2010-06-18  Anatoly Sokolov  <aesok@post.ru>
17310
17311         * double-int.h (double_int_to_shwi, double_int_to_uhwi,
17312         double_int_fits_in_uhwi_p): Implement as static inline.
17313         (double_int_xor): New inline function.
17314         (double_int_lrotate, double_int_rrotate, double_int_max,
17315         double_int_umax, double_int_smax, double_int_min, double_int_umin,
17316         double_int_smin): Declare.
17317         (lrotate_double, rrotate_double): Remove declaration.
17318         * double-int.c (double_int_fits_in_uhwi_p, double_int_to_shwi,
17319         double_int_to_uhwi, lrotate_double, rrotate_double): Remove function.
17320         (double_int_lrotate, double_int_rrotate, double_int_max,
17321         double_int_umax, double_int_smax, double_int_min, double_int_umin,
17322         double_int_smin): New function.
17323         * fold-const.c (int_const_binop): Clean up, use double_int_*
17324         functions.
17325         * simplify-rtx.c (simplify_const_binary_operation): Clean up, use
17326         double_int_* and immed_double_int_const functions.
17327
17328 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
17329
17330         * function.h (types_used_by_cur_var_decl): Change type to a VEC.
17331         * function.c (types_used_by_cur_var_decl): Likewise.
17332         (used_types_insert): Adjust for new type of types_used_by_cur_var_decl.
17333
17334 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
17335
17336         * tree.h (record_layout_info): Change type of pending_statics field
17337         to a VEC.
17338         * stor-layout.c (start_record_layout): Store NULL into
17339         pending_statics.
17340         (debug_rli): Call debug_vec_tree instead of debug_tree.
17341         (place_field): Likewise.
17342         (finish_record_layout): Likewise.
17343
17344 2010-06-18  Alan Modra  <amodra@gmail.com>
17345
17346         * config/rs6000/linux64.h (SET_CMODEL): Don't expand to empty.
17347
17348 2010-06-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17349
17350         PR target/43740
17351         * config/pa/pa.c (emit_move_sequence): Don't infer REG_POINTER flag
17352         for SET source operand from SET destination operand.
17353
17354 2010-06-17  Bernd Schmidt  <bernds@codesourcery.com>
17355
17356         PR rtl-optimization/39871
17357         * reload1.c (init_eliminable_invariants): For flag_pic, disable
17358         equivalences only for constants that aren't LEGITIMATE_PIC_OPERAND_P.
17359         (function_invariant_p): Rule out a plus of frame or arg pointer with
17360         a SYMBOL_REF.
17361         * ira.c (find_reg_equiv_invariant_const): Likewise.
17362
17363 2010-06-17  Gunther Nikl  <gnikl@users.sourceforge.net>
17364
17365         * config/rs6000/rs6000.c (print_operand) <'K'>: Also use
17366         print_operand_address and puts to output the operand for CONST.
17367
17368 2010-06-17  Jakub Jelinek  <jakub@redhat.com>
17369
17370         PR debug/44572
17371         * dwarf2out.c (dwarf2out_debug_hooks): Add entry for begin_epilogue
17372         hook.
17373
17374 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
17375
17376         * v850-protos.h (print_operand): Delete.
17377         (print_operand_address): Delete.
17378         * v850.h (PRINT_OPERAND): Delete.
17379         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
17380         (PRINT_OPERAND_ADDRESS): Delete.
17381         * v850.c (print_operand_address): Rename to...
17382         (v850_print_operand_address): ...this.  Make static. Call
17383         v850_print_operand.
17384         (print_operand): Rename to...
17385         (v850_print_operand): ...this.  Make static.  Call
17386         v850_print_operand_address.
17387         (v850_print_operand_punct_valid_p): New function.
17388         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
17389         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
17390
17391 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
17392
17393         * config/sh/sh-protos.h (print_operand): Delete.
17394         (print_operand_address): Delete.
17395         * config/sh/sh.h (PRINT_OPERAND): Delete.
17396         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
17397         (PRINT_OPERAND_ADDRESS): Delete.
17398         * config/sh/sh.c (sh_print_operand_address): Make static.
17399         (sh_print_operand): Make static.  Call sh_print_operand_address
17400         and sh_print_operand.
17401         (sh_print_operand_punct_valid_p): New function.
17402         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
17403         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
17404
17405 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
17406
17407         * config/mcore/mcore-protos.h (mcore_print_operand): Delete.
17408         (mcore_print_operand_address): Delete.
17409         * config/mcore/mcore.h (PRINT_OPERAND): Delete.
17410         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
17411         (PRINT_OPERAND_ADDRESS): Delete.
17412         * config/mcore/mcore.c (mcore_print_operand_address): Make static.
17413         (mcore_print_operand): Make static.
17414         (mcore_print_operand_punct_valid_p): New function.
17415         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define
17416         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
17417
17418 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
17419
17420         * config/m68hc11/m68hc11-protos.h (print_operand): Delete.
17421         (print_operand_address): Delete.
17422         * config/m68hc11/m68hc11.h (PRINT_OPERAND): Delete.
17423         (PRINT_OPERAND_ADDRESS): Delete.
17424         * config/m68hc11/m68hc11.c (m68hc11_print_operand_address): Make
17425         static.
17426         (m68hc11_print_operand): Make static.
17427         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
17428
17429 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
17430
17431         * config/m32r/m32r-protos.h (m32r_print_operand): Delete.
17432         (m32r_print_operand_address): Delete.
17433         * config/m32r/m32r.h (m32r_punct_chars): Delete.
17434         (PRINT_OPERAND): Delete.
17435         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
17436         (PRINT_OPERAND_ADDRESS): Delete.
17437         * config/m32r/m32r.c (m32r_punct_chars): Make static.
17438         (m32r_print_operand_address): Make static.
17439         (m32r_print_operand): Make static.
17440         (m32r_print_operand_punct_valid_p): New function.
17441         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
17442         (TARGET_PRINT_OPERAND_ADDRESS): Define.
17443
17444 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
17445
17446         * config/iq2000/iq2000-protos.h (print_operand): Delete.
17447         (print_operand_address): Delete.
17448         * config/iq2000/iq2000.h (PRINT_OPERAND): Delete.
17449         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
17450         (PRINT_OPERAND_ADDRESS): Delete.
17451         (iq2000_print_operand_punct): Delete.
17452         * config/iq2000/iq2000.c (iq2000_print_operand_punct): Make static.
17453         (iq2000_print_operand_address): Make static.
17454         (iq2000_print_operand): Make static.
17455         (iq2000_print_operand_punct_valid_p): New function.
17456         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
17457         (TARGET_PRINT_OPERAND_ADDRESS): Define.
17458
17459 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
17460
17461         * config/frv/frv-protos.h (frv_print_operand): Delete.
17462         (frv_print_operand_address): Delete.
17463         * config/frv/frv.h (PRINT_OPERAND): Delete.
17464         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
17465         (PRINT_OPERAND_ADDRESS): Delete.
17466         * config/frv/frv.c (frv_print_operand_address): Make static.
17467         (frv_print_operand): Make static.
17468         (frv_print_operand_punct_valid_p): New function.
17469         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
17470         (TARGET_PRINT_OPERAND_ADDRESS): Define.
17471
17472 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
17473
17474         * tree.h (vec_member): Declare.
17475         * tree.c (vec_member): Define.
17476
17477 2010-06-17  Richard Guenther  <rguenther@suse.de>
17478
17479         * tree-flow-inline.h (array_ref_contains_indirect_ref): Remove.
17480         * tree-flow.h (array_ref_contains_indirect_ref): Likewise.
17481
17482 2010-06-17  Richard Guenther  <rguenther@suse.de>
17483
17484         * tree-inline.c (declare_return_variable): Remove bogus code.
17485
17486 2010-06-17  Richard Guenther  <rguenther@suse.de>
17487
17488         * gimplify.c (gimplify_bind_expr): Always promote complex
17489         and vector variables to registers if possible.
17490
17491 2010-06-17  Richard Guenther  <rguenther@suse.de>
17492
17493         * expr.c (get_inner_reference): Use double_int for bit_offset
17494         calculation.
17495
17496 2010-06-16  DJ Delorie  <dj@redhat.com>
17497
17498         * common.opt (-fstrict-volatile-bitfields): new.
17499         * doc/invoke.texi: Document it.
17500         * fold-const.c (optimize_bit_field_compare): For volatile
17501         bitfields, use the field's type to determine the mode, not the
17502         field's size.
17503         * expr.c (expand_assignment): Likewise.
17504         (get_inner_reference): Likewise.
17505         (expand_expr_real_1): Likewise.
17506         * expmed.c (store_fixed_bit_field): Likewise.
17507         (extract_bit_field_1): Likewise.
17508         (extract_fixed_bit_field): Likewise.
17509
17510 2010-06-16  Richard Guenther  <rguenther@suse.de>
17511
17512         * tree-inline.c (remap_gimple_op_r): Recurse using remap_gimple_op_r.
17513
17514 2010-06-16  Douglas B Rupp  <rupp@gnat.com>
17515
17516         * config/ia64/vms.h (ASM_OUTPUT_DWARF_DELTA_UNITS): Remove.
17517         (ASM_OUTPUT_DWARF_VMS_DELTA: Define new macro.
17518         * dbxout.c (gcc_debug_hooks): New entry begin_epilogue.
17519         * debug.c: Likewise.
17520         * sdbout.c: Likewise.
17521         * vmsdbgout.c: Likewise.
17522         * debug.h: Likewise. (dwarf2out_vms_{begin,end}_prologue): Declare.
17523         * doc/tm.texi (ASM_OUTPUT_DWARF_VMS_DELTA): Document.
17524         * dwarf2asm.c (dw2_asm_output_vms_delta): New function.
17525         (ASM_OUTPUT_DWARF_VMS_DELTA): Call it.
17526         * dwarf2asm.h (dw2_asm_output_vms_delta): Declare.
17527         * dwarf2out.c (dw_fde_struct): New fields
17528         dw_fde_vms_{end,begin}_prologue.
17529         (PROLOGUE_END_LABEL, EPILOGUE_BEGIN_LABEL): New macros.
17530         (dwarf2out_begin_prologue): Set dw_fde_struct defaults for above.
17531         (dwarf2out_vms_end_prologue): New function.
17532         (dwarf2out_vms_begin_epilogue): New function.
17533         (dw_val_struct): New value dw_val_class_vms_delta.
17534         (gcc_debug_hooks): New entry begin_epilogue. Set end_prologue,
17535         begin_epilogue for VMS.
17536         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): Declare
17537         new static functions.
17538         (dwarf_attr_name): New cases DW_AT_HP_{prologue,epilogue}.
17539         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): New
17540         static functions.
17541         (print_die): New case dw_val_class_vms_delta.
17542         (attr_checksum): Likewise.
17543         (same_dw_val_p: Likewise.
17544         (size_of_die): Likewise.
17545         (value_format): Likewise.
17546         (output_die): Likewise.
17547         (gen_subprogram_die): Call add_AT_vms_delta on VMS.
17548         (dwarf2out_begin_epilogue): Rename to dwarf2out_cfi_begin_epilogue
17549         * dwarf2out.h (dwarf2out_begin_epilogue): Rename to
17550         dwarf2out_cfi_begin_epilogue
17551         * final.c (final_scan_insn): Likewise. Call begin_epilogue.
17552
17553 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
17554
17555         * config/cris/cris-protos.h (cris_print_operand): Delete.
17556         (cris_print_operand_address): Delete.
17557         * config/cris/cris.h (PRINT_OPERAND): Delete.
17558         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
17559         (PRINT_OPERAND_ADDRESS): Delete.
17560         * config/cris/cris.c (cris_print_operand_address): Make static.
17561         (cris_print_operand): Make static.
17562         (cris_print_operand_punct_valid_p): New function.
17563         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
17564         (TARGET_PRINT_OPERAND_ADDRESS): Define.
17565
17566 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
17567
17568         * config/arm/arm-protos.h (arm_print_operand): Delete.
17569         (arm_print_operand_address): Delete.
17570         * config/arm/arm.h (PRINT_OPERAND): Delete.
17571         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
17572         (PRINT_OPERAND_ADDRESS, ARM_PRINT_OPERAND_ADDRESS):
17573         (THUMB_PRINT_OPERAND_ADDRESS): Delete and move code to...
17574         * config/arm/arm.c (arm_print_operand_address): ...here.  New function.
17575         (arm_print_operand): Make static.
17576         (arm_print_operand_punct_valid_p): New function.
17577         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
17578         (TARGET_PRINT_OPERAND_ADDRESS): Define.
17579
17580 2010-06-16  Nick Clifton  <nickc@redhat.com>
17581
17582         * config/rx/constraints.md (NEGint4): New constraint.
17583         * config/rx/rx.md (attr cc): Add set_zsc.
17584         (cbranchsf4): Only test for -fnon-call-exceptions if cfun has been
17585         initialised.
17586         (cmpsf): Likewise.
17587         (call_internal): Clobber the cc0 register.
17588         (call_value_internal): Likewise.
17589         (cstoresi4): Likewise.
17590         (movsieq): Likewise.
17591         (movsine): Likewise.
17592         (addsi3): Add alternative to handle small negative constants.
17593         (sunsi3): Likewise.
17594         (addsi3): Do not set the O bit in the cc0 register.
17595         (adddi3): Likewise.
17596         (subsi3): Likewise.
17597         (subdi3): Likewise.
17598         (andsi3): Reorder alternatives to prefer shorter forms.
17599         (mulsi3): Likewise.
17600         (iorsi3): Likewise.
17601         (negsi2): Note that the cc0 flags are set.
17602         (rotlsi3): Note that only the Z and S bits are set in cc0.
17603         (lshrsi3): Likewise.
17604         (ashlsi3): Likewise.
17605         (subsf3): Use %Q for the MEM operand.
17606         (fix_truncsfsi2): Likewise.
17607         (floatsisf2): Likewise.
17608         (bitset): Remove early clobber from destination.
17609         (bitset_in_memory): Likewise.
17610         (lrintsf2): Clobber the cc0 register.
17611         * config/rx/rx.c (rx_notice_update_cc): Handle CC_SET_ZSC.
17612         (rx_print_operand): Handle %N.
17613
17614 2010-06-16  Jan Hubicka  <jh@suse.cz>
17615
17616         * df-core.c (df_compact_blocks): Free problem_temps vector.
17617
17618 2010-06-16  Martin Jambor  <mjambor@suse.cz>
17619
17620         PR tree-optimization/43905
17621         * tree-sra.c: Include tree-inline.h.
17622         (create_abstract_origin): Removed.
17623         (modify_function): Version the call graph node instead of creating
17624         abstract origins and dealing with same_body aliases.
17625         * tree-sra.c (ipa_sra_preliminary_function_checks): Check whether the
17626         function is versionable.
17627         * Makefile.in (tree-sra.o): Add TREE_INLINE_H to dependencies.
17628
17629 2010-06-16  Maxim Kuvyrkov  <maxim@codesourcery.com>
17630
17631         * config/mips/linux64.h (BIONIC_DYNAMIC_LINKERN32): Define.
17632         (CHOOSE_DYNAMIC_LINKER): Update.
17633
17634 2010-06-15  Uros Bizjak  <ubizjak@gmail.com>
17635
17636         * config/i386/i386.c (*prefetch_sse_<mode>):  Macroize insn from
17637         *prefetch_sse and *prefetch_sse_rex using P mode iterator.
17638         (*prefetch_3dnow_<mode>): Ditto from *prefetch_3dnow and
17639         *prefetch_3dnow_rex.
17640
17641 2010-06-15  Anatoly Sokolov  <aesok@post.ru>
17642
17643         * target.h (struct asm_out):Add declare_constant_name field.
17644         * target-def.h (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
17645         (TARGET_INITIALIZER): Use TARGET_ASM_DECLARE_CONSTANT_NAME.
17646         * output.h (default_asm_declare_constant_name): Declare.
17647         (assemble_label): Update prototype.
17648         * varasm.c (assemble_constant_contents): Use
17649         targetm.asm_out.declare_constant_name target hook.
17650         (assemble_label): Add 'file' argument.
17651         (default_asm_declare_constant_name): New function.
17652         * system.h (ASM_DECLARE_CONSTANT_NAME): Poison.
17653         * doc/tm.texi (ASM_DECLARE_CONSTANT_NAME): Remove.
17654         (TARGET_ASM_DECLARE_CONSTANT_NAME): Document it.
17655
17656         * config/darwin-protos.h (darwin_asm_declare_constant_name): Declare.
17657         * config/darwin.c (darwin_asm_declare_constant_name): New function.
17658         (machopic_output_indirection): Update assemble_label argument list.
17659         * config/darwin.h (ASM_DECLARE_CONSTANT_NAME): Remove.
17660         (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
17661
17662 2010-06-15  Sebastian Pop  <sebastian.pop@amd.com>
17663
17664         PR middle-end/44391
17665         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
17666         size_one_node for pointer types.  Do not call gmp_cst_to_tree.
17667
17668 2010-06-15  Richard Guenther  <rguenther@suse.de>
17669
17670         * tree-ssa-pre.c (eliminate): Handle PHI elimination to constants.
17671
17672 2010-06-15  Paul Brook  <paul@codesourcery.com>
17673
17674         * config/arm/arm.c (use_vfp_abi): Add sorry() for Thumb-1
17675         hard-float ABI.
17676
17677 2010-06-15  Alexandre Oliva  <aoliva@redhat.com>
17678
17679         * tree-vect-patterns.c (vect_pattern_recog_1): Bail out if we
17680         don't get a vector type for output.
17681
17682 2010-06-15  Jakub Jelinek  <jakub@redhat.com>
17683
17684         PR fortran/44536
17685         * langhooks.h (struct lang_hooks_for_decls): Add omp_report_decl.
17686         * langhooks-def.h (LANG_HOOKS_OMP_REPORT_DECL): Define.
17687         (LANG_HOOKS_DECLS): Add it.
17688         * gimplify.c (omp_notice_variable): Call
17689         lang_hooks.decls.omp_report_decl.
17690
17691 2010-06-15  Martin Jambor  <mjambor@suse.cz>
17692
17693         PR lto/44464
17694         * tree-sra.c (replace_removed_params_ssa_names): Call release_ssa_name
17695         on the newly dead SSA name.
17696
17697 2010-06-15  Alan Modra  <amodra@gmail.com>
17698
17699         * doc/invoke.texi: Add mcmodel to powerpc options.
17700         * configure.ac: Add HAVE_LD_LARGE_TOC test.
17701         * configure: Regenerate.
17702         * config.in: Regenerate.
17703         * config/rs6000/linux64.opt (mcmodel): New.
17704         * config/rs6000/linux64.h (TARGET_USES_LINUX64_OPT): Define.
17705         (TARGET_CMODEL, SET_CMODEL): Define.
17706         (SUBSUBTARGET_OVERRIDE_OPTIONS): Check user -mcmodel choice,
17707         select CMODEL_MEDIUM default.
17708         * config/rs6000/rs6000.h (enum rs6000_cmodel): New.
17709         (TARGET_CMODEL): Define default.
17710         * config/rs6000/rs6000.c (cmodel): New variable.
17711         (rs6000_explicit_options): Add cmodel field.
17712         (rs6000_handle_option): Handle -mcmodel.
17713         (create_TOC_reference): Add largetoc_reg param.  Generate high,
17714         lo_sum rtl for CMODEL_MEDIUM and CMODEL_LARGE.  Update all callers.
17715         (rs6000_delegitimize_address): Recognise new toc reference rtl
17716         and minimal-toc rtl.
17717         (rs6000_legitimize_reload_address): Handle new toc references.
17718         (print_operand_address): Handle legitimate_constant_pool_address_p
17719         match before lo_sum.
17720         (rs6000_eliminate_indexed_memrefs): Tidy.
17721         (rs6000_emit_move): Tweak threshold for inlining constants.
17722         Keep rs6000_emit_allocate_stack large stack frame offsets
17723         loaded into r0 inline.
17724         (rs6000_generate_compare <cmptf_internal2>): One more clobber.
17725         (tocrel_base, tocrel_offset): New variables.
17726         (toc_relative_expr_p): Set them here.
17727         (print_operand_address): Skip over any offset on constant pool address.
17728         (rs6000_output_addr_const_extra): Print tocrel_offset before @toc.
17729         (rs6000_mode_dependent_address <LO_SUM>): False for new toc refs.
17730         (offsettable_ok_by_alignment): New function.
17731         (rs6000_emit_move): Address suitably aligned local symbol_refs
17732         relative to the toc pointer for -mcmodel=medium.
17733         (legitimate_constant_pool_address_p): Make param const_rtx.  Add
17734         strict param.  Allow lo_sum version of addressing.  Verify reg
17735         used for -mminimal-toc and -mcmodel != small.  Update all callers.
17736         * config/rs6000/constraints.md: Update for above change.
17737         * config/rs6000/predicates.md: Likewise.
17738         * config/rs6000/rs6000.md (tls_gd_aix): Generate -mcmodel=medium/large
17739         code.
17740         (tls_gd): Split for -mcmodel=medium/large.
17741         (tls_gd_high, tls_gd_low): New.
17742         (tls_ld_aix, tls_ld, tls_ld_high, tls_ld_low): Similarly.
17743         (tls_got_dtprel, tls_got_dtprel_high, tls_got_dtprel_low): Similarly.
17744         (tls_got_tprel, tls_got_tprel_high, tls_got_tprel_low): Similarly.
17745         (largetoc_high, largetoc_low): New.
17746         (cmptf_internal2): Add clobber.
17747         * config/rs6000/rs6000-protos.h: Update.
17748
17749 2010-06-14  Changpeng Fang  <changpeng.fang@amd.com>
17750
17751         * tree-ssa-loop-prefetch.c (nothing_to_prefetch_p): New.  Return
17752         true if no prefetch is going to be generated for a given group.
17753         (estimate_prefetch_count): Use prefetch_mod and unroll_factor to
17754         estimate the prefetch_count.
17755         (loop_prefetch_arrays): Call nothing_to_prefetch_p; estimate the
17756         prefetch count by considering the unroll_factor and prefetch_mod
17757         for is_loop_prefetching_profitable.
17758
17759 2010-06-14  Andreas Schwab  <schwab@linux-m68k.org>
17760
17761         * config/m68k/m68k.c (m68k_delegitimize_address): Don't do
17762         anything if the argument is not a MEM.
17763
17764 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
17765
17766         PR debug/43650
17767         PR debug/44181
17768         PR debug/44247
17769         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Skip
17770         debug stmts.
17771         (canonicalize_loop_ivs): Likewise.
17772
17773 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
17774
17775         PR debug/43656
17776         * haifa-sched.c (setup_insn_reg_pressure_info,
17777         update_register_pressure): Reject debug insns.
17778         (ready_sort): Don't setup reg pressure for debug insns.
17779         (schedule_insn): Don't update reg pressure for debug insns.
17780
17781 2010-06-14  Richard Guenther  <rguenther@suse.de>
17782
17783         * lto-streamer.c (cached_bp): Remove.
17784         (bitpack_delete): Likewise.
17785         (bitpack_create): Likewise.
17786         (bp_get_next_word): Likewise.
17787         (bp_pack_value, bp_unpack_value): Move ...
17788         * lto-streamer.h (bp_pack_value, bp_unpack_value): ... here.
17789         Re-implement.
17790         (struct bitpack_d): Likewise.
17791         (bitpack_create, lto_output_bitpack, lto_input_bitpack):
17792         New inline functions.
17793         * lto-streamer-out.c (lto_output_bitpack): Remove.
17794         (pack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
17795         (pack_value_fields): Adjust.
17796         (lto_write_tree): Likewise.
17797         (output_gimple_stmt): Likewise.
17798         (output_function): Likewise.
17799         * lto-streamer-in.c (input_gimple_stmt): Adjust.
17800         (input_function): Likewise.
17801         (unpack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
17802         (lto_input_bitpack): Remove.
17803         (lto_materialize_tree): Adjust.
17804         * Makefile.in (ipa-prop.o): Add $(LTO_STREAMER_H) dependency.
17805         * lto-cgraph.c (lto_output_edge): Adjust.
17806         (lto_output_node): Likewise.
17807         (lto_output_varpool_node): Likewise.
17808         (lto_output_ref): Likewise.
17809         (input_node): Likewise.
17810         (input_varpool_node): Likewise.
17811         (input_ref): Likewise.
17812         (input_edge): Likewise.
17813         (output_node_opt_summary): Likewise.
17814         (input_node_opt_summary): Likewise.
17815         * ipa-pure-const.c (pure_const_write_summary): Likewise.
17816         (pure_const_read_summary): Likewise.
17817         * ipa-prop.c (ipa_write_indirect_edge_info): Likewise.
17818         (ipa_read_indirect_edge_info): Likewise.
17819         (ipa_write_node_info): Likewise.
17820         (ipa_read_node_info): Likewise.
17821
17822 2010-06-14  H.J. Lu  <hongjiu.lu@intel.com>
17823
17824         PR target/44534
17825         * config/i386/sse.md (vec_extract_lo_<mode>): Replace 0x1 with 0x0.
17826         (vec_extract_lo_v16hi): Likewise.
17827         (vec_extract_lo_v32qi): Likewise.
17828
17829 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
17830
17831         PR bootstrap/44426
17832         * tree.h (build_call_expr): Don't define as vararg macro, instead
17833         add a prototype.
17834         * builtins.c (build_call_nofold): Remove.
17835         (expand_builtin_int_roundingfn, expand_builtin_pow,
17836         expand_builtin_mempcpy_args, expand_builtin_stpcpy,
17837         expand_builtin_memset_args, expand_builtin_strcmp,
17838         expand_builtin_strncmp, expand_builtin_memory_chk): Use
17839         build_call_nofold_loc instead of build_call_nofold.
17840         (build_call_expr): New function.
17841
17842         PR tree-optimization/44508
17843         * tree-ssa-propagate.h (substitute_and_fold): Add DO_DCE argument.
17844         * tree-ssa-propagate.c (substitute_and_fold): If !DO_DCE,
17845         don't eliminate trivially dead stmts.
17846         * tree-vrp.c (vrp_finalize): Pass false as last argument
17847         to substitute_and_fold.
17848         * tree-ssa-copy.c (fini_copy_prop): Pass true as last argument
17849         to substitute_and_fold.
17850         * tree-ssa-ccp.c (ccp_finalize): Likewise.
17851
17852         PR bootstrap/44509
17853         * c-config-lang.in (gtfiles): Add c-family/c-cppbuiltin.c.
17854
17855 2010-06-14  Ira Rosen  <irar@il.ibm.com>
17856
17857         PR tree-optimization/44507
17858         * tree-vect-loop.c (get_initial_def_for_reduction): Use -1
17859         to build initial vector for BIT_AND_EXPR.
17860         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
17861
17862 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
17863
17864         * config/s390/s390.md (*mov<mode>_64 DD_DF, mov<mode>): Properly
17865         adjust z10prop set_attr.
17866
17867 2010-06-13  Jan Hubicka  <jh@suse.cz>
17868
17869         * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
17870         bitmap_and_compl_into, bitmap_compl_and_into, bitmap_ior,
17871         bitmap_ior_into, bitmap_xor, bitmap_xor_into,
17872         bitmap_ior_and_compl, bitmap_ior_and_compl): Turn internal
17873         datastructure checks into checking asserts.
17874         * rtlanal.c (find_reg_note): Use gcc_checking_assert.
17875         * tree-ssa-sccvn.c (VN_INFO): Likewise.
17876         * df-scan.c (df_reorganize_refs_by_reg_by_reg, df_install_ref,
17877         df_ref_create_structure): Likewise.
17878         * alloc-pool.c (create_alloc_pool, empty_alloc_pool, pool_alloc,
17879         pool_free): Use gcc_checking_assert.
17880         * alias.c (get_alias_set): Likewise.
17881         * var-tracking.c (variable_htab_free, shared_hash_copy,
17882         canonicalize_values_mark, variable_merge_over_cur): Likewise.
17883         * lto-streamer.c (bp_unpack_value): Likewise.
17884
17885 2010-06-13  Richard Guenther  <rguenther@suse.de>
17886
17887         * lto-streamer-in.c (lto_input_ts_type_tree_pointers):
17888         Do not stream but initialize TYPE_CANONICAL to NULL.
17889         (lto_output_ts_type_tree_pointers): Do not stream TYPE_CANONICAL.
17890         * gimple.c (gimple_types_compatible_p): Disregard
17891         TYPE_STRUCTURAL_EQUALITY_P.
17892         (gimple_register_type): Use TYPE_CANONICAL as cache.
17893         * lto-streamer.c (lto_record_common_node): Zero TYPE_CANONICAL
17894         before registering common types.
17895         * config/i386/i386.c (ix86_function_arg_boundary): Do not
17896         use TYPE_CANONICAL, instead use TYPE_MAIN_VARIANT.
17897         * tree.h (TYPE_CANONICAL): Clarify documentation.
17898
17899 2010-06-13  Anatoly Sokolov  <aesok@post.ru>
17900
17901         * config/ia64/ia64.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
17902         LIBCALL_VALUE): Remove macros.
17903         * config/ia64/ia64-protos.h (ia64_function_value): Remove.
17904         * config/ia64/ia64.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
17905         TARGET_FUNCTION_VALUE_REGNO_P): Define.
17906         (ia64_libcall_value, ia64_function_value_regno_p): New functions.
17907         (ia64_function_value): Make static. Handle receiving the function
17908         type in 'fn_decl_or_type' argunent. Add 'outgoing' argument.
17909
17910 2010-06-12  Jan Hubicka  <jh@suse.cz>
17911
17912         * cse.c (cse_extended_basic_block): Move optimize_bb_for_speed_p
17913         at correct place.
17914
17915 2010-06-12  Bernd Schmidt  <bernds@codesourcery.com>
17916
17917         * config/arm/arm.c (thumb2_reorg): Fix errors in previous change.
17918
17919 2010-06-12  Jan Hubicka  <jh@suse.cz>
17920
17921         * df-core.c (df_clear_bb_info): New function.
17922         (df_set_blocks): bb_info is always allocated.
17923         (df_get_bb_info): Use block_info_elt_size.
17924         (df_set_bb_info): Likewise.
17925         (df_compact_blocks): Update for new block_info.
17926         (grow_bb_info): New function.
17927         * df-problems.c (df_grow_bb_info): Move to df-core.c
17928         (df_rd_set_bb_info): Remove.
17929         (df_rd_free_bb_info): Do not free block pool.
17930         (df_rd_alloc): Do not create pool, use check for
17931         obstack presence instead of NULL pointer for new blocks.
17932         (df_rd_free): DO not free alloc pool; clear block_info.
17933         (problem_RD): Add size of block info structure.
17934         (df_lr_set_bb_info): Remove.
17935         (df_lr_free_bb_info): Do not free block pool.
17936         (df_lr_alloc): Do not create pool, use check for
17937         obstack presence instead of NULL pointer for new blocks.
17938         (df_lr_free): DO not free alloc pool; clear block_info.
17939         (problem_LR): Add size of block info structure.
17940         (df_live_set_bb_info): Remove.
17941         (df_live_free_bb_info): Do not free block pool.
17942         (df_live_alloc): Do not create pool, use check for
17943         obstack presence instead of NULL pointer for new blocks.
17944         (df_live_free): DO not free alloc pool; clear block_info.
17945         (problem_LIVE): Add size of block info structure.
17946         (problem_CHAIN): Add size of block info structure.
17947         (df_byte_lr_set_bb_info): Remove.
17948         (df_byte_lr_free_bb_info): Do not free block pool.
17949         (df_byte_lr_alloc): Do not create pool, use check for
17950         obstack presence instead of NULL pointer for new blocks.
17951         (df_byte_lr_free): DO not free alloc pool; clear block_info.
17952         (problem_BYTE_LR): Add size of block info structure.
17953         (problem_NOTE): Add size of block info structure.
17954         (df_byte_MD_set_bb_info): Remove.
17955         (df_byte_MD_free_bb_info): Do not free block pool.
17956         (df_byte_MD_alloc): Do not create pool, use check for
17957         obstack presence instead of NULL pointer for new blocks.
17958         (df_byte_MD_free): DO not free alloc pool; clear block_info.
17959         (problem_BD): Add size of block info structure.
17960         * df-scan.c (df_scan_free_internal): Free block pool.
17961         (df_scan_set_bb_info): Remove.
17962         (df_scan_free_bb_info): Check for artificial_defs instead
17963         of bb_info being non-NULL.
17964         (df_scan_alloc): DO not create df_scan_block pool.
17965         (problem_SCAN): Set size of block info.
17966         (df_bb_refs_record): Do not allocate bb_info.
17967         * df.h (df_problem): Add block_info_elt_size.
17968         (struct dataflow): Change block_info to void *.
17969         (df_scan_get_bb_info, df_rd_get_bb_info, df_lr_get_bb_info,
17970         df_md_get_bb_info, df_live_get_bb_info, df_byte_lr_get_bb_info): Return
17971         in-line structures.
17972
17973 2010-06-12  Jan Hubicka  <jh@suse.cz>
17974
17975         PR tree-optimize/44485
17976         * tree-cfgcleanup.c (fixup_noreturn_call): Remove basic blocks
17977         containing use of return value of noreturn function.
17978
17979 2010-06-12  Anatoly Sokolov  <aesok@post.ru>
17980
17981         * targhooks.c (default_function_value): Don't use
17982         FUNCTION_OUTGOING_VALUE.
17983         * system.h (FUNCTION_OUTGOING_VALUE): Poison.
17984         * doc/tm.texi (FUNCTION_OUTGOING_VALUE): Removed.
17985
17986 2010-06-12  Kazu Hirata  <kazu@codesourcery.com>
17987
17988         * config.gcc (mips64*-*-linux*, mipsisa64*-*-linux*, mips*-*-linux*):
17989         Add crtfastmath.o to extra_parts.
17990         * config/mips/crtfastmath.c: New.
17991         * config/mips/linux.h (ENDFILE_SPEC): New.
17992
17993 2010-06-12  Sebastian Pop  <sebastian.pop@amd.com>
17994
17995         * graphite-clast-to-gimple.c (gcc_type_for_interval): Do not pass
17996         old_type in parameter.
17997         (gcc_type_for_value): Update call to gcc_type_for_interval.
17998         (compute_type_for_level_1): Renamed compute_type_for_level.
17999         Update call to gcc_type_for_interval.
18000
18001 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
18002
18003         * common.opt (Wstrict-aliasing=, Wstrict-overflow=, fabi-version=,
18004         flto-compression-level=, ftree-parallelize-loops=): Add RejectNegative.
18005
18006 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
18007
18008         * opts-common.c: Include options.h.
18009         (integral_argument): Move from opts.c.
18010         (decode_cmdline_option): New.  Based on read_cmdline_option.
18011         * opts.c (integral_argument): Move to opts-common.c.
18012         (read_cmdline_option): Move most contents to
18013         decode_cmdline_option.  Use %qs in diagnostics.
18014         * opts.h (CL_ERR_DISABLED, CL_ERR_MISSING_ARG, CL_ERR_WRONG_LANG,
18015         CL_ERR_UINT_ARG, struct cl_decoded_option, integral_argument,
18016         decode_cmdline_option): New.
18017
18018 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
18019
18020         PR target/44481
18021         * config/i386/i386.md (UNSPEC_PARITY): New unspec.
18022         (paritydi2_cmp): Use UNSPEC_PARITY unspec instead of parity RTX.
18023         (partiysi2_cmp): Ditto.
18024         (*partiyhi2_cmp): Ditto.
18025         (*parityqi2_cmp): Remove.
18026
18027 2010-06-11  Jan Hubicka  <jh@suse.cz>
18028
18029         * bitmap.h (bmp_iter_next_bit): New.
18030         (bmp_iter_set, bmp_iter_and, bmp_iter_and_compl): Use it.
18031
18032 2010-06-11  Sandra Loosemore  <sandra@codesourcery.com>
18033             Eric Botcazou  <ebotcazou@adacore.com>
18034
18035         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Return again the
18036         computed cost.
18037
18038 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
18039
18040         * config/i386/i386.md (unspec): New define_c_enum.
18041         (unspecv): Ditto.
18042
18043 2010-06-10  Jakub Jelinek  <jakub@redhat.com>
18044
18045         * Makefile.in (c-family/c-cppbuiltin.o): Depend on $(CPP_ID_DATA_H).
18046
18047 2010-06-11  Sebastian Pop  <sebastian.pop@amd.com>
18048
18049         PR middle-end/44483
18050         * tree-if-conv.c (bb_predicate_s): New struct.
18051         (bb_predicate_p): New.
18052         (bb_has_predicate): New.
18053         (bb_predicate): New.
18054         (set_bb_predicate): New.
18055         (bb_predicate_gimplified_stmts): New.
18056         (set_bb_predicate_gimplified_stmts): New.
18057         (add_bb_predicate_gimplified_stmts): New.
18058         (init_bb_predicate): New.
18059         (free_bb_predicate): New.
18060         (is_predicated): Use bb_predicate.
18061         (add_to_predicate_list): Use bb_predicate and set_bb_predicate.
18062         (predicate_bbs): Same.  Gimplify the condition of the basic blocks
18063         before processing their successors.
18064         (clean_predicate_lists): Removed.
18065         (find_phi_replacement_condition): Use bb_predicate.
18066         (process_phi_nodes): Renamed ifconvert_phi_nodes.  Avoid useless
18067         computations.
18068         (insert_gimplified_predicates): New.
18069         (combine_blocks): Call insert_gimplified_predicates.
18070         (tree_if_conversion): Call free_bb_predicate instead of
18071         clean_predicate_lists.
18072
18073 2010-10-11  Paul Brook  <paul@codesourcery.com>
18074
18075         * doc/invoke.texi: Document ARM -mcpu=cortex-m4.
18076         * config/arm/arm.c (all_architectures): Change v7e-m default to
18077         cortexm4.
18078         * config/arm/arm-cores.def: Add cortex-m4.
18079         * config/arm/arm-tune.md: Regenerate.
18080
18081 2010-06-11  Jan Hubicka  <jh@suse.cz>
18082
18083         * ipa-pure-const.c (special_builtlin_state): New function.
18084         (check_call): Use it instead of special casign BUILT_IN_RETURN.
18085         (propagate_pure_const): Use it.
18086
18087 2010-06-11  Jan Hubicka  <jh@suse.cz>
18088
18089         * df-problems.c (df_live_scratch): Convert to bitmap_head.
18090         (df_live_alloc): Initialize df_live_scratch when initializing
18091         problem_data.
18092         (df_live_transfer_function): Update uses of df_live_scratch.
18093         (df_live_free): Free problem_data; clear df_live_scratch before
18094         releasing the obstack.
18095         (df_md_free): Free problem data.
18096
18097 2010-06-11  Jan Hubicka  <jh@suse.cz>
18098
18099         * doc/invoke.texi (Wsuggest-attribute): Document.
18100         (Wmissing-noreturn): Remove.
18101         * ipa-pure-const.c (warn_function_noreturn): New function.
18102         * opts.c (decode_options): Set warn_suggest_attribute_noreturn on
18103         warn_missing_noreturn.
18104         * common.opt (Wsuggest-attribute=noreturn): New.
18105         * tree-flow.h (warn_function_noreturn): Declare.
18106         * tree-cfg.c (execute_warn_function_noreturn): Use
18107         warn_function_noreturn.
18108         (gate_warn_function_noreturn): New.
18109         (pass_warn_function_noreturn): Update.
18110
18111 2010-06-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
18112
18113         * c-typeck.c (handle_warn_cast_qual): Add loc
18114         parameter. Improve warning message.
18115         (build_c_cast): Pass location to handle_warn_cast_qual.
18116
18117 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
18118
18119         * config/i386/i386.md (pro_epilogue_adjust_stack_1) <TYPE_ALU>: Assert
18120         that operand 0 == operand 1.  Use x86_maybe_negate_const_int to output
18121         insn mnemonic.
18122         (pro_epilogue_adjust_stack_rex64) <TYPE_ALU>: Ditto.
18123
18124 2010-06-10  Dodji Seketeli  <dodji@redhat.com>
18125
18126         Fix bootstap on mips
18127         * dwarf2out.c (is_naming_typedef_dec): Built-in TYPE_DECLs cannot
18128         be naming typedefs.
18129
18130 2010-06-11  Kai Tietz  <kai.tietz@onevision.com>
18131
18132         * system.h (helper_const_non_const_cast): New inline for
18133         gcc version <= 4.0.
18134         (CONST_CAST2): For gcc version <= 4.0 use
18135         new helper to do const/non-const casting.
18136
18137 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
18138
18139         * doc/md.texi: Document the "unspec" and "unspecv" enum names.
18140         * Makefile.in (OBJS-common): Include insn-enums.o.
18141         (insn-enums.o): New rule.
18142         (simple_generated_c): Add insn-enums.c.
18143         (build/genenums.o): New rule.
18144         (genprogmd): Add "enums".
18145         * genconstants.c (print_enum_type): Declare a C string array
18146         for each enum.
18147         * genenums.c: New file.
18148         * print-rtl.c (print_rtx): If defined, use the "unspecv" enum
18149         for UNSPEC_VOLATILE.  If defined, use the "unspec" enum for both
18150         UNSPEC and (as a fallback) for UNSPEC_VOLATILE.
18151
18152 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
18153
18154         * doc/md.texi (define_enum_attr): Document.
18155         * rtl.def (DEFINE_ENUM_ATTR): New rtx.
18156         * read-md.h (lookup_enum_type): Declare.
18157         * read-md.c (lookup_enum_type): New function.
18158         * genattr.c (gen_attr, main): Handle DEFINE_ENUM_ATTR.
18159         * genattrtab.c (attr_desc): Add an enum_name field.
18160         (evaluate_eq_attr): Take the associated attribute as argument.
18161         Get the enum prefix from the enum_name field, if defined.
18162         Use ACONCAT rather than a fixed-length buffer.  Update recursive calls.
18163         (simplify_test_exp): Pass attr to evaluate_eq_attr.
18164         (add_attr_value): New function, split out from...
18165         (gen_attr): ...here.  Handle DEFINE_ENUM_ATTR.
18166         (write_test_expr): Pass attr to evaluate_eq_attr.
18167         (write_attr_get): Use the enum_name as the enum tag, if defined.
18168         (write_attr_valueq): Use the enum_name as a prefix, if defined.
18169         (find_attr): Initialize enum_name.
18170         (main): Handle DEFINE_ENUM_ATTR.
18171         * gensupport.c (process_rtx): Likewise.
18172         * config/mips/mips.h (mips_tune_attr): Delete.
18173         * config/mips/mips.md (cpu): Use define_attr_enum.
18174
18175 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
18176
18177         * doc/md.texi (define_c_enum, define_enum): Document.
18178         * read-md.h (md_constant): Add a parent_enum field.
18179         (enum_value, enum_type): New structures.
18180         (upcase_string, traverse_enum_types): Declare.
18181         * read-md.c (enum_types): New variable.
18182         (upcase_string, add_constant): New functions.
18183         (handle_constants): Don't create the hash table here.
18184         Use add_constant.
18185         (traverse_md_constants): Don't check for a null md_constants.
18186         (decimal_string, handle_enum, traverse_enum_types): New functions.
18187         (read_md_files): Initialize md_constants and md_enums.
18188         * genconstants.c (print_md_constant): Ignore info argument.
18189         Only print constants that belong to no enum.
18190         (print_enum_type): New function.
18191         (main): Don't pass stdout to print_md_constant.  Call print_enum_type
18192         for each defined enum type.
18193         * config/mips/mips.md (processor): New define_enum.
18194         (unspec): New define_c_enum.
18195         (UNSPEC_COMPARE_AND_SWAP, UNSPEC_COMPARE_AND_SWAP_12)
18196         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_NEW_OP_12)
18197         (UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE, UNSPEC_SYNC_EXCHANGE_12)
18198         (UNSPEC_MEMORY_BARRIER): Moved to sync.md.
18199         (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
18200         (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
18201         (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
18202         (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
18203         (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
18204         (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
18205         (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
18206         (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
18207         (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
18208         (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
18209         (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
18210         (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
18211         (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
18212         (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
18213         (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
18214         (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
18215         (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
18216         (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
18217         (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
18218         (UNSPEC_RDDSP): Move to mips-dsp.md.
18219         (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH, UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB)
18220         (UNSPEC_ADDUH_R_QB, UNSPEC_APPEND, UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB)
18221         (UNSPEC_CMPGDU_LT_QB, UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH)
18222         (UNSPEC_DPS_W_PH, UNSPEC_MADD, UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU)
18223         (UNSPEC_MUL_PH, UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH)
18224         (UNSPEC_MULQ_S_W, UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU)
18225         (UNSPEC_PRECR_QB_PH, UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W)
18226         (UNSPEC_PREPEND, UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH)
18227         (UNSPEC_SUBU_PH, UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB)
18228         (UNSPEC_ADDQH_PH, UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W)
18229         (UNSPEC_SUBQH_PH, UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W)
18230         (UNSPEC_DPAX_W_PH, UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH)
18231         (UNSPEC_DPAQX_SA_W_PH, UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH):
18232         Moved to mips-dspr2.md.
18233         (UNSPEC_MOVE_TF_PS, UNSPEC_C, UNSPEC_ALNV_PS, UNSPEC_CABS)
18234         (UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS, UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS)
18235         (UNSPEC_ABS_PS, UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1)
18236         (UNSPEC_RECIP2, UNSPEC_SINGLE_CC, UNSPEC_SCC): Move from mips-ps-3d.md.
18237         (UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ, UNSPEC_LOONGSON_PCMPGT)
18238         (UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
18239         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
18240         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
18241         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
18242         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
18243         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
18244         UNSPEC_LOONGSON_PSADBH)
18245         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
18246         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
18247         (UNSPEC_LOONGSON_PSUBD): Move to mips-loongson.md.
18248         (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
18249         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
18250         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
18251         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Move to mips-loongson2ef.md.
18252         (cpu): Update comment.
18253         * config/mips/sync.md (UNSPEC_COMPARE_AND_SWAP)
18254         (UNSPEC_COMPARE_AND_SWAP_12, UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP)
18255         (UNSPEC_SYNC_NEW_OP_12, UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE)
18256         (UNSPEC_SYNC_EXCHANGE_12, UNSPEC_MEMORY_BARRIER): Moved from mips.md.
18257         * config/mips/loongson.md (UNSPEC_LOONGSON_PAVG,
18258         UNSPEC_LOONGSON_PCMPEQ)
18259         (UNSPEC_LOONGSON_PCMPGT, UNSPEC_LOONGSON_PEXTR,
18260         UNSPEC_LOONGSON_PINSR_0)
18261         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
18262         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
18263         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
18264         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
18265         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
18266         UNSPEC_LOONGSON_PSADBH)
18267         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
18268         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
18269         (UNSPEC_LOONGSON_PSUBD): Moved from mips.md
18270         * config/mips/loongson2ef.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
18271         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
18272         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
18273         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved from mips.md
18274         * config/mips/mips-dsp.md (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ)
18275         (UNSPEC_SUBQ_S, UNSPEC_ADDSC, UNSPEC_ADDWC, UNSPEC_MODSUB)
18276         (UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S, UNSPEC_PRECRQ_QB_PH)
18277         (UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W, UNSPEC_PRECRQU_S_QB_PH)
18278         (UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR, UNSPEC_PRECEQU_PH_QBL)
18279         (UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA, UNSPEC_PRECEQU_PH_QBRA)
18280         (UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR, UNSPEC_PRECEU_PH_QBLA)
18281         (UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL, UNSPEC_SHLL_S, UNSPEC_SHRL_QB)
18282         (UNSPEC_SHRA_PH, UNSPEC_SHRA_R, UNSPEC_MULEU_S_PH_QBL)
18283         (UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH, UNSPEC_MULEQ_S_W_PHL)
18284         (UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL, UNSPEC_DPAU_H_QBR)
18285         (UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR, UNSPEC_DPAQ_S_W_PH)
18286         (UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH, UNSPEC_DPAQ_SA_L_W)
18287         (UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL, UNSPEC_MAQ_S_W_PHR)
18288         (UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR, UNSPEC_BITREV, UNSPEC_INSV)
18289         (UNSPEC_REPL_QB, UNSPEC_REPL_PH, UNSPEC_CMP_EQ, UNSPEC_CMP_LT)
18290         (UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB, UNSPEC_CMPGU_LT_QB)
18291         (UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH, UNSPEC_EXTR_W)
18292         (UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H, UNSPEC_EXTP)
18293         (UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
18294         (UNSPEC_RDDSP): Moved from mips.md.
18295         * config/mips/mips-dspr2.md (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH)
18296         (UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB, UNSPEC_ADDUH_R_QB, UNSPEC_APPEND)
18297         (UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB, UNSPEC_CMPGDU_LT_QB)
18298         (UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH, UNSPEC_DPS_W_PH, UNSPEC_MADD)
18299         (UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU, UNSPEC_MUL_PH)
18300         (UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH, UNSPEC_MULQ_S_W)
18301         (UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU, UNSPEC_PRECR_QB_PH)
18302         (UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W, UNSPEC_PREPEND)
18303         (UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH, UNSPEC_SUBU_PH)
18304         (UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB, UNSPEC_ADDQH_PH)
18305         (UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W, UNSPEC_SUBQH_PH)
18306         (UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W, UNSPEC_DPAX_W_PH)
18307         (UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH, UNSPEC_DPAQX_SA_W_PH)
18308         (UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH): Moved from mips.md.
18309         * config/mips/mips-ps-3d.md (UNSPEC_MOVE_TF_PS, UNSPEC_C)
18310         (UNSPEC_ALNV_PS, UNSPEC_CABS, UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS)
18311         (UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS, UNSPEC_ABS_PS, UNSPEC_RSQRT1)
18312         (UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2, UNSPEC_SINGLE_CC)
18313         (UNSPEC_SCC): Moved from mips.md.
18314         * config/mips/mips.c (mips_arch, mips_tune): Change enum from
18315         "processor_type" to "processor".
18316         (mips_rtx_cost_data): Replace PROCESSOR_MAX with NUM_PROCESSOR_VALUES.
18317         * config/mips/mips.h (processor_type): Delete.
18318         (mips_cpu_info.cpu, mips_arch, mips_tune): Change enum from
18319         "processor_type" to "processor".
18320
18321 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
18322
18323         * configure.ac (tm_include_list): Add insn-constants.h.
18324         * configure: Regenerate.
18325         * Makefile.in (GTM_H): Move insn-constants.h here from...
18326         (TM_H): ...here.
18327         * mkconfig.sh: Remove special handling for insn-constants.h.
18328
18329 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
18330
18331         * Makefile.in (BUILD_RTL): Move build/read-md.o to...
18332         (BUILD_MD): ...this new variable.
18333         (simple_generated_rtl_h, simple_generated_rtl_c): New variables
18334         that include the old contents of simple_generated_h and
18335         simple_generated_c.
18336         (simple_generated_h, simple_generated_c): Include them.  Add
18337         insn-constants.h.
18338         (s-%): Make simple_generated_{h,c} stamps depend on $(MD_DEPS)
18339         and simple_generated_rtl_{h,c} stamps depend on insn-conditions.md.
18340         Remove these dependencies from the main rule and include
18341         insn-conditions.md in the command line only if it appears
18342         in the dependency list.
18343         (insn-constants.h, s-constants): Delete.
18344         (build/genconstants.o): Don't depend on $(RTL_BASE_H), $(GTM_H)
18345         or gensupport.h.
18346         (build/genmddeps.o): Likewise.
18347         (genprogrtl): New variable that contains everything from genprogmd
18348         except mddeps and constants.
18349         (genprogmd): Redefine in terms of genprogrtl.  Make these programs
18350         depend on $(BUILD_MD)
18351         (genprog): New variable.  Make these programs depend on
18352         $(BUILD_ERRORS).
18353         * genmddeps.c: Don't include tm.h, rtl.h or gensupport.h.
18354         (main): Use read_md_files instead of init_rtx_reader_args.
18355         * genconstants.c: As for genmddeps.c.
18356         * read-md.h (read_skip_construct): Declare.
18357         * read-md.c (read_skip_construct): New function.
18358         (handle_file): Allow a null handle_directive, skipping the
18359         construct if so.
18360         (parse_include): Update the comment accordingly.
18361
18362 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
18363
18364         * Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H).
18365         * genmddeps.c: Include read-md.h.
18366         (main): Call init_rtx_reader_args instead of init_md_reader_args.
18367         * genattr.c (main): Likewise.
18368         * genattrtab.c (main): Likewise.
18369         * genautomata.c (main): Likewise.
18370         * gencodes.c (main): Likewise.
18371         * genconditions.c (main): Likewise.
18372         * genconfig.c (main): Likewise.
18373         * genconstants.c (main): Likewise.
18374         * genemit.c (main): Likewise.
18375         * genextract.c (main): Likewise.
18376         * genflags.c (main): Likewise.
18377         * genopinit.c (main): Likewise.
18378         * genoutput.c (main): Likewise.
18379         * genpeep.c (main): Likewise.
18380         * genrecog.c (main): Likewise.
18381         * genpreds.c (main): Likewise.
18382         * gensupport.h (in_fname): Move to read-md.h.
18383         (init_md_reader_args_cb): Rename to...
18384         (init_rtx_reader_args_cb): ...this and return a bool.
18385         (init_md_reader_args): Rename to...
18386         (init_rtx_reader_args): ...this and return a bool.
18387         (include_callback): Move to read-md.h.
18388         * gensupport.c (in_fname, include_callback, base_dir, max_include_len)
18389         (file_name_list, first_dir_md_include): Move to read-md.c
18390         (first_bracket_include): Delete unused variable.
18391         (last_dir_md_include): Move to read-md.c.
18392         (process_include): Delete, moving code to read-md.c:handle_include.
18393         (process_rtx): Don't handle INCLUDE.
18394         (save_string): Delete.
18395         (rtx_handle_directive): New function.
18396         (init_md_reader_args_cb): Rename to...
18397         (init_rtx_reader_args_cb): ...this and return a boolean success value.
18398         Use read_md_args.
18399         (init_md_reader_args): Rename to...
18400         (init_rtx_reader_args): ...this and return a boolean success value.
18401         * rtl.def (INCLUDE): Delete.
18402         * rtl.h (read_rtx): Remove "int *" argument.  Add "const char *"
18403         argument.
18404         * read-rtl.c (read_conditions): Don't gobble ')' here.
18405         (read_mapping): Likewise.
18406         (read_rtx): Remove LINENO argument.  Add RTX_NAME argument.
18407         Handle top-level non-rtx constructs here rather than in read_rtx_1.
18408         Store the whole queue in *X.  Remove call to init_md_reader.
18409         (read_rtx_1): Rename to...
18410         (read_rtx_code): ...this.  Call read_nested_rtx to read subrtxes.
18411         Don't handle top-level non-rtx constructs here.  Don't handle (nil)
18412         here.
18413         (read_nested_rtx): New function.  Handle (nil) here rather than
18414         in read_rtx_code.
18415         (read_rtx_variadic): Call read_nested_rtx to read subrtxes.  Don't
18416         gobble ')' here.
18417         * read-md.h (directive_handler_t): New type.
18418         (in_fname, include_callback): Moved from read-md.h.
18419         (read_constants, init_md_reader): Delete.
18420         (read_md_files): Declare.
18421         * read-md.c (file_name_list, in_fname, base_dir, first_dir_md_include)
18422         (last_dir_md_include_ptr, include_callback, max_include_len): Moved
18423         from gensupport.c.
18424         (read_constants): Rename to...
18425         (handle_constants): ...this.  Don't gobble ')' here.
18426         (handle_include, handle_file, handle_toplevel_file)
18427         (parse_include): New functions, mostly taken from gensupport.c.
18428         (init_md_reader): Subsume into...
18429         (read_md_files): ...this new function.
18430
18431 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
18432
18433         * read-md.h (read_char): Increment read_md_lineno after reading '\n'.
18434         (unread_char): Decrement read_md_lineno after putting back '\n'.
18435         * read-md.c (fatal_with_file_and_line): Push back any characters
18436         that we decide not to add to the context.
18437         (read_skip_spaces): Don't increment read_md_lineno here.  Avoid using
18438         fatal_expected_char in cases where '/' ends a line (for example).
18439         (read_name): Don't increment read_md_lineno here.
18440         (read_escape): Likewise.
18441         (read_quoted_string): Likewise.
18442         (read_braced_string): Likewise.
18443
18444 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
18445
18446         * Makefile.in (READ_MD_H): Add $(HASHTAB_H).
18447         (build/genconstants.o): Depend on $(READ_MD_H) gensupport.h.
18448         * genconstants.c: Include read-md.h.
18449         * read-rtl.c (md_constants): Move to read-md.c.
18450         (md_name): Move to read-md.h.
18451         (initialize_iterators): Use leading_string_hash instead of def_hash
18452         and leading_string_eq_p instead of def_name_eq_p.
18453         (read_name): Move to read-md.c.
18454         (def_hash, def_name_eq_p): Delete.
18455         (read_constants, traverse_md_constants): Move to read-md.c.
18456         * rtl.h (md_constant, traverse_md_constants): Move to read-md.h.
18457         * read-md.h: Include hashtab.h.
18458         (md_name): Moved from read-rtl.c.
18459         (md_constant): Moved from read-md.h.
18460         (leading_string_hash, leading_string_eq_p, read_name)
18461         (read_constants, traverse_md_constants): Declare.
18462         * read-md.c (md_constants): Moved from read-rtl.c.
18463         (leading_string_hash, leading_string_eq_p): New functions.
18464         (read_name, read_constants, traverse_md_constants): Moved from
18465         read-rtl.c.
18466
18467 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
18468
18469         * read-rtl.c (md_name): New structure.
18470         (read_name): Take an md_name instead of a buffer pointer.
18471         Use the "string" field instead of strcpy when expanding constants.
18472         (read_constants): Remove the tmp_char argument.  Update the calls
18473         to read_name, using two local name buffers instead of the tmp_char
18474         argument.  Merge the constant-creation code.
18475         (read_conditions): Remove the tmp_char argument.  Update the calls
18476         to read_name, using a local name buffer instead of the tmp_char
18477         argument.
18478         (read_mapping): Replace tmp_char variable with a local name buffer.
18479         Update the calls to read_name.
18480         (read_rtx_1): Likewise.  Update the calls to read_constants and
18481         read_conditions.
18482
18483 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
18484
18485         * Makefile.in (build/read-md.o): Depend on errors.h.
18486         * read-md.h (error_with_line): Declare.
18487         * read-md.c: Include errors.h.
18488         (message_with_line_1): New function, extracted from...
18489         (message_with_line): ...here.
18490         (error_with_line): New function.
18491         * genattrtab.c: If a call to message_with_line is followed by
18492         "have_error = 1;", replace both statements with a call to
18493         error_with_line.
18494         * genoutput.c: Likewise.
18495         * genpreds.c: Likewise.
18496         * genrecog.c: If a call to message_with_line is followed by
18497         "error_count++;", replace both statements with a call to
18498         error_with_line.
18499         (errorcount): Delete.
18500         (main): Don't check it.
18501         * gensupport.c: If a call to message_with_line is followed by
18502         "errors = 1;", replace both statements with a call to error_with_line.
18503         (errors): Delete.
18504         (process_define_cond_exec): Check have_error instead of errors.
18505         (init_md_reader_args_cb): Likewise.  Don't set errors.
18506
18507 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
18508
18509         * read-md.h (read_md_file): Declare.
18510         (read_char, unread_char): New functions.
18511         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
18512         (read_quoted_string, read_string): Remove FILE * argument.
18513         * read-md.c (read_md_file): New variable.
18514         (read_md_filename, read_md_lineno): Update comments and remove
18515         unnecessary initialization.
18516         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
18517         (read_escape, read_quoted_string, read_braced_string, read_string):
18518         Remove FILE * argument.  Update calls accordingly, using read_char
18519         and unread_char instead of getc and ungetc.
18520         * rtl.h (read_rtx): Remove FILE * argument.
18521         * read-rtl.c (iterator_group): Remove FILE * argument from
18522         "find_builtin".
18523         (iterator_traverse_data): Remove "infile" field.
18524         (find_mode, find_code, apply_mode_maps, apply_iterator_to_rtx)
18525         (add_mapping, read_name, read_constants, read_conditions)
18526         (validate_const_int, find_iterator, read_mapping, check_code_iterator)
18527         (read_rtx, read_rtx_1, read_rtx_variadic): Remove FILE * argument.
18528         Remove file arguments from all calls, using read_char and unread_char
18529         instead of getc and ungetc.
18530         * gensupport.c (process_include): Preserve read_md_file around
18531         the include.  Set read_md_file to the handle of the included file.
18532         Update call to read_rtx.
18533         (init_md_reader_args_cb): Set read_md_file to the handle of the file
18534         and remove local FILE *.  Update calls to read_rtx.
18535
18536 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
18537
18538         * read-md.h (read_rtx_lineno): Rename to...
18539         (read_md_lineno): ...this.
18540         (read_rtx_filename): Rename to...
18541         (read_md_filename): ...this.
18542         (copy_rtx_ptr_loc): Rename to...
18543         (copy_md_ptr_loc): ...this.
18544         (print_rtx_ptr_loc): Rename to...
18545         (print_md_ptr_loc): ...this.
18546         * read-md.c: Likewise.  Update references after renaming.
18547         (string_obstack): Replace RTL with MD in comment.
18548         (set_rtx_ptr_loc): Rename to...
18549         (set_md_ptr_loc): ...this.
18550         (get_rtx_ptr_loc): Rename to...
18551         (get_md_ptr_loc): ...this.
18552         * genconditions.c: Update references after renaming.
18553         * genemit.c: Likewise.
18554         * genoutput.c: Likewise.
18555         * genpreds.c: Likewise.
18556         * gensupport.c: Likewise.
18557         * read-rtl.c: Likewise.
18558
18559 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
18560
18561         * Makefile.in (READ_MD_H): New variable.
18562         (BUILD_RTL): Add build/read-md.o.
18563         (lto-wrapper.o): Depend on coretypes.h instead of defaults.h.
18564         (build/gensupport.o, build/read-rtl.o, build/genattr.o)
18565         (build/genattrtab.o, build/genconditions.o build/genemit.o)
18566         (build/genextract.o, build/genflags.o, build/genoutput.o)
18567         (build/genpreds.o, build/genrecog.o): Depend on $(READ_MD_H).
18568         (build/read-md.o): New rule.
18569         * defaults.h (obstack_chunk_alloc, obstack_chunk_free)
18570         (OBSTACK_CHUNK_SIZE, gcc_obstack_init): Move to...
18571         * coretypes.h: ...here.
18572         * lto-wrapper.c: Include coretypes.h instead of defaults.h.
18573         * pretty-print.c (obstack_chunk_alloc, obstack_chunk_free): Delete.
18574         * genattr.c: Include read-md.h.
18575         * genattrtab.c: Likewise.
18576         * genconditions.c: Likewise.
18577         * genemit.c: Likewise.
18578         * genextract.c: Likewise.
18579         * genflags.c: Likewise.
18580         * genoutput.c: Likewise.
18581         * genpreds.c: Likewise.
18582         * genrecog.c: Likewise.
18583         * rtl.h (read_skip_spaces, copy_rtx_ptr_loc, print_rtx_ptr_loc)
18584         (join_c_conditions, print_c_condition, read_rtx_filename)
18585         (read_rtx_lineno): Move to read-md.h.
18586         * read-rtl.c: Include read-md.h.
18587         (ptr_loc, string_obstack, ptr_locs, ptr_loc_obstack)
18588         (joined_conditions, joined_conditions_obstack, read_rtx_lineno)
18589         (read_rtx_filename, fatal_with_file_and_line, fatal_expected_char)
18590         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc, get_rtx_ptr_loc)
18591         (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
18592         (print_c_condition, read_skip_spaces, read_escape, read_quoted_string)
18593         (read_braced_string, read_string): Move to read-md.c.
18594         (read_rtx): Move some initialization to init_md_reader and call
18595         init_md_reader here.
18596         * gensupport.h (message_with_line, n_comma_elts, scan_comma_elt):
18597         Move to read-md.h.
18598         * gensupport.c: Include read-md.h.
18599         (message_with_line, n_comma_elts, scan_comma_elt): Move to read-md.c.
18600         * read-md.h, read-md.c: New files.
18601
18602 2010-06-10  Anatoly Sokolov  <aesok@post.ru>
18603
18604         * config/moxie/moxie.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
18605         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
18606         * config/moxie/moxie-protos.h (moxie_function_value): Remove.
18607         * config/moxie/moxie.c (moxie_function_value): Make static.
18608         (moxie_libcall_value, moxie_function_value_regno_p): New functions.
18609         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
18610
18611 2010-06-10  Martin Jambor  <mjambor@suse.cz>
18612
18613         * Makefile.in (tree-sra.o): Add DBGCNT_H to dependencies.
18614         * dbgcnt.def (tree_sra): New counter.
18615         * tree-sra.c: Include dbgcnt.h.
18616         (gate_intra_sra): Check tree_sra debug counter.
18617
18618 2010-06-10  Martin Jambor  <mjambor@suse.cz>
18619
18620         PR tree-optimization/44258
18621         * tree-sra.c (build_access_subtree): Return false iff there is a
18622         partial overlap.
18623         (build_access_trees): Likewise.
18624         (analyze_all_variable_accesses): Disqualify candidates if
18625         build_access_trees returns true for them.
18626
18627 2010-06-10  Alexandre Oliva  <aoliva@redhat.com>
18628
18629         PR debug/41371
18630         * var-tracking.c (find_loc_in_1pdv): Remove recursion, only
18631         tail-recurse into canonical node.  Fast-forward over
18632         non-canonical VALUEs.
18633
18634 2010-06-10  H.J. Lu  <hongjiu.lu@intel.com>
18635
18636         PR boostrap/44470
18637         * config/i386/i386.md (*add<mode>_1): Revert revision 160394.
18638         (*addsi_1_zext) <TYPE_LEA>: Likewise.
18639         (add lea splitter): Likewise.
18640         (add_zext lea splitter): Likewise.
18641
18642 2010-06-10  Joseph Myers  <joseph@codesourcery.com>
18643
18644         * common.opt (fshow-column): Don't mark as C ObjC C++ ObjC++.
18645
18646 2010-06-10  Jan Hubicka  <jh@suse.cz>
18647
18648         * df-problems.c (df_live_problem_data): Add live_bitmaps.
18649         (df_live_alloc): Initialize problem data and live_osbtacks.
18650         (df_live_finalize): Remove obstack, problem data; do not
18651         clear all bitmaps.
18652         (df_live_top_dump, df_live_bottom_dump): Do not dump old
18653         data when not allocated.
18654         (df_live_verify_solution_start): Do not allocate problem data.
18655         (df_live_verify_solution_end): Check if out is allocated.
18656         (struct df_md_problem_data): New structure.
18657         (df_md_alloc): Allocate problem data.
18658         (df_md_free): Free problem data; do not clear bitmaps.
18659
18660 2010-06-10  Jan Beulich  <jbeulich@novell.com>
18661
18662         PR bootstrap/37304
18663         * configure.ac: Replace $() with ${} when intending to expand
18664         variables rather than invoking commands.
18665         * configure: Re-generate.
18666
18667 2010-06-10  Jan Hubicka  <jh@suse.cz>
18668
18669         PR rtl-optimization/44460
18670         * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
18671         TYPE_NEEDS_CONSTRUCTING sanity check.
18672
18673 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
18674
18675         * doc/include/fdl.texi: Move to GFDL version 1.3.
18676
18677         * doc/cpp.texi: Move to GFDL version 1.3.
18678         * doc/gcc.texi: Move to GFDL version 1.3.  Fix copyright years.
18679         * doc/gccint.texi: Move to GFDL version 1.3.
18680         * doc/gcov.texi: Move to GFDL version 1.3.  Update copyright years.
18681         * doc/install.texi: Move to GFDL version 1.3.  Fix copyright years.
18682         * doc/invoke.texi: Move to GFDL version 1.3.
18683
18684 2010-06-09  Jan Hubicka  <jh@suse.cz>
18685
18686         * ipa-pure-const.c (propagate_pure_const, propagate_noreturn):
18687         Break out from ...
18688         (propagate) ... here; swap the order.
18689
18690 2010-06-09  Jan Hubicka  <jh@suse.cz>
18691
18692         * bitmap.c (bitmap_elt_insert_after, bitmap_first_set_bit,
18693         bitmap_first_set_bit, bitmap_last_set_bit, bitmap_last_set_bit,
18694         bitmap_and_into, bitmap_and_compl_into, bitmap_set_range,
18695         bitmap_compl_and_into, bitmap_elt_ior): Use checking asserts.
18696
18697 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
18698
18699         * tree-ssa-loop-prefetch.c (gather_memory_references_ref):
18700         Do not the gather memory reference in the outer loop if the step
18701         is not a constant.
18702
18703 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
18704
18705         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO) :
18706         Change the PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO threshold value from
18707         8 to 4.  Minor change of the related comments.
18708
18709 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
18710
18711         * tree-scalar-evolution.c (instantiate_scev_name): Do not fail
18712         the scev analysis when the variable is not used outside the loop
18713         in a close phi node: call compute_overall_effect_of_inner_loop.
18714
18715 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
18716
18717         * graphite-sese-to-poly.c (single_pred_cond): Renamed
18718         single_pred_cond_non_loop_exit.  Return NULL for loop exit edges.
18719         (build_sese_conditions_before): Renamed call to single_pred_cond.
18720         (build_sese_conditions_after): Same.
18721
18722 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
18723
18724         * graphite-poly.h: Fix comments and indentation.
18725         * graphite-sese-to-poly.c: Same.
18726         (build_sese_conditions_before): Compute stmt and gbb only when needed.
18727         * tree-chrec.c: Fix comments and indentation.
18728         (tree-ssa-loop-niter.c): Same.
18729
18730 2010-06-09  Eric Botcazou  <ebotcazou@adacore.com>
18731
18732         PR rtl-optimization/42461
18733         * dce.c (deletable_insn_p): Return true for const or pure calls again.
18734         * except.c (insn_could_throw_p): Return false if !flag_exceptions.
18735
18736 2010-06-09  Jan Hubicka  <jh@suse.cz>
18737
18738         * bitmap.c (bitmap_and): Walk array forward.
18739         (bitmap_and_compl_into): Likewise.
18740         (bitmap_xor): Likewise.
18741         (bitmap_xor_into):  Likewise.
18742         (bitmap_equal_p): Likewise.
18743         (bitmap_intersect_p): Likewise.
18744         (bitmap_intersect_compl_p): Likewise.
18745         (bitmap_ior_and_into): Likewise.
18746         (bitmap_elt_copy): Likewise.
18747         (bitmap_and_compl): Likewise.
18748         (bitmap_elt_ior): Likewise.
18749
18750 2010-06-09  Dave Korn  <dave.korn.cygwin@gmail.com>
18751
18752         * opts-common.c (prune_options): Ensure replacement argv array
18753         is correctly terminated by a NULL entry.
18754
18755 2010-06-09  Jan Hubicka  <jh@suse.cz>
18756
18757         * cgraph.h (varpool_first_static_initializer,
18758         varpool_next_static_initializer): Make checking only when
18759         checking enabled.
18760         * tree-vectorizer.h (vinfo_for_stmt): Remove check.
18761         (set_vinfo_for_stmt, get_earlier_stmt, is_loop_header_bb_p): Change
18762         gcc_assert to gcc_checking_assert.
18763         * tree-flow-inline.h (gimple_vop, get_var_ann, relink_imm_use,
18764         phi_nodes, set_phi_nodes, phi_arg_index_from_use, op_iter_next_use,
18765         op_iter_next_def, op_iter_next_tree, op_iter_init, op_iter_init_use,
18766         op_iter_init_phiuse, op_iter_init_phidef,
18767         array_ref_contains_indirect_ref, ref_contains_array_ref): Use
18768         gcc_checking_assert.
18769         * emit-rtl.h (set_first_insn, set_last_insn): Likewise.
18770         * tree-ssa-live.h (var_to_partition, var_to_partition_to_var,
18771         partition_is_global, live_on_entry, live_on_exit,
18772         live_merge_and_clear): Likewise.
18773         * system.h (gcc_checking_assert): New macro.
18774         * gimple.h (set_bb_seq): Use gcc_checking_assert.
18775
18776 2010-06-09  Jason Merrill  <jason@redhat.com>
18777
18778         * Makefile.in (TAGS): Collect tags info from c-family.
18779
18780 2010-06-09  Jan Hubicka  <jh@suse.cz>
18781
18782         * gimple.h (gcc_gimple_checking_assert): New macro.
18783         (gimple_set_def_ops, gimple_set_use_ops,
18784         gimple_set_vuse, gimple_set_vdef,
18785         gimple_omp_subcode, gimple_omp_set_subcode, gimple_ops, gimple_op,
18786         gimple_op_ptr, gimple_op_ptr, gimple_set_op, gimple_bind_set_block,
18787         gimple_asm_input_op, gimple_asm_input_op_ptr, gimple_asm_set_input_op,
18788         gimple_asm_output_op, gimple_asm_output_op_ptr,
18789         gimple_asm_set_output_op, gimple_asm_clobber_op,
18790         gimple_asm_set_clobber_op, gimple_asm_label_op,
18791         gimple_asm_set_label_op, gimple_try_set_kind,
18792         gimple_try_catch_is_cleanup, gimple_try_set_catch_is_cleanup,
18793         gimple_phi_arg, gimple_switch_num_labels, gimple_switch_set_index,
18794         gimple_switch_label, gimple_switch_set_label, gimple_omp_for_index,
18795         gimple_omp_for_index_ptr, gimple_omp_for_set_index,
18796         gimple_omp_for_initial, gimple_omp_for_initial_ptr,
18797         gimple_omp_for_set_initial, gimple_omp_for_final,
18798         gimple_omp_for_final_ptr, gimple_omp_for_set_final,
18799         gimple_omp_for_incr, gimple_omp_for_incr_ptr, gimple_omp_for_set_incr,
18800         gimple_omp_for_set_cond, gimple_omp_for_cond): Make checking
18801         conditional with ENABLE_GIMPLE_CHECKING.
18802         (gimple_phi_set_arg): Likewise; replace memcpy by assignment.
18803
18804 2010-06-09  Sandra Loosemore  <sandra@codesourcery.com>
18805
18806         * tree-ssa-loop-ivopts.c (adjust_setup_cost): New function.
18807         (get_computation_cost_at): Use it.
18808         (determine_use_iv_cost_condition): Likewise.
18809         (determine_iv_cost): Likewise.
18810
18811 2010-06-09  Richard Guenther  <rguenther@suse.de>
18812
18813         * tree-ssa-loop-niter.c (simplify_replace_tree): Do not
18814         replace constants.
18815
18816 2010-06-09  Kai Tietz  <kai.tietz@onevision.com>
18817
18818         * c-objc-common.c (c_tree_printer): Pre-intialize t by NULL_TREE.
18819
18820 2010-06-09  Martin Jambor  <mjambor@suse.cz>
18821
18822         PR tree-optimization/44423
18823         * tree-sra.c (dump_access): Dump also grp_assignment_read.
18824         (analyze_access_subtree): Pass negative allow_replacements to children
18825         if the current type is scalar.
18826
18827 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
18828
18829         PR testsuite/42843
18830         * gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".
18831         * doc/plugins.texi (Plugin license check): Update information
18832         on type of plugin_is_GPL_compatible.
18833         * Makefile.in (PLUGINCC): Define as $(COMPILER).
18834         (PLUGINCFLAGS): Define as $(COMPILER_FLAGS).
18835
18836 2010-06-09  Bernd Schmidt  <bernds@codesourcery.com>
18837
18838         * config/arm/arm.c (thumb2_reorg): New function.
18839         (arm_reorg): Call it.
18840         * config/arm/thumb2.md (define_peephole2 for flag clobbering
18841         arithmetic operations): Delete.
18842
18843 2010-06-09  Edmar Wienskoski  <edmar@freescale.com>
18844
18845         PR target/44067
18846         * config/rs6000/rs6000.md (DIFD): Do not split dpfp values for
18847         e500v2 target.
18848
18849 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
18850
18851         PR plugins/44459
18852         * gcc-plugin.h: Encapsulate all declarations in extern "C".
18853
18854 2010-06-08  Jan Hubicka  <jh@suse.cz>
18855
18856         * basic-block.h (single_succ_edge, single_pred_edge, ei_container,
18857         ei_next, ei_prev): Do sanity checking with ENABLE_CHECKING only.
18858
18859 2010-06-08  Sandra Loosemore  <sandra@codesourcery.com>
18860
18861         PR tree-optimization/39874
18862         PR middle-end/28685
18863         * gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons):
18864         Declare.
18865         * gimple-fold.c (canonicalize_bool, same_bool_comparison_p,
18866         same_bool_result_p): New.
18867         (and_var_with_comparison, and_var_with_comparison_1,
18868         and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New.
18869         (or_var_with_comparison, or_var_with_comparison_1,
18870         or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New.
18871         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Use
18872         maybe_fold_and_comparisons or maybe_fold_or_comparisons instead
18873         of combine_comparisons.
18874         * tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise.
18875
18876 2010-06-08  Anatoly Sokolov  <aesok@post.ru>
18877
18878         * config/pdp11/pdp11.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
18879         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
18880         * config/pdp11/pdp11.c (pdp11_function_value, pdp11_libcall_value,
18881         pdp11_function_value_regno_p): New functions.
18882         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
18883         TARGET_FUNCTION_VALUE_REGNO_P): Define.
18884
18885 2010-06-08  Kazu Hirata  <kazu@codesourcery.com>
18886
18887         * config/arm/arm.c (arm_rtx_costs_1): Don't special case for
18888         Thumb-2 in the MINUS case.
18889
18890 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
18891
18892         * doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
18893
18894         * doc/gty.texi (GTY Options): Document typed GC allocation and
18895         variable_size GTY option.
18896
18897         * ggc-internal.h: New.
18898
18899         * ggc.h: Update copyright year.
18900         (digit_string): Move to stringpool.c.
18901         (ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
18902         (gt_pch_save_stringpool, gt_pch_fixup_stringpool)
18903         (gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
18904         (init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
18905         (ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
18906         (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
18907         (ggc_force_collect, ggc_get_size, ggc_statistics)
18908         (ggc_print_common_statistics): Move to ggc-internal.h.
18909         (digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
18910         (ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
18911         (GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
18912         (ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
18913         (ggc_min_heapsize_heuristic, ggc_alloc_zone)
18914         (ggc_alloc_zone_pass_stat): Remove.
18915         (ggc_internal_alloc_stat, ggc_internal_alloc)
18916         (ggc_internal_cleared_alloc_stat): New.
18917         (GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
18918         (ggc_internal_vec_alloc_stat)
18919         (ggc_internal_cleared_vec_alloc_stat)
18920         (ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
18921         (ggc_alloc_atomic_stat, ggc_alloc_atomic)
18922         (ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
18923         (ggc_cleared_alloc_ptr_array_two_args): New.
18924         (htab_create_ggc, splay_tree_new_ggc): Redefine.
18925         (ggc_splay_alloc): Change the type of the first argument to
18926         enum gt_types_enum.
18927         (ggc_alloc_string): Make macro.
18928         (ggc_alloc_string_stat): New.
18929         (ggc_strdup): Redefine.
18930         (rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
18931         (ggc_alloc_rtvec_sized): New.
18932         (ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
18933         (ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
18934         (ggc_internal_cleared_alloc_zone_stat)
18935         (ggc_internal_zone_alloc_stat)
18936         (ggc_internal_zone_cleared_alloc_stat)
18937         (ggc_internal_zone_vec_alloc_stat)
18938         (ggc_alloc_zone_rtx_def_stat)
18939         (ggc_alloc_zone_tree_node_stat)
18940         (ggc_alloc_zone_cleared_tree_node_stat)
18941         (ggc_alloc_cleared_gimple_statement_d_stat): New.
18942
18943         * ggc-common.c: Include ggc-internal.h.
18944         (ggc_internal_cleared_alloc_stat): Rename from
18945         ggc_alloc_cleared_stat.
18946         (ggc_realloc_stat): Use ggc_internal_alloc_stat.
18947         (ggc_calloc): Remove.
18948         (ggc_cleared_alloc_htab_ignore_args): New.
18949         (ggc_cleared_alloc_ptr_array_two_args): New.
18950         (ggc_splay_alloc): Add obj_type parameter.
18951         (init_ggc_heuristics): Formatting fixes.
18952
18953         * ggc-none.c: Update copyright year.
18954         (ggc_alloc_stat): Rename to ggc_alloc_stat.
18955         (ggc_alloc_cleared_stat): Rename to
18956         ggc_internal_cleared_alloc_stat.
18957         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
18958
18959         * ggc-page.c: Update copyright year.  Include ggc-internal.h.
18960         Remove references to ggc_alloc in comments.
18961         (ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
18962         (ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
18963         (new_ggc_zone, destroy_ggc_zone): Remove.
18964         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
18965
18966         * ggc-zone.c: Include ggc-internal.h.  Remove references to
18967         ggc_alloc in comments.
18968         (ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
18969         (ggc_internal_alloc_zone_pass_stat): New.
18970         (ggc_internal_cleared_alloc_zone_stat): New.
18971         (ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
18972         (ggc_alloc_stat): Rename ggc_internal_alloc_stat.
18973         (new_ggc_zone, destroy_ggc_zone): Remove.
18974
18975         * stringpool.c: Update copyright year.  Include ggc-internal.h
18976         (digit_vector): Make static.
18977         (digit_string): Moved from ggc.h.
18978         (stringpool_ggc_alloc): Use ggc_alloc_atomic.
18979         (ggc_alloc_string): Rename to ggc_alloc_string_stat.
18980
18981         * Makefile.in (GGC_INTERNAL_H): New.
18982         (ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
18983         $(GGC_INTERNAL_H) to dependencies.
18984
18985         * gentype.c: Update copyright year.
18986         (walk_type): Accept variable_size GTY option.
18987         (USED_BY_TYPED_GC_P): New macro.
18988         (write_enum_defn): Use USED_BY_TYPED_GC_P.  Do not output
18989         whitespace at the end of strings.
18990         (get_type_specifier, variable_size_p): New functions.
18991         (alloc_quantity, alloc_zone): New enums.
18992         (write_typed_alloc_def): New function.
18993         (write_typed_struct_alloc_def): Likewise.
18994         (write_typed_typed_typedef_alloc_def): Likewise.
18995         (write_typed_alloc_defns): Likewise.
18996         (output_typename, write_splay_tree_allocator_def): Likewise.
18997         (write_splay_tree_allocators): Likewise.
18998         (main): Call write_typed_alloc_defns and
18999         write_splay_tree_allocators.
19000
19001         * lto-streamer.h (lto_file_decl_data_ptr): New.
19002
19003         * passes.c (order): Define using cgraph_node_ptr.
19004
19005         * strinpool.c (struct string_pool_data): Declare nested_ptr using
19006         ht_identifier_ptr.
19007
19008         * gimple.h (union gimple_statement_d): Likewise.
19009
19010         * rtl.h (struct rtx_def): Likewise.
19011         (struct rtvec_def): Likewise.
19012
19013         * tree.h (union tree_node): Likewise.
19014
19015         * tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
19016
19017         * cfgloop.c (record_loop_exits): Use htab_create_ggc.
19018
19019         * tree-scalar-evolution.c (scev_initialize): Likewise.
19020
19021         * alias.c (record_alias_subset): Update splay_tree_new_ggc call.
19022
19023         * dwarf2asm.c (dw2_force_const_mem): Likewise.
19024
19025         * omp-low.c (lower_omp_critical): Likewise.
19026
19027         * bitmap.h (struct bitmap_head_def): Update comment to not
19028         reference ggc_alloc.
19029
19030         * config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
19031
19032         * ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
19033
19034         * ipa-prop.c (duplicate_ggc_array): Rename to
19035         duplicate_ipa_jump_func_array.  Use typed GC allocation.
19036         (ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
19037
19038         * gimple.c (gimple_alloc_stat): Use
19039         ggc_alloc_cleared_gimple_statement_d_stat.
19040
19041         * varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
19042
19043         * tree.c (make_node_stat): Use
19044         ggc_alloc_zone_cleared_tree_node_stat.
19045         (make_tree_vec_stat): Likewise.
19046         (build_vl_exp_stat): Likewise.
19047         (copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
19048         (make_tree_binfo_stat): Likewise.
19049         (tree_cons_stat): Likewise.
19050
19051         * rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
19052         (shallow_copy_rtx_stat): Likewise.
19053         (make_node_stat): Likewise.
19054
19055         * lto-symtab.c: Fix comment.
19056
19057         * tree-cfg.c (create_bb): Update comment to not reference
19058         ggc_alloc_cleared.
19059         * tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is value.
19060
19061         * varpool.c (varpool_node): Use typed GC allocation.
19062         (varpool_extra_name_alias): Likewise.
19063
19064         * varasm.c (emutls_decl): Likewise.
19065         (get_unnamed_section): Likewise.
19066         (get_noswitch_section): Likewise.
19067         (get_section): Likewise.
19068         (get_block_for_section): Likewise.
19069         (build_constant_desc): Likewise.
19070         (create_constant_pool): Likewise.
19071         (force_const_mem): Likewise.
19072
19073         * tree.c (build_vl_exp_stat): Likewise.
19074         (build_real): Likewise.
19075         (build_string): Likewise.
19076         (decl_debug_expr_insert): Likewise.
19077         (decl_value_expr_insert): Likewise.
19078         (type_hash_add): Likewise.
19079         (build_omp_clause): Likewise.
19080
19081         * tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
19082
19083         * tree-ssa.c (init_tree_ssa): Likewise.
19084
19085         * tree-ssa-structalias.c (heapvar_insert): Likewise.
19086
19087         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
19088
19089         * tree-ssa-loop-niter.c (record_estimate): Likewise.
19090
19091         * tree-ssa-alias.c (get_ptr_info): Likewise.
19092
19093         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
19094
19095         * tree-phinodes.c (allocate_phi_node): Likewise.
19096
19097         * tree-iterator.c (tsi_link_before): Likewise.
19098         (tsi_link_after): Likewise.
19099
19100         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
19101
19102         * tree-dfa.c (create_var_ann): Likewise.
19103
19104         * tree-cfg.c (create_bb): Likewise.
19105
19106         * toplev.c (alloc_for_identifier_to_locale): Likewise.
19107         (general_init): Likewise.
19108
19109         * stringpool.c (stringpool_ggc_alloc): Likewise.
19110         (gt_pch_save_stringpool): Likewise.
19111
19112         * sese.c (if_region_set_false_region): Likewise.
19113
19114         * passes.c (do_per_function_toporder): Likewise.
19115
19116         * optabs.c (set_optab_libfunc): Likewise.
19117         (set_conv_libfunc): Likewise.
19118
19119         * lto-symtab.c (lto_symtab_register_decl): Likewise.
19120
19121         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
19122         (input_eh_region): Likewise.
19123         (input_eh_lp): Likewise.
19124         (make_new_block): Likewise.
19125         (unpack_ts_real_cst_value_fields): Likewise.
19126
19127         * lto-section-in.c (lto_new_in_decl_state): Likewise.
19128
19129         * lto-cgraph.c (input_node_opt_summary): Likewise.
19130
19131         * loop-init.c (loop_optimizer_init): Likewise.
19132
19133         * lambda.h (lambda_vector_new): Likewise.
19134
19135         * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
19136
19137         * ira.c (update_equiv_regs): Likewise.
19138
19139         * ipa.c (cgraph_node_set_new): Likewise.
19140         (cgraph_node_set_add): Likewise.
19141         (varpool_node_set_new): Likewise.
19142         (varpool_node_set_add): Likewise.
19143
19144         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
19145         (duplicate_ipa_jump_func_array): Likewise.
19146         (ipa_read_node_info): Likewise.
19147
19148         * ipa-cp.c (ipcp_create_replace_map): Likewise.
19149
19150         * integrate.c (get_hard_reg_initial_val): Likewise.
19151
19152         * gimple.c (gimple_alloc_stat): Likewise.
19153         (gimple_build_omp_for): Likewise.
19154         (gimple_seq_alloc): Likewise.
19155         (gimple_copy): Likewise.
19156
19157         * gimple-iterator.c (gsi_insert_before_without_update): Likewise.
19158         (gsi_insert_after_without_update): Likewise.
19159
19160         * function.c (add_frame_space): Likewise.
19161         (insert_temp_slot_address): Likewise.
19162         (assign_stack_temp_for_type): Likewise.
19163         (allocate_struct_function): Likewise.
19164         (types_used_by_var_decl_insert): Likewise.
19165
19166         * except.c (init_eh_for_function): Likewise.
19167         (gen_eh_region): Likewise.
19168         (gen_eh_region_catch): Likewise.
19169         (gen_eh_landing_pad): Likewise.
19170         (add_call_site): Likewise.
19171
19172         * emit-rtl.c (get_mem_attrs): Likewise.
19173         (get_reg_attrs): Likewise.
19174         (start_sequence): Likewise.
19175         (init_emit): Likewise.
19176
19177         * dwarf2out.c (new_cfi): Likewise.
19178         (queue_reg_save): Likewise.
19179         (dwarf2out_frame_init): Likewise.
19180         (new_loc_descr): Likewise.
19181         (find_AT_string): Likewise.
19182         (new_die): Likewise.
19183         (add_var_loc_to_decl): Likewise.
19184         (clone_die): Likewise.
19185         (clone_as_declaration): Likewise.
19186         (break_out_comdat_types): Likewise.
19187         (new_loc_list): Likewise.
19188         (loc_descriptor): Likewise.
19189         (add_loc_descr_to_each): Likewise.
19190         (add_const_value_attribute): Likewise.
19191         (tree_add_const_value_attribute): Likewise.
19192         (add_comp_dir_attribute): Likewise.
19193         (add_name_and_src_coords_attributes): Likewise.
19194         (lookup_filename): Likewise.
19195         (store_vcall_insn): Likewise.
19196         (dwarf2out_init): Likewise.
19197
19198         * dbxout.c (dbxout_init): Likewise.
19199
19200         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
19201
19202         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
19203
19204         * config/score/score7.c (score7_output_external): Likewise.
19205
19206         * config/score/score3.c (score3_output_external): Likewise.
19207
19208         * config/s390/s390.c (s390_init_machine_status): Likewise.
19209
19210         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
19211         (rs6000_init_machine_status): Likewise.
19212         (output_toc): Likewise.
19213
19214         * config/pa/pa.c (pa_init_machine_status): Likewise.
19215         (get_deferred_plabel): Likewise.
19216
19217         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
19218
19219         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
19220
19221         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
19222
19223         * config/mep/mep.c (mep_init_machine_status): Likewise.
19224         (mep_note_pragma_flag): Likewise.
19225
19226         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
19227
19228         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
19229
19230         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
19231
19232         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
19233         (i386_pe_maybe_record_exported_symbol): Likewise.
19234
19235         * config/i386/i386.c (get_dllimport_decl): Likewise.
19236         (ix86_init_machine_status): Likewise.
19237         (assign_386_stack_local): Likewise.
19238
19239         * config/frv/frv.c (frv_init_machine_status): Likewise.
19240
19241         * config/darwin.c (machopic_indirection_name): Likewise.
19242
19243         * config/cris/cris.c (cris_init_machine_status): Likewise.
19244
19245         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
19246
19247         * config/avr/avr.c (avr_init_machine_status): Likewise.
19248
19249         * config/arm/arm.c (arm_init_machine_status): Likewise.
19250
19251         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
19252         (alpha_need_linkage): Likewise.
19253         (alpha_use_linkage): Likewise.
19254
19255         * cgraph.c (cgraph_allocate_node): Likewise.
19256         (cgraph_create_edge_1): Likewise.
19257         (cgraph_create_indirect_edge): Likewise.
19258         (cgraph_add_asm_node): Likewise.
19259
19260         * cfgrtl.c (init_rtl_bb_info): Likewise.
19261
19262         * cfgloop.c (alloc_loop): Likewise.
19263         (rescan_loop_exit): Likewise.
19264
19265         * cfg.c (init_flow): Likewise.
19266         (alloc_block): Likewise.
19267         (unchecked_make_edge): Likewise.
19268
19269         * c-parser.c (c_parse_init): Likewise.
19270         (c_parse_file): Likewise.
19271
19272         * c-decl.c (bind): Likewise.
19273         (record_inline_static): Likewise.
19274         (push_scope): Likewise.
19275         (make_label): Likewise.
19276         (lookup_label_for_goto): Likewise.
19277         (finish_struct): Likewise.
19278         (finish_enum): Likewise.
19279         (c_push_function_context): Likewise.
19280
19281         * bitmap.c (bitmap_element_allocate): Likewise.
19282         (bitmap_gc_alloc_stat): Likewise.
19283
19284         * alias.c (record_alias_subset): Likewise.
19285         (init_alias_analysis): Likewise.
19286
19287 2010-06-08  Shujing Zhao  <pearly.zhao@oracle.com>
19288
19289         * fold-const.c (fold_comparison): Remove redundant parenthesis.
19290         * tree-inline.c (expand_call_inline): Pass translated return value of
19291         cgraph_inline_failed_string to diagnostic function.
19292
19293 2010-06-08  Andrew Pinski  <pinskia@gmail.com>
19294             Shujing Zhao  <pearly.zhao@oracle.com>
19295
19296         PR c/37724
19297         * c-typeck.c (convert_for_assignment): Call pedwarn_init if the
19298         implicit bad conversions is initialization.
19299         (error_init): Use gmsgid instead of msgid for argument name and change
19300         the call for error.
19301         (pedwarn_init): Use gmsgid instead of msgid for argument name and
19302         change the call for pedwarn.
19303         (warning_init): Use gmsgid instead of msgid for argument name and
19304         change the call for warning.
19305
19306 2010-06-07  Nathan Froyd  <froydnj@codesourcery.com>
19307
19308         * config/mips/mips-protos.h (mips_print_operand): Delete.
19309         (mips_print_operand_address): Delete.
19310         * config/mips/mips.h (mips_print_operand_punct): Delete.
19311         (PRINT_OPERAND): Delete.
19312         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
19313         (PRINT_OPERAND_ADDRESS): Delete.
19314         * config/mips/mips.c (mips_print_operand_punct): Make static.
19315         (mips_print_operand_address): Make static.
19316         (mips_print_operand): Make static.  Call
19317         mips_print_operand_punct_valid_p.
19318         (mips_print_operand_punct_valid_p): New function.
19319         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
19320         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
19321
19322 2010-06-07  Jan Hubicka  <jh@suse.cz>
19323
19324         PR middle-end/44454
19325         (df_lr_top_dump, df_lr_bottom_dump): Check that in/out bitmaps
19326         are allocated.
19327
19328 2010-06-07  Kaz Kojima  <kkojima@gcc.gnu.org>
19329
19330         * config/sh/sh.c (sh_build_builtin_va_list): Set tree type
19331         name of RECORD.
19332
19333 2010-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19334
19335         * doc/sourcebuild.texi (Effective-Target Keywords, Other
19336         attributes): Document gas.
19337
19338 2010-06-07  Uros Bizjak  <ubizjak@gmail.com>
19339
19340         * config/i386/i386.md (*add<mode>_1): Remove alternative 2.
19341         <TYPE_LEA>: Split instruction.
19342         <default>: Remove alternative 2 handling.
19343         (*addsi_1_zext) <TYPE_LEA>: Split instruction.
19344         (add lea splitter): Generate SImode lea for mode sizes <= SImode.
19345         (add_zext lea splitter): Use ix86_lea_for_add_ok in insn predicate.
19346
19347         (*movsi_1) <TYPE_LEA>: Use %a modifier to output operand 1.
19348         (ashift_zext lea splitter): Use DImode for multiplication.
19349
19350         * config/i386/i386.c (ix86_expand_epilogue): Do not use ix86_gen_add
19351         to generate addition.
19352
19353 2010-06-07  Joseph Myers  <joseph@codesourcery.com>
19354
19355         * common.opt (fira-verbose): Use Var.
19356         (fpcc-struct-return): Use Init instead of VarExists.
19357         * defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
19358         toplev.c.
19359         * flags.h (flag_signed_char, flag_short_enums,
19360         flag_pcc_struct_return, flag_ira_verbose,
19361         flag_detailed_statistics, flag_remove_unreachable_functions): Remove.
19362         * toplev.c (flag_detailed_statistics, flag_signed_char,
19363         flag_short_enums, flag_pcc_struct_return, flag_ira_verbose): Remove.
19364         (DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
19365         * toplev.h (flag_crossjumping, flag_if_conversion,
19366         flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
19367         flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
19368         flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
19369         flag_cprop_registers, time_report, flag_ira_loop_pressure,
19370         flag_ira_coalesce, flag_ira_move_spills,
19371         flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.
19372
19373 2010-06-07  Jan Hubicka  <jh@suse.cz>
19374
19375         * df-core.c (df_analyze_problem): Do verification after allocation.
19376
19377         * df-problems.c (df_lr_problem_data): Add lr_bitmaps.
19378         (df_lr_alloc): Initialize problem data; move bitmaps to
19379         lr_bitmaps obstack.
19380         (df_lr_finalize): Free problem data; do not bother to free bitmaps.
19381         (df_lr_verify_solution_start): Do not initialize problem data;
19382         allocate bitmaps in lr_bitmaps.
19383         (df_lr_verify_solution_end): Do not free problem data.
19384
19385 2010-06-07  Jan Hubicka  <jh@suse.cz>
19386
19387         * cgraph.c (cgraph_edge_cannot_lead_to_return): Also check
19388         if caller is noreturn.
19389         * ipa-reference.c (analyze_function): Use ipa_ref_cannot_lead_to_return
19390         * ipa-ref.h (ipa_ref_cannot_lead_to_return): New function.
19391         * ipa-ref.c (ipa_ref_cannot_lead_to_return): New function.
19392         * ipa-pure-const.c (check_decl): Add IPA parameter.
19393         (state_from_flags): New function.
19394         (better_state, worse_state): New functions.
19395         (check_call): When in IPA mode, do not care about callees.
19396         (check_load, check_store): Update.
19397         (check_ipa_load, check_ipa_store): New.
19398         (check_stmt): When in IPA mode, use IPA checkers.
19399         (analyze_function): Use state_from_flags.
19400         (propagate): Check indirect edges and references.
19401
19402 2010-06-07  Kazu Hirata  <kazu@codesourcery.com>
19403
19404         PR rtl-optimization/44404
19405         * auto-inc-dec.c (find_inc): Use reg_overlap_mentioned_p instead
19406         of count_occurrences to see if it's safe to modify mem_insn.
19407
19408 2010-06-07  Richard Guenther  <rguenther@suse.de>
19409
19410         * gimplify.c (gimplify_cleanup_point_expr): For empty body
19411         and EH-only cleanup drop the cleanup instead of inserting it
19412         unconditionally.
19413
19414 2010-06-07  Ira Rosen  <irar@il.ibm.com>
19415
19416         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update
19417         documentation.
19418         * targhooks.c (default_builtin_vectorization_cost): New function.
19419         * targhooks.h (default_builtin_vectorization_cost): Declare.
19420         * target.h (enum vect_cost_for_stmt): Define.
19421         (builtin_vectorization_cost): Change argument and comment.
19422         * tree-vectorizer.h: Remove cost model macros.
19423         * tree-vect-loop.c: Include target.h.
19424         (vect_get_cost): New function.
19425         (vect_estimate_min_profitable_iters): Replace cost model macros with
19426         calls to vect_get_cost.
19427         (vect_model_reduction_cost, vect_model_induction_cost): Likewise.
19428         * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Add
19429         default implementation.
19430         * tree-vect-stmts.c (cost_for_stmt): Replace cost model macros with
19431         calls to target hook builtin_vectorization_cost.
19432         (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
19433         Likewise.
19434         * Makefile.in (tree-vect-loop.o): Add dependency on TARGET_H.
19435         * config/spu/spu.c (spu_builtin_vectorization_cost): Replace with new
19436         implementation to return costs.
19437         * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
19438         * config/spu/spu.h: Remove vectorizer cost model macros.
19439         * config/i386/i386.h: Likewise.
19440         * tree-vect-slp.c (vect_build_slp_tree): Replace cost model macro with
19441         a call to target hook builtin_vectorization_cost.
19442
19443 2010-06-06  Sriraman Tallam  <tmsriram@google.com>
19444
19445         PR target/44319
19446         * config/i386/i386.c (override_options): Turn zee pass on for level 2
19447         and above and defer till target is known.
19448         (optimization_options): Turn on zee pass if TARGET_64BIT is set and
19449         turn off otherwise.
19450
19451 2010-05-25  Jan Hubicka  <jh@suse.cz>
19452
19453         * df-core.c (df_set_blocks): Use bitmap_head instead of bitmap.
19454         (df_compact_blocks): Likewise.
19455         * df.h (struct df): Turn hardware_regs_used,
19456         regular_block_artificial_uses, eh_block_artificial_uses,
19457         insns_to_delete, insns_to_rescan, insns_to_notes_rescan into
19458         bitmap_head.
19459         * df-problems.c (df_lr_local_compute, df_lr_confluence_0,
19460         df_byte_lr_alloc, df_simulate_fixup_sets): Update.
19461         * df-scan.c (df_scan_free_internal, df_scan_alloc, df_scan_start_dump,
19462         df_scan_blocks, df_insn_delete, df_insn_rescan,
19463         df_insn_rescan_debug_internal, df_insn_rescan_all,
19464         df_process_deferred_rescans, df_process_deferred_rescans,
19465         df_notes_rescan, df_get_call_refs, df_get_call_refs,
19466         regs_invalidated_by_call_regset, df_get_call_refs, df_bb_refs_collect,
19467         df_record_entry_block_defs, df_record_exit_block_uses,
19468         df_update_exit_block_uses, df_bb_verify, df_entry_block_bitmap_verify,
19469         df_scan_verify): Update.
19470
19471 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
19472
19473         PR c++/44188
19474         * c-common.c (is_typedef_decl): Move this definition ...
19475         * tree.c (is_typedef_decl): ... here.
19476         (typdef_variant_p): Move definition here from cp/tree.c.
19477         * c-common.h (is_typedef_decl): Move this declaration ...
19478         * tree.h (is_typedef_decl): ... here.
19479         (typedef_variant_p): Move declaration here from cp/cp-tree.h
19480         * dwarf2out.c (is_naming_typedef_decl): New function.
19481         (gen_tagged_type_die): Split out of ...
19482         (gen_type_die_with_usage): ... this function. When an anonymous
19483         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
19484         is emitted for the typedef.
19485         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
19486         anonymous tagged types.
19487
19488 2010-06-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19489
19490         PR c/20000
19491         * c-decl.c (grokdeclarator): Delete warning.
19492
19493 2010-06-06  Eric Botcazou  <ebotcazou@adacore.com>
19494
19495         * stor-layout.c (self_referential_size): Set UNKNOWN_LOCATION on the
19496         newly built CALL_EXPR.
19497         * tree-profile.c (tree_profiling): Don't profile functions produced
19498         for built-in stuff.
19499
19500 2010-06-06  Segher Boessenkool  <segher@kernel.crashing.org>
19501
19502         PR bootstrap/44427
19503         PR bootstrap/44428
19504         * genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros
19505         endianness-independent.
19506
19507 2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
19508
19509         * c-common.c: Move to c-family/.
19510         * c-common.def: Likewise.
19511         * c-common.h: Likewise.
19512         * c-cppbuiltin.c: Likewise.
19513         * c-dump.c: Likewise.
19514         * c-format.c: Likewise.
19515         * c-format.h : Likewise.
19516         * c-gimplify.c: Likewise.
19517         * c-lex.c: Likewise.
19518         * c-omp.c: Likewise.
19519         * c.opt: Likewise.
19520         * c-opts.c: Likewise.
19521         * c-pch.c: Likewise.
19522         * c-ppoutput.c: Likewise.
19523         * c-pragma.c: Likewise.
19524         * c-pragma.h: Likewise.
19525         * c-pretty-print.c: Likewise.
19526         * c-pretty-print.h: Likewise.
19527         * c-semantics.c: Likewise.
19528         * stub-objc.c: Likewise.
19529
19530         * gengtype.c (get_file_langdir): Special-case files in c-family/.
19531         (get_output_file_with_visibility): Fix name for c-common.h.
19532         * c-config-lang.in: Update paths in gtfiles for files in c-family/.
19533
19534         * c-tree.h: Update include path for moved files.
19535         * c-lang.c: Likewise.
19536         * c-lang.h: Likewise.
19537         * c-parser.c: Likewise.
19538         * c-convert.c: Likewise.
19539         * c-decl.c: Likewise.
19540         * c-objc-common.c: Likewise.
19541         * configure.ac: Make sure c-family/ exists in the build directory.
19542         * configure: Regenerate.
19543         * Makefile.in: Update paths for moved files.  Regroup files per
19544         location and update dependencies.  Move generated_files down after
19545         ALL_GTFILES_H.
19546
19547         * config/spu/spu-c.c: Update paths for moved files.
19548         * config/mep/mep-pragma.c: Likewise.
19549         * config/darwin-c.c: Likewise.
19550         * config/i386/msformat-c.c: Likewise.
19551         * config/i386/i386-c.c: Likewise.
19552         * config/avr/avr-c.c: Likewise.
19553         * config/sol2-c.c: Likewise.
19554         * config/ia64/ia64-c.c: Likewise.
19555         * config/rs6000/rs6000-c.c: Likewise.
19556         * config/arm/arm.c: Likewise.
19557         * config/arm/arm-c.c: Likewise.
19558         * config/h8300/h8300.c: Likewise.
19559         * config/v850/v850-c.c: Likewise.
19560
19561         * config/t-darwin: Fix dependencies for moved files.
19562         * config/t-sol2: Fix dependencies for moved files.
19563         * config/mep/t-mep: Fix dependencies for moved files.
19564         * config/ia64/t-ia64: Fix dependencies for moved files.
19565         * config/rs6000/t-rs6000: Fix dependencies for moved files.
19566         * config/v850/t-v850: Fix dependencies for moved files.
19567         * config/v850/t-v850e: Fix dependencies for moved files.
19568
19569         * config/m32c/m32c-pragma.c
19570
19571         * po/exgettext: Look in c-family/ also.
19572
19573 2010-06-05  Eric Botcazou  <ebotcazou@adacore.com>
19574
19575         * tree-ssa-dce.c (mark_last_stmt_necessary): New function.
19576         (mark_control_dependent_edges_necessary): Call it instead of marking
19577         the last statement manually.
19578         (propagate_necessity): Likewise.
19579
19580 2010-06-05  Jan Hubicka  <jh@suse.cz>
19581
19582         * basic-block.h (compute_dominance_frontiers): Updated.
19583         (compute_idf): Likewise.
19584
19585         * tree-into-ssa.c (insert_phi_nodes): Use bitmap heads
19586         for dominance frontiers.
19587         (rewrite_into_ssa): Update for bitmap heads in dominance frontiers.
19588         (insert_updated_phi_nodes_for): Likewise.
19589         (update_ssa): Likewise.
19590         * cfganal.c (compute_dominance_frontiers_1): Likewise.
19591         (compute_dominance_frontiers): Likewise.
19592         (compute_idf): Likewise.
19593         * df-problems.c (df_md_local_compute): Likewise.
19594
19595 2010-06-05  Anatoly Sokolov  <aesok@post.ru>
19596
19597         * target.h (struct gcc_target): Add memory_move_cost field.
19598         * target-def.h (TARGET_MEMORY_MOVE_COST): New.
19599         (TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
19600         * targhooks.c (default_memory_move_cost): New function.
19601         * targhooks.h (default_memory_move_cost): Declare function.
19602         * reload.h (memory_move_cost): Declare.
19603         (memory_move_secondary_cost): Change type of 'in' argument to bool.
19604         * reginfo.c (memory_move_cost): New function.
19605         (memory_move_secondary_cost): Change type of 'in' argument to bool.
19606         * ira.h (ira_memory_move_cost): Update comment.
19607         * ira.c (ira_memory_move_cost): Update comment.
19608         (setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
19609         with memory_move_cost.
19610         * postreload.c (reload_cse_simplify_set): (Ditto.).
19611         * reload1.c (choose_reload_regs): (Ditto.).
19612         * doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
19613         (MEMORY_MOVE_COST):  Revise documentation.
19614
19615         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
19616         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
19617         * config/i386/i386.h (ix86_memory_move_cost): Make static. Change
19618         type of 'in' argument to bool.
19619         (TARGET_MEMORY_MOVE_COST): Define.
19620
19621 2010-06-05  Jan Hubicka  <jh@suse.cz>
19622
19623         * ipa-pure-const.c (propagate): Fix typo in handling of functions
19624         that cannot return.  Be more careful when merging the results with
19625         previously known ones.
19626
19627 2010-06-05  Matthias Klose  <doko@ubuntu.com>
19628
19629         * gcc.c (cc1_options, cpp_unique_options): Use find-plugindir spec
19630         function to add the -iplugindir option.
19631         (find_plugindir_spec_function): Add new declaration and function.
19632         (static_spec_func): Use it for "find-plugindir".
19633
19634 2010-06-05  Jakub Jelinek  <jakub@redhat.com>
19635
19636         PR c++/44361
19637         * c-typeck.c (mark_exp_read): Handle C_MAYBE_CONST_EXPR.
19638         * c-parser.c (c_parser_postfix_expression): Call mark_exp_read on
19639         statement expression.
19640
19641 2010-06-05  Jan Hubicka  <jh@suse.cz>
19642
19643         * df-problems.c (seen_in_block, seen_in_insn): Convert to bitmap_head.
19644         (df_rd_problem_data): Convert sparse_invalidated_by_call,
19645         dense_invalidated_by_call to bitmap head.
19646         (df_rd_alloc, df_rd_bb_local_compute_process_def,
19647         df_rd_bb_local_compute, df_rd_confluence_n, df_rd_transfer_function,
19648         df_rd_start_dump, df_lr_verify_transfer_functions,
19649         df_live_verify_transfer_functions, df_chain_create_bb,
19650         df_chain_add_problem, df_byte_lr_check_regs, df_byte_lr_alloc,
19651         df_byte_lr_confluence_0, df_byte_lr_confluence_n, df_note_compute,
19652         df_simulate_one_insn_forwards, df_md_alloc,
19653         df_md_bb_local_compute_process_def,
19654         df_md_bb_local_compute_process_def, df_md_local_compute,
19655         df_md_transfer_function df_md_free): Update.
19656
19657 2010-06-05  Joseph Myers  <joseph@codesourcery.com>
19658
19659         PR c/44322
19660         * c-typeck.c (build_unary_op): Merge qualifiers into pointer
19661         target type for ADDR_EXPR; require no changes to qualifiers except
19662         for function types.
19663         * c-tree.h (c_build_type_variant): Remove.
19664
19665 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
19666
19667         * genautomata.c (get_excl_set): Do work per element, not per char.
19668         (check_presence_pattern_sets): Similar.
19669         (check_absence_pattern_sets): Similar.
19670
19671 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
19672
19673         * genautomata.c (curr_state_pass_num): Delete.
19674         (min_issue_delay_pass_states): Delete.
19675         (min_issue_delay): Delete.
19676         (initiate_min_issue_delay_pass_states): Delete.
19677         (output_min_issue_delay_table): Compute min_issue_delay_vect
19678         using a breadth-first search variant.
19679         (output_tables): Don't call initiate_min_issue_delay_pass_states.
19680
19681 2010-06-04  H.J. Lu  <hongjiu.lu@intel.com>
19682
19683         PR boostrap/44421
19684         * df-problems.c (df_lr_bb_local_compute): Updated for embedded bitmaps.
19685         (df_byte_lr_bb_local_compute): Likewise.
19686
19687 2010-06-03  Jason Merrill  <jason@redhat.com>
19688
19689         Implement noexcept operator (5.3.7)
19690         * c-common.c (c_common_reswords): Add noexcept.
19691         * c-common.h (enum rid): Add RID_NOEXCEPT.
19692
19693 2010-06-04  Joseph Myers  <joseph@codesourcery.com>
19694
19695         * config/darwin-driver.c (darwin_default_min_version): Use
19696         GCC-specific formats in diagnostics.
19697         * cppspec.c (lang_specific_driver): Use GCC-specific formats in
19698         diagnostics.
19699         * gcc.c (translate_options, read_specs, add_sysrooted_prefix,
19700         execute, process_command, end_going_arg, do_self_spec, do_spec_1,
19701         eval_spec_function, handle_braces, process_brace_body, main,
19702         perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
19703         getenv_spec_function, compare_version_strings,
19704         version_compare_spec_function): Use GCC-specific formats in
19705         diagnostics.
19706
19707 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
19708
19709         * config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
19710         that operand 0 and operand 1 are equal.
19711         (*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
19712         (*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
19713         and operand 1 are equal.
19714         <default>: Ditto.  Remove ??? comment.
19715         (*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
19716         and operand 1 are equal.
19717         <default>: Ditto.  Remove ??? comment.
19718         (*adddi_4) <default>: Remove assert that operand 0 and operand 1
19719         are equal.
19720         (*add<mode>_4) <default>: Ditto.
19721         (*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
19722
19723 2010-06-04  Nathan Froyd  <froydnj@codesourcery.com>
19724
19725         * config/i386/i386-protos.h (ix86_print_operand): Declare.
19726         * config/i386/i386.c (ix86_print_operand): Make non-static.
19727         * config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
19728         * output.h (output_operand): Declare.
19729         * final.c (output_operand): Make non-static.
19730
19731 2010-06-04  Alexandre Oliva  <aoliva@redhat.com>
19732
19733         PR rtl-optimization/44013
19734         * sched-deps.c (add_dependence_list_and_free): Don't free lists
19735         when processing debug insns.
19736
19737         PR debug/41371
19738         * var-tracking.c (find_loc_in_1pdv): Mark initial value before
19739         recursing.  Check that recursion is bounded.  Rename inner var
19740         to avoid hiding incoming argument.
19741
19742 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
19743
19744         * config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
19745         operands[2] == 255.
19746         (*addqi_3): Ditto.
19747         (*addqi_4): Ditto.
19748         (*addqi_5): Ditto.
19749         (*addqi_ext_1_rex64): Ditto.
19750         (*addqi_ext_1): Ditto.
19751
19752         (*addqi_4): Check for incdec_operand in QImode.
19753
19754         (*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
19755         using SWI mode iterator.
19756         (*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
19757         (*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
19758         mode iterator.
19759         (*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
19760         using SWI mode iterator.
19761
19762 2010-06-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19763
19764         PR c/25880
19765         * c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
19766         * c-format.c (gcc_diag_flag_specs): Add hash.
19767         (gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
19768         (gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
19769         * c-pretty-print.c (pp_c_cv_qualifier): Rename as
19770         pp_c_cv_qualifiers. Handle qualifiers spelling here.
19771         (pp_c_type_qualifier_list): Call the function above.
19772         * c-pretty-print.h (pp_c_cv_qualifiers): Declare.
19773         * c-typeck.c (handle_warn_cast_qual): Print qualifiers.
19774         (WARN_FOR_QUALIFIERS): New macro.
19775         (convert_for_assignment): Use it.
19776
19777 2010-06-04  Kai Tietz  <kai.tietz@onevision.com>
19778
19779         * config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'.
19780
19781 2010-06-04  Jan Hubicka  <jh@suse.cz>
19782
19783         * df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
19784         df_byte_lr_bb_info): Embedd bitmap_head into the structure.
19785         (DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
19786         DF_BYTE_LR_OUT): Update for embedded bitmaps.
19787         * fwprop.c (single_def_use_enter_block): Likewise.
19788         * ddg.c (create_ddg_dep_from_intra_loop_link,
19789         add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
19790         * loop-iv.c (latch_dominating_def): Likewise.
19791         * df-problems.c (df_rd_free_bb_info, df_rd_alloc,
19792         df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
19793         df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
19794         df_rd_transfer_function, df_rd_top_dump,
19795         df_rd_bottom_dump): Update.
19796         (df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
19797         df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
19798         df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
19799         df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
19800         df_lr_verify_solution_start, df_lr_verify_solution_end,
19801         df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
19802         df_live_free_bb_info, df_live_alloc, df_live_reset,
19803         df_live_bb_local_compute, df_live_init, df_live_transfer_function,
19804         df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
19805         df_live_verify_solution_start, df_live_verify_solution_end,
19806         df_live_verify_transfer_functions, df_chain_create_bb,
19807         df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
19808         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
19809         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
19810         df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
19811         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
19812         df_byte_lr_transfer_function, df_byte_lr_top_dump,
19813         df_byte_lr_bottom_dump, df_create_unused_note,
19814         df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
19815         df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
19816         df_md_transfer_function, df_md_init, df_md_confluence_0,
19817         df_md_confluence_n,
19818         df_md_top_dump, df_md_bottom_dump): Update.
19819         (struct df_lr_problem_data): Embedd bitmap headers.
19820
19821 2010-06-04  Jan Hubicka  <jh@suse.cz>
19822
19823         * dce.c (dce_process_block): Do not re-scan already marked
19824         instructions.
19825
19826 2010-06-04  Bernd Schmidt  <bernds@codesourcery.com>
19827
19828         PR rtl-optimization/39871
19829         PR rtl-optimization/40615
19830         PR rtl-optimization/42500
19831         PR rtl-optimization/42502
19832         * ira.c (init_reg_equiv_memory_loc: New function.
19833         (ira): Call it twice.
19834         * reload.h (calculate_elim_costs_all_insns): Declare.
19835         * ira-costs.c: Include "reload.h".
19836         (regno_equiv_gains): New static variable.
19837         (init_costs): Allocate it.
19838         (finish_costs): Free it.
19839         (ira_costs): Call calculate_elim_costs_all_insns.
19840         (find_costs_and_classes): Take estimated elimination costs
19841         into account.
19842         (ira_adjust_equiv_reg_cost): New function.
19843         * ira.h (ira_adjust_equiv_reg_cost): Declare it.
19844         * reload1.c (init_eliminable_invariants, free_reg_equiv,
19845         elimination_costs_in_insn, note_reg_elim_costly): New static functions.
19846         (elim_bb): New static variable.
19847         (reload): Move code out of here into init_eliminable_invariants and
19848         free_reg_equiv.  Call them.
19849         (calculate_elim_costs_all_insns): New function.
19850         (eliminate_regs_1): Declare.  Add extra arg FOR_COSTS;
19851         all callers changed.  If FOR_COSTS is true, don't call alter_reg,
19852         but call note_reg_elim_costly if we turned a valid memory address
19853         into an invalid one.
19854         * Makefile.in (ira-costs.o): Depend on reload.h.
19855
19856 2010-06-04  Julian Brown  <julian@codesourcery.com>
19857
19858         * config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
19859         for pool ranges.
19860
19861 2010-06-04  Richard Guenther  <rguenther@suse.de>
19862
19863         PR lto/41584
19864         * cgraph.h (struct varpool_node): Add lto_file_data field.
19865         * lto-cgraph.c (input_varpool_node): Initialize it.
19866
19867 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
19868
19869         * config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
19870         * config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
19871         predicate in "type" attribute calculation.
19872         (*addsi_1_zext): Ditto.
19873         (*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
19874         (*addsi_2_zext): Ditto.
19875         (*add<mode>_3): Ditto.
19876         (*addsi_3_zext): Ditto.
19877         (*add<mode>_5): Ditto.
19878
19879 2010-06-03  Jan Hubicka  <jh@suse.cz>
19880
19881         * tree-into-ssa.c (mark_block_for_update): Avoid redundant call
19882         of bitmap_bit_p.
19883         * cfganal.c (compute_dominance_frontiers_1): Likewise.
19884
19885 2010-06-03  Jan Hubicka  <jh@suse.cz>
19886
19887         * df-problems.c (df_create_unused_note, df_note_bb_compute):
19888         micro-optimize the checks when to add new note.
19889
19890 2010-06-03  Nathan Froyd  <froydnj@codesourcery.com>
19891
19892         * final.c (output_asm_insn): Call
19893         targetm.asm_out.print_operand_punct_valid_p.  Update comments.
19894         (output_operand): Call targetm.asm_out.print_operand.  Update comments.
19895         (output_address): Call targetm.asm_out.print_operand_address.
19896         Update comments.
19897         * target.h (struct gcc_target): Add print_operand,
19898         print_operand_address, and print_operand_punct_valid_p fields.
19899         * targhooks.h (default_print_operand): Declare.
19900         (default_print_operand_address): Declare.
19901         (default_print_operand_punct_valid_p): Declare.
19902         * targhooks.c (default_print_operand): Define.
19903         (default_print_operand_address): Define.
19904         (default_print_operand_punct_valid_p): Define.
19905         * target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
19906         (TARGET_PRINT_OPERAND_ADDRESS): Likewise.
19907         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
19908         (TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
19909         TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
19910         * vmsdbgout.c (addr_const_to_string): Update comment.
19911         * config/i386/i386.c (print_operand): Rename to...
19912         (ix86_print_operand): ...this.  Make static.
19913         (print_operand_address): Rename to...
19914         (ix86_print_operand_address): ...this.  Make static.  Call
19915         ix86_print_operand instead of PRINT_OPERAND.
19916         (ix86_print_operand_punct_valid_p): New function.
19917         (TARGET_PRINT_OPERAND): Define.
19918         (TARGET_PRINT_OPERAND_ADDRESS): Define.
19919         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
19920         * config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
19921         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
19922         (PRINT_OPERAND): Delete.
19923         (PRINT_OPERAND_ADDRESS): Delete.
19924         * config/i386/i386-protos.h (print_operand): Delete prototype.
19925         (print_operand_address): Delete prototype.
19926
19927 2010-06-03  Richard Guenther  <rguenther@suse.de>
19928
19929         PR tree-optimization/44403
19930         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
19931         Preserve pointer qualifiers.
19932         (vect_create_data_ref_ptr): Likewise.
19933
19934 2010-06-03  H.J. Lu  <hongjiu.lu@intel.com>
19935
19936         PR c++/44294
19937         * defaults.h (MAX_FIXED_MODE_SIZE): New.
19938
19939         * stor-layout.c (MAX_FIXED_MODE_SIZE): Removed.
19940
19941 2010-06-03  Jakub Jelinek  <jakub@redhat.com>
19942
19943         PR debug/44375
19944         * tree-cfg.c (gimple_can_merge_blocks_p): For -O0
19945         return false if merging the bbs would lead to goto_locus
19946         location being lost from the IL.
19947
19948 2010-06-03  Jan Hubicka  <jh@suse.cz>
19949             Jakub Jelinek  <jakub@redhat.com>
19950
19951         * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
19952         set->regs[i] is NULL or has just one entry.
19953
19954 2010-06-03  Jan Hubicka  <jh@suse.cz>
19955
19956         * lto-cgraph.c (lto_varpool_encoder_size): Remove.
19957         * lto-streamer.h (lto_varpool_encoder_size): New inline function.
19958
19959 2010-06-03  Paul Brook  <paul@codesourcery.com>
19960
19961         * config/arm/arm.c (FL_TUNE): Define.
19962         (arm_default_cpu, arm_cpu_select): Remove.
19963         (all_cores): Populate core field.
19964         (arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
19965         (arm_find_cpu): New function.
19966         (arm_handle_option): Lookup cpu/architecture names.
19967         (arm_override_options): Cleanup mcpu/march/mtune handling.
19968         (arm_file_start): Ditto.
19969
19970 2010-06-03  Alan Modra  <amodra@gmail.com>
19971
19972         PR target/44169
19973         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
19974         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
19975         rtx to gen_load_toc_v4_PIC_1b.  Tidy.
19976         (rs6000_emit_load_toc_table): Likewise.
19977
19978 2010-06-02  Jan Hubicka  <jh@suse.cz>
19979
19980         * passes.c (init_optimization_passes): Put ipa reference
19981         after ipa pure-const.
19982
19983 2010-06-02  Jan Hubicka  <jh@suse.cz>
19984
19985         * ipa-reference.c (ipa_reference_local_vars_info_d): Remove
19986         calls_read_all and calls_write_all.
19987         (get_reference_optimization_summary): Fix formatting.
19988         (is_proper_for_analysis): Check that decl is not readonly.
19989         (propagate_bits): Check CONST/PURE/noreturn flags.
19990         (ipa_init): Move all_module_statics to optimization_summary_obstack.
19991         (analyze_function): Ignore indirect edges.
19992         (copy_global_bitmap): For all module statics, do nothing.
19993         (generate_summary): Do not print calls_read_all/calls_write_all.
19994         (read_write_all_from_decl): Take node as argument; check
19995         cgraph_node_cannot_return.
19996         (propagate): Reorganize read_all/write_all computation;
19997         check indirect edges; check ecf flags; use all_module_statics
19998         in the results; do not free all_module_statics.
19999         (stream_out_bitmap): Handle all_module_statics.
20000         (ipa_reference_write_optimization_summary): Likewise; use
20001         varpool/cgraph encoders to get boundaries.
20002         (ipa_reference_read_optimization_summary): Read in all_module_statics;
20003         use it when possible.
20004
20005 2010-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
20006
20007         PR target/44218
20008         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
20009         -mswdiv option.  Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.
20010
20011         * doc/extend.texi (powerpc builtins): Document vec_recip,
20012         vec_rsqrt, vec_rsqrte altivec/vsx builtins.
20013
20014         * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
20015         (rs6000_emit_swrsqrt): Ditto.
20016         (rs6000_emit_swdivsf): Delete.
20017         (rs6000_emit_swdivdf): Ditto.
20018         (rs6000_emit_swrsqrtsf): Ditto.
20019
20020         * config/rs6000/rs6000.c (rs6000_recip_bits): New global to
20021         describe the reciprocal estimate support for each type.
20022         (recip_options): Map -mrecip=<opt> into option bits.
20023         (gen_2arg_fn_t): New typedef for binary rtx gen function.
20024         (rs6000_debug_reg_global): If -mdebug=reg, print the state of the
20025         reciprocal estimate instructions.
20026         (rs6000_init_hard_regno_mode_ok): Key ws constraint off of the
20027         debug -mvsx-scalar-memory switch instead of -mvsx-scalar-double.
20028         Set up rs6000_recip_bits based on the -mrecip* options.  Print the
20029         cost information if -mdebug=cost or -mdebug=reg.
20030         (rs6000_override_options): Set -mrecip-precision for power6, and
20031         power7 machines.  If -mvsx or -mdfp, enable various options that
20032         came in previous instruction set ISAs, unless the option was
20033         explicitly disabled by the command line option.  Parse
20034         -mrecip=<opt> options.
20035         (rs6000_builtin_vectorized_function): Add support for vectorizing
20036         the reciprocal estimate builtins and expansions.
20037         (rs6000_handle_option): Add -mrecip, -mrecip=<opt> support.
20038         (bdesc_2arg): Add reciprocal estimate builtins.
20039         (bdesc_1arg): Add reciprocal square root estimate builtins.
20040         (rs6000_expand_builtin): Rewrite to use a switch statement,
20041         instead of multiple if/then/elses.  Add reciprocal estimate builtins.
20042         (rs6000_init_builtins): Create declarations for reciprocal
20043         estimate builtins.
20044         (rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
20045         sized, prefer traditional floating point registers, if integer
20046         vector types, prefer altivec registers.  Don't actually look at
20047         the memory address any more.
20048         (rs6000_builtin_reciprocal): Add new builtin reciprocal estimate
20049         builtins.
20050         (rs6000_load_constant_and_splat): New helper function to load up
20051         the constant for reciprocal estimate instructions.
20052         (rs6000_emit_madd): New helper function for generating
20053         multiply/add type instructions, based on the current switches.
20054         (rs6000_emit_msub): Ditto.
20055         (rs6000_emit_mnsub): Ditto.
20056         (rs6000_emit_swdiv_high_precision): Replace rs6000_emit_swdivsf to
20057         replace a divide with a reciprocal estimate and fixup, adding
20058         support for machines with high precision and vectors.
20059         (rs6000_emit_swdiv_low_precision): Rewrite rs6000_emit_swdivdf for
20060         low precision machines.
20061         (rs6000_emit_swdiv): New common function to be called to replace a
20062         division with reciprocal estimate and fixup.
20063         (rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf.  Add support
20064         for double and vector types.  Add support for high precision machines.
20065
20066         * config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
20067         the reciprocal estimate instructions can be generated.
20068         (TARGET_FRE): Ditto.
20069         (TARGET_FRSQRTES): Ditto.
20070         (TARGET_FRSQRTE): Ditto.
20071         (RS6000_RECIP_*): New macros for reciprocal estimate support.
20072
20073         * config/rs6000/vector.md (rsqrte<mode>2): New insn for reciprocal
20074         square root estimate on vectors.
20075         (re<mode>2): New insn for reciprocal division estimate on vectors.
20076
20077         * config/rs6000/rs6000-buitlins.def (ALTIVEC_BUILTIN_VRSQRTFP):
20078         New builtin.
20079         (ALTIVEC_BUILTIN_VRECIPFP): Ditto.
20080         (ALTIVEC_BUITLIN_VEC_RE): Ditto.
20081         (ALTIVEC_BUILTIN_VEC_RSQRT): Ditto.
20082         (VSX_BUILTIN_RSQRT_V4SF): Ditto.
20083         (VSX_BUITLIN_RSQRT_V2DF): Ditto.
20084         (RS6000_BUILTIN_RSQRT): Ditto.
20085         (ALTIVEC_BUILTIN_VEC_RSQRTE): Denote that the builtin is a
20086         floating point builtin.
20087
20088         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
20089         macros __RECIP__, __RECIPF__, __RSQRTE__, __RSQRTEF__,
20090         __RECIP_PRECISION__ based on the command line switches.
20091         (altivec_overloaded_builtins): Add reciprocal estimate builtins.
20092
20093         * config/rs6000/rs6000.opt (-mrecip): Document add support for
20094         replacing division instructions with reciprocal estimate and fixup.
20095         (-mrecip=<opt>): New option.
20096         (-mrecip-precision): Ditto.
20097
20098         * config/rs6000/vsx.md (UNSPEC_VSX_RSQRTE): Delete.
20099         (vsx_rsqrte<mode>2): Use UNSPEC_RSQRT not UNSPEC_VSX_RSQRTE.
20100         (vsx_copysignsf3): If -mvsx, use double precision cpsign on single
20101         precision scalar.
20102
20103         * config/rs6000/altivec.md (UNSPEC_RSQRTEFP): Delete.
20104         (UNSPEC_VREFP): Ditto.
20105         (altivec_vnmsubfp*): Make altivec nmsub mirror the scalar and VSX
20106         conterparts with regard to support of -mno-fused-madd and -ffast-math.
20107         (altivec_vrsqrtefp): Use common UNSPEC to allow scalar/vector
20108         reciprocal estimate instructions to be generated.
20109         (altivec_vrefp): Ditto.
20110
20111         * config/rs6000/rs6000.md (RECIPF): New iterator for reciprocal
20112         estimate support.
20113         (rreg): New mode attribute for reciprocal estimate support.
20114         (recip<mode>3): New insn for division using reciprocal estimate
20115         and fixup builtins.
20116         (divide define_split): New define_split to convert floating point
20117         division to use reciprocal estimate if the user used the
20118         appropriate options and the split is run when we can add new
20119         pseudo registers for the fixup.
20120         (rsqrt<mode>2): New insn for reciprocal square root support.
20121         (recipsf3): Move into recip<mode>3.
20122         (recipdf3): Ditto.
20123         (fres): Use TARGET_FRES.
20124         (rsqrtsf2): Move into rsqrt<mode>2.
20125         (rsqrtsf_internal1): Use TARGET_FRSQRTSES.
20126         (copysignsf3): Add support for VSX.
20127         (fred): Use TARGET_FRE.
20128         (fred_fpr): Ditto.
20129         (rsqrtdf_internal1): New function for frsqrte instruciton.
20130
20131         * config/rs6000/altivec.h (vec_recipdiv): Define new vector builtin.
20132         (vec_rsqrt): Ditto.
20133
20134 2010-06-03  Richard Guenther  <rguenther@suse.de>
20135
20136         PR middle-end/44291
20137         * optabs.c (init_one_libfunc): Use IDENTIFIER_HASH_VALUE.
20138         (set_user_assembler_libfunc): Likewise.
20139
20140 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
20141
20142         * mkconfig.sh: Include insn-flags.h and insn-constants.h before
20143         defaults.h.
20144         * except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS
20145         to defaults.h
20146         * expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO,
20147         DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING,
20148         FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE,
20149         STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN,
20150         STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP,
20151         STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT,
20152         STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE,
20153         STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h.
20154         * defaults.h: Updated for above mentioned changes.
20155
20156 2010-06-02  Kai Tietz  <kai.tietz@onevision.com>
20157
20158         * c-common.c: Remove header include of tm_p.h.
20159         * Makefile.in (c-common.o): Remove TM_P_H dependency.
20160
20161 2010-06-02  Jakub Jelinek  <jakub@redhat.com>
20162
20163         * tree.h (struct tree_decl_map): New type.
20164         (tree_decl_map_eq, tree_decl_map_marked_p): Define.
20165         (tree_decl_map_hash): New prototype.
20166         (debug_expr_for_decl, value_expr_for_decl): Change into
20167         tree_decl_map hashtab from tree_map.
20168         (init_ttree): Adjust initialization.
20169         (tree_decl_map_hash): New function.
20170         (decl_debug_expr_lookup, decl_debug_expr_insert,
20171         decl_value_expr_lookup, decl_value_expr_insert): Adjust.
20172
20173 2010-06-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20174
20175         * configure.ac (gcc_cv_ld_sol2_emulation): Test for GNU ld *_sol2
20176         linker emulations.
20177         * configure: Regenerate.
20178         * config.in: Regenerate.
20179
20180         * config/i386/sol2-10.h [TARGET_GNU_LD] (I386_EMULATION): Define.
20181         (X86_64_EMULATION): Define.
20182         (TARGET_LD_EMULATION): Use them.
20183
20184         * config/sparc/sol2-gld-bi.h (SPARC32_EMULATION): Define.
20185         (SPARC64_EMULATION): Define.
20186         (LINK_ARCH_SPEC): Use them.
20187
20188 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
20189
20190         * graphite-clast-to-gimple.c (gcc_type_for_interval): Use
20191         smallest_mode_for_size for computing the precision types of new
20192         graphite IVs.  Do not call lang_hooks.types.type_for_size.
20193
20194 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
20195
20196         * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG
20197         information.
20198         (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information.
20199
20200 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
20201
20202         PR middle-end/44363
20203         * tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable,
20204         return false instead.
20205
20206 2010-06-02  Jan Hubicka  <jh@suse.cz>
20207
20208         PR middle-end/44295
20209         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Do not
20210         create new cgraph node to check callee.
20211
20212 2010-06-02  Richard Guenther  <rguenther@suse.de>
20213
20214         * lto-streamer-in.c (input_gimple_stmt): Fix typo.
20215
20216 2010-06-02  Richard Guenther  <rguenther@suse.de>
20217
20218         * lto-wrapper.c (lto_wrapper_exit): Rename to ...
20219         (lto_wrapper_cleanup): ... this.  Do not exit.
20220         (fatal): Adjust.  Exit here.
20221         (fatal_perror): Likewise.
20222         (fatal_signal): New function.
20223         (main): Set up signal handlers to cleanup temporary files.
20224         * Makefile.in (lto-wrapper.o): Adjust dependencies.
20225
20226 2010-06-02  Richard Guenther  <rguenther@suse.de>
20227
20228         PR tree-optimization/44377
20229         * tree-ssa-structalias.c (find_func_aliases): Fix typo.
20230
20231 2010-06-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
20232
20233         * config/s390/2097.md (z10_fhex): Remove insn reservation.
20234         * config/s390/s390.md (UNSPEC_COPYSIGN): Remove unused constant.
20235         (*mov<mode>_64 TD_TF, *mov<mode>_31 TD_TF, *mov<mode>_64dfp DD_DF,
20236         *mov<mode>_64 DD_DF, *mov<mode>_31, mov<mode>): Remove load zero
20237         instruction.
20238         * config/s390/s390.c: Don't accept fp zeros as valid constants anymore.
20239
20240 2010-06-02  Jan Hubicka  <jh@suse.cz>
20241
20242         * bitmap.c (bitmap_descriptor): Add search_iter.
20243         (bitmap_find_bit): Increment it.
20244         (print_statistics): Print it.
20245
20246 2010-06-02  Nathan Froyd  <froydnj@codesourcery.com>
20247
20248         * tree-vect-slp.c (vect_create_mask_and_perm): Use gimple_build_call
20249         instead of gimple_build_call_vec.  Delete unnecessary local variable.
20250
20251 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
20252
20253         * gimplify.c (gimplify_body): Revert "Do not initialize RTL profiling"
20254         change from yesterday.
20255
20256 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
20257
20258         * c-ada-spec.c: Clean up redundant includes.
20259
20260 2010-06-01  Steven Bosscher  <steven@gcc.gnu.org>
20261
20262         * gimplify.c: Do not include except.h and optabs.h.
20263         (gimplify_body): Do not initialize RTL profiling.
20264         * gimple-low.c: Do not include rtl.h, diagnostic.h, langhooks.h,
20265         langhooks-def.h, timevar.h, except.h, hashtab.h, and expr.h.
20266         * gimple-fold.c: Do not include rtl.h, tm_p.h, ggc.h, basic-block.h,
20267         output.h, expr.h, diagnostic.h, timevar.h, value-prof.h, and
20268         langhooks.h.
20269
20270         * tree-pretty-print.h: Include pretty-print.h.
20271         * gimple-pretty-print.h: Include pretty-print.h.
20272
20273         * tree-pretty-print.c: Do not include diagnostic.h.
20274         * tree-vrp.c: Likewise.
20275         * tree-tailcall.c: Likewise
20276         * tree-scalar-evolution.c: Likewise
20277         * tree-ssa-dse.c: Likewise
20278         * tree-chrec.c: Likewise
20279         * tree-ssa-sccvn.c: Likewise
20280         * tree-ssa-copyrename.c: Likewise
20281         * tree-nomudflap.c: Likewise
20282         * tree-call-cdce.c: Likewise
20283         * tree-stdarg.c: Likewise
20284         * tree-ssa-math-opts.c: Likewise
20285         * tree-nrv.c: Likewise
20286         * tree-ssa-sink.c: Likewise
20287         * tree-browser.c: Likewise
20288         * tree-ssa-loop-ivcanon.c: Likewise
20289         * tree-ssa-loop.c: Likewise
20290         * tree-parloops.c: Likewise
20291         * tree-ssa-address.c: Likewise
20292         * tree-ssa-ifcombine.c: Likewise
20293         * tree-if-conv.c: Likewise
20294         * tree-data-ref.c: Likewise
20295         * tree-affine.c: Likewise
20296         * tree-ssa-phiopt.c: Likewise
20297         * tree-ssa-coalesce.c: Likewise
20298         * tree-ssa-pre.c: Likewise
20299         * tree-ssa-live.c: Likewise
20300         * tree-predcom.c: Likewise
20301         * tree-ssa-forwprop.c: Likewise
20302         * tree-ssa-dce.c: Likewise
20303         * tree-ssa-ter.c: Likewise
20304         * tree-ssa-loop-prefetch.c: Likewise
20305         * tree-optimize.c: Likewise
20306         * tree-ssa-phiprop.c: Likewise
20307         * tree-object-size.c: Likewise
20308         * tree-outof-ssa.c: Likewise
20309         * tree-ssa-structalias.c: Likewise
20310         * tree-switch-conversion.c: Likewise
20311         * tree-ssa-reassoc.c: Likewise
20312         * tree-ssa-operands.c: Likewise
20313         * tree-vectorizer.c: Likewise
20314         * tree-vect-data-refs.c: Likewise
20315         * tree-vect-generic.c: Likewise
20316         * tree-vect-stmts.c: Likewise
20317         * tree-vect-patterns.c: Likewise
20318         * tree-vect-slp.c: Likewise
20319         * tree-vect-loop.c: Likewise
20320         * tree-ssa-loop-ivopts.c: Likewise
20321         * tree-ssa-loop-im.c: Likewise
20322         * tree-ssa-loop-niter.c: Likewise
20323         * tree-ssa-loop-unswitch.c: Likewise
20324         * tree-ssa-loop-manip.c: Likewise
20325         * tree-ssa-loop-ch.c: Likewise
20326         * tree-dump.c: Likewise
20327         * tree-complex.c: Likewise
20328
20329         * tree-into-ssa.c: Do not include diagnostic.h and expr.h.
20330         * tree-ssa-uninit.c: Likewise
20331         * tree-ssa-threadupdate.c: Likewise
20332         * tree-ssa-uncprop.c: Likewise
20333         * tree-ssa-ccp.c: Likewise
20334         * tree-ssa-dom.c: Likewise
20335         * tree-ssa-propagate.c: Likewise
20336         * tree-ssa-alias.c: Likewise
20337         * tree-dfa.c: Likewise
20338         * tree-cfgcleanup.c: Likewise
20339         * tree-sra.c: Likewise
20340         * tree-ssa-copy.c: Likewise
20341         * tree-ssa.c: Likewise
20342         * tree-profile.c: Likewise
20343         * tree-cfg.c: Likewise
20344         * tree-ssa-threadedge.c: Likewise
20345         * tree-vect-loop-manip.c: Likewise
20346
20347         * tree-inline.c: Do not include diagnostic.h and expr.h.
20348         Include rtl.h.
20349         (copy_decl_for_dup_finish): Do not use NULL_RTX.
20350
20351         * tree-loop-linear.c: Do not include diagnostic.h, expr.h and optabs.h.
20352         * tree-loop-distribution.c: Likewise.
20353
20354 2010-06-01  Jan Hubicka  <jh@suse.cz>
20355
20356         * ipa-pure-const.c (local_pure_const): Do NORETURN discovery.
20357
20358 2010-06-01  Jan Hubicka  <jh@suse.cz>
20359
20360         * tree-cfgcleanup.c (fixup_noreturn_call): Break out from ...;
20361         remove return value.
20362         (split_bbs_on_noreturn_calls) .... here.
20363         * tree-optimize.c (execute_fixup_cfg): Fixup noreturn calls too.
20364         * tree-flow.h (fixup_noreturn_call): New.
20365
20366 2010-06-01  Jan Hubicka  <jh@suse.cz>
20367
20368         * emit-rtl.c (remove_insn): Fix thinko in prevoius patch.
20369
20370 2010-06-01  Nathan Froyd  <froydnj@codesourcery.com>
20371
20372         * tree.h (build_nt_call_list): Delete.
20373         * tree.c (build_nt_call_list): Delete.
20374
20375 2010-06-01  Jan Hubicka  <jh@suse.cz>
20376
20377         * fwprop.c: Make emit-rtl.h include last.
20378         * rtlanal.c: Include emit-rtl.h.
20379         * genautomata.c: Output emit-rtl include into insn-automata.c
20380         * df-scan.c: Include emit-rtl.h.
20381         * haifa-sched.c: Indlude emit-rtl.h.
20382         * mode-switching.c: Indlude emit-rtl.h.
20383         * graph.c: Indlude emit-rtl.h.
20384         * sel-sched.c: Include emit-rtl.h.
20385         * sel-sched-ir.c: Include emit-rtl.h.
20386         * ira-build.c: Include emit-rtl.h.
20387         * emit-rtl.c (first_insn, last_insn): Remove defines.
20388         (get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
20389         Move to emit-rtl.h.
20390         (set_new_first_and_last_insn, get_last_insn_anywhere,
20391         get_first_nonnote_insn, get_last_nonnote_insn, try_split,
20392         make_call_insn_raw, add_insn_after, add_insn_before, remove_insn,
20393         delete_insns_since, reorder_insns_nobb, emit_insn_after_1,
20394         emit_debug_insn_before, emit_insn, start_sequence, push_to_sequence,
20395         push_to_sequence2, push_topmost_sequence, end_sequence, copy_insn):
20396         Use accessor functions.
20397         * emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
20398          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
20399         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
20400         mem_expr_equal_p): Move here from rtl.h.
20401         (get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
20402         Move here from emit-rtl.c; make inline.
20403         * cfglayout.h: Include emit-rtl.h.
20404         * rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
20405          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
20406         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
20407         mem_expr_equal_p, get_insns, set_first-insn,
20408         get_last_insn, set_last_insn, get_max_uid): Move to emit-rtl.h.
20409         * reg-stack.c: Include emit-rtl.h.
20410         * dce.c: Likewise.
20411
20412 2010-06-01  Jan Hubicka  <jh@suse.cz>
20413
20414         * cgraph.h (tree_function_versioning): Update prototype.
20415         (cgraph_function_versioning): Update prototype.
20416         * cgraphunit.c (cgraph_copy_node_for_versioning): Accept bbs_to_copy
20417         bitmap.
20418         (cgraph_function_versioning): Accept new_entry_block and bbs_to_copy.
20419         (cgraph_materialize_clone, save_inline_function_body): Update use of
20420         tree_function_versioning.
20421         * tree-inline.c (copy_bb): Look for previous copied block to link
20422         after; fix debug output.
20423         (copy_cfg_body): Accept new_entry_block and bbs_to_copy.
20424         (copy_body): Likewise.
20425         (expand_call_inline): Update use of copy_body.
20426         (tree_function_versioning): Update use of copy body; accept
20427         blocks_to_copy and new_entry.
20428
20429 2010-06-01  Jan Hubicka  <jh@suse.cz>
20430
20431         * gegenrtl.c: Remove unnecesary prototypes.
20432         (gendecl): Remove.
20433         (gendef): Produce static inline.
20434         (gencode): Remove.
20435         (main): Do not decode parameters; generate header only.
20436         * Makefile.in (genrtl.c): Remove.
20437
20438 2010-06-01  Jan Hubicka  <jh@suse.cz>
20439
20440         * tree-switch-conversion.c (build_one_array): Make it readonly.
20441
20442 2010-06-01  Richard Guenther  <rguenther@suse.de>
20443
20444         * optabs.c (init_optabs): Guard all accesses to reinit.
20445         * ipa-pure-const.c (propagate): Fix another typo.
20446         * opts.c (common_handle_option): Split assignment to bool.
20447         * c-opts.c (c_common_handle_option): Likewise.
20448
20449 2010-06-01  Arnaud Charlet  <charlet@adacore.com>
20450             Matthew Gingell  <gingell@adacore.com>
20451
20452         * doc/invoke.texi: Mention -fdump-ada-spec.
20453         * tree-dump.c (dump_files): Add ada-spec.
20454         (FIRST_AUTO_NUMBERED_DUMP): Bump to 8.
20455         * tree-pass.h (tree_dump_index): Add TDI_ada.
20456         * gcc.c: Add support for -C without -E and for -fdump-ada-spec.
20457         (cpp_unique_options): Do not reject -C or -CC when -E isn't present.
20458         (default_compilers) <@c-header>: Allow -fdump-ada-spec on header files.
20459         * c-decl.c: Include c-ada-spec.h.
20460         (collect_source_ref_cb, collect_all_refs, for_each_global_decl): New
20461         functions.
20462         (c_write_global_declarations): Add handling of -fdump-ada-spec.
20463         * c-lex.c (c_lex_with_flags): Add handling of CPP_COMMENT.
20464         * Makefile.in (C_AND_OBJC_OBJS): Add c-ada-spec.o.
20465         * c-ada-spec.h, c-ada-spec.c: New files.
20466
20467 2010-06-01  Richard Guenther  <rguenther@suse.de>
20468
20469         PR lto/43853
20470         * ipa-pure-const.c (get_function_state): Hand back varying state
20471         if we do not have one.
20472         (has_function_state): New function.
20473         (duplicate_node_data): Adjust.
20474         (remove_node_data): Likewise.
20475         (pure_const_write_summary): Likewise.
20476         (propagate): Likewise.  Fix typo.
20477
20478 2010-06-01  Jan Hubicka  <jh@suse.cz>
20479
20480         * tree-cfg.c (verify_stmt): Do not skip could_throw test.
20481         * passes.c (execute_function_todo): Do not make implicit verify_ssa.
20482         (execute_all_ipa_transforms): Do not play with the states.
20483
20484 2010-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
20485
20486         * config/arm/t-linux-androideabi: New.
20487         * config.gcc (arm*-*-linux-androideabi): Include multilib config.
20488
20489 2010-06-01  Jan Hubicka  <jh@suse.cz>
20490
20491         * tree-inline.c (estimate_num_insns): For stdarg functions look
20492         into call statement to count cost of argument passing.
20493
20494 2010-06-01  Kai Tietz  <kai.tietz@onevision.com>
20495
20496         * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
20497         argument for fprintf.
20498         (ix86_output_addr_diff_elt): Likewise.
20499         (x86_function_profiler): Likewise.
20500         * config/cygming.h (LOCAL_LABEL_PREFIX): Fix for x64 no-underscore.
20501         (LPREFIX): Likewise.
20502         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
20503
20504 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
20505
20506         PR target/44338
20507         * config/i386/sse.md (fma4i_fmadd<mode>4256, fma4i_fmsub<mode>4256,
20508         fma4i_fnmadd<mode>4256, fma4i_fnmsub<mode>4256, fma4i_fmadd<mode>4,
20509         fma4i_fmsub<mode>4, fma4i_fnmadd<mode>4, fma4i_fnmsub<mode>4,
20510         fma4i_vmfmadd<mode>4, fma4i_vmfmsub<mode>4, fma4i_vmfnmadd<mode>4,
20511         fma4i_vmfnmsub<mode>4, fma4i_fmaddsubv8sf4, fma4i_fmaddsubv4df4,
20512         fma4i_fmaddsubv4sf4, fma4i_fmaddsubv2df4, fma4i_fmsubaddv8sf4,
20513         fma4i_fmsubaddv4df4, fma4i_fmsubaddv4sf4, fma4i_fmsubaddv2df4):
20514         Guard only with TARGET_FMA4 instead of TARGET_FMA4 &&
20515         TARGET_FUSED_MADD.
20516
20517 2010-05-31  Jan Hubicka  <jh@suse.cz>
20518
20519         * tree.h (tree_range_check_failed): Declare noreturn.
20520
20521 2010-05-31  Jan Hubicka  <jh@suse.cz>
20522
20523         * gimple.c (gimple_call_builtin_p): New function.
20524         * gimple.h (gimple_call_builtin_p): Declare.
20525         * tree-cfg.c (make_edges): Produce edge from BUILT_IN_RETURN
20526         to exit.
20527         (execute_warn_function_return): BUILT_IN_RETURN is return.
20528         (split_critical_edges): Return edges are not critical.
20529         (is_ctrl_altering_stmt): Builtin_in_return is altering.
20530         (gimple_verify_flow_info): Handle built_in_return.
20531         (execute_warn_function_return): Handle built_in_return.
20532         * ipa-pure-const.c (check_call): Ignore builtin_return.
20533
20534 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
20535
20536         PR middle-end/44337
20537         * expr.c (expand_assignment): Don't store anything for out-of-bounds
20538         array accesses with non-MEM.
20539
20540         PR tree-optimization/44182
20541         * tree-inline.c (copy_edges_for_bb): Don't split bb if a stmt that
20542         newly needs to end a bb is followed by debug stmts, instead return
20543         true from the function at the end.
20544         (maybe_move_debug_stmts_to_successors): New function.
20545         (copy_cfg_body): Call it if copy_edges_for_bb returned true.
20546
20547 2010-05-31  Kai Tietz  <kai.tietz@onevision.com>
20548
20549         PR target/44161
20550         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle flag_pic.
20551
20552 2010-05-31  Eric Botcazou  <ebotcazou@adacore.com>
20553
20554         * cgraphunit.c (cgraph_decide_is_function_needed): Really return false
20555         for nested functions in non-optimized compilation.
20556
20557 2010-05-31  Richard Guenther  <rguenther@suse.de>
20558
20559         * tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN.
20560
20561 2010-05-30  Jan Hubicka  <jh@suse.cz>
20562
20563         * predict.c (maybe_hot_edge_p): Calls to functions called once is cold.
20564
20565 2010-05-30  Richard Guenther  <rguenther@suse.de>
20566
20567         PR lto/42975
20568         * tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
20569         (execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
20570         no longer needed.
20571
20572 2010-05-30  Iain Sandoe  <iains@gcc.gnu.org>
20573
20574         * config/darwin.c (output_objc_section_asm_op): Add comment.
20575         (name_needs_quotes): Add '_' to list of valid comment chars.
20576         (machopic_output_function_base_name): Remove unneeded quotes.
20577         (darwin_encode_section_info): Adjust asm whitespace.
20578         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Adjust asm tabs.
20579         (ASM_OUTPUT_LOCAL): Ditto.
20580         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
20581         * config/darwin.h (GLOBAL_ASM_OP): Ditto.
20582         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.
20583
20584 2010-05-30  Eric Botcazou  <ebotcazou@adacore.com>
20585
20586         * config/rs6000/rs6000.c (rs6000_output_function_entry): Use
20587         RS6000_OUTPUT_BASENAME unconditionally.
20588         (rs6000_output_function_epilogue): Likewise.
20589
20590 2010-05-30  Jan Hubicka  <jh@suse.cz>
20591
20592         * toplev.c (wrapup_global_declaration_2): Avoid creation of new varpool
20593         nodes.
20594
20595 2010-05-30  Richard Guenther  <rguenther@suse.de>
20596
20597         * tree-cfg.c (verify_gimple_assign_single): Implement
20598         verification for COND_EXPR rhs.
20599
20600 2010-05-30  Jan Hubicka  <jh@suse.cz>
20601
20602         * cgraph.h (cgraph_dump_file): Declare.
20603         * cgraphunit.c (cgraph_dump_file): Export.
20604         * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less verbose.
20605
20606 2010-05-30  Jan Hubicka  <jh@suse.cz>
20607
20608         * dwarf2out.c (reference_to_unused,
20609         premark_types_used_by_global_vars_helper): Avoid creation of new
20610         varpool nodes.
20611
20612 2010-05-30  Jan Hubicka  <jh@suse.cz>
20613
20614         * cgraph.h (cgraph_node_cannot_return,
20615         cgraph_edge_cannot_lead_to_return): New functions.
20616         * cgraph.c (cgraph_node_cannot_return,
20617         cgraph_edge_cannot_lead_to_return): Use them.
20618         * ipa-pure-const.c (pure_const_names): New static var.
20619         (check_call): Handle calls not leading to return.
20620         (pure_const_read_summary): Dump info read.
20621         (propagate): Dump info about propagation process; ignore side effects
20622         of functions not leading to exit; fix handling of pure functions.
20623
20624 2010-05-30  Jan Hubicka  <jh@suse.cz>
20625
20626         * config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
20627         for tail call epilogues.
20628
20629 2010-05-30  Jan Hubicka  <jh@suse.cz>
20630
20631         * passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
20632         ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initialize
20633         dump files.
20634
20635 2010-05-29  Jan Hubicka  <jh@suse.cz>
20636
20637         * ipa.c (cgraph_remove_unreachable_node): Walk references of correct
20638         node; remove references in node we no longer keep in cgrpah but need
20639         body of.
20640
20641 2010-05-29  Jan Hubicka  <jh@suse.cz>
20642
20643         * cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.
20644
20645 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20646
20647         PR target/44165
20648         * config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.
20649
20650 2010-05-29  Jan Hubicka  <jh@suse.cz>
20651
20652         * tree-vrp.c (debug_value_range, debug_all_value_ranges,
20653         debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
20654         * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
20655         debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
20656         debug_names_replaced_by, debug_update_ssa): Likewise.
20657         * sbitmap.c (debug_sbitmap): Likewise.
20658         * genrecog.c (debug_decision, debug_decision_list): Likewise.
20659         * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
20660         debug_tree_chain): Likewise.
20661         * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
20662         * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
20663         * optabs.c (debug_optab_libfuncs): Likewise.
20664         (verify_loop_closed_ssa): Likewise.
20665         * value-prof.c (verify_histograms): Likewise.
20666         * reload.c (debug_reload_to_stream, debug_reload): Likewise.
20667         * bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
20668         * cfghooks.c (verify_flow_info): Likewise.
20669         * fold-const.c (debug_fold_checksum): Likewise.
20670         * omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
20671         * cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
20672         Likewise.
20673         * omega.c (debug_omega_problem): Likewise.
20674         * cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
20675         * tree-ssa-ccp.c (debug_lattice_value): Likewise.
20676         * dominance.c (verify_dominators, debug_dominance_info,
20677         debug_dominance_tree): Likewise.
20678         * df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,
20679         * df_regno_debug, df_ref_debug,
20680         debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref,
20681         debug_df_defno, debug_df_useno, debug_df_chain): Likewise.
20682         * tree-ssa-dom.c (debug_dominator_optimization_stats): Likewise.
20683         * sel-sched.c (debug_state): Likewise.
20684         * tree-ssa-alias.c (debug_alias_info, debug_points_to_info_for):
20685         Likewise.
20686         * cfganal.c (print_edge_list, verify_edge_list): Likewise.
20687         * dwarf2out.c (debug_dwarf_die, debug_dwarf): Likewise.
20688         * tree-eh.c (verify_eh_edges, verify_eh_dispatch_edge): Likewise.
20689         * gimple-pretty-print.c (debug_gimple_stmt, debug_gimple_seq):
20690         Likewise.
20691         * c-pretty-print.c (debug_c_tree): Likewise.
20692         * sel-sched-dump.c (debug_insn_rtx, debug_vinsn, debug_expr, debug_insn
20693         debug_av_set, debug_lv_set, debug_ilist, debug_blist,
20694         debug_insn_vector, debug_hard_reg_set, debug_mem_addr_value): Likewise.
20695         * ebitmap.c (debug_ebitmap): Likewise.
20696         * function.c (debug_find_var_in_block_tree): Likewise.
20697         * print-rtl.c (debug_rtx): Likewise.
20698         (debug_rtx_count): Likewise.
20699         (debug_rtx_list, debug_rtx_range, debug_rtx_find): Likewise.
20700         * stor-layout.c (debug_rli): Likewise.
20701         * ipa.c (debug_cgraph_node_set, debug_varpool_node_set): Likewise.
20702         * tree-data-ref.c (debug_data_references,
20703         debug_data_dependence_relations, debug_data_reference,
20704         debug_data_dependence_relation, debug_rdg_vertex,
20705         debug_rdg_component, debug_rdg): Likewise.
20706         * tree-affine.c (debug_aff): Likewise.
20707         * tree-dfa.c (debug_referenced_vars, debug_variable, debug_dfa_stats):
20708         Likewise.
20709         * except.c (debug_eh_tree, verify_eh_tree): Likewise.
20710         * emit-rtl.c (verify_rtl_sharing): Likewise.
20711         * tree-ssa-pre.c (debug_pre_expr, debug_bitmap_set,
20712         debug_value_expressions): Likewise.
20713         * tree-ssa-live.c (debug_scope_block, debug_scope_blocks): Likewise.
20714         * sese.c (debug_rename_map, debug_ivtype_map): Likewise.
20715         * print-tree.c (debug_tree, debug_vec_tree): Likewise.
20716         * cfglayout.c (verify_insn_chain): Likewise.
20717         * graphite-clast-to-gimple.c (debug_clast_name_indexes,
20718         debug_clast_stmt, debug_generated_program): Likewise.
20719         * ggc-page.c (debug_print_page_list): Likewise.
20720         * tree-ssa-ter.c (debug_ter): Likewise.
20721         * graphite-dependences.c (debug_pddr): Likewise.
20722         * sched-deps.c (debug_ds): Likewise.
20723         * tree-ssa.c (verify_ssa): Likewise.
20724         * graphite-poly.c (debug_scattering_function, debug_iteration_domain,
20725         debug_scattering_functions, debug_iteration_domains, debug_pdr,
20726         debug_pdrs, debug_pbb_domain, debug_pbb, debug_scop_context,
20727         debug_scop, debug_cloog, debug_scop_params, debug_lst): Likewise.
20728         * tree-inline.c (debug_find_tree): Likewise.
20729         * graphite-ppl.c (debug_ppl_linear_expr, debug_ppl_polyhedron_matrix,
20730         debug_ppl_powerset_matrix): Likewise.
20731         * var-tracking.c (debug_dv): Likewise.
20732         * system.h (DEBUG_FUNCTION, DEBUG_VARIABLE): Define.
20733         * cfgloop.c (verify_loop_structure): Likewise.
20734         * plugin.c (dump_active_plugins, debug_active_plugins): Likewise.
20735         * c-common.c (verify_sequence_points): Likewise.
20736         * sched-rgn.c (debug_regions, debug_region, debug_candidate,
20737         debug_candidates, debug_rgn_dependencies): Likewise.
20738         * tree-ssa-structalias.c (debug_constraint, debug_constraints,
20739         * debug_constraint_graph, debug_solution_for_var,
20740         debug_sa_points_to_info): Likewise.
20741         * sched-vis.c (debug_insn_slim, debug_bb_slim, debug_bb_n_slim):
20742         Likewie.
20743         * tree-cfg.c (debug_cfg_stats, verify_stmts, debug_function,
20744         debug_loops, debug_loop, debug_loop_num): Likewise.
20745         * passes.c (debug_pass): Likewise.
20746         (dump_properties): Likewise; add cfglayout property.
20747         (debug_properties): Likewise.
20748         * tree-ssa-reassoc.c (debug_ops_vector): Likewise.
20749         * varpool.c (debug_varpool): Likewise.
20750         * regcprop.c (debug_value_data): Likewise.
20751         * tree-ssa-operands.c (verify_imm_links, debug_immediate_uses,
20752         debug_immediate_uses_for): Likewise.
20753
20754 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
20755
20756         PR bootstrap/44315
20757         * Makefile.in (build/gencondmd.o): Remove TM_H := $(GTM_H).
20758         Filter out insn-flags.h.
20759
20760 2010-05-29  Jan Hubicka  <jh@suse.cz>
20761
20762         * cgraph.h (struct varpool_node_set_def,
20763         struct cgraph_node_set_def): Remove unused AUX pointer.
20764         (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): Use
20765         VEC_empty macro.
20766
20767 2010-05-29  Jan Hubicka  <jh@suse.cz>
20768
20769         PR middle-end/44324
20770         * ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".
20771
20772 2010-05-29  Richard Guenther  <rguenther@suse.de>
20773
20774         * lto-streamer.c (cached_bp): New global variable.
20775         (bitpack_create): Return the cached bitpack, if available.
20776         (bitpack_delete): Clear and cache the bitpack, if appropriate.
20777         (bp_pack_value): Remove redundant asserts.
20778
20779 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
20780
20781         PR middle-end/44306
20782         * tree-if-conv.c (is_true_predicate): New.
20783         (is_predicated): Use is_true_predicate.
20784         (add_to_predicate_list): Same.  Do not use unshare_expr.
20785         (add_to_dst_predicate_list): Same.
20786
20787 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
20788
20789         * tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
20790         field on edges.
20791         (predicate_bbs): Same.
20792         (clean_predicate_lists): Same.
20793         (find_phi_replacement_condition): Do not AND the predicate from
20794         edge->aux.
20795
20796 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
20797
20798         PR bootstrap/44315
20799         * Makefile.in (build/gencondmd.o): Add a missing `\'.
20800
20801 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20802
20803         PR target/44261
20804         config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
20805         (negdf2): Adjust expander pattern and use negdf2_slow.
20806         (negsf2): Likewise.
20807
20808 2010-05-29  Nathan Froyd  <froydnj@codesourcery.com>
20809
20810         * basic-block.h (struct control_flow_graph): Move last_label_uid field
20811         up.
20812         * df.h (struct df_base_ref): Move regno field up.
20813         * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
20814         * expr.h (struct separate_ops): Move location field up.
20815         * optabs.h (struct optab_d): Move libcall_basename field down.
20816         * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
20817         * config/i386/i386.h (struct machine_function): Convert call_abi field
20818         into a bitfield.  Move cfa field to the end of the structure.
20819
20820 2010-05-29  Jan Hubicka  <jh@suse.cz>
20821
20822         * varpool.c (varpool_get_node): Fix lookup.
20823
20824 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
20825
20826         * config/spu/spu-protos.h: Do not include rtl.h.  Protect
20827         RTL specific prototypes with #ifdef RTX_CODE.
20828         * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
20829         * config/spu/t-spu-elf: Fix dependencies.
20830
20831         * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
20832
20833 2010-05-29  Mike Stump  <mikestump@comcast.net>
20834
20835         PR bootstrap/44315
20836         * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
20837         TM_H when building to avoid dependency loops.
20838
20839 2010-05-29  Jan Hubicka  <jh@suse.cz>
20840
20841         * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
20842         refs and body; not the whole node for masters of materialized clones.
20843
20844 2010-05-29  Mike Stump  <mikestump@comcast.net>
20845
20846         * config/rs6000/rs6000-c.c: Remove c-tree.h include.
20847
20848 2010-05-29  Jan Hubicka  <jh@suse.cz>
20849
20850         * cgraph.c (clone_function_name): Take SUFFIX argument; export.
20851         (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
20852         use of clone_function_name.
20853         * cgraph.h (cgraph_create_virtual_clone,
20854         cgraph_function_versioning): update prototypes.
20855         (clone_function_name): Declare.
20856         * ipa-cp.c (ipcp_insert_stage): Update call of
20857         cgraph_create_virtual_clone.
20858         * omp-low.c (create_omp_child_function_name): Use
20859         cgraph_create_virtual_clone.
20860         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
20861         (cgraph_function_versioning): Take SUFFIX argument; produce new name
20862         and make decl local.
20863
20864 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
20865
20866         * vec.h: Include statistics.h
20867         * Makefile.in: Introduce VEC_H.  Replace all vec.h dependencies
20868         with VEC_H.
20869
20870 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
20871
20872         * c-lex.c: Do not include c-tree.h.
20873         * c-pretty-print.c: Likewise.
20874         * c-opts.c: Likewise.
20875         * c-gimplify.c: Likewise.
20876         * c-common.c: Likewise.
20877         * c-dump.c: Likewise.  Include c-common.h.
20878
20879 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
20880
20881         * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
20882         before including diagnostic-core.h.
20883         (c_cpp_error): New prototype moved from c-tree.h.
20884         Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
20885         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
20886         (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
20887         (c_cpp_error): Prototype moved to c-common.h.
20888         * Makefile.in: Update dependency for C_COMMON_H.
20889
20890 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
20891
20892         * c-common.h: Add FIXME for awkward split of c_register_addr_space.
20893         * c-common.c (c_register_addr_space): Remove here.
20894         * c-decl.c (c_register_addr_space): Re-add here.
20895
20896 2010-05-28  Mike Stump  <mikestump@comcast.net>
20897
20898         * config/darwin-c.c: Remove c-tree.h include.
20899
20900 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
20901
20902         * gcc.c: Include diagnostic.h.
20903         (error_count): Remove.  All users changed to use errorcount.
20904         (programname): Remove.  All users changed to use progname.
20905         (fancy_abort, internal_error, fatal_error, error, warning, inform,
20906         fnotice): Remove.
20907         (execute): Don't include "Internal error" and bug reporting
20908         information in argument of internal_error call.
20909         (process_command): Don't increment error_count after calling
20910         perror_with_name.
20911         (input_filename): Rename to gcc_input_filename.  All users
20912         changed.
20913         (main): Call diagnostic_initialize.  Register delete_temp_files
20914         with atexit.  Use seen_error to test for errors.
20915         * gcc.h: Include diagnostic-core.h.
20916         (fatal_error, error, warning): Remove.
20917         * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
20918         (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
20919         (gcc.o): Update dependencies.
20920
20921 2010-05-28  Jeff Law  <law@redhat.com>
20922
20923         * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
20924         functions.
20925         * ira.h (ira_bad_reload_regno): Declare
20926         * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
20927
20928         * ira-color.c (update_curr_costs): Free updated hard reg costs.
20929         (ira_reassign_conflict_allocnos): Remove bogus asserts.
20930         (allocno_reload_assign): Likewise.
20931
20932 2010-05-28  Nathan Froyd  <froydnj@codesourcery.com>
20933
20934         * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
20935         build1_stat.
20936
20937 2010-05-28  Richard Guenther  <rguenther@suse.de>
20938
20939         PR lto/44312
20940         * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
20941         Stream fixed-point constants mode.
20942         (unpack_ts_type_value_fields): Fix width of TYPE_MODE
20943         and TYPE_PRECISION.
20944         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
20945         Stream fixed-point constants mode.
20946         (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
20947         and TYPE_PRECISION.
20948
20949 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
20950
20951         * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
20952         only place it was called from.
20953         (number_of_latch_executions): Do not return chrec_dont_know when the
20954         may_be_zero is a runtime condition: instead, return a COND_EXPR
20955         including the may_be_zero condition.
20956         * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
20957         of nb_iterations.
20958         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
20959         COND_EXPRs.
20960
20961 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
20962
20963         * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
20964         generate COND_EXPRs for degenerate_phi_result.
20965
20966 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
20967
20968         PR middle-end/44293
20969         * tree-if-conv.c (if_convertible_loop_p): Check the
20970         if-convertibility of phi nodes in non predicated BBs.
20971
20972 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
20973
20974         * gcc.c (error, warning, inform): Remove duplicate ": " in output.
20975
20976 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
20977
20978         PR driver/15303
20979         * gcc.c (inform, warning, inform): New functions.
20980         (fatal_ice): Rename to internal_error; change cmsgid parameter to
20981         gmsgid.  All callers changed.
20982         (notice): Rename to fnotice; add parameter fp.  All callers changed.
20983         (fatal_error): Rename to fatal_signal.  All users changed.
20984         (fatal): Rename to fatal_error; change cmsgid parameter to
20985         gmsgid.  All callers changed.
20986         (process_command): Use warning instead of error for warnings.
20987         (end_going_arg): Don't use _() around argument of error.
20988         (do_spec_1): Use inform for message from %n specs.  Use warning
20989         instead of error for warnings.
20990         (main): Use inform for comparison messages.  Use warning for
20991         message about unused linker input.
20992         (error): Increment error_count.  Print "error: ".
20993         * gcc.h (fatal): Change to fatal_error.
20994         (warning): Declare.
20995         * config/darwin-driver.c (darwin_default_min_version): Use warning
20996         instead of fprintf for warnings.
20997         * cppspec.c (lang_specific_driver): Use fatal_error instead of fatal.
20998
20999 2010-05-28  Julian Brown  <julian@codesourcery.com>
21000
21001         * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
21002         (*thumb2_addsi3_compare0_scratch): New.
21003         * config/arm/constraints.md (Pv): New.
21004         * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
21005         for ARM mode only.
21006         (*addsi3_compare0_scratch): Likewise.
21007
21008 2010-05-28  Jan Hubicka  <jh@suse.cz>
21009
21010         * ipa-reference.c (add_static_var): Remove redundant all_module_statics
21011         check.
21012         (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
21013         only on local statics.
21014
21015 2010-05-28  Iain Sandoe  <iains@gcc.gnu.org>
21016
21017         * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
21018
21019 2010-05-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
21020
21021         PR bootstrap/44314
21022         * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
21023         (OPTION_GLIBC): Define.
21024
21025 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
21026
21027         PR debug/41048
21028         * dwarf2out.c (double_int_type_size_in_bits): New function.
21029         (round_up_to_align): Change first argument and return value to
21030         double_int.
21031         (field_byte_offset): Work internally on double_ints.
21032
21033         PR target/43636
21034         * builtins.c (expand_movstr): Use a temporary pseudo instead
21035         of target even when target is not NULL and not const0_rtx, but
21036         fails movstr predicate.
21037         * config/m32c/blkmov.md (movstr): Add predicate to first operand.
21038
21039 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
21040
21041         * final.c (rest_of_clean_state): Use %m in errors instead of
21042         strerror (errno).
21043         * gengtype.c (read_input_list, close_output_files): Use xstrerror
21044         instead of strerror.
21045         * toplev.c (process_options): Use %m in errors instead of strerror
21046         (errno).
21047         * tree-dump.c (dump_begin): Use %m in errors instead of strerror
21048         (errno).
21049
21050 2010-05-28  Uros Bizjak  <ubizjak@gmail.com>
21051
21052         * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
21053         (ix86_canonical_va_list_type): Make static.  Add declaration.
21054         (ix86_enum_va_list): Make static.  Reindent.
21055         * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
21056         (ix86_canonical_va_list_type): Ditto.
21057         (ix86_enum_va_list): Ditto.
21058
21059 2010-05-28  Richard Guenther  <rguenther@suse.de>
21060
21061         * lto-wrapper.c (run_gcc): With -save-temps generate a
21062         user-visible ltrans filename.  Fixup ltrans unit numbering.
21063
21064 2010-05-28  Kai Tietz  <kai.tietz@onevision.com>
21065
21066         * c-common.c (c_common_nodes_and_builtins): Replace use
21067         of TARGET_ENUM_VA_LIST by target hook enum_va_list.
21068         * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
21069         to ix86_enum_va_list.
21070         * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
21071         * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
21072         (TARGET_ENUM_VA_LIST_P): Add hook description.
21073         * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
21074         * target.h (gcc_target): Add enum_va_list hook.
21075
21076         PR bootstrap/44299
21077         * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
21078         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
21079         * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
21080
21081 2010-05-28  Alan Modra  <amodra@gmail.com>
21082
21083         PR target/44266
21084         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
21085         emit_library_call machinery to set up __tls_get_addr calls.
21086
21087 2010-05-28  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
21088
21089         * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
21090
21091 2010-05-28  Dodji Seketeli  <dodji@redhat.com>
21092
21093         Revert fix for PR c++/44188
21094         * c-common.c (is_typedef_decl): Revert the moving of  this
21095         definition ...
21096         * tree.c (is_typedef_decl): ... here.
21097         (typdef_variant_p): Revert the moving of this  definition
21098         here from cp/tree.c.
21099         * c-common.h (is_typedef_decl): Revert the moving of this
21100         declaration ...
21101         * tree.h (is_typedef_decl): ... here.
21102         (typedef_variant_p): Revert the moving of this  declaration here
21103         from cp/cp-tree.h
21104         * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
21105         (gen_tagged_type_die): Revert the splitting out of ...
21106         (gen_type_die_with_usage): ... this function. Revert the anonymous
21107         tagged type handling.
21108         (gen_typedef_die): Revert emitting DW_TAG_typedef  for
21109         typedefs naming anonymous tagged types.
21110
21111 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
21112
21113         * config/rs6000/rs6000-modes.def (PSImode): Delete.
21114
21115 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
21116
21117         * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
21118         * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
21119         throughout.
21120         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
21121         "xer" to "ca".
21122         Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
21123         XER_REGS to CA_REGS throughout.
21124         * config/rs6000/rs6000.h: Same.
21125         (ADDITIONAL_REGISTER_NAMES): Add "xer".
21126         * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO.  Document
21127         that mode_iterator "P" is the size for arithmetic carries as well.
21128         * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
21129
21130 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
21131
21132         PR bootstrap/44255
21133         * combine.c (struct rtx_subst_pair): Define unconditionally.
21134         (propagate_for_debug_subst): Likewise.  If not AUTO_INC_DEC,
21135         copy_rtx pair->to instead of cleanup_auto_inc_dec it.
21136         Call make_compound_operation on pair->to.
21137         (propagate_for_debug): Don't call make_compound_operation here.
21138         Always use simplify_replace_fn_rtx.
21139
21140 2010-05-27  Sterling Augustine  <sterling@tensilica.com>
21141
21142         * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
21143         * config/xtensa/xtensa.c (override_options): Check
21144           TARGET_FORCE_NO_PIC and set flag_pic.
21145         * config/xtensa/xtensa.opt: Document -mforce-no-pic
21146
21147 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
21148
21149         PR bootstrap/44299
21150         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
21151         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
21152
21153 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
21154
21155         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
21156         toplev.h.
21157         * diagnostic.c: Don't include toplev.h.
21158         (progname): Define.  Moved from toplev.c.
21159         (seen_error): New function.
21160         * diagnostic.h: Include diagnostic-core.h.
21161         (diagnostic_t, emit_diagnostic): Don't declare here.
21162         * toplev.c (progname): Move to toplev.c.
21163         (emit_debug_global_declarations, compile_file, finalize,
21164         do_compile, toplev_main): Use seen_error.
21165         * toplev.h: Include diagnostic-core.h.
21166         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
21167         internal_error, warning, warning_at, error, error_n, error_at,
21168         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
21169         verbatim, fnotice, progname): Move to diagnostic-core.h.
21170         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
21171         (expand_builtin_expect): Use seen_error.
21172         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
21173         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
21174         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
21175         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
21176         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
21177         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
21178         errorcount for errors.
21179         * c-opts.c (c_common_finish): Use seen_error.
21180         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
21181         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
21182         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
21183         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
21184         (get_coverage_counts): Use seen_error.
21185         * dwarf2out.c (dwarf2out_finish): Use seen_error.
21186         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
21187         gimplify_body): Use seen_error.
21188         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
21189         * ipa-pure-const.c (gate_pure_const): Use seen_error.
21190         * ipa-reference.c (gate_reference): Use seen_error.
21191         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
21192         * lambda-code.c: Include diagnostic-core.h instead of
21193         diagnostic.h.
21194         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
21195         * lto-compress.c: Include diagnostic-core.h instead of
21196         diagnostic.h.
21197         * lto-section-in.c: Include diagnostic-core.h instead of
21198         diagnostic.h.
21199         * lto-streamer-out.c: Include diagnostic-core.h instead of
21200         diagnostic.h.
21201         * lto-streamer.c: Include diagnostic-core.h instead of
21202         diagnostic.h.
21203         (gate_lto_out): Use seen_error.
21204         * matrix-reorg.c: Include diagnostic-core.h instead of
21205         diagnostic.h.
21206         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
21207         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
21208         (gate_expand_omp, lower_omp_1): Use seen_error.
21209         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
21210         (rest_of_decl_compilation, rest_of_type_compilation,
21211         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
21212         * tree-cfg.c (label_to_block_fn): Use seen_error.
21213         * tree-inline.c (optimize_inline_calls): Use seen_error.
21214         * tree-mudflap.c (mudflap_finish_file): Use
21215         seen_error.
21216         * tree-optimize.c (gate_all_optimizations,
21217         gate_all_early_local_passes, gate_all_early_optimizations): Use
21218         seen_error.
21219         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
21220         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
21221         (varpool_remove_unreferenced_decls,
21222         varpool_assemble_pending_decls): Use seen_error.
21223         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
21224         (TOPLEV_H, DIAGNOSTIC_H): Update.
21225         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
21226         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
21227         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
21228         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
21229         coverage.o, lambda-code.o): Update dependencies.
21230
21231 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
21232
21233         PR c++/44188
21234         * c-common.c (is_typedef_decl): Move this definition ...
21235         * tree.c (is_typedef_decl): ... here.
21236         (typdef_variant_p): Move definition here from cp/tree.c.
21237         * c-common.h (is_typedef_decl): Move this declaration ...
21238         * tree.h (is_typedef_decl): ... here.
21239         (typedef_variant_p): Move declaration here from cp/cp-tree.h
21240         * dwarf2out.c (is_naming_typedef_decl): New function.
21241         (gen_tagged_type_die): Split out of ...
21242         (gen_type_die_with_usage): ... this function. When an anonymous
21243         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
21244         is emitted for the typedef.
21245         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
21246         anonymous tagged types.
21247
21248 2010-05-27  Jason Merrill  <jason@redhat.com>
21249
21250         * print-tree.c (debug_vec_tree): New fn.
21251         (print_vec_tree): New fn.
21252         * tree.h: Declare them.
21253         * gdbinit.in (pvt): New command.
21254
21255         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
21256
21257         * gdbinit.in (pdd): New command.
21258
21259 2010-05-27  Jan Hubicka  <jh@suse.cz>
21260
21261         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
21262         (update_caller_keys): Return early if there are no callers;
21263         only update fibheap when decresing the key.
21264         (update_callee_keys): Avoid recursion.
21265         (decide_inlining_of_small_functions): When badness does not match;
21266         re-insert into fibheap.
21267
21268 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
21269
21270         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
21271         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
21272         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
21273         (ALL_HOST_OBJS): Now a union of the above two.
21274         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
21275         all files in ALL_HOST_FRONTEND_OBJS.
21276         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
21277
21278         * c-common.c: Pretend to be a backend file by undefining
21279         IN_GCC_FRONTEND (still need rtl.h here).
21280
21281 2010-05-27  Jan Hubicka  <jh@suse.cz>
21282
21283         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
21284         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
21285
21286 2010-05-27  Jan Hubicka  <jh@suse.cz>
21287
21288         * sched-ebb.c: Rename struct deps to struct deps_desc.
21289         * ddg.c: Likewise.
21290         * sel-sched-ir.c: Likewise.
21291         * sched-deps.c: Likewise.
21292         * sched-int.h: Likewise.
21293         * sched-rgn.c: Likewise.
21294
21295 2010-05-27  Jon Beniston  <jon@beniston.com>
21296
21297         PR 43726
21298         * config/lm32/lm32.h: Remove definition of
21299         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
21300
21301 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
21302
21303         PR lto/44230
21304         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
21305
21306 2010-05-27  Richard Guenther  <rguenther@suse.de>
21307
21308         PR tree-optimization/44284
21309         * tree-vect-stmts.c (vectorizable_assignment): Handle
21310         sign-changing conversions as simple copy.
21311
21312 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
21313
21314         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
21315         Bionic C library.
21316         (__gthread_active_p): Check for pthread_create if compiling against
21317         Bionic C library.
21318
21319 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
21320
21321         Support compilation for Android platform.  Reimplement -mandroid.
21322
21323         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
21324         (*android*): Set ANDROID_DEFAULT.
21325         (arm*-*-linux*): Include linux-android.h.
21326         (arm*-*-eabi*): Don't include previous -mandroid implementation.
21327         * config/arm/eabi.h: Remove, move Android-specific parts ...
21328         * config/linux-android.h: ... here.  New file.
21329         * config/arm/eabi.opt: Rename to ...
21330         * config/linux-android.opt: ... this.
21331         (mandroid): Allow -mno-android option.  Initialize based on
21332         ANDROID_DEFAULT.
21333         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
21334         Move logic to corresponding LINUX_TARGET_* macros.
21335         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
21336         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
21337         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
21338         Android definitions.
21339         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
21340         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
21341         Document.
21342
21343 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
21344
21345         Add support for Bionic C library
21346
21347         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
21348         macro.
21349         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
21350         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
21351
21352         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
21353         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
21354         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
21355         to support multiple C libraries.  Handle Bionic.
21356         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
21357         (BIONIC_DYNAMIC_LINKER64): Define.
21358         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
21359         Update.
21360         (TARGET_HAS_SINCOS): Enable for Bionic.
21361
21362         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
21363         the last option specified on command line take effect.
21364         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
21365         (mbionic): New.
21366         (mglibc, muclibc): Update.
21367
21368         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
21369         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
21370         DEFAULT_LIBC.
21371
21372         * doc/invoke.texi (-mglibc, -muclibc): Update.
21373         (-mbionic): Document.
21374
21375 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
21376
21377         * c-common.h (c_register_addr_space): Add prototype.
21378         (ADDR_SPACE_KEYWORD): Remove.
21379         * c-common.c (c_register_addr_space): New function.
21380         (c_addr_space_name): Reimplement.
21381         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
21382
21383         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
21384         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
21385
21386         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
21387         Remove TARGET_ADDR_SPACE_KEYWORDS.
21388
21389 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
21390
21391         * input.c: New file.
21392         * input.h (main_input_filename): Move declaration to toplev.h.
21393         * toplev.c (input_location, line_table): Move to input.c
21394         * toplev.h (main_input_filename): Move declaration from input.h.
21395         * tree.c (expand_location): Move to input.c.
21396         * Makefile.in (OBJS-common): Add input.o.
21397         (input.o): Add dependencies.
21398
21399 2010-05-27  Richard Guenther  <rguenther@suse.de>
21400
21401         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
21402         for non-existant files.
21403         (fork_execute): Mark args_name file as deleted.
21404
21405 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
21406
21407         PR bootstrp/44287
21408         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
21409         (narrow_signed_type): Likewise.
21410
21411 2010-05-26  Jan Hubicka  <jh@suse.cz>
21412
21413         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
21414         edge only when checking is enabled; check using former_clone_of;
21415         check inline clones too.
21416         (cgraph_materialize_clone): Record former_clone_of pointer.
21417         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
21418         combining redirections; dump args_to_skip bitmap
21419         (cgraph_materialize_all_clones): Do no redirection here.
21420         * ipa-inline.c (inline_transform): Do redirection here.
21421         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
21422         cheking only).
21423
21424 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
21425
21426         * config/avr/avr-c.c: Do not include regs.h.
21427         Include cpplib.h for cpp_define and tree.h for c-common.h.
21428         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
21429         * config/avr/t-avr: Fix dependencies for avr-c.o.
21430
21431 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
21432
21433         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
21434         string instead of SYMBOL_REF rtx.
21435         * rtl.h (set_stack_check_libfunc): Move prototype from here...
21436         * libfuncs.h: ...to here.  Adjust for explow.c change.
21437
21438 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
21439
21440         * pretty-print.c: Don't include ggc.h.
21441         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
21442         (identifier_to_locale): Use them for allocation.
21443         * pretty-print.h (identifier_to_locale_alloc,
21444         identifier_to_locale_free): Declare.
21445         * toplev.c (alloc_for_identifier_to_locale): New.
21446         (general_init): Set identifier_to_locale_alloc and
21447         identifier_to_locale_free.
21448         * Makefile.in (pretty-print.o): Update dependencies.
21449
21450 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
21451
21452         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
21453         pointer types if they have different alignment or mode.
21454
21455 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
21456
21457         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
21458         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
21459         * config/sparc/sparc-protos.h (function_value): Remove declaration.
21460         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
21461         sparc_function_value_regno_p): New functions.
21462         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
21463         TARGET_FUNCTION_VALUE_REGNO_P): Define.
21464         (function_value): Rename to...
21465         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
21466         argument to 'outgoing'.
21467         (function_arg_record_value, function_arg_union_value,
21468         function_arg_vector_value): Update comment.
21469
21470 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
21471
21472         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
21473         (fde_needed_for_eh_p): New predicate.
21474         (output_call_frame_info): Use it throughout to decide whether FDEs
21475         are needed for EH purpose.
21476         (dwarf2out_begin_prologue): Reorder assignments.
21477
21478 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
21479
21480         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
21481         special case loop->header.
21482         (is_predicated): New.
21483         (if_convertible_loop_p): Call it.
21484
21485 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
21486
21487         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
21488         iterator in parameter.  Do not generate code during the analysis.
21489         (tree_if_convert_cond_stmt): Removed.
21490         (tree_if_convert_stmt): Removed.
21491         (predicate_bbs): New.
21492         (if_convertible_loop_p): Call predicate_bbs.
21493         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
21494         now contains all the analysis part.
21495
21496 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
21497
21498         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
21499         statements in the analysis part.
21500         (tree_if_convert_stmt): Update comment.
21501         (remove_conditions_and_labels): New.
21502         (combine_blocks): Call remove_conditions_and_labels.
21503         (tree_if_conversion): Update comment.
21504
21505 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
21506
21507         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
21508         than 2 predecessors or more than 2 successors.
21509
21510 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
21511
21512         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
21513         of loops in which the data dependence analysis fails.
21514
21515 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
21516
21517         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
21518         CDI_POST_DOMINATORS.
21519         (tree_if_conversion): Same.
21520
21521 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
21522
21523         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
21524
21525 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
21526
21527         * tree-if-conv.c: Update copyright years.  Fix comments.
21528         Fix indentation.
21529
21530 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
21531
21532         * builtin-types.def (BT_INT128): New primitive type.
21533         (BT_UINT128): Likewise.
21534         * c-common.c (c_common_r): Add __int128 keyword.
21535         (c_common_type_for_size): Handle __int128.
21536         (c_common_type_for_mode): Likewise.
21537         (c_common_signed_or_unsigned_type): Likewise.
21538         (c_common_nodes_and_builtins): Add builtin type
21539         if target supports 128-bit integer scalar.
21540         * c-common.h (enum rid): Add RID_INT128.
21541         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
21542         if target supports 128-bit integer scalar.
21543         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
21544         (finish_declspecs): Likewise.
21545         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
21546         (c_token_starts_declspecs): Likewise.
21547         (c_parser_declspecs): Likewise.
21548         (c_parser_attributes): Likewise.
21549         (c_parser_objc_selector): Likewise.
21550         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
21551         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
21552         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
21553         * tree.c (make_or_reuse_type): Likewise.
21554         (make_unsigned_type): Likewise.
21555         (build_common_tree_nodes_2): Likewise.
21556         * tree.h (enum integer_type_kind): Add itk_int128 and
21557         itk_unsigned_int128.
21558         (int128_integer_type_node): New define.
21559         (int128_unsigned_type_node): New define.
21560         * doc/extend.texi: Add documentation about __int128 type.
21561
21562 2010-05-26  Richard Guenther  <rguenther@suse.de>
21563
21564         * tree-ssa-sccvn.c (copy_nary): Adjust.
21565         (copy_phis): Rename to ...
21566         (copy_phi): ... this.  Adjust.
21567         (copy_references): Rename to ...
21568         (copy_reference): ... this.  Adjust.
21569         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
21570         result into the valid table.
21571
21572 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
21573
21574         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
21575         insn-config.h, insn-codes.h, recog.h, and optabs.h.
21576
21577 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
21578
21579         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
21580
21581 2010-05-26  Richard Guenther  <rguenther@suse.de>
21582
21583         * opts.c (common_handle_option): Handle OPT_Ofast.
21584
21585 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
21586
21587         * diagnostic.c: Don't include opts.h.
21588         (permissive_error_option): Define.
21589         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
21590         for classify_diagnostic.  Don't use memset for
21591         classify_diagnostic.  Initialize new and recently added fields.
21592         (diagnostic_classify_diagnostic): Use context->n_opts instead of
21593         N_OPTS.
21594         (diagnostic_report_diagnostic): Pass context parameter to
21595         diagnostic_report_warnings_p.  Use option_enabled and option_name
21596         hooks from context.
21597         (emit_diagnostic): Use permissive_error_option.
21598         (permerror): Likewise.
21599         * diagnostic.h: Don't include options.h.
21600         (struct diagnostic_context): Add n_opts, opt_permissive,
21601         inhibit_warnings, warn_system_headers, option_enabled and
21602         option_name fields.  Change classify_diagnostic to a pointer.
21603         * opts-diagnostic.h: New file.
21604         * opts.c: Include opts-diagnostic.h.
21605         (common_handle_option): Set global_dc fields for -Wfatal-errors,
21606         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
21607         (option_name): New function.
21608         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
21609         (c_common_handle_option): Set global_dc->permissive for
21610         -fpermissive.
21611         * c-common.c (c_cpp_error): Save and restore
21612         global_dc->warn_system_headers, not variable warn_system_headers.
21613         * toplev.c: Include opts-diagnostic.h.
21614         (general_init): Update call to diagnostic_initialize.  Set
21615         global_dc->show_column, global_dc->option_enabled and
21616         global_dc->option_name.
21617         (process_options): Don't set global_dc fields here.
21618         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
21619         (diagnostic.o, opts.o, toplev.o): Update dependencies.
21620
21621 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
21622
21623         * config/picochip/picochip.md (movsi): Split a movsi from a
21624         const after reload.
21625
21626 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
21627
21628         * ggc-zone.c: Update copyright year.
21629         (poison_region): Mark memory for Valgrind as undefined before
21630         memset () call and inaccessible afterwards.
21631         (ggc_pch_total_size): Change type of i to int.
21632
21633 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
21634
21635         * ggc-common.c (ggc_free_overhead): Allow empty slot.
21636
21637 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
21638
21639         * ggc-common.c: Update copyright year.
21640         (ggc_rlimit_bound): Remove prototype.  Compile only if
21641         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
21642         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
21643         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
21644         (ggc_min_heapsize_heuristic): Likewise.
21645
21646 2010-05-26  Richard Guenther  <rguenther@suse.de>
21647
21648         PR rtl-optimization/44164
21649         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
21650         no-common access-path disambiguation.
21651         (indirect_ref_may_alias_decl_p): Adjust.
21652         (indirect_refs_may_alias_p): Likewise.
21653         (refs_may_alias_p_1): Likewise.
21654
21655 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
21656
21657         * c-typeck.c: Do not include expr.h.
21658
21659 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
21660
21661         * rtl.h (decl_default_tls_model): Move prototype from here...
21662         * output.h: ...to here.
21663         * c-decl.c: Do not include rtl.h.
21664         * c-pragma.c: Likewise.
21665         * c-parser.c: Likewise.
21666         * c-gimplify.c: Likewise.  And also not hard-reg-set.
21667         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
21668         FIXME note for it.  Add a FIXME note for expr.h.
21669         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
21670         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
21671         defined.
21672
21673 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
21674
21675         PR target/44199
21676         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
21677         or total_size is larger than red zone size for non-V4 ABI, emit a
21678         stack_tie resp. frame_tie insn before stack pointer restore.
21679         * config/rs6000/rs6000.md (frame_tie): New insn.
21680
21681 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
21682
21683         * function.h (struct function): Add can_throw_non_call_exceptions bit.
21684         * lto-streamer-in.c (input_function): Stream it in.
21685         * lto-streamer-out.c (output_function): Stream it out.
21686         * function.c (allocate_struct_function): Set it.
21687         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
21688         for flag_non_call_exceptions.
21689         * cfgbuild.c (control_flow_insn_p): Likewise.
21690         (make_edges): Likewise.
21691         * cfgexpand.c (expand_stack_alignment): Likewise.
21692         * combine.c (distribute_notes): Likewise.
21693         * cse.c (cse_extended_basic_block): Likewise.
21694         * except.c (insn_could_throw_p): Likewise.
21695         * gcse.c (simple_mem): Likewise.
21696         * ipa-pure-const.c (check_call): Likewise.
21697         (check_stmt ): Likewise.
21698         * lower-subreg.c (lower-subreg.c): Likewise.
21699         * optabs.c (emit_libcall_block): Likewise.
21700         (prepare_cmp_insn): Likewise.
21701         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
21702         * postreload.c (rest_of_handle_postreload): Likewise.
21703         * reload1.c (reload_as_needed): Likewise.
21704         (emit_input_reload_insns): Likewise.
21705         (emit_output_reload_insns): Likewise.
21706         (fixup_abnormal_edges): Likewise.
21707         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
21708         * store-motion.c (find_moveable_store): Likewise.
21709         * tree-eh.c (stmt_could_throw_p): Likewise.
21710         (tree_could_throw_p): Likewise.
21711         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
21712         * config/arm/arm.c (arm_expand_prologue): Likewise.
21713         (thumb1_expand_prologue): Likewise.
21714         * config/rx/rx.md (cbranchsf4): Likewise.
21715         (cmpsf): Likewise.
21716         * config/s390/s390.c (s390_emit_prologue): Likewise.
21717         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
21718         (inline_forbidden_into_p): New predicate.
21719         (expand_call_inline): Use it to forbid inlining.
21720         (tree_can_inline_p): Likewise.
21721
21722 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
21723
21724         * config/i386/i386-c.c: Do not include rtl.h.
21725         * config/i386/t-i386: Update dependencies.
21726
21727 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
21728
21729         * attribs.c: Do not include rtl.h.
21730         * Makefile.in: Update dependencies.
21731
21732 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
21733
21734         * double-int.h (double_int_and): New.
21735         * combine.c (try_combine): Clean up, use double_int_* and
21736         immed_double_int_const functions.
21737
21738 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21739
21740         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
21741         stderr to /dev/null instead of grep -q.
21742         * configure: Regenerate.
21743
21744 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
21745
21746         * Makefile.in (EXCEPT_H): Fix typo.
21747
21748 2010-05-25  Vladimir Makarov  <vmakarov@redhat.com>
21749
21750         * ira-build.c (update_conflict_hard_reg_costs): New.
21751         (ira_build): Call update_conflict_hard_reg_costs.
21752
21753 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
21754
21755         PR debug/41371
21756         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
21757         ENABLE_CHECKING.
21758         (intersect_loc_chains): Walk the s2var's loc_chain together
21759         with s1node chain as long as the locations are equal, don't
21760         call find_loc_in_1pdv in that case.
21761
21762         PR debug/42801
21763         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
21764         (copy_bind_expr): ... instead of here.
21765         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
21766         if the block hasn't been remapped.
21767         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
21768         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
21769
21770 2010-05-25  Richard Guenther  <rguenther@suse.de>
21771
21772         PR middle-end/44069
21773         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
21774         out-of-bounds array accesses.
21775
21776 2010-05-25  Richard Guenther  <rguenther@suse.de>
21777
21778         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
21779         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
21780         (run_gcc): Re-organize to make cleanup easier.
21781
21782 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
21783
21784         * config/s390/s390.c (optimization_options): Fix and move the
21785         flag_prefetch_loop_arrays override ...
21786         (override_options): ... here.
21787
21788 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
21789
21790         * diagnostic.c: Don't include plugin.h.
21791         (diagnostic_report_diagnostic): Don't handle plugins specially
21792         here.  Pass context to internal_error callback.
21793         * diagnostic.h (struct diagnostic_context): Add context parameter
21794         to internal_error callback.
21795         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
21796         * plugin.h (struct diagnostic_context): Declare.
21797         (warn_if_plugins, plugins_internal_error_function): Declare.
21798         * toplev.c (general_init): Set global_dc->internal_error.
21799         * Makefile.in (diagnostic.o): Update dependencies.
21800
21801 2010-05-25  Iain Sandoe  <iains@gcc.gnu.org>
21802
21803         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
21804         * config/rs6000/t-darwin64: New.
21805         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
21806         build crt2.
21807
21808 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
21809
21810         PR 44203
21811         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
21812         match the original (and intended) behaviour before r159557.  This
21813         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
21814         in two ways.
21815
21816 2010-05-25  Richard Guenther  <rguenther@suse.de>
21817
21818         * doc/invoke.texi: Document -Ofast.
21819         * target.h (struct gcc_target): Add handle_ofast.
21820         * target-def.h (TARGET_HANDLE_OFAST): Add.
21821         (TARGET_INITIALIZER): Adjust.
21822         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
21823         * common.opt (Ofast): Add.
21824
21825 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
21826
21827         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
21828         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
21829
21830 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
21831
21832         PR target/43610
21833         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
21834         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
21835         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
21836         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
21837
21838 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
21839
21840         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
21841         DW_OP_minus with negated offset instead of DW_OP_plus.
21842         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
21843
21844 2010-05-25  Wei Guozhi  <carrot@google.com>
21845
21846         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
21847         tst instruction and a new alternative.
21848         * config/arm/constraints.md (Pu): New constraint.
21849
21850 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
21851
21852         * function.c (assign_stack_local_1): Initialize variable
21853         to avoid warning when bootstrapping at -O3.
21854
21855 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
21856
21857         * configure.ac (all_lang_makefiles): Remove everything related to it.
21858         * configure: Regenerate.
21859         * Makefile.in: Fix reference to ada Make-lang.in.
21860         Remove support for LANG_MAKEFILES.
21861
21862 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
21863             Sandra Loosemore  <sandra@codesourcery.com>
21864
21865         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
21866         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
21867         description.  Add arm_neon_fp16_ok.
21868         (Add Options): Add arm_neon and arm_neon_fp16.
21869
21870 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
21871
21872         * diagnostic.c: Don't include flags.h.
21873         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
21874         context parameters.  Check flags in the context passed as a parameter.
21875         (diagnostic_build_prefix): Add context parameter.  Check
21876         show_column flag in context.
21877         (diagnostic_action_after_output): Check fatal_errors flag in context.
21878         (diagnostic_report_current_module): Check show_column flag in context.
21879         (default_diagnostic_starter): Update call to
21880         diagnostic_build_prefix.
21881         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
21882         (emit_diagnostic): Pass context to permissive_error_kind.
21883         (permerror): Pass context to permissive_error_kind.
21884         * diagnostic.h (struct diagnostic_context): Add show_column,
21885         pedantic_errors, permissive and fatal_errors fields.
21886         (diagnostic_build_prefix): Update prototype.
21887         * langhooks.c
21888         * toplev.c (process_options): Set flags in global_dc from
21889         flag_show_column, flag_pedantic_errors, flag_permissive,
21890         flag_fatal_errors.
21891         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
21892         to diagnostic_build_prefix.
21893         * Makefile.in (diagnostic.o): Update dependencies.
21894
21895 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
21896
21897         * config/i386/ia32intrin.h (__crc32q): Define only if
21898         __SSE4_2__ is defined.
21899
21900 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
21901
21902         PR target/44132
21903         PR middle-end/43602
21904         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
21905         DECL_VISIBILITY_SPECIFIED.
21906         (emutls_decl): Set DECL_PRESERVE_P and copy
21907         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
21908         (emutls_finalize_control_var): New callback.
21909         (emutls_finish): Finalize emutls control variables.
21910         * toplev.c (compile_file): Move the call to emutls_finish ()
21911         before varpool_assemble_pending_decls ().
21912
21913 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
21914
21915         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
21916         added to the preprocessor condition.
21917
21918 2010-05-24  Paul Brook  <paul@codesourcery.com>
21919
21920         * gengtype-lex.l: Add HARD_REG_SET.
21921         * expr.c (expand_expr_real_1): Record writes to hard registers.
21922         * function.c (rtl_data): Add asm_clobbers.
21923         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
21924         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
21925         Use crtl->asm_clobbers.
21926
21927 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
21928
21929         * doc/makefile.texi (Makefile): Mention stages 'profile'
21930         and 'feedback' for profiledbootstrap.
21931
21932 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
21933
21934         PR target/44245
21935         * config/i386/i386.c (def_builtin): Properly check
21936         OPTION_MASK_ISA_64BIT.
21937
21938 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
21939
21940         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
21941         typedefs with different but compatible types.  Allow duplicate
21942         typedefs with the same type except for pedantic non-C1X, but give
21943         warning for variably modified types.
21944         * c-typeck.c (tagged_types_tu_compatible_p,
21945         function_types_compatible_p, type_lists_compatible_p,
21946         comptypes_internal): Add parameter different_types_p; set
21947         *different_types_p for different but compatible types.  All
21948         callers changed.
21949         (comptypes_check_different_types): New.
21950         * c-tree.h (comptypes_check_different_types): Declare.
21951
21952 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
21953
21954         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
21955         * jump.c: Include basic-block.h.
21956         * profile.c: Likewise.
21957         * tree-profile.c: Likewise.
21958         * coverage.c: Likewise.
21959         * basic-block.h (optimize_function_for_size_p): Move to function.h.
21960         (optimize_function_for_speed_p): Likewise.
21961         * function.h (optimize_function_for_size_p,
21962         optimize_function_for_speed_p): Moved here from basic-block.h.
21963         * Makefile.in: Update dependencies.
21964
21965 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
21966
21967         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
21968         before calling make; allow override through $MAKE.
21969         * doc/invoke.texi (Optimize Options): Document override.
21970
21971 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
21972
21973         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
21974         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
21975         (rs6000_mode_dependent_address_ptr): Make static.
21976         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
21977         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
21978         Remove.
21979
21980 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
21981
21982         PR target/43869
21983         * config/i386/i386.c: Make sure that the correct regparm is passed.
21984
21985 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
21986
21987         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
21988         * sbitmap.c: ...to here to internalize sbitmap element access.
21989         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
21990         Explain why basic-block.h is included.
21991         * function.h: Include tm.h for CUMULATIVE_ARGS.
21992         * Makefile.in: Update dependencies.
21993
21994 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
21995
21996         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
21997         New core types.
21998         * sbitmap.h (struct sbitmap_def): Do not typedef here.
21999         * sbitmap.c: Include sbitmap.h.
22000         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
22001         hard-reg-set.h.  Split everything related to regsets out from here...
22002         * regset.h: ...to here.  New file.
22003         * df.h: Include regset.h and sbitmap.h.
22004         * tree-flow.h: Likewise.
22005         * cfgloop.h: Likewise.
22006         * except.h: Do not include sbitmap.h.  Include hashtab.h.
22007         * cgraph.h: Include vec.h and function.h.
22008         * reload.h (struct insn_chain): Change types of live_throughout
22009         and dead_or_set from regset_head to bitmap_head.
22010         (compute_use_by_pseudos): Be defined also if regset.h is not included.
22011         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
22012         spilled_regs from regset_head to bitmap_head to avoid dependency
22013         in regset.h.
22014         * sel-sched-ir.h: Include regset.h.
22015         * reload.c: Include df.h before reload.h.
22016         * caller-save.c: Likewise.
22017         * reload1.c: Likewise.
22018         * ira.c: Likewise.
22019         (mark_elimination): Update type of r to bitmap, consistent with
22020         DF_LR_IN.
22021         * dominance.c: Include bitmap.h.
22022         * modulo-sched.c: Include df.h.
22023         * cfganal.c: Include bitmap.h and sbitmap.h.
22024         * cfgbuild.c: Include sbitmap.h.
22025         * lcm.c: Include sbitmap.h.
22026         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
22027         * domwalk.c: Include sbitmap.h, exclude ggc.h.
22028         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
22029         * cselib.c: Include bitmap.h.
22030         * tree-optimize.c: Include regset.h.
22031         * stmt.c: Include bitmap.h.
22032         * Makefile.in: Update dependencies.
22033
22034 2010-05-22  Jan Hubicka  <jh@suse.cz>
22035
22036         * cgraph.h (struct varpool_node): Add same_comdat_group.
22037         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
22038         pointer.
22039         (output_varpool): Update call of lto_output_varpool_node.
22040         (input_varpool): Read same_comdat_group pointer.
22041         (input_varpool_1): Fixup same_comdat_group pointer.
22042         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
22043         group is needed, all are.
22044         * varpool.c (varpool_remove_node): Remove node from same comdat group
22045         linklist too.
22046         (varpool_analyze_pending_decls): Walk same comdat groups.
22047
22048 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
22049
22050         * rtl.h (union rtunion_def): Remove rt_bit member.
22051         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
22052         * print-rtl (print_rtx): Do not print the member.
22053         * gengtype.c (adjust_field_rtx_def): Do not handle it.
22054         * gengenrtl.c (type_from_format): Likewise.
22055         (accessor_from_format): Likewise.
22056
22057 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
22058
22059         * dbgcnt.c: Include toplev.h instead of errors.h.
22060         * ira-emit.c: Don't include errors.h.
22061         * ira.c: Include toplev.h instead of errors.h.
22062         * lto-compress.c: Include toplev.h instead of errors.h.
22063         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
22064         ira.o, dbgcnt.o): Update dependencies.
22065
22066 2010-05-22  Richard Guenther  <rguenther@suse.de>
22067
22068         * gimple.c (gimple_types_compatible_p): Check type qualifications
22069         before merging pointer to complete and pointer to incomplete type.
22070         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
22071         we use our own resolution algorithm.  The gold linker plugin
22072         doesn't do the job we want it to do here.
22073
22074 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
22075
22076         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
22077         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
22078         (sparc_mode_dependent_address_p): New function.
22079
22080 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
22081
22082         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
22083
22084         * timevar.c: Do not include any core headers.
22085         (timevar_print): De-i18n-ize.
22086         (print_time): Likewise.
22087         * timevar.h (timevar_push, timevar_pop): Make inline functions.
22088
22089 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
22090
22091         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
22092         langhooks-def.h.
22093         (diagnostic_initialize): Initialize x_data not last_function.
22094         (diagnostic_report_current_function): Move to tree-diagnostic.c.
22095         (default_diagnostic_starter): Call
22096         diagnostic_report_current_module not
22097         diagnostic_report_current_function.
22098         (diagnostic_report_diagnostic): Initialize x_data not
22099         abstract_origin.
22100         (verbatim): Likewise.
22101         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
22102         x_data.
22103         (struct diagnostic_context): Change last_function to x_data.
22104         (diagnostic_auxiliary_data): Replace with
22105         diagnostic_context_auxiliary_data and
22106         diagnostic_info_auxiliary_data.
22107         (diagnostic_last_function_changed, diagnostic_set_last_function,
22108         diagnostic_report_current_function): Move to tree-diagnostic.h.
22109         (print_declaration, dump_generic_node, print_generic_stmt,
22110         print_generic_stmt_indented, print_generic_expr,
22111         print_generic_decl, debug_c_tree, dump_omp_clauses,
22112         print_call_name, debug_generic_expr, debug_generic_stmt,
22113         debug_tree_chain, default_tree_printer): Move to
22114         tree-pretty-print.h.
22115         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
22116         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
22117         gimple-pretty-print.h.
22118         * pretty-print.c: Don't include tree.h
22119         (pp_base_format): Don't handle %K here.
22120         (pp_base_tree_identifier): Move to tree-pretty-print.c.
22121         * pretty-print.h (text_info): Change abstract_origin to x_data.
22122         (pp_tree_identifier, pp_unsupported_tree,
22123         pp_base_tree_identifier): Move to tree-pretty-print.h.
22124         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
22125         tree-pretty-print.h: New files.
22126         * tree-pretty-print.c: Include tree-pretty-print.h.
22127         (percent_K_format): New.  Moved from pretty-print.c.
22128         (pp_base_tree_identifier): Move from pretty-print.c.
22129         * c-objc-common.c: Include tree-pretty-print.h.
22130         (c_tree_printer): Handle %K here.
22131         * langhooks.c: Include tree-diagnostic.h.
22132         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
22133         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
22134         (default_tree_printer): Handle %K using percent_K_format.
22135         (general_init): Use default_tree_diagnostic_starter.
22136         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
22137         (free_lang_data): Use default_tree_diagnostic_starter.
22138         * c-pretty-print.c: Include tree-pretty-print.h.
22139         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
22140         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
22141         * dwarf2out.c: Include tree-pretty-print.h.
22142         * except.c: Include tree-pretty-print.h.
22143         * gimple-pretty-print.c: Include tree-pretty-print.h and
22144         gimple-pretty-print.h.
22145         * gimplify.c: Include tree-pretty-print.h.
22146         * graphite-poly.c: Include tree-pretty-print.h and
22147         gimple-pretty-print.h.
22148         * ipa-cp.c: Include tree-pretty-print.h.
22149         * ipa-inline.c: Include gimple-pretty-print.h.
22150         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
22151         * ipa-pure-const.c: Include gimple-pretty-print.h.
22152         * ipa-struct-reorg.c: Include tree-pretty-print.h and
22153         gimple-pretty-print.h.
22154         * ipa-type-escape.c: Include tree-pretty-print.h.
22155         * print-rtl.c: Include tree-pretty-print.h.
22156         * print-tree.c: Include gimple-pretty-print.h.
22157         * sese.c: Include tree-pretty-print.h.
22158         * tree-affine.c: Include tree-pretty-print.h.
22159         * tree-browser.c: Include tree-pretty-print.h.
22160         * tree-call-cdce.c: Include gimple-pretty-print.h.
22161         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
22162         * tree-chrec.c: Include tree-pretty-print.h.
22163         * tree-data-ref.c: Include tree-pretty-print.h and
22164         gimple-pretty-print.h.
22165         * tree-dfa.c: Include tree-pretty-print.h.
22166         * tree-if-conv.c: Include tree-pretty-print.h and
22167         gimple-pretty-print.h.
22168         * tree-inline.c: Include tree-pretty-print.h.
22169         * tree-into-ssa.c: Include tree-pretty-print.h and
22170         gimple-pretty-print.h.
22171         * tree-nrv.c: Include tree-pretty-print.h.
22172         * tree-object-size.c: Include tree-pretty-print.h and
22173         gimple-pretty-print.h.
22174         * tree-outof-ssa.c: Include tree-pretty-print.h and
22175         gimple-pretty-print.h.
22176         * tree-parloops.c: Include tree-pretty-print.h and
22177         gimple-pretty-print.h.
22178         * tree-predcom.c: Include tree-pretty-print.h and
22179         gimple-pretty-print.h.
22180         * tree-scalar-evolution.c: Include tree-pretty-print.h and
22181         gimple-pretty-print.h.
22182         * tree-sra.c: Include tree-pretty-print.h.
22183         * tree-ssa-address.c: Include tree-pretty-print.h.
22184         * tree-ssa-alias.c: Include tree-pretty-print.h.
22185         * tree-ssa-ccp.c: Include tree-pretty-print.h and
22186         gimple-pretty-print.h.
22187         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
22188         * tree-ssa-copy.c: Include tree-pretty-print.h and
22189         gimple-pretty-print.h.
22190         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
22191         * tree-ssa-dce.c: Include tree-pretty-print.h and
22192         gimple-pretty-print.h.
22193         * tree-ssa-dom.c: Include tree-pretty-print.h and
22194         gimple-pretty-print.h.
22195         * tree-ssa-dse.c: Include gimple-pretty-print.h.
22196         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
22197         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
22198         * tree-ssa-live.c: Include tree-pretty-print.h and
22199         gimple-pretty-print.h.
22200         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
22201         gimple-pretty-print.h.
22202         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
22203         gimple-pretty-print.h.
22204         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
22205         gimple-pretty-print.h.
22206         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
22207         gimple-pretty-print.h.
22208         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
22209         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
22210         * tree-ssa-operands.c: Include tree-pretty-print.h and
22211         gimple-pretty-print.h.
22212         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
22213         gimple-pretty-print.h.
22214         * tree-ssa-pre.c: Include tree-pretty-print.h and
22215         gimple-pretty-print.h.
22216         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
22217         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
22218         gimple-pretty-print.h.
22219         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
22220         gimple-pretty-print.h.
22221         * tree-ssa-sink.c: Include gimple-pretty-print.h.
22222         * tree-ssa-ter.c: Include tree-pretty-print.h and
22223         gimple-pretty-print.h.
22224         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
22225         * tree-ssa.c: Include tree-pretty-print.h and
22226         gimple-pretty-print.h.
22227         * tree-stdarg.c: Include gimple-pretty-print.h.
22228         * tree-switch-conversion.c: Include gimple-pretty-print.h.
22229         * tree-tailcall.c: Include tree-pretty-print.h and
22230         gimple-pretty-print.h.
22231         * tree-vect-data-refs.c: Include tree-pretty-print.h and
22232         gimple-pretty-print.h.
22233         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
22234         gimple-pretty-print.h.
22235         * tree-vect-loop.c: Include tree-pretty-print.h and
22236         gimple-pretty-print.h.
22237         * tree-vect-patterns.c: Include gimple-pretty-print.h.
22238         * tree-vect-slp.c: Include tree-pretty-print.h and
22239         gimple-pretty-print.h.
22240         * tree-vect-stmts.c: Include tree-pretty-print.h and
22241         gimple-pretty-print.h.
22242         * tree-vectorizer.c: Include tree-pretty-print.h.
22243         * tree-vrp.c: Include tree-pretty-print.h and
22244         gimple-pretty-print.h.
22245         * value-prof.c: Include tree-pretty-print.h and
22246         gimple-pretty-print.h.
22247         * var-tracking.c: Include tree-pretty-print.h.
22248         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
22249         (tree-diagnostic.o): New dependencies.
22250         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
22251         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
22252         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
22253         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
22254         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
22255         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
22256         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
22257         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
22258         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
22259         tree-ssa-address.o, tree-ssa-loop-niter.o,
22260         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
22261         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
22262         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
22263         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
22264         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
22265         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
22266         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
22267         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
22268         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
22269         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
22270         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
22271         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
22272         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
22273         tree-switch-conversion.o, var-tracking.o, value-prof.o,
22274         cfgexpand.o, pretty-print.o): Update dependencies.
22275
22276 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
22277
22278         * tree-ssa-structalias.c: Remove tm_p.h from include.
22279
22280 2010-05-21  Jeff Law  <law@redhat.com>
22281
22282         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
22283
22284 2010-05-21  Jason Merrill  <jason@redhat.com>
22285
22286         * tree-eh.c (cleanup_is_dead_in): New.
22287         (lower_try_finally): Don't generate a dead cleanup region.
22288         (lower_cleanup): Likewise.
22289
22290 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
22291
22292         PR debug/44223
22293         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
22294         unchain each use from the cyclic next_regno_use chain first.
22295
22296 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
22297
22298         * real: Do not include gmp.h, mpfr.h, and mpc.h.
22299         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
22300         (real_value_negate, real_value_abs): New prototypes.
22301         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
22302         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
22303         new include file for interface between MPFR and REAL_VALUE_TYPE.
22304         * real.c: Include realmpfr.h.
22305         (real_arithmetic2): Remove legacy function.
22306         (real_value_negate): New.
22307         (real_value_abs): New.
22308         (mfpr_from_real, real_from_mpfr): Move from here...
22309         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
22310         * builtins.c: Include realmpfr.h.
22311         * fold-const.c: Include realmpfr.h.
22312         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
22313         (fold_negate_const): Likewise.
22314         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
22315         * toplev.c: Include realmpfr.h.
22316         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
22317         and real_value_negate.
22318         * fixed-value.c (check_real_for_fixed_mode): Likewise.
22319         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
22320         (vfp3_const_double_index): Likewise.
22321         (arm_print_operand): Likewise.
22322         * Makefile.in: Update dependencies.
22323
22324 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
22325
22326         * config/s390/s390.c (override_options): Increase the default
22327         of max-completely-peel-times.
22328
22329 2010-05-21  Julian Brown  <julian@codesourcery.com>
22330             Mark Mitchell  <mark@codesourcery.com>
22331
22332         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
22333         sibling calls for Thumb-1.
22334         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
22335         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
22336         Thumb-2.
22337         (*call_insn, *call_value_insn): Don't use for Thumb-2.
22338         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
22339         for Thumb-2.
22340         (return): New expander.
22341         (*arm_return): New name for ARM return insn.
22342         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
22343
22344 2010-05-19  Joel Sherrill  <joel.sherrill@oarcorp.com>
22345
22346         * config.gcc (sparc64-*-rtems*): New target.
22347
22348 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
22349
22350         * tree.c (build_function_decl_skip_args): Fix grammar.
22351         (build_function_type_list_1): Fix typos, adjust formatting.
22352
22353 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
22354
22355         * tree.h: Include real.h and fixed-value.h as basic datatypes.
22356         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
22357         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
22358         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
22359         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
22360         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
22361         tree-pretty-print.c, tree-loop-distribution.c,
22362         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
22363         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
22364         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
22365         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
22366         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
22367         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
22368         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
22369         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
22370         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
22371         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
22372         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
22373         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
22374         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
22375         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
22376         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
22377         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
22378         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
22379         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
22380         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
22381         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
22382         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
22383         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
22384         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
22385         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
22386         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
22387         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
22388         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
22389         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
22390         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
22391         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
22392         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
22393         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
22394         config/score/score7.c, config/score/score.c, config/arm/arm.c,
22395         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
22396         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
22397         config/bfin/bfin.c: Clean up redundant includes.
22398         * Makefile.in: Update accordingly.
22399
22400 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
22401
22402         PR middle-end/44204
22403         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
22404         statement has no arguments.
22405
22406 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
22407
22408         PR/44139
22409         * varasm.c (emutls_decl): Merge attributes to new decl.
22410
22411 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
22412
22413         PR middle-end/44101
22414         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
22415         around the uniquized constructor if its type requires a conversion.
22416
22417 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
22418
22419         PR debug/44205
22420         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
22421         at -O0 goto_locus of any of the incoming edges differs from
22422         goto_locus of outgoing edge, or gimple_location of any of the
22423         labels differs.
22424
22425 2009-09-14  Vladimir Makarov  <vmakarov@redhat.com>
22426
22427         * ira.c (ira_non_ordered_class_hard_regs): Define.
22428         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
22429         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
22430         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
22431         cost of unaligned hard regs when allocating multi-reg pseudos.
22432
22433 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
22434
22435         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
22436         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
22437         for TARGET_NO_FLOAT.
22438         * config/mips/mips.c (mips_file_start): Expand conditional expression
22439         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
22440         (mips_override_options): Move -mno-float override -msoft-float and
22441         -mhard-float.
22442         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
22443         Condition(TARGET_SUPPORTS_NO_FLOAT).
22444         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
22445         __mips_no_float here.
22446         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
22447         (TARGET_SUPPORTS_NO_FLOAT): Define.
22448         * config/mips/sdemtk.opt: Delete.
22449
22450 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
22451
22452         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
22453
22454 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
22455
22456         PR target/43733
22457         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
22458         * configure: Regenerate.
22459         * config.in: Regenerate.
22460         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
22461         instead of sahf only for 64bit targets.
22462
22463 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
22464
22465         PR debug/44178
22466         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
22467         setup_ref_regs for DEBUG_INSNs.
22468
22469 2010-05-20  Jan Hubicka  <jh@suse.cz>
22470
22471         PR middle-end/44197
22472         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
22473
22474 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
22475
22476         PR bootstrap/43870
22477         * df-scan.c (df_ref_compare): Stabilize sort.
22478
22479 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
22480
22481         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
22482         argument.  Don't use DW_OP_piece if offset is non-zero,
22483         put offset into second DW_OP_bit_piece argument.
22484         (dw_sra_loc_expr): Adjust callers.  For memory expressions
22485         compute offset.
22486
22487 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
22488
22489         PR target/44202
22490         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
22491         settings for 16-bit-constant "addo" alternative.
22492
22493 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
22494
22495         * config/mips/mips-dsp.md (add<DSPV:mode>3,
22496         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
22497
22498         PR target/43764
22499         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
22500         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
22501         Use it.
22502
22503 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
22504
22505         * diagnostic.c (FLOAT, FFS): Don't undefine.
22506         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
22507         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
22508         include ordering.
22509
22510 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
22511
22512         * combine.c (propagate_for_debug): Call make_compound_operation
22513         on the source value.
22514         (try_combine): When implementing a split chosen by find_split_point,
22515         either copy i2src or set it to null.  Assert that i2src is not null
22516         before substituting into CALL_INSN_FUNCTION_USAGE.
22517
22518 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
22519
22520         * double-int.h (double_int_ior): New function.
22521         * tree.h (build_int_cst_wide_type): Remove.
22522         * tree.c (build_int_cst_wide_type): Remove.
22523         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
22524         of build_int_cst_wide_type.
22525         * stor-layout.c (set_sizetype): (Ditto.).
22526         * dojump.c (do_jump): Use build_int_cstu instead of
22527         build_int_cst_wide_type.
22528
22529 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
22530
22531         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
22532         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
22533         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
22534         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
22535         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
22536         propagate the 'data' argument to copy_tree_r.
22537         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
22538         Propagate 'data' argument to walk_tree.
22539         (copy_if_shared): New function.
22540         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
22541         (unmark_visited): New function.
22542         (unshare_body): Call copy_if_shared instead of doing it manually.
22543         (unvisit_body): Call unmark_visited instead of doing it manually.
22544
22545 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
22546
22547         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
22548         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
22549         * hooks.c: Likewise.
22550         * target-def.h (TARGET_FOLD_BUILTIN): Define to
22551         hook_tree_tree_int_treep_bool_null.
22552         * target.h (struct gcc_target): Update signature of fold_builtin
22553         field.
22554         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
22555         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
22556         instead of the call expression.
22557         (fold_builtin_call_array): Pass n and argarray directly.
22558         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
22559         consing a list.
22560         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
22561         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
22562         `i' and use it in place of `arity'.
22563         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
22564         Dereference `args' directly.
22565         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
22566
22567 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22568
22569         * doc/sourcebuild.texi (Effective-Target Keywords): Document
22570         3dnow, sse3, sse2.
22571         (Directives): Document optional dg-require-effective-target
22572         selector.
22573
22574 2010-05-19  Richard Guenther  <rguenther@suse.de>
22575
22576         PR lto/44196
22577         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
22578
22579 2010-05-19  Richard Guenther  <rguenther@suse.de>
22580
22581         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
22582         * common.opt (fwhopr=): New.
22583         * opts.c (common_handle_option): Handle OPT_fwhopr.
22584         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
22585         * collect2.c (main): Match -fwhopr*.
22586         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
22587         Execute ltrans stage in parallel when jobs is bigger than 1.
22588
22589 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22590
22591         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
22592         pentiumpro on Solaris 8/x86 with Sun as.
22593         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
22594         hidden alias bug.
22595         (gcc_cv_as_ix86_quad): Check for .quad directive.
22596         * configure: Regenerate.
22597         * config.in: Regenerate.
22598         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
22599
22600 2010-05-19  Martin Jambor  <mjambor@suse.cz>
22601
22602         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
22603         also for indirect edges.  Actual printing moved...
22604         (ipa_print_node_jump_functions_for_edge): ...here.
22605         (ipa_compute_jump_functions): Renamed to
22606         ipa_compute_jump_functions_for_edge and made static.
22607         (ipa_compute_jump_functions): New function.
22608         (make_edge_direct_to_target): Check if the number of arguments on
22609         the newly direct edge is the same as the number of parametrs of
22610         the callee.
22611         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
22612         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
22613         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
22614         analysis functions unconditionally, call the new
22615         ipa_analyze_params_uses on the node instead of every edge.
22616
22617 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
22618
22619         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
22620         to tree.
22621         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
22622         also checks for a constant int vs.  non-constant but
22623         loop-invariant steps.
22624         (find_or_create_group): Change the sort algorithm to only consider
22625         steps that are constant ints.
22626         (idx_analyze_ref): Adopt code to handle a tree instead of a
22627         HOST_WIDE_INT for step.
22628         (gather_memory_references_ref): Handle tree instead of int and be
22629         prepared to see a NULL_TREE.
22630         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
22631         prefetches if the step cannot be calculated at compile time.
22632         (issue_prefetch_ref): Issue prefetches for non-constant but
22633         loop-invariant steps.
22634
22635 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
22636
22637         Revert:
22638         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
22639
22640         * tree.h (build_call_list): Remove.
22641         * tree.c (build_call_list): Remove.
22642
22643 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
22644
22645         * tree.h (build_call_list): Remove.
22646         * tree.c (build_call_list): Remove.
22647
22648 2010-05-18  Jan Hubicka  <jh@suse.cz>
22649
22650         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
22651
22652 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
22653
22654         PR rtl-optimization/43332
22655         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
22656
22657 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
22658
22659         * tree.h (build_int_cstu): Implement as static inline.
22660         * tree.c (build_int_cstu): Remove function.
22661         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
22662         sign extended.
22663
22664 2010-05-18  Richard Guenther  <rguenther@suse.de>
22665
22666         PR lto/44143
22667         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
22668         (debug): Initialize from -save-temps.
22669         (collect_execute): Print command-line when verbose.
22670         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
22671         for ltrans invocation.  Produce -dumpbase flag again.
22672         (process_args): Remove.
22673         (main): Simplify.
22674         * collect2.c (maybe_run_lto_and_relink): Only pass object
22675         files to lto-wrapper.
22676         * gcc.c (LINK_COMMAND_SPEC): Likewise.
22677
22678 2010-05-18  Jan Hubicka  <jh@suse.cz>
22679
22680         * opts.c (decode_options): Do not disable whopr at ipa_cp.
22681         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
22682
22683 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
22684
22685         PR lto/44184
22686         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
22687         in a GIMPLE_ASM.
22688         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
22689         in a GIMPLE_ASM.
22690
22691 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
22692
22693         PR debug/41371
22694         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
22695         rtx_equal_p inline.
22696
22697 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
22698
22699         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
22700         lto-macho as lto_binary_reader.
22701
22702         * darwin.c (darwin_asm_named_section): Do not add assembler comment
22703         after .section directive; just print it before the directive instead.
22704
22705 2010-05-17  Jan Hubicka  <jh@suse.cz>
22706
22707         * cgraph.c (cgraph_create_virtual_clone): Only check
22708         versionable_function_p when not in wpa and checking is enabled.
22709         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
22710         there are no more functions to materialize.
22711
22712 2010-05-17  Jan Hubicka  <jh@suse.cz>
22713
22714         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
22715         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
22716         New functions.
22717         (output_cgraph): Call output_cgraph_opt_summary.
22718         (input_cgrpah): Call input_cgraph_opt_summary.
22719         (output_cgraph_opt_summary_p, output_node_opt_summary,
22720         input_node_opt_summary, input_cgraph_opt_section): New functions.
22721         * lto-section-in.c (lto_section_name): Add cgraphopt.
22722         * tree-inline.c (tree_function_versioning): Handle parm_num.
22723         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
22724         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
22725
22726 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
22727
22728         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
22729         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
22730         the insn to prefetch ratio heuristic to loops with known trip count.
22731
22732 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
22733
22734         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
22735         (schedule_prefetches): Do not generate a prefetch if the unroll factor
22736         is far from what is required by the prefetch.
22737
22738 2010-05-17  Jan Hubicka  <jh@suse.cz>
22739
22740         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
22741         (ipcp_estimate_growth): Likewise.
22742         (ipcp_const_param_count): Likewise.
22743         (ipcp_insert_stage): Likewise.
22744         * ipa-prop.c (visit_load_for_mod_analysis): New function.
22745         (visit_store_addr_for_mod_analysis): Set used flag.
22746         (ipa_detect_param_modifications): Set used flag for SSE params;
22747         update use of walk_stmt_load_store_addr_ops.
22748         (ipa_print_node_params): Print used flag.
22749         (ipa_write_node_info): Stream used flag.
22750         (ipa_read_node_info): Likewise.
22751         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
22752         (ipa_is_param_used): New function.
22753         (lto_ipa_fixup_call_notes): Remove unused declaration.
22754
22755 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22756
22757         PR target/44074
22758         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
22759         * configure: Regenerate.
22760         * config.in: Regenerate.
22761         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
22762         !HAVE_AS_IX86_REP_LOCK_PREFIX.
22763         Don't emit whitespace.
22764         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
22765         (*rep_movsi): Likewise.
22766         (*rep_movsi_rex64): Likewise.
22767         (*rep_movqi): Likewise.
22768         (*rep_movqi_rex64): Likewise.
22769         (*rep_stosdi_rex64): Likewise.
22770         (*rep_stossi): Likewise.
22771         (*rep_stossi_rex64): Likewise.
22772         (*rep_stosqi): Likewise.
22773         (*rep_stosqi_rex64): Likewise.
22774         (*cmpstrnqi_nz_1): Use {%;} after repz.
22775         (*cmpstrnqi_nz_rex_1): Likewise.
22776         (*cmpstrnqi_1): Likewise.
22777         (*cmpstrnqi_rex_1): Likewise.
22778         (*strlenqi_1): Use {%;} after repnz.
22779         (*strlenqi_rex_1): Likewise.
22780         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
22781         (*sync_compare_and_swap<mode>): Likewise.
22782         (sync_double_compare_and_swap<mode>): Likewise.
22783         (*sync_double_compare_and_swapdi_pic): Likewise.
22784         (sync_old_add<mode>): Likewise.
22785         (sync_add<mode>): Likewise.
22786         (sync_sub<mode>): Likewise.
22787         (sync_<code><mode>): Likewise.
22788
22789 2010-05-17  Martin Jambor  <mjambor@suse.cz>
22790
22791         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
22792         otr_token and polymorphic.
22793         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
22794         (cgraph_clone_edge): Copy the above fields.
22795         * tree.c (get_binfo_at_offset): New function.
22796         * tree.h (get_binfo_at_offset): Declare.
22797         * ipa-prop.h (enum jump_func_type): Added known_type jump function
22798         type, reordered items, updated comments.
22799         (union jump_func_value): Added base_type field, reordered fields.
22800         (enum ipa_lattice_type): Moved down in the file.
22801         (struct ipa_param_descriptor): New field polymorphic.
22802         (ipa_is_param_polymorphic): New function.
22803         * ipa-prop.c: Include gimple.h and gimple-fold.h.
22804         (ipa_print_node_jump_functions): Print known type jump functions.
22805         (compute_complex_pass_through): Renamed to...
22806         (compute_complex_assign_jump_func): this.
22807         (compute_complex_ancestor_jump_func): New function.
22808         (compute_known_type_jump_func): Likewise.
22809         (compute_scalar_jump_functions): Create known type and complex ancestor
22810         jump functions.
22811         (ipa_note_param_call): New parameter polymorphic, set the corresponding
22812         flag in the call note accordingly.
22813         (ipa_analyze_call_uses): Renamed to...
22814         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
22815         variable var only in the block where it is used.
22816         (ipa_analyze_virtual_call_uses): New function.
22817         (ipa_analyze_call_uses): Likewise.
22818         (combine_known_type_and_ancestor_jfs): Likewise.
22819         (update_jump_functions_after_inlining): Implemented handling of a
22820         number of new jump function types combination.
22821         (print_edge_addition_message): Removed.
22822         (make_edge_direct_to_target): New function.
22823         (try_make_edge_direct_simple_call): Likewise.
22824         (try_make_edge_direct_virtual_call): Likewise.
22825         (update_call_notes_after_inlining): Renamed to...
22826         (update_indirect_edges_after_inlining): this.  Moved edge creation for
22827         indirect calls to try_make_edge_direct_simple_call, also calls
22828         try_make_edge_direct_virtual_call for virtual calls.
22829         (ipa_print_node_params): Changed the header message.
22830         (ipa_write_jump_function): Stream also known type jump functions.
22831         (ipa_read_jump_function): Likewise.
22832         (ipa_write_indirect_edge_info): Stream new fields in
22833         cgraph_indirect_call_info.
22834         (ipa_read_indirect_edge_info): Likewise.
22835         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
22836         GIMPLE_FOLD_H.
22837
22838 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22839
22840         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
22841
22842 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
22843
22844         * tree.h (CALL_EXPR_ARGS): Delete.
22845         (call_expr_arglist): Delete.
22846         * tree.c (call_expr_arglist): Delete.
22847         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
22848         targetm.fold_builtin.
22849         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
22850         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
22851         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
22852         arglist parameter.  Use CALL_EXPR_ARG.
22853         (picochip_expand_builtin_3op): Likewise.
22854         (picochip_expand_builtin_2opvoid): Likewise.
22855         (picochip_expand_array_get): Likewise.
22856         (picochip_expand_array_put): Likewise.
22857         (picochip_expand_array_testport): Likewise.
22858         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
22859         rather than arglist.
22860         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
22861         CALL_EXPR_ARGS.
22862         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
22863         than TREE_VALUE and TREE_CHAIN.
22864         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
22865         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
22866         the arglist.
22867
22868 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
22869
22870         PR bootstrap/42347
22871         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
22872         to have no fallthru edge.
22873
22874         PR middle-end/44102
22875         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
22876         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
22877         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
22878         add BARRIER after previous bb if needed.
22879
22880 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
22881
22882         * tree.c (build_function_type_list_1): Remove bogus assert condition.
22883
22884 2010-05-17  Alan Modra  <amodra@gmail.com>
22885
22886         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
22887         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
22888         with copy_reg rtx param.
22889         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
22890         Correct cases where code for ABI_V4 did not initialise the reg
22891         used to access frame.  Also leave frame_reg_rtx as sp for large
22892         frames that save no regs.
22893
22894 2010-05-17  Martin Jambor  <mjambor@suse.cz>
22895
22896         PR middle-end/44133
22897         * tree-sra.c (create_access_replacement): New parameter rename, mark
22898         the replaement for renaming only when it is true.
22899         (get_access_replacement): Pass true in the rename parameter of
22900         create_access_replacement.
22901         (get_unrenamed_access_replacement): New function.
22902         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
22903         replacement declaration from it.
22904
22905 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
22906
22907         * function.c (try_fit_stack_local, add_frame_space): New static
22908         functions.
22909         (assign_stack_local_1): Use them.  Look for opportunities to use
22910         space previously wasted on alignment.
22911         * function.h (struct frame_space): New.
22912         (struct rtl_data): Add FRAME_SPACE_LIST member.
22913         * reload1.c (something_was_spilled): New static variable.
22914         (alter_reg): Set it.
22915         (reload): Test it in addition to testing if the frame size changed.
22916
22917 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
22918
22919         * config/s390/s390.c: Define sane prefetch settings and activate
22920         flag_prefetch_loop_arrays on -O3.
22921         * config/s390/s390.h: Declare that read can use write prefetch.
22922
22923 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
22924
22925         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
22926         build.
22927
22928 2010-05-16  Jan Hubicka  <jh@suse.cz>
22929
22930         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
22931         function body; do not check stdarg field of struct function.
22932
22933 2010-05-16  Jan Hubicka  <jh@suse.cz>
22934
22935         * cgraph.c (dump_cgraph_node): Dump versionable flag.
22936         * cgraph.h (cgraph_local_info): Add versionable flag.
22937         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
22938         (ipcp_versionable_function_p): Use it.
22939         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
22940         versionable flag.
22941
22942 2010-05-16  Jan Hubicka  <jh@suse.cz>
22943
22944         * cgraph.c (cgraph_clone_node): Take decl argument and insert
22945         clone into hash when it is different from orig.
22946         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
22947         * cgraph.h (cgraph_clone_node): Update prototype.
22948         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
22949         (lto_cgraph_encoder_delete): Delete body map.
22950         (lto_cgraph_encoder_size): Move to header.
22951         (lto_cgraph_encoder_encode_body_p,
22952         lto_set_cgraph_encoder_encode_body): New.
22953         (lto_output_node): Do not take written_decls argument; output clone_of
22954         pointer.
22955         (add_node_to): Add include_body_argument; call
22956         lto_set_cgraph_encoder_encode_body on master of the clone.
22957         (add_references): Update use of add_node_to.
22958         (compute_ltrans_boundary): Likewise.
22959         (output_cgraph): Do not create written_decls bitmap.
22960         (input_node): Take nodes argument; stream in clone_of correctly.
22961         (input_cgraph_1): Update use of input_node.
22962         * lto-streamer-out.c (lto_output): Use encoder info to decide
22963         what bodies to output.
22964         * ipa-inline.c (cgraph_clone_inlined_nodes,
22965         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
22966         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
22967         (lto_cgraph_encoder_size): Define here.
22968         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
22969         Declare.
22970
22971 2010-05-16  Richard Guenther  <rguenther@suse.de>
22972
22973         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
22974         -fipa-type-escape.
22975         * ipa-type-escape.c (gate_type_escape_vars): Run when
22976         -fipa-struct-reorg runs.
22977         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
22978         * common.opt (fipa-type-escape): Remove.
22979
22980 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
22981
22982         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
22983         (decode_options): Likewise.
22984         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
22985
22986 2010-05-16  Jan Hubicka  <jh@suse.cz>
22987
22988         * ipa.c (function_and_variable_visibility): Also bring local all
22989         aliases.
22990
22991 2010-05-16  Richard Guenther  <rguenther@suse.de>
22992
22993         * alias.c (nonoverlapping_memrefs_p): Remove use of
22994         IPA type-escape information.
22995
22996 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
22997
22998         * c-common.c (c_common_reswords): Add _Static_assert for C.
22999         * c-parser.c (c_token_starts_declaration,
23000         c_parser_next_token_starts_declaration,
23001         c_parser_static_assert_declaration_no_semi,
23002         c_parser_static_assert_declaration): New.
23003         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
23004         Handle static assertions if static_assert_ok.
23005         (c_parser_external_declaration, c_parser_declaration_or_fndef,
23006         c_parser_compound_statement_nostart, c_parser_label,
23007         c_parser_for_statement, c_parser_objc_methodprotolist,
23008         c_parser_omp_for_loop): All callers of
23009         c_parser_declaration_or_fndef changed.
23010         (c_parser_struct_declaration): Handle static assertions.
23011         (c_parser_compound_statement_nostart): Use
23012         c_parser_next_token_starts_declaration and
23013         c_token_starts_declaration to detect start of declarations.
23014         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
23015         Likewise.
23016
23017 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
23018
23019         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
23020         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
23021         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
23022         TARGET_FUNCTION_VALUE_REGNO_P): Define.
23023         (mmix_function_outgoing_value): Rename to...
23024         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
23025         (mmix_function_value_regno_p): Make static.
23026         (mmix_libcall_value): New function.
23027         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
23028         mmix_function_value_regno_p): Remove declaration.
23029
23030 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
23031
23032         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
23033         BUILT_IN_ALLOCA if stack checking is enabled.
23034
23035 2010-05-16  Richard Guenther  <rguenther@suse.de>
23036
23037         * var-tracking.c (vars_copy_1): Inline ...
23038         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
23039         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
23040         (variable_merge_over_cur): Adjust.  Merge asserts.
23041         (variable_merge_over_src): Likewise.
23042         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
23043         (variable_post_merge_new_vals): Merge asserts.
23044         (variable_post_merge_perm_vals): Likewise.
23045         (find_mem_expr_in_1pdv): Likewise.
23046         (dataflow_set_different_value): Remove.
23047         (onepart_variable_different_p): Merge asserts.
23048         (variable_different_p): Likewise.
23049         (dataflow_set_different_1): Inline ...
23050         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
23051         (emit_notes_for_differences_1): Merge asserts.
23052
23053 2010-05-16  Richard Guenther  <rguenther@suse.de>
23054
23055         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
23056         * optabs.c (libfunc_decl_hash): Likewise.
23057         * varasm.c (emutls_decl): Likewise.
23058
23059 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
23060
23061         * c-decl.c: Don't include gimple.h.
23062         (merge_decls): Do not copy gimple_body.
23063
23064 2010-05-15  Jason Merrill  <jason@redhat.com>
23065
23066         * c.opt: Add -fnothrow-opt.
23067
23068 2010-05-15  Jan Hubicka  <jh@suse.cz>
23069
23070         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
23071         analyzed.
23072         * passes.c (ipa_write_summaries): Write all analyzed nodes.
23073
23074 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
23075
23076         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
23077         * Makefile.in: Add it.
23078         Fix all other Makefile dependencies for changes below.
23079         * tree.h: Include it instead of defining VEC primitives here.
23080         * gimple.h: Likewise.
23081         * rtl.h: Likewise.
23082         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
23083         * except.h: Include vecir.h, break dependence on tree.h.
23084
23085         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
23086         Move from here...
23087         * tree-iterator.c: ...to here.
23088         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
23089
23090         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
23091         tm_p.h.
23092         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
23093         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
23094         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
23095         tree-mudflap.h, and target.h.
23096         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
23097         predict.h, tree-inline.h, gimple.h, and langhooks.h.
23098         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
23099         Add FIXME for why gimple.h is still included (should be unnecessary
23100         since GCC 4.5 gimplification unit-at-a-time).
23101         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
23102         * c-pragma.c: Add FIXME for why function.h needs to be included just
23103         for cfun, at front-end level.
23104         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
23105         Do not include ggc.h, but include vecprim.h for VEC(char).
23106         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
23107         Explain why target.h is included.
23108         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
23109         Explain why gimple.h is included.
23110         * c-ppoutput.c: Do not include tm.h.
23111         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
23112         * c-parses.c: Explain why rtl.h is included, and that this (and only
23113         this) is also why tm.h must be included.
23114         Do not include except.h.
23115         * c-lang.c: Do not include ggc.h.
23116
23117 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
23118
23119         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
23120
23121 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
23122
23123         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
23124         unions by default if those structs and unions have no tags.  Do
23125         not condition anonymous struct and unions handling on flag_iso.
23126         Allow anonymous structs and unions for C1X.
23127         (finish_struct): Do not diagnose lack of named fields when
23128         anonymous structs and unions present for C1X.  Accept flexible
23129         array members in structure with anonymous structs or unions but no
23130         directly named fields.
23131         * doc/extend.texi (Unnamed Fields): Update.
23132
23133 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
23134
23135         * gimple.h (compare_field_offset): Rename into...
23136         (gimple_compare_field_offset): ...this.
23137         * gimple.c (compare_field_offset): Rename into...
23138         (gimple_compare_field_offset): ...this.  Compare the full access if
23139         the offset is self-referential.
23140         (gimple_types_compatible_p): Adjust for above renaming.
23141         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
23142         DECL_NONADDRESSABLE_P flag of fields before merging them.
23143
23144 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
23145
23146         * tree.h (ctor_to_list): Delete.
23147         * tree.c (ctor_to_list): Delete.
23148
23149 2010-05-15  Jan Hubicka  <jh@suse.cz>
23150
23151         * ipa-reference.c: Include toplev.h
23152         (is_proper_for_analysis): Only add to all_module_statics
23153         if it is allocated.
23154         (write_node_summary_p, stream_out_bitmap,
23155         ipa_reference_write_optimization_summary,
23156         ipa_reference_read_optimization_summary): New.
23157         (struct ipa_opt_pass_d pass_ipa_reference): Add
23158         optimization summary streaming.
23159         * lto-cgraph.c (referenced_from_this_partition_p,
23160         reachable_from_this_partition_p): New functions.
23161         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
23162         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
23163         * opts.c (decode_options): Enable ipa_reference.
23164         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
23165         * lto-streamer.h (referenced_from_this_partition_p,
23166         reachable_from_this_partition_p): Declare.
23167
23168 2010-05-15  Richard Guenther  <rguenther@suse.de>
23169
23170         PR tree-optimization/44038
23171         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
23172         taking the address of a V_C_E of a constant.
23173
23174 2010-05-14  Jan Hubicka  <jh@suse.cz>
23175
23176         * tree.h (memory_identifier_string): Remove.
23177         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
23178         (ipa_reference_global_vars_info_d): Remove statics_not_read and
23179         statics_not_written.
23180         (ipa_reference_optimization_summary_d): New structure.
23181         (ipa_reference_optimization_summary_t): New type and vector.
23182         (ipa_reference_vars_info_d): Embedd structures instead of using
23183         pointers.
23184         (reference_vars_to_consider): Remove out of GGC space.
23185         (module_statics_escape): Remove.
23186         (global_info_obstack): Rename to ...
23187         (optimization_summary_obstack): ... this one.
23188         (initialization_status_t): Remove.
23189         (memory_identifier_string): Remove.
23190         (get_reference_vars_info): Fix indenting.
23191         (set_reference_vars_info): Likewise.
23192         (get_reference_optimization_summary): New.
23193         (set_reference_optimization_summary): New.
23194         (get_global_reference_vars_info): Remove.
23195         (ipa_reference_get_read_global): Remove.
23196         (ipa_reference_get_written_global): Remove.
23197         (ipa_reference_get_not_read_global): Update.
23198         (ipa_reference_get_not_written_global): Update.
23199         (is_proper_for_analysis): Outlaw addressable.
23200         (propagate_bits): Update for new datastructures.
23201         (analyze_variable): Remove.
23202         (init_function_info): Update for new datastructures.
23203         (clean_function_local_data): Remove.
23204         (clean_function): Remove.
23205         (copy_global_bitmap): Use optimizations_summary_obstack.
23206         (duplicate_node_data): Duplicate optimization summary only.
23207         (remove_node_data): Remove optimization summary only.
23208         (generate_summary): Do not analyze variables; do not compute
23209         module_statics_escape; do not prune solutions by it.
23210         (read_write_all_from_decl): Fix typos in comments.
23211         (propagate): Doscover readonly and nonaddressable first;
23212         update for new datastructures; share global bitmaps.
23213         * ipa-reference.h (ipa_reference_get_read_global,
23214         ipa_reference_get_written_global): Remove.
23215         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
23216         * Makefile.in: Remove ipa-refereference from GT files.
23217
23218 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
23219
23220         PR debug/44112
23221         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
23222         for all SYMBOL_REF_DECLs.
23223
23224 2010-05-14  Jan Hubicka  <jh@suse.cz>
23225
23226         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
23227         (varpool_all_refs_explicit_p): New inline function.
23228         * ipa-reference.c: Update comment.
23229         (module_statics_written): Remove.
23230         (get_static_decl): Remove.
23231         (ipa_init): Do not initialize module_statics_written.
23232         (analyze_function): Likewise.
23233         (generate_summary): Likewise; do not compute module_statics_readonly
23234         and do not update variable flags.
23235         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
23236         * ipa.c: Inlucde flags.h
23237         (cgraph_local_node_p): New.
23238         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
23239         promote functions to local.
23240         (ipa_discover_readonly_nonaddressable_vars): New function.
23241         (function_and_variable_visibility): Use cgraph_local_node_p.
23242         * varpool.c (varpool_finalize_decl): Set force_output for
23243         DECL_PRESERVE_P vars.
23244
23245 2010-05-14  Jan Hubicka  <jh@suse.cz>
23246
23247         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
23248
23249 2010-05-14  Richard Guenther  <rguenther@suse.de>
23250
23251         PR tree-optimization/44119
23252         * tree-ssa-pre.c (eliminate): Properly mark replacement of
23253         a PHI node necessary.
23254
23255 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
23256
23257         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
23258
23259 2010-05-14  Jason Merrill  <jason@redhat.com>
23260
23261         PR c++/44127
23262         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
23263         (gimple_call_set_nothrow): New.
23264         * gimple.c (gimple_build_call_from_tree): Call it.
23265         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
23266
23267         PR c++/44127
23268         * gimplify.c (gimplify_seq_add_stmt): No longer static.
23269         * gimple.h: Declare it.
23270         * gimple.c (gimple_build_eh_filter): No ops.
23271
23272 2010-05-14  Jan Hubicka  <jh@suse.cz>
23273
23274         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
23275         nodes already in queue.
23276         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
23277         re-enqueueing node.
23278
23279 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
23280
23281         PR debug/44136
23282         * cfgexpand.c (expand_debug_expr): If non-memory op0
23283         has BLKmode, return NULL.
23284
23285 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
23286
23287         * config.gcc: Add support for --with-cpu option for bdver1.
23288         * config/i386/i386.h (TARGET_BDVER1): New macro.
23289         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
23290         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
23291         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
23292         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
23293         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
23294         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
23295         (processor_type): Add PROCESSOR_BDVER1.
23296         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
23297         processor_type in config/i386/i386.h.
23298         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
23299         movaps <reg, reg> instead of movapd <reg, reg> when replacing
23300         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
23301         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
23302         to emit packed xor instead of packed double/packed integer
23303         xor for SSE and AVX when moving a zero value.
23304         * config/i386/sse.md: Add check for
23305         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
23306         movapd/movdqa for SSE and AVX.
23307         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
23308         single logical operations i.e and, or and xor instead of packed double
23309         logical operations for SSE and AVX.
23310         * config/i386/i386-c.c (ix86_target_macros_internal):
23311         Add PROCESSOR_BDVER1.
23312         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
23313         (has_fma4, has_xop): New.
23314         * config/i386/i386.c (bdver1_cost): New variable.
23315         (m_BDVER1): New macro.
23316         (m_AMD_MULTIPLE): Add m_BDVER1.
23317         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
23318         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
23319         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
23320         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
23321         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
23322         x86_tune_sse_partial_reg_dependency,
23323         x86_tune_sse_unaligned_load_optimal,
23324         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
23325         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
23326         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
23327         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
23328         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
23329         Enable/disable for bdver1.
23330         (processor_target_table): Add bdver1_cost.
23331         (cpu_names): Add bdver1.
23332         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
23333          processor_alias_table.
23334         (ix86_expand_vector_move_misalign): Change.
23335         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
23336         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
23337         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
23338         of movupd/movdqu for SSE and AVX.
23339         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
23340         (ix86_tune_adjust_cost): Add code for bdver1.
23341         (standard_sse_constant_opcode): Add check for
23342         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
23343         of packed double xor for SSE and AVX.
23344
23345 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
23346
23347         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
23348         result to unsigned.
23349
23350 2010-05-14  Tristan Gingold  <gingold@adacore.com>
23351
23352         * toplev.c (default_debug_hooks): Remove this variable.
23353         (process_options): Remove assignments to default_debug_hooks.
23354
23355 2010-05-14  Martin Jambor  <mjambor@suse.cz>
23356
23357         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
23358         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
23359         * langhooks.h (struct lang_hooks_for_decls): Removed field
23360         fold_obj_type_ref.
23361         * tree.c (free_lang_data): Remove assignment to
23362         lang_hooks.fold_obj_type_ref.
23363         * tree.def (OBJ_TYPE_REF): Update comment.
23364
23365 2010-05-14  Richard Guenther  <rguenther@suse.de>
23366
23367         PR tree-optimization/44124
23368         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
23369
23370 2010-05-14  Alan Modra  <amodra@gmail.com>
23371
23372         PR target/44075
23373         * config/rs6000/rs6000.c (struct machine_function): Reorder
23374         fields for better packing.  Add lr_save_state.
23375         (rs6000_ra_ever_killed): Return lr_save_state if set.
23376         (rs6000_emit_eh_reg_restore): Set lr_save_state.
23377
23378 2010-05-13  Jan Hubicka  <jh@suse.cz>
23379
23380         * varpool.c (decide_is_variable_needed): Drop code checking
23381         TREE_SYMBOL_REFERENCED.
23382
23383 2010-05-13  Jan Hubicka  <jh@suse.cz>
23384
23385         * final.c (output_addr_const): Do not call mark_decl_referenced.
23386         * cgraphunit.c (process_function_and_variable_attributes): Use
23387         mark_needed_node dirrectly.
23388         (assemble_thunk): Do not call mark_decl_referenced.
23389
23390 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
23391
23392         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
23393
23394 2010-05-13  Jeff Law  <law@redhat.com>
23395
23396         * ira-conflicts.c (print_allocno_conflicts): New function broken out
23397         from...
23398         (print_conflicts): Call print_allocno_conflicts.
23399
23400 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
23401
23402         PR debug/44104
23403         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
23404         if it is NULL.
23405
23406 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
23407
23408         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
23409         t-mingw-w64 or t-mingw-w32 for multilib configuration.
23410         * config/i386/t-mingw-w32: New.
23411         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
23412
23413 2010-05-13  Martin Jambor  <mjambor@suse.cz>
23414
23415         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
23416         gimple-fold.c).
23417         * gimple-fold.c (get_base_binfo_for_type): New function.
23418         (gimple_get_relevant_ref_binfo): Likewise.
23419         (gimple_fold_obj_type_ref_known_binfo): Likewise.
23420         (gimple_fold_obj_type_ref): Likewise.
23421         (fold_gimple_call): Simplify condition for folding virtual calls
23422         and call gimple_fold_obj_type_ref.
23423         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
23424         (gimple_fold_obj_type_ref_known_binfo): Likewise.
23425
23426 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
23427
23428         * config/rs6000/rs6000-protos.h
23429         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
23430         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
23431         (rs6000_debug_mode_dependent_address)
23432         (rs6000_mode_dependent_address_ptr): Likewise.
23433
23434 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
23435
23436         PR debug/43983
23437         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
23438         by SRA.
23439         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
23440         * tree-sra.c (create_access_replacement): Call unshare_expr before
23441         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
23442         * dwarf2out.c: Include tree-flow.h.
23443         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
23444         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
23445         Handle DW_OP_bit_piece.
23446         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
23447         construct_piece_list, adjust_piece_list): New functions.
23448         (add_var_loc_to_decl): Handle SRA optimized variables.
23449         Adjust for var_loc_note to loc field renaming.
23450         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
23451         in VAR_LOCATION note.
23452         (new_loc_descr_op_bit_piece): New function.
23453         (dw_sra_loc_expr): New function.
23454         (dw_loc_list): Use it.  Don't handle the last range after the
23455         loop, handle it inside of the loop.  Adjust for var_loc_note
23456         to loc field renaming.
23457         (add_location_or_const_value_attribute): Only special case
23458         single entry loc lists if loc is NOTE_P.  Adjust for
23459         var_loc_note to loc field renaming.
23460         (dwarf2out_var_location): Don't set newloc->var_loc_note
23461         and newloc->next here.
23462
23463 2010-05-12  Jan Hubicka  <jh@suse.cz>
23464
23465         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
23466         flag.
23467         * cgraph.h (cgraph_only_called_directly_p,
23468         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
23469         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
23470         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
23471         (assemble
23472         * ipa.c (cgraph_remove_unreachable_nodes): Use
23473         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
23474         flags.
23475         * tree-inline.c (copy_bb): Check address_taken flag.
23476         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
23477         externally_visible flag.
23478
23479 2010-05-12  Jason Merrill  <jason@redhat.com>
23480
23481         PR bootstrap/44048
23482         PR target/44099
23483         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
23484         * sdbout.c (plain_type_1): Likewise.
23485         * dwarf2out.c (is_base_type): Likewise.
23486         (gen_type_die_with_usage): Likewise.  Generate
23487         DW_TAG_unspecified_type for any LANG_TYPE.
23488
23489 2010-05-12  Jan Hubicka  <jh@suse.cz>
23490
23491         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
23492         indrect edges too.
23493         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
23494         (cgraph_clone_edge): Update.
23495         (cgraph_node_remove_callees): Remove indirect calls too.
23496         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
23497         (cgraph_create_indirect_edge): Update prototype.
23498         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
23499         is_proper_for_analysis.
23500         (add_new_function, visited_nodes, function_insertion_hook_holder,
23501         get_local_reference_vars_info, mark_address_taken, mark_address,
23502         mark_load, mark_store, check_asm_memory_clobber, check_call,
23503         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
23504         (ipa_init): Do not initialize visited_nodes;
23505         function_insertion_hook_holder.
23506         (analyze_variable): Rewrite.
23507         (analyze_function): Rewrite.
23508         (copy_local_bitmap): Remove.
23509         (duplicate_node_dat): Do not duplicate local info.
23510         (generate_summary): Simplify to only walk cgraph.
23511         (write_node_summary_p, ipa_reference_write_summary,
23512         ipa_reference_read_summary): Remove.
23513         (propagate): Do not remove function insertion;
23514         generate summary.
23515         (pass_ipa_reference): NULLify summary handling fields.
23516         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
23517         (input_edge): Input ecf_flags.
23518         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
23519         (update_indirect_edges_after_inlining): Ignore edges with unknown
23520         param.
23521
23522 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
23523
23524         * implicit-zee.c: New file.
23525         * tree-pass.h (pass_implicit_zee): Declare.
23526         * passes.c (init_optimization_passes): Add zee pass.
23527         * common.opt (fzee): New flag.
23528         * timevar.def (TV_ZEE): Define.
23529         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
23530         and beyond.
23531         * Makefile.in (implicit-zee.o): Add new build file.
23532
23533 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
23534             Nathan Froyd  <froydnj@codesourcery.com>
23535
23536         * c-common.c (sync_resolve_params): Remove write-only variable.
23537
23538 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
23539
23540         * target.h (struct gcc_target): Add mode_dependent_address_p field.
23541         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
23542         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
23543         * targhooks.c (default_mode_dependent_address_p): New function.
23544         * targhooks.h (default_mode_dependent_address_p): Declare function.
23545         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
23546         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
23547         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
23548         target hook. Change return type to bool.
23549         * recog.h (mode_dependent_address_p): Change return type to bool.
23550
23551 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
23552             Nathan Froyd  <froydnj@codesourcery.com>
23553
23554         * tree-mudflap.c (build_function_type_0, build_function_type_1,
23555         build_function_type_2, build_function_type_3): Remove.
23556         (mudflap_init): Use build_function_type_list.
23557
23558 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
23559             Nathan Froyd  <froydnj@codesourcery.com>
23560
23561         * coverage.c (build_fn_info_value): Call build_constructor instead of
23562         build_constructor_from_list.
23563         (build_ctr_info_value): Likewise.
23564         (build_gcov_info): Likewise.
23565
23566 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
23567
23568         * tree.c (build_constructor): Compute TREE_CONSTANT for the
23569         resultant constructor.
23570         (build_constructor_single): Don't set TREE_CONSTANT.
23571         (build_constructor_from_list): Don't compute TREE_CONSTANT.
23572
23573 2010-05-12  Jan Hubicka  <jh@suse.cz>
23574
23575         * cgraph.h (struct varpool_node): Add aux.
23576         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
23577         * varpool.c (varpool_remove_node): Do not remove initializer.
23578         (varpool_reset_queue): Export.
23579         (varpool_finalize_decl): Volatile vars are forced to be output.
23580         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
23581         replaced decl.
23582         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
23583         process_references, varpool_can_remove_if_no_refs): New functions.
23584         (cgraph_remove_unreachable_nodes): Handle variables too.
23585
23586 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
23587
23588         PR target/44088
23589         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
23590
23591 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
23592
23593         PR middle-end/44085
23594         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
23595         change value of ORT_TASK.
23596         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
23597         (omp_notice_threadprivate_variable): New function.
23598         (omp_notice_variable): Call it for threadprivate variables.
23599         If enclosing ctx is a task, print enclosing task rather than
23600         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
23601         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
23602         if task has untied clause.
23603
23604         PR debug/42278
23605         * dwarf2out.c (base_type_die): Don't add name attribute here.
23606         (modified_type_die): Instead of sizetype use
23607         its underlying original type.  If a DW_TAG_base_type doesn't
23608         have name added, add __unknown__.
23609         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
23610         always call force_type_die instead.
23611
23612 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
23613
23614         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
23615         for __stack_chk_guard.
23616
23617 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
23618
23619         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
23620         don't call start_source_file debug hook here...
23621         (finish_options): ... but here, after outputting predefined and
23622         command line defines and undefs.
23623
23624         PR middle-end/44071
23625         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
23626         no fallthru edge.
23627         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
23628         optimizing away empty bb with no successors, move over its
23629         footer chain to fallthru predecessor.
23630         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
23631         (rtl_split_edge): For asm goto call patch_jump_insn even if
23632         splitting fallthru edge.
23633
23634         PR c++/44059
23635         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
23636         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
23637         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
23638         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
23639         on DW.ref.* decls.
23640
23641         PR c++/44062
23642         * c-parser.c (c_parser_expression): Mark LHS of a comma
23643         expression as read if it is a decl, handled component or
23644         COMPOUND_EXPR with that on the RHS.
23645         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
23646         if it is a decl or handled component.
23647
23648 2010-05-11  Jan Hubicka  <jh@suse.cz>
23649
23650         * lto-symtab.c (lto_symtab_free): New function.
23651         * lto-streamer.h (lto_symtab_free): Declare.
23652
23653 2010-05-11  Jan Hubicka  <jh@suse.cz>
23654
23655         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
23656         that if function is needed it is reachable.
23657         (lto_output_node): See if it the function is reachable or referenced.
23658         (output_cgraph): Update call of lto_output_node.
23659         * lto-streamer.h (reachable_from_other_partition_p): Declare.
23660
23661 2010-05-11  Jan Hubicka  <jh@suse.cz>
23662
23663         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
23664         Mark as used.
23665
23666 2010-05-11  Jan Hubicka  <jh@suse.cz>
23667
23668         PR tree-optimize/44063
23669         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
23670         queue.
23671         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
23672         limits.
23673         (estimate_function_body_sizes): Compute sizes even when disregarding.
23674
23675 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
23676
23677         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
23678
23679 2010-05-11  Jan Hubicka  <jh@suse.cz>
23680
23681         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
23682         into every boundary.
23683
23684 2010-05-11  Jan Hubicka  <jh@suse.cz>
23685
23686         * matrix-reorg.c (matrix_reorg): Rebuild edges.
23687
23688 2010-05-11  Jan Hubicka  <jh@suse.cz>
23689
23690         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
23691         lto_streamer_cache_delete): Put nodes into heap.
23692         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
23693         heap.
23694
23695 2010-05-11  Jan Hubicka  <jh@suse.cz>
23696
23697         * cgraphbuild.c (cgraph_rebuild_references): New.
23698         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
23699         out extern inlines.
23700         * cgraph.h (cgraph_rebuild_references): Declare.
23701         * tree-inline.c (tree_function_versioning): Use it.
23702         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
23703
23704 2010-05-11  Jan Hubicka  <jh@suse.cz>
23705
23706         * cgraph.c: Include ipa-utils.h
23707         (cgraph_create_virtual_clone): Update references.
23708         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
23709
23710 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
23711
23712         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
23713         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
23714         cache size.
23715
23716 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
23717
23718         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
23719
23720 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
23721
23722         * gcc.c (execute): For -### don't quote arguments that
23723         contain just alphanumerics and _/-. characters.
23724         * doc/invoke.texi: Document that change for -###.
23725
23726         PR debug/44023
23727         * df-problems.c (struct dead_debug): Add to_rescan field.
23728         (dead_debug_init): Clear to_rescan field.
23729         (dead_debug_finish): Rescan all debug insns in to_rescan
23730         bitmap and free the bitmap.
23731         (dead_debug_insert_before): Instead of rescanning debug insns
23732         immediately queue their rescanning until dead_debug_finish.
23733         (df_note_bb_compute): After dead_debug_add do continue instead
23734         of break.
23735
23736 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
23737
23738         PR debug/44028
23739         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
23740         clear also INSN_REG_USE_LIST.
23741
23742 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23743
23744         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
23745
23746 2010-05-10  Jan Hubicka  <jh@suse.cz>
23747
23748         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
23749         commited change.
23750
23751 2010-05-10  Jan Hubicka  <jh@suse.cz>
23752
23753         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
23754         Allocate encoders.
23755         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
23756         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
23757         (lto_streamer_cache_create): Init alloc pool.
23758         (lto_streamer_cache_delete): Free alloc pool.
23759         * lto-streamer.h: Include alloc pool.
23760         (lto_streamer_cache_d): Use alloc pool.
23761         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
23762
23763 2010-05-10  Jan Hubicka  <jh@suse.cz>
23764
23765         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
23766         * cgraphbuild.c: Include except.h
23767         (record_type_list, record_eh_tables): New function.
23768         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
23769
23770 2010-05-10  Jan Hubicka  <jh@suse.cz>
23771
23772         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
23773         __frame_dummy_init_array_entry, force_to_data): Attribute as used
23774         rather than unused.
23775
23776 2010-05-10  Michael Matz  <matz@suse.de>
23777
23778         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
23779         (can_reassociate_p): Use FLOAT_TYPE_P.
23780         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
23781         (vect_force_simple_reduction): ... this.
23782         * tree-parloops.c (gather_scalar_reductions): Use
23783         vect_force_simple_reduction.
23784         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
23785         vect_is_simple_reduction, add modify argument, if true rewrite
23786         "a-b" into "a+(-b)".
23787         (vect_is_simple_reduction, vect_force_simple_reduction): New
23788         functions.
23789         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
23790
23791 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
23792             Vladimir Makarov  <vmakarov@redhat.com>
23793
23794         PR rtl-optimization/44012
23795         * ira-build.c (remove_unnecessary_allocnos): Nullify
23796         regno_allocno_map of the removed allocno.
23797
23798 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23799
23800         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
23801         to /dev/null.
23802         * configure: Regenerate.
23803
23804 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23805
23806         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
23807         unused.
23808         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
23809         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
23810         support in Sun ld.
23811         * configure: Regenerate.
23812
23813 2010-05-10  Richard Guenther  <rguenther@suse.de>
23814
23815         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
23816         marked if the entry identifier is marked.
23817
23818 2010-05-10  Richard Guenther  <rguenther@suse.de>
23819
23820         * c-common.c (struct c_common_attributes): Add fnspec attribute.
23821         (handle_fnspec_attribute): New function.
23822         * gimple.h (gimple_call_return_flags): Declare.
23823         (gimple_call_arg_flags): Likewise.
23824         * gimple.c (gimple_call_arg_flags): New function.
23825         (gimple_call_return_flags): Likewise.
23826         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
23827         New argument flags.
23828         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
23829         return value flags.
23830         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
23831         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
23832         main work to ...
23833         (make_heapvar_for): ... this new function.
23834         (handle_rhs_call): Handle fnspec attribute argument specifiers.
23835         (handle_lhs_call): Likewise.
23836         (find_func_aliases): Adjust.
23837
23838 2010-05-10  Richard Guenther  <rguenther@suse.de>
23839
23840         PR tree-optimization/44050
23841         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
23842
23843 2010-05-10  Wei Guozhi  <carrot@google.com>
23844
23845         PR target/42879
23846         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
23847
23848 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
23849
23850         PR c/10676
23851         * c-typeck.c (lookup_field): Take a type directly.  Update
23852         recursive calls.
23853         (build_component_ref): Update call to lookup_field.
23854         (set_init_label): Use lookup_field to find initialized field.
23855         Handle returned list of fields like a sequence of designators.
23856
23857 2010-05-09  Richard Guenther  <rguenther@suse.de>
23858
23859         PR middle-end/44024
23860         * fold-const.c (tree_single_nonzero_warnv_p): Properly
23861         handle &FUNCTION_DECL.
23862
23863 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
23864
23865         PR c/4784
23866         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
23867         structures and unions recursively.
23868         (detect_field_duplicates): Move duplicate detection with a hash to
23869         detect_field_duplicates_hash.  Always use a hash if anonymous
23870         structures or unions are present.
23871         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
23872         give errors.
23873
23874 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
23875
23876         PR target/44046
23877         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
23878         detect Atom, Core 2 and Core i7.
23879
23880 2010-05-09  Richard Guenther  <rguenther@suse.de>
23881
23882         * gcc.c (store_arg): Handle temporary file deletion for
23883         joined arguments.
23884
23885 2010-05-09  Richard Guenther  <rguenther@suse.de>
23886
23887         PR middle-end/44043
23888         * ipa-inline.c (estimate_function_body_sizes): Return after
23889         disregarding inline limits.
23890
23891 2010-05-09  Richard Guenther  <rguenther@suse.de>
23892
23893         * gcc.c (store_arg): Revert last change.
23894
23895 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
23896
23897         PR middle-end/28685
23898         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
23899         (optimize_ops_list): Call it.
23900
23901 2010-05-08  Richard Guenther  <rguenther@suse.de>
23902
23903         PR tree-optimization/44030
23904         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
23905         NECESSARY flag if we propagate from a inserted expression.
23906
23907 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
23908
23909         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
23910         domain types as equal if they are both PLACEHOLDER_EXPRs.
23911
23912 2010-05-08  Richard Guenther  <rguenther@suse.de>
23913
23914         * lto-wrapper.c (run_gcc): Remove linker output from
23915         command line for LTRANS invocation.
23916
23917 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
23918
23919         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
23920         lto-macho as lto_binary_reader.
23921         * target.h (struct gcc_target): New hooks lto_start and lto_end.
23922         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
23923         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
23924         in lto_start and lto_end calls.
23925         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
23926         magic numbers.
23927         (scan_prog_file): Update is_elf_or_coff call.
23928         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
23929
23930         * collect2.c (main): Fix enum comparison.
23931
23932         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
23933         Add prototypes.
23934         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
23935         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
23936         and TARGET_ASM_LTO_END.
23937         * darwin.c: Include obstack.h and lto-streamer.h.
23938         (lto_section_names_offset, lto_section_names_obstack,
23939         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
23940         global variables.
23941         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
23942         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
23943         to a temporary file.
23944         (darwin_asm_lto_end): New function.  Restore asm_out_file.
23945         (darwin_asm_named_section): For LTO sections, replace the name with
23946         the offset of the section name in a string table, and build this
23947         table.
23948         (darwin_file_start): Initialize global vars for LTO support.
23949         (darwin_file_end): If output to asm_out_file was redirected, append it
23950         to the proper asm_out_file here.  Add the section names section.
23951
23952 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
23953
23954         * c-pragma.c (pending_weak_d, pending_weak): New.
23955         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
23956         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
23957         handle_pragma_weak): Update the uses of pending_weaks.
23958
23959 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
23960
23961         PR documentation/44016
23962         * doc/standards.texi (Standards): Link to unversioned
23963         cxx0x_status.html page.
23964
23965 2010-05-07  Iain Sandoe  <iains@gcc.gnu.org>
23966
23967         PR target/43708
23968         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
23969         in addition to TREE_USED, to avoid "set but unused" warnings.
23970
23971 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
23972
23973         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
23974         (is_loop_prefetching_profitable): Do not insert prefetches
23975         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
23976         times the prefetch ahead distance.
23977
23978 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
23979
23980         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
23981         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
23982         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
23983         the unroll_factor.
23984
23985 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
23986
23987         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
23988         a diagnostic info when the insn-to-mem ratio is too small.
23989
23990 2010-05-07  Richard Guenther  <rguenther@suse.de>
23991
23992         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
23993         the linker plugin.
23994         (store_arg): Queue temp_filename for deletion instead of
23995         the whole argument.
23996
23997 2010-05-07  Richard Guenther  <rguenther@suse.de>
23998
23999         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
24000         (run_gcc): Handle LTRANS phase invocation.
24001         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
24002
24003 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
24004
24005         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
24006         this is also meaningful on PARM_DECLs and RESULT_DECLs.
24007
24008 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24009
24010         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
24011
24012 2010-05-07  Richard Guenther  <rguenther@suse.de>
24013
24014         PR tree-optimization/44020
24015         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
24016         code when PRE is not yet initialized.
24017
24018 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24019
24020         * config/mips/dbxmdebug.h: Remove.
24021         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
24022
24023 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
24024
24025         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
24026         with null pointer and also warn about ordered comparison of zero with
24027         pointer if -Wextra.
24028
24029 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
24030
24031         * graphite-blocking.c
24032         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
24033         * graphite-clast-to-gimple.c
24034         (clast_to_gcc_expression): Same.
24035         (precision_for_value): Same.
24036         (precision_for_interval): Same.
24037         (gcc_type_for_interval): Same.
24038         (graphite_create_new_guard): Same.
24039         (compute_bounds_for_level): Same.
24040         (graphite_create_new_loop_guard): Same.
24041         * graphite-interchange.c
24042         (build_linearized_memory_access): Same.
24043         (pdr_stride_in_loop): Same.
24044         (memory_strides_in_loop_1): Same.
24045         (memory_strides_in_loop): Same.
24046         (extend_scattering): Same.
24047         (psct_scattering_dim_for_loop_depth): Same.
24048         (pbb_number_of_iterations): Same.
24049         * graphite-poly.h
24050         (debug_iteration_domains): Same.
24051         * graphite-ppl.c
24052         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
24053         (ppl_set_inhomogeneous_gmp): Same.
24054         (ppl_strip_loop): Same.
24055         (ppl_lexico_compare_linear_expressions): Same.
24056         (ppl_read_polyhedron_matrix): Same.
24057         (ppl_max_for_le_pointset): Same.
24058         * graphite-ppl.h
24059         (ppl_read_polyhedron_matrix): Same.
24060         (tree_int_to_gmp): Same.
24061         (gmp_cst_to_tree): Same.
24062         (ppl_set_inhomogeneous): Same.
24063         (ppl_set_inhomogeneous_tree): Same.
24064         (ppl_set_coef): Same.
24065         (ppl_set_coef_tree): Same.
24066         * graphite-sese-to-poly.c
24067         (build_pbb_scattering_polyhedrons): Same.
24068         (build_scop_scattering): Same.
24069         (scan_tree_for_params_right_scev): Same.
24070         (scan_tree_for_params): Same.
24071         (find_params_in_bb): Same.
24072         (find_scop_parameters): Same.
24073         (add_upper_bounds_from_estimated_nit): Same.
24074         (build_loop_iteration_domains): Same.
24075         (add_condition_to_domain): Same.
24076         (pdr_add_memory_accesses): Same.
24077
24078 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
24079
24080         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
24081         CLooG's value_* macros to their respective mpz_* counterparts.
24082         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
24083         (graphite_create_new_loop_guard): Same.
24084         * graphite-interchange.c (build_linearized_memory_access): Same.
24085         (pdr_stride_in_loop): Same.
24086         (memory_strides_in_loop_1): Same.
24087         (1st_interchange_profitable_p): Same.
24088         * graphite-poly.c (extend_scattering): Same.
24089         (psct_scattering_dim_for_loop_depth): Same.
24090         (pbb_number_of_iterations): Same.
24091         (pbb_number_of_iterations_at_time): Same.
24092         * graphite-poly.h (new_1st_loop): Same.
24093         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
24094         (oppose_constraint): Same.
24095         (insert_constraint_into_matrix): Same.
24096         (ppl_set_inhomogeneous_gmp): Same.
24097         (ppl_set_coef_gmp): Same.
24098         (ppl_strip_loop): Same.
24099         (ppl_lexico_compare_linear_expressions): Same.
24100         (ppl_max_for_le_pointset): Same.
24101         (ppl_min_for_le_pointset): Same.
24102         (ppl_build_realtion): Same.
24103         * graphite-ppl.h (gmp_cst_to_tree): Same.
24104         (ppl_set_inhomogeneous): Same.
24105         (ppl_set_inhomogeneous_tree): Same.
24106         (ppl_set_coef): Same.
24107         (ppl_set_coef_tree): Same.
24108         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
24109         (build_scop_scattering): Same.
24110         (add_value_to_dim): Same.
24111         (scan_tree_for_params_right_scev): Same.
24112         (scan_tree_for_params_int): Same.
24113         (scan_tree_for_params): Same.
24114         (find_params_in_bb): Same.
24115         (find_scop_parameters): Same.
24116         (add_upper_bounds_from_estimated_nit): Same.
24117         (build_loop_iteration_domains): Same.
24118         (create_linear_expr_from_tree): Same.
24119         (add_condition_to_domain): Same.
24120         (pdr_add_memory_accesses): Same.
24121
24122 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
24123             Jason Merrill  <jason@redhat.com>
24124
24125         * c-common.c (c_common_reswords): Add nullptr.
24126         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
24127         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
24128         (gen_type_die_with_usage): Likewise.
24129         * dbxout.c (dbxout_type): Likewise.
24130         * sdbout.c (plain_type_1): Likewise.
24131
24132 2010-05-06  Jason Merrill  <jason@redhat.com>
24133
24134         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
24135         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
24136         ret appropriately.
24137         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
24138
24139         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
24140         stripping WITH_SIZE_EXPR.
24141         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
24142         change.
24143
24144 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24145
24146         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
24147         list of obsolete configurations.
24148         Disabled check for obsolete configurations.
24149         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
24150         Removed support for previous versions.
24151         * config/mips/iris.h: Removed.
24152         * config/mips/iris5.h: Removed.
24153         * config/mips/iris6.h: Merged old iris.h contents.
24154         (TARGET_IRIX): Removed.
24155         (DRIVER_SELF_SPECS): Removed mabi=32.
24156         (IDENT_ASM_OP): Removed undef.
24157         (STARTFILE_SPEC): Removed mabi=32.
24158         (ENDFILE_SPEC): Likewise.
24159         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
24160         (MACHINE_TYPE): Update for IRIX 6.5.
24161         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
24162         TARGET_IRIX by TARGET_IRIX6.
24163         (mips_file_start): Likewise.
24164         (mips_output_external): Remove IRIX 5/6 O32 support.
24165         (mips_output_function_prologue): Likewise.
24166         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
24167         TARGET_IRIX6.
24168         (TARGET_CPU_CPP_BUILTINS): Likewise.
24169         (TARGET_IRIX): Removed.
24170         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
24171         (MULTILIB_DIRNAMES): Removed 32.
24172         (MULTILIB_OSDIRNAMES): Removed ../lib.
24173         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
24174         (Specific, mips-sgi-irix5): Document removal.
24175         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
24176         Remove references to older IRIX 6 releases and the O32 ABI.
24177
24178 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
24179
24180         PR bootstrap/43994
24181         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
24182         instead of DF_REF_REAL_REG.
24183
24184 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
24185
24186         PR target/43888
24187         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
24188         handling to still return true for x64 targets.
24189
24190 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
24191
24192         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
24193
24194 2010-05-06  Jan Hubicka  <jh@suse.cz>
24195
24196         PR tree-optimization/43791
24197         * ipa-inline.c (update_caller_keys): Remove bogus
24198         disregard_inline_limits check.
24199
24200 2010-05-06  Michael Matz  <matz@suse.de>
24201
24202         PR tree-optimization/43984
24203         * tree-ssa-pre.c (inserted_phi_names): Remove.
24204         (inserted_exprs): Change to bitmap.
24205         (create_expression_by_pieces): Set bits, don't append to vector.
24206         (insert_into_preds_of_block): Don't handle inserted_phi_names.
24207         (eliminate): Don't look at inserted_phi_names, remove deleted
24208         insns from inserted_exprs.
24209         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
24210         (init_pre, fini_pre): Allocate and free bitmaps.
24211         (execute_pre): Insert insns on edges before elimination.
24212
24213 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
24214
24215         * tree.c (initializer_zerop): Handle STRING_CST.
24216
24217 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24218
24219         PR 40989
24220         * doc/invoke.texi (Wimplicit): Document as C only.
24221         * opts.c (common_handle_option): Add argument kind.
24222         (handle_option): Rename as read_cmdline_option. Factor out code to...
24223         (handle_option): ... here. New.
24224         (handle_options): Rename as read_cmdline_options.
24225         (decode_options): Update call.
24226         (set_option): Use option index instead of option pointer. Classify
24227         diagnostics correctly.
24228         (enable_warning_as_error): Call handle_option.
24229         * opts.h (set_option): Update declaration.
24230         (handle_option): Declare.
24231         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
24232         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
24233         * c-opts.c (set_Wimplicit): Delete.
24234         (c_family_lang_mask): New static constant.
24235         (c_common_handle_option): Add argument kind. Use handle_option
24236         instead of set_Wimplicit.
24237         (c_common_post_options): warn_implicit and warn_implicit_int
24238         are disabled by default.
24239         * c-common.c (warn_implicit): Do not define here.
24240         * c-common.h (warn_implicit): Do not declare here.
24241         (c_common_handle_option): Update declaration.
24242         * lto-opts.c (lto_reissue_options): Update call to set_option.
24243
24244 2010-05-06  Richard Guenther  <rguenther@suse.de>
24245
24246         PR tree-optimization/43571
24247         * domwalk.c (walk_dominator_tree): Walk the dominator
24248         sons in more optimal order.
24249
24250 2010-05-06  Richard Guenther  <rguenther@suse.de>
24251
24252         PR tree-optimization/43934
24253         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
24254         (stmt_cost): Likewise.
24255         (extract_true_false_args_from_phi): New helper.
24256         (determine_max_movement): For PHI nodes verify we can hoist them
24257         and compute their cost.
24258         (determine_invariantness_stmt): Handle PHI nodes.
24259         (move_computations_stmt): Likewise.  Hoist PHI nodes in
24260         if-converted form using COND_EXPRs.
24261         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
24262         (tree_ssa_lim): Likewise.
24263         * tree-flow.h (tree_ssa_lim): Adjust prototype.
24264         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
24265
24266 2010-05-06  Richard Guenther  <rguenther@suse.de>
24267
24268         PR tree-optimization/43987
24269         * tree-ssa-structalias.c (could_have_pointers): For possibly
24270         address-taken variables force pointers to be recorded.
24271         (create_variable_info_for_1): Likewise.
24272         (push_fields_onto_fieldstack): Pass in wheter all fields
24273         must have pointers.
24274         (find_func_aliases): Query types instead of vars whether
24275         they contain pointers where appropriate.
24276
24277 2010-05-06  Jan Hubicka  <jh@suse.cz>
24278
24279         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
24280         (record_reference, mark_address, mark_load, mark_store): Record
24281         references.
24282         (record_references_in_initializer): Update call of record_references.
24283         (rebuild_cgraph_edges): Remove all references before rebuiding.
24284         * cgraph.c (cgraph_create_node): Clear ref list.
24285         (cgraph_remove_node): Remove references.
24286         (dump_cgraph_node): Dump references.
24287         (cgraph_clone_node): Clone references.
24288         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
24289         (struct cgraph_node, varpool_node): Add ref_lst.
24290         * ipa-ref.c: New file.
24291         * ipa-ref.h: New file.
24292         * ipa-ref-inline.h: New file.
24293         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
24294         (referenced_from_other_partition_p): New function.
24295         (lto_output_varpool_node): Take set arugment; call
24296         referenced_from_other_partition.
24297         (lto_output_ref): New.
24298         (add_references): New.
24299         (output_refs): New.
24300         (output_cgraph): Compute boundary based on references; output refs.
24301         (output_varpool): Accept cgraph_node_set argument.
24302         (input_ref): New.
24303         (input_refs): New.
24304         (input_cgraph): Call input_refs.
24305         * lto-section-in.c (lto_section_name): Add refs.
24306         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
24307         (ipa-ref.o): New file.
24308         * varpool.c (varpool_node): Clear ipa ref list.
24309         (varpool_remove_node): Remove references.
24310         (dump_varpool_node): Dump references.
24311         (varpool_assemble_decl): Only compile finalized ones.
24312         (varpool_extra_name_alias): Initialize ref list.
24313         * lto-streamer.c (lto-get_section_name): Add .refs section.
24314         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
24315         (referenced_from_other_partition_p): Declared.
24316
24317 2010-05-06  Ira Rosen  <irar@il.ibm.com>
24318
24319         PR tree-optimization/43901
24320         * tree-vect-stmts.c (vectorizable_call): Assert that vector
24321         type is not NULL if it's transformation phase, and return
24322         FALSE if it's analysis.
24323         (vectorizable_conversion, vectorizable_operation,
24324         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
24325
24326 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
24327
24328         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
24329         Delete.
24330         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
24331         New define.
24332         * config/mips/mips-protos.h
24333         (mips_small_register_classes_for_mode_p): Delete prototype.
24334
24335 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
24336
24337         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
24338         * config/arm/arm.c (multiple_operation_profitable_p,
24339         compute_offset_order): New static functions.
24340         (load_multiple_sequence, store_multiple_sequence): Use them.
24341         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
24342         memory offsets, not register numbers.
24343         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
24344
24345 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
24346
24347         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
24348         (get_pending_sizes, put_pending_size, put_pending_sizes):
24349         Update the uses of pending_sizes.
24350         * c-decl.c (store_parm_decls): Likewise.
24351         * c-tree.h (struct c_arg_info): Likewise.
24352         * tree.h: Update the prototype for get_pending_sizes and
24353         put_pending_sizes.
24354
24355 2010-05-05  Jason Merrill  <jason@redhat.com>
24356
24357         PR debug/43370
24358         * c-common.c (handle_aligned_attribute): Respect
24359         ATTR_FLAG_TYPE_IN_PLACE.
24360
24361         PR testsuite/43758
24362         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
24363         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
24364         (TARGET_INITIALIZER): Use it.
24365         * c-common.c (attribute_takes_identifier_p): Call it.
24366         * c-common.h: Update prototype.
24367         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
24368         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
24369
24370 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
24371
24372         PR debug/43950
24373         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
24374         DW_ID_down_case for Fortran compilation units.
24375
24376 2010-05-05  Jan Hubicka  <jh@suse.cz>
24377
24378         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
24379         handle aliases.
24380
24381 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
24382
24383         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
24384         a variable-sized RESULT_DECL.
24385
24386 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
24387
24388         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
24389
24390 2010-05-05  Jason Merrill  <jason@redhat.com>
24391
24392         PR c++/43787
24393         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
24394         returns GS_OK.
24395         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
24396
24397 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
24398             Jakub Jelinek  <jakub@redhat.com>
24399
24400         PR debug/43478
24401         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
24402         (dead_debug_init, dead_debug_finish): New functions.
24403         (dead_debug_add, dead_debug_insert_before): Likewise.
24404         (df_note_bb_compute): Initialize a dead_debug object, add dead
24405         debug uses to it, insert debug bind insns before death insns,
24406         reset debug insns that refer to pending uses at the end.
24407         * rtl.h (make_debug_expr_from_rtl): New prototype.
24408         * varasm.c (make_debug_expr_from_rtl): New function.
24409
24410 2010-05-05  Jan Hubicka  <jh@suse.cz>
24411
24412         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
24413         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
24414         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
24415         lto_varpool_encoder_deref, lto_varpool_encoder_size,
24416         lto_varpool_encoder_encode_initializer_p,
24417         lto_set_varpool_encoder_encode_initializer): New functions.
24418         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
24419         call output_varpool.
24420         (input_varpool_node): Do not always set analyzed.
24421         (input_cgraph_1): Return vector of cgraph nodes.
24422         (input_varpool_1): Return vector of varpools.
24423         (input_cgraph): Free the vectors.
24424         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
24425         output only initializers needed.
24426         (lto_output): Only call output_cgraph.
24427         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
24428         * lto-section-out.c (lto_new_out_decl_state): Initialize
24429         state->varpool_node_encoder.
24430         * lto-streamer.h (lto_varpool_encoder_d): New.
24431         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
24432         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
24433         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
24434         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
24435         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
24436         Declare.
24437         (output_varpool, input_varpool): Remove declarations.
24438
24439 2010-05-05  Jan Hubicka  <jh@suse.cz>
24440
24441         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
24442         with body can prevail.
24443
24444 2010-05-05  Jan Hubicka  <jh@suse.cz>
24445
24446         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
24447         size.
24448
24449 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
24450
24451         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
24452
24453         * gengtype.h (erro_at_line): Constify pos argument.
24454
24455         * gengtype.c: Include hashtab.h.
24456         (enum gc_used): Document GC_MAYBE_POINTED_TO.
24457         (error_at_line): Constify pos argument.
24458         (do_typedef): Initialize p->opt field.
24459         (get_file_gtfilename): Fix comment typo.
24460         (struct walk_type_data): Constify line field.
24461         (get_output_file_for_structure): New function.
24462         (write_local_func_for_structure): Constify orig_s argument.
24463         Use get_output_file_for_structure.
24464         (write_func_for_structure): Use get_output_file_for_structure.
24465         (INDENT): New define.
24466         (dump_pair, dump_type, dump_type_list, dump_typekind)
24467         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
24468         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
24469         functions.
24470         (seen_types): New variable.
24471         (main): New variable do_dump.  Process "-d" command line option.
24472         Call dump_everything if dump requested.
24473
24474 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
24475
24476         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
24477         in a temporary instead of invoking the macro multiple times.
24478         (track_expr_p): Likewise.
24479
24480 2010-05-04  Neil Vachharajani  <nvachhar@google.com>
24481
24482         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
24483         per new semantics.
24484         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
24485         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
24486         conditions for printing notes.
24487         * common.opt (-Wcoverage-mismatch): Allow negative, default to
24488         true, update documentation.
24489         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
24490
24491 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
24492
24493         PR c/43981
24494         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
24495         on dimen.
24496
24497 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
24498
24499         PR target/43799
24500         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
24501         (*sse_prologue_save_insn1): Likewise.
24502         (SSE prologue save splitter): Likewise.
24503
24504 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
24505
24506         * tree.c (free_lang_data_in_one_sizepos): New inline function.
24507         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
24508         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
24509         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
24510         all decls.  Call it on DECL_FIELD_OFFSET of fields.
24511         (find_decls_types_r): Follow DECL_VALUE_EXPR.
24512         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
24513
24514 2010-05-04  Martin Jambor  <mjambor@suse.cz>
24515
24516         * tree-sra.c (build_access_from_expr_1): The first parameter type
24517         changed to simple tree.
24518         (build_access_from_expr): Likewise, gsi parameter was eliminated.
24519         (scan_assign_result): Renamed to assignment_mod_result, enum elements
24520         renamed as well.
24521         (build_accesses_from_assign): Removed all parameters except for a
24522         simple gimple statement.  Now returns a simple bool.
24523         (scan_function): All non-analysis parts moved to separate functions
24524         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
24525         parameters and updated both callers.
24526         (sra_modify_expr): Removed parameter data.
24527         (sra_modify_function_body): New function.
24528         (perform_intra_sra): Call sra_modify_function_body to modify the
24529         function body.
24530         (replace_removed_params_ssa_names): Parameter data changed into
24531         adjustments vector.
24532         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
24533         changed the parameter dont_convert to convert with the opposite
24534         meaning.
24535         (sra_ipa_modify_assign): Parameter data changed into adjustments
24536         vector, return value changed to bool.
24537         (ipa_sra_modify_function_body): New function.
24538         (sra_ipa_reset_debug_stmts): Updated a comment.
24539         (modify_function): Use ipa_sra_modify_function_body to modify function
24540         body.
24541
24542 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
24543
24544         PR middle-end/43671
24545         * alias.c (true_dependence): Handle the same VALUE in x and mem.
24546         (canon_true_dependence): Likewise.
24547         (write_dependence_p): Likewise.
24548
24549 2010-05-04  Jan Hubicka  <jh@suse.cz>
24550
24551         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
24552         * cgraphbuild.c: Include ipa-utils.h
24553         (record_reference_ctx): New struct.
24554         (record_reference): Simplify to work on initializers; not statements.
24555         (mark_address, mark_load, mark_store): New.
24556         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
24557         walk PHI nodes too.
24558         (record_references_in_initializer): Update use of record_reference.
24559         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
24560         walk PHI nodes too.
24561
24562 2010-05-04  Jan Hubicka  <jh@suse.cz>
24563
24564         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
24565         node will be removed anyway.
24566         (lto_varpool_replace_node): Allow also unanalyzed nodes;
24567         relink aliases of node into prevailing node.
24568         * varpool.c (varpool_remove_node): Remove aliases properly;
24569         when removing node, remove all its aliases too; remove DECL_INITIAL
24570         of removed node; ggc_free the varpool node.
24571
24572 2010-05-04  Richard Guenther  <rguenther@suse.de>
24573
24574         PR tree-optimization/43879
24575         * tree-ssa-structalias.c (alias_get_name): Use
24576         DECL_ASSEMBLER_NAME if available.
24577         (create_function_info_for): Return the varinfo node.
24578         (ipa_pta_execute): Associate same-body aliases and extra names
24579         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
24580
24581 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
24582
24583         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
24584
24585 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
24586
24587         PR bootstrap/43964
24588         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
24589         only if HONOR_REG_ALLOC_ORDER is not defined.
24590
24591 2010-05-04  Richard Guenther  <rguenther@suse.de>
24592
24593         PR tree-optimization/43949
24594         * tree-vrp.c (extract_range_from_binary_expr): Only handle
24595         TRUNC_MOD_EXPR.
24596
24597 2010-04-26  Jason Merrill  <jason@redhat.com>
24598
24599         * c.opt (-fstrict-enums): New.
24600         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
24601
24602 2010-05-03  David Ung  <davidu@mips.com>
24603             James E. Wilson  <wilson@codesourcery.com>
24604
24605         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
24606         emit the trap instruction before the divide for TUNE_74K.
24607
24608 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
24609
24610         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
24611         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
24612         based on the above, for new target hook.
24613
24614         * hooks.c (hook_bool_mode_true): New generic hook.
24615         * hooks.h (hook_bool_mode_true): Add prototype.
24616
24617         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
24618         target hook.
24619         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
24620         target hook, set to hook_bool_mode_false.
24621         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
24622         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
24623         with targetm.small_register_classes_for_mode_p.
24624         (find_reusable_reload): Likewise.
24625         (combine_reloads): Likewise.
24626         * reload1.c (reload_as_needed): Likewise.
24627         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
24628         * ifcvt.c (noce_process_if_block, check_cond_move_block,
24629         dead_or_predicable): Likewise.
24630         * regmove.c (optimize_reg_copy_1): Likewise.
24631         * calls.c (prepare_call_address): Likewise.
24632         (precompute_register_parameters): Likewise.
24633
24634         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
24635         hook definition.
24636         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
24637         implementation of the hook that considers all register classes
24638         small except for SH64.
24639         (sh_override_options): Use the new hook.
24640         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
24641         Add prototype.
24642
24643         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
24644         hook definition.
24645         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
24646         implementation of the hook that considers all register classes
24647         small for THUMB1.
24648         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
24649         Add prototype.
24650
24651         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
24652         hook definition.
24653         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
24654         implementation of the hook that considers all register classes
24655         small for MIPS16.
24656         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
24657         Add prototype.
24658
24659         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
24660         hook definition.
24661         * config/m32c/m32c.h: Likewise.
24662         * config/pdp11/pdp11.h: Likewise.
24663         * config/avr/avr.h: Likewise.
24664         * config/xtensa/xtensa.h: Likewise.
24665         * config/m68hc11/m68hc11.h: Likewise.
24666         * config/mn10300/mn10300.h: Likewise.
24667         * config/mcore/mcore.h: Likewise.
24668         * config/h8300/h8300.h: Likewise.
24669         * config/bfin/bfin.h: Likewise.
24670
24671         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
24672         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
24673
24674 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
24675
24676         * double-int.h (tree_to_double_int): Remove macro.
24677         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
24678         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
24679         (tree_to_double_int): New function.
24680         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
24681         Move ...
24682         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
24683
24684 2010-05-03  Richard Guenther  <rguenther@suse.de>
24685
24686         PR tree-optimization/43971
24687         * tree-ssa-structalias.c (get_constraint_for_1): Fix
24688         constraints in the !flag_delete_null_pointer_checks case.
24689
24690 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
24691
24692         PR debug/43972
24693         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
24694         result mode matches original rtl mode.
24695
24696 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
24697
24698         PR target/43888
24699         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
24700
24701 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
24702
24703         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
24704         when processing flag options.
24705
24706 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
24707
24708         * gcov-iov.c (main): Change format string placeholder
24709         from %#08x to 0x%08x.
24710         * genchecksum.c (dosum): Change format string placeholder
24711         from %#02x to 0x%02x.
24712
24713 2010-05-02  Richard Guenther  <rguenther@suse.de>
24714
24715         PR tree-optimization/43879
24716         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
24717
24718 2010-05-02  Bruno Haible  <bruno@clisp.org>
24719
24720         * doc/extend.texi (Function Attributes): Fix a typo.
24721
24722 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
24723
24724         Revert:
24725         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
24726         placeholder from 0x%x to %#x.
24727         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
24728         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
24729         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
24730         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
24731         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
24732         * config/i386/i386.c (ix86_target_string): Ditto.
24733         * config/i386/i386.c (output_pic_addr_const): Ditto.
24734         (print_operand): Ditto.
24735
24736 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
24737
24738         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
24739         placeholder from 0x%x to %#x.
24740         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
24741         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
24742         (ASM_OUTPUT_DEBUG_DATA): Ditto.
24743         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
24744         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
24745         * optc-gen.awk: Ditto.
24746         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
24747         (HOST_WIDE_INT_PRINT_HEX): Ditto.
24748         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
24749         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
24750
24751 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
24752
24753         * target.h (struct calls): Add function_value_regno_p field.
24754         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
24755         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
24756         * targhooks.c (default_function_value_regno_p): New function.
24757         * targhooks.h (default_function_value_regno_p): Declare function.
24758         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
24759         * builtins.c. (apply_result_size): (Ditto.).
24760         * combine.c. (likely_spilled_retval_p): (Ditto.).
24761         * mode-switching.c. Include 'target.h'.
24762         (create_pre_exit): Use function_value_regno_p hook.
24763         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
24764         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
24765         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
24766
24767         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
24768         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
24769         (ix86_function_value_regno_p): Declare as static, change argument
24770         type to const unsigned int.
24771         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
24772
24773 2010-05-01  Richard Guenther  <rguenther@suse.de>
24774
24775         PR tree-optimization/43949
24776         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
24777         types.
24778         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
24779
24780 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
24781
24782         * rtl.h (CONST_DOUBLE_P): Define.
24783         (rtx_to_double_int): Declare.
24784         * emit-rtl.c (rtx_to_double_int): New function.
24785         * dwarf2out.c (insert_double): New function.
24786         (loc_descriptor, add_const_value_attribute): Clean up, use
24787         rtx_to_double_int and insert_double functions.
24788
24789 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
24790
24791         * doc/extend.texi (Inline): Add missing return keyword to examples.
24792         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
24793         "command-line".
24794
24795 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
24796
24797         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
24798         the variable part of the offset as well.  Use highest_pow2_factor for
24799         all alignment checks.
24800
24801 2010-04-30  Richard Guenther  <rguenther@suse.de>
24802
24803         PR tree-optimization/43879
24804         * tree-ssa-structalias.c (type_could_have_pointers): Functions
24805         can have pointers.
24806
24807 2010-04-30  Jan Hubicka  <jh@suse.cz>
24808
24809         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
24810         varpool.
24811         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
24812
24813 2010-04-30  Jan Hubicka  <jh@suse.cz>
24814
24815         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
24816         New.
24817         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
24818         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
24819         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
24820         cgraph_node_set_needs_ltrans_p): Remove.
24821
24822 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
24823
24824         * sdbout.c: Include vec.h, do not include varray.h.
24825         (deferred_global_decls, sdbout_global_decl,
24826         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
24827         * toplev.c: Do not include varray.h.
24828         (dump_memory_report): Do not dump VARRAY statistics.
24829         * gengtype.c (open_base_file): Ignore varray.h.
24830         * Makefile.in: Update for abovementioned changes.
24831         Remove all traces of varray.c and varray.h.
24832         * varray.c: Remove file.
24833         * varray.h: Remove file.
24834
24835 2010-04-30  Jan Hubicka  <jh@suse.cz>
24836
24837         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
24838         references.
24839
24840 2010-04-30  Jan Hubicka  <jh@suse.cz>
24841
24842         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
24843         needed.
24844
24845 2010-04-30  Richard Guenther  <rguenther@suse.de>
24846
24847         * tree-ssa-structalias.c (get_constraint_for_1): Generate
24848         constraints for CONSTRUCTOR.
24849
24850 2010-04-30  Richard Guenther  <rguenther@suse.de>
24851
24852         PR lto/43946
24853         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
24854         first after all lowering passes.
24855
24856 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
24857
24858         * toplev.c: Include varray.h for statistics dumping.
24859         * tree.h: Do not declare varray_head_tag.
24860         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
24861         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
24862         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
24863         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
24864         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
24865         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
24866         c-common.c, c-common.h, reg-stack.c, basic-block.h,
24867         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
24868         include varray.h.
24869         * Makefile.in: Update for abovementioned changes.
24870
24871 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
24872
24873         PR debug/43942
24874         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
24875
24876 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
24877
24878         * config/picochip/picochip.c (picochip_legitimize_address): Define.
24879         Use this function to do machine-specific conversion.
24880         (picochip_legitimize_reload_address): Likewise.
24881         (picochip_legitimate_address_p): Check valid base register only if
24882         strict.
24883         (picochip_check_conditional_copy): Check for modw only if opnd is
24884         register.
24885         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
24886         to call the function in c.
24887         * config/picochip/picochip-protos.h
24888         (picochip_legitimize_reload_address): Define.
24889         * config/picochip/picochip.md (supported_compare1): Define.
24890
24891 2010-04-30  Jan Hubicka  <jh@suse.cz>
24892
24893         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
24894         (cgraph_global_info): Remove inlined.
24895         (LTO_cgraph_tag_names): Remove.
24896         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
24897         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
24898         simplify cgraph tags and document.
24899         (lto_output_node): Use only LTO_cgraph_unavail_node and
24900         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
24901         for_functions_valid, global info, process and output flags.
24902         (input_overwrite_node): Initialize estimated stack size and
24903         estimated growth.  Do not read flags we no longer store.
24904         (input_node): Likewise do not read info no longer stored.
24905         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
24906         flag.
24907
24908 2010-04-30  Richard Guenther  <rguenther@suse.de>
24909
24910         PR tree-optimization/43879
24911         * tree-ssa-structalias.c (get_constraint_for_1): Properly
24912         handle non-zero initializers.
24913
24914 2010-04-30  Richard Guenther  <rguenther@suse.de>
24915
24916         * builtins.c (fold_builtin_1): Delete free (0).
24917
24918 2010-04-29  Jan Hubicka  <jh@suse.cz>
24919
24920         * gengtype.c (open_base_files): Add lto-streamer.h
24921         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
24922         (pass_ipa_cp): GGC collect.
24923         * toplev. (compile_file): Do not output symbols.
24924         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
24925         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
24926         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
24927         * lto-section-in.c: Include ggc.h
24928         (lto_new_in_decl_state): Alloc in GGC.
24929         (lto_delete_in_decl_state): Likewise.
24930         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
24931         Collect.
24932
24933 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
24934
24935         PR target/42895
24936         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
24937         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
24938         (HONOR_REG_ALLOC_ORDER): Describe new macro.
24939         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
24940         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
24941         account only if HONOR_REG_ALLOC_ORDER is not defined.
24942         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
24943         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
24944
24945 2010-04-29  Jon Grant  <04@jguk.org>
24946
24947         * collect2.c (vflag): Change type from int to bool.
24948         (debug): Likewise.
24949         (helpflag): New global bool.
24950         (main): Set vflag and debug with boolean, not integer truth values.
24951         Accept new "--help" option and output usage text if found.
24952         * collect2.h (vflag): Update prototype.
24953         (debug): Likewise.
24954
24955 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
24956
24957         PR bootstrap/43936
24958         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
24959
24960 2010-04-29  Richard Guenther  <rguenther@suse.de>
24961
24962         PR bootstrap/43935
24963         * plugin.h (invoke_plugin_callbacks): Annotate arguments
24964         with ATTRIBUTE_UNUSED.
24965
24966 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
24967
24968         PR target/43921
24969         * config/i386/i386.c (get_some_local_dynamic_name): Replace
24970         INSN_P with NONDEBUG_INSN_P.
24971         (distance_non_agu_define): Likewise.
24972         (distance_agu_use): Likewise.
24973
24974 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
24975
24976         From Dominique d'Humieres  <dominiq@lps.ens.fr>
24977         PR bootstrap/43858
24978         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
24979         test_set.
24980
24981 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
24982
24983         * plugin.h (invoke_plugin_callbacks): New inline function.
24984         * plugin.c (flag_plugin_added): New global flag.
24985         (add_new_plugin): Initialize above flag.
24986         (invoke_plugin_callbacks): Rename to ...
24987         (invoke_plugin_callbacks_full): ... this.
24988
24989 2010-04-28  Jan Hubicka  <jh@suse.cz>
24990
24991         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
24992         (lto_varpool_replace_node): New.
24993         (lto_symtab_resolve_symbols): Resolve varpool nodes.
24994         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
24995         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
24996         * cgraph.h (varpool_node_ptr): New type.
24997         (varpool_node_ptr): New vector.
24998         (varpool_node_set_def): New structure.
24999         (varpool_node_set): New type.
25000         (varpool_node_set): New vector.
25001         (varpool_node_set_element_def): New structure.
25002         (varpool_node_set_element, const_varpool_node_set_element): New types.
25003         (varpool_node_set_iterator): New type.
25004         (varpool_node): Add prev pointers, add used_from_other_partition,
25005         in_other_partition.
25006         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
25007         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
25008         varpool_get_node, varpool_remove_node): Declare.
25009         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
25010         varpool_node_set_size): New inlines.
25011         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
25012         * tree-pass.h (varpool_node_set_def): Forward declare.
25013         (ipa_opt_pass_d): Summary writting takes vnode sets too.
25014         (ipa_write_optimization_summaries): Update prototype.
25015         * ipa-cp.c (ipcp_write_summary): Update.
25016         * ipa-reference.c (ipa_reference_write_summary): Update.
25017         * lto-cgraph.c (lto_output_varpool_node): New static function.
25018         (output_varpool): New function.
25019         (input_varpool_node): New static function.
25020         (input_varpool_1): New function.
25021         (input_cgraph): Input varpool.
25022         * ipa-pure-const.c (pure_const_write_summary): Update.
25023         * lto-streamer-out.c (lto_output): Update, output varpool too.
25024         (write_global_stream): Kill WPA hack.
25025         (produce_asm_for_decls): Update.
25026         (output_alias_pair_p): Handle variables.
25027         (output_unreferenced_globals): Output only needed partition of varpool.
25028         * ipa-inline.c (inline_write_summary): Update.
25029         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
25030         cgraph.
25031         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
25032         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
25033         varpool_node_set_new, varpool_node_set_add,
25034         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
25035         debug_varpool_node_set): New functions.
25036         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
25037         (execute_one_pass): Process new decls too.
25038         (ipa_write_summaries_2): Pass around vsets.
25039         (ipa_write_summaries_1): Likewise.
25040         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
25041         to add.
25042         (ipa_write_optimization_summaries_1): Pass around vsets.
25043         (ipa_write_optimization_summaries): Likewise.
25044         * varpool.c (varpool_get_node): New.
25045         (varpool_node): Update doubly linked lists.
25046         (varpool_remove_node): New.
25047         (dump_varpool_node): More dumping.
25048         (varpool_enqueue_needed_node): Update doubly linked lists.
25049         (decide_is_variable_needed): Kill ltrans hack.
25050         (varpool_finalize_decl): Kill lto hack.
25051         (varpool_assemble_decl): Skip decls in other partitions.
25052         (varpool_assemble_pending_decls): Update doubly linkes lists.
25053         (varpool_empty_needed_queue): Likewise.
25054         (varpool_extra_name_alias): Likewise.
25055         * lto-streamer.c (lto_get_section_name): Add vars section.
25056         * lto-streamer.h (lto_section_type): Update.
25057         (output_varpool, input_varpool): Declare.
25058
25059 2010-04-28  Mike Stump  <mikestump@comcast.net>
25060
25061         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
25062
25063 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
25064
25065         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
25066         record or union type with RECORD_OR_UNION_TYPE_P predicate.
25067         (lto_input_ts_type_tree_pointers): Likewise.
25068         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
25069         (lto_output_ts_type_tree_pointers): Likewise.
25070
25071 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
25072
25073         Uniquization of constants at the Tree level
25074         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
25075         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
25076         bit to the end.
25077         (tree_output_constant_def): Declare.
25078         * gimplify.c (gimplify_init_constructor): When using block copy, first
25079         uniquize the constant constructor on the RHS.
25080         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
25081         DECL_IN_CONSTANT_POOL flag.
25082         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
25083         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
25084         constant pool.
25085         (assemble_variable): Deal with symbols belonging to the tree constant
25086         pool.
25087         (get_constant_section): Add ALIGN parameter and simplify.
25088         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
25089         (assemble_constant_contents): Use the expression of the VAR_DECL.
25090         (output_constant_def_contents): Use the alignment of the VAR_DECL.
25091         (tree_output_constant_def): New global function.
25092         (mark_constant): Use the expression of the VAR_DECL.
25093         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
25094         its expression.
25095         (output_object_block): Likewise and assemble the expression.
25096
25097 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
25098
25099         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
25100         hash_tree, eq_tree): New tree hash table.
25101         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
25102         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
25103         lto_orig_address_remove): Reimplement.
25104
25105 2010-04-28  Xinliang David Li  <davidxl@google.com>
25106
25107         PR c/42643
25108         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
25109         (compute_uninit_opnds_pos): New function.
25110         (is_non_loop_exit_postdominating): New function.
25111         (compute_control_dep_chain): New function.
25112         (find_pdom): New function.
25113         (convert_control_dep_chain_into_preds): New function.
25114         (find_predicates): New function.
25115         (find_control_equiv_block): New function.
25116         (collect_phi_def_edges): New function.
25117         (find_def_preds): New function.
25118         (find_dom): New function.
25119         (dump_predicates): New function.
25120         (get_cmp_code): New function.
25121         (is_value_included_in): New function.
25122         (find_matching_predicate_in_rest_chains): New function.
25123         (use_pred_not_overlap_with_undef_path_pred): New function.
25124         (is_use_properly_guarded): New function.
25125         (normalize_cond_1): New function.
25126         (is_and_or_or): New function.
25127         (normalize_cond): New function.
25128         (is_gcond_subset_of): New function.
25129         (is_subset_of_any): New function.
25130         (is_or_set_subset_of): New function.
25131         (is_and_set_subset_of): New function.
25132         (is_norm_cond_subset_of): New function.
25133         (is_pred_expr_subset_of): New function.
25134         (is_pred_chain_subset_of): New function.
25135         (is_included_in): New function.
25136         (is_superset_of): New function.
25137         (find_uninit_use): New function.
25138         (warn_uninitialized_phi): New function.
25139         (compute_possibly_undefined_names): New function.
25140         (ssa_undefined_value_p): New function.
25141         (execute_late_warn_uninitialized): New function.
25142         * tree-ssa.c (ssa_undefined_value_p): Removed.
25143         (warn_uninit): Changed to extern.
25144         (warn_uninitialized_phi): Removed.
25145         (warn_uninitialized_vars): Changed to extern.
25146         (execute_late_warn_uninitialized): Removed
25147         * tree-flow.h: Add new prototypes.
25148         * timevar.def: Add new time variable.
25149         * Makefile.in: Add new build file.
25150
25151 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
25152
25153         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
25154         type if available.
25155
25156 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25157
25158         PR target/22224
25159         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
25160
25161 2010-04-28  Martin Jambor  <mjambor@suse.cz>
25162
25163         * cgraph.h (struct cgraph_node): New field indirect_calls.
25164         (struct cgraph_indirect_call_info): New type.
25165         (struct cgraph_edge): Removed field indirect_call. New fields
25166         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
25167         (cgraph_create_indirect_edge): Declare.
25168         (cgraph_make_edge_direct): Likewise.
25169         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
25170         * ipa-prop.h (struct ipa_param_call_note): Removed.
25171         (struct ipa_node_params): Removed field param_calls.
25172         (ipa_create_all_structures_for_iinln): Declare.
25173         * cgraph.c: Described indirect edges and uids in initial comment.
25174         (cgraph_add_edge_to_call_site_hash): New function.
25175         (cgraph_edge): Search also among the indirect edges, use
25176         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
25177         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
25178         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
25179         site hash.
25180         (initialize_inline_failed): Assign a reason to indirect edges.
25181         (cgraph_create_edge_1): New function.
25182         (cgraph_create_edge): Moved some functionality to
25183         cgraph_create_edge_1.
25184         (cgraph_create_indirect_edge): New function.
25185         (cgraph_edge_remove_callee): Add an assert checking for
25186         non-indirectness.
25187         (cgraph_edge_remove_caller): Special-case indirect edges.
25188         (cgraph_remove_edge): Likewise.
25189         (cgraph_set_edge_callee): New function.
25190         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
25191         (cgraph_make_edge_direct): New function.
25192         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
25193         the declaration of the call statement matches.
25194         (cgraph_node_remove_callees): Special-case indirect edges.
25195         (cgraph_clone_edge): Likewise.
25196         (cgraph_clone_node): Clone also the indirect edges.
25197         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
25198         indirect_call, dump count of indirect_calls edges.
25199         * ipa-prop.c (iinlining_processed_edges): New variable.
25200         (ipa_note_param_call): Create indirect edges instead of
25201         creating notes.  New parameter node.
25202         (ipa_analyze_call_uses): New parameter node, pass it on to
25203         ipa_note_param_call.
25204         (ipa_analyze_stmt_uses): Likewise.
25205         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
25206         (print_edge_addition_message): Work on edges rather than on notes.
25207         (update_call_notes_after_inlining): Likewise, renamed to
25208         update_indirect_edges_after_inlining.
25209         (ipa_create_all_structures_for_iinln): New function.
25210         (ipa_free_node_params_substructures): Do not free notes.
25211         (ipa_edge_duplication_hook): Propagate bits within
25212         iinlining_processed_edges bitmap.
25213         (ipa_node_duplication_hook): Do not duplicate notes.
25214         (free_all_ipa_structures_after_ipa_cp): Renamed to
25215         ipa_free_all_structures_after_ipa_cp.
25216         (free_all_ipa_structures_after_iinln): Renamed to
25217         ipa_free_all_structures_after_iinln.
25218         (ipa_write_param_call_note): Removed.
25219         (ipa_read_param_call_note): Removed.
25220         (ipa_write_indirect_edge_info): New function.
25221         (ipa_read_indirect_edge_info): Likewise.
25222         (ipa_write_node_info): Do not stream notes, do stream information
25223         in indirect edges.
25224         (ipa_read_node_info): Likewise.
25225         (lto_ipa_fixup_call_notes): Removed.
25226         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
25227         * ipa-inline.c (pass_ipa_inline): Likewise.
25228         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
25229         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
25230         * tree-inline.c (copy_bb): Removed an unnecessary double check for
25231         is_gimple_call.
25232         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
25233         edges.
25234         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
25235         (output_cgraph): Stream also indirect edges.
25236         (lto_output_edge): Added capability to stream indirect edges.
25237         (input_edge): Likewise.
25238         (input_cgraph_1): Likewise.
25239         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
25240         of indirect edges.
25241
25242 2010-04-28  Richard Guenther  <rguenther@suse.de>
25243
25244         PR tree-optimization/43879
25245         PR tree-optimization/43909
25246         * tree-ssa-structalias.c (struct variable_info): Add
25247         only_restrict_pointers flag.
25248         (new_var_info): Initialize it.  Increment stats.total_vars here.
25249         (create_function_info_for): Do not increment stats.total_vars here.
25250         (get_function_part_constraint): Fix build with C++.
25251         (insert_into_field_list): Remove.
25252         (push_fields_onto_fieldstack): Properly merge fields.
25253         (create_variable_info_for): Split and simplify.
25254         (create_variable_info_for_1): New piece.
25255         (intra_create_variable_infos): Properly make restrict constraints
25256         from parameters.
25257
25258 2010-04-28  Richard Guenther  <rguenther@suse.de>
25259
25260         PR c++/43880
25261         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
25262
25263 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
25264             Jan Hubicka  <hubicka@ucw.cz>
25265
25266         * doc/invoke.texi (-Wsuggest-attribute=const,
25267         -Wsuggest-attribute=pure): Document.
25268         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
25269         (function_always_visible_to_compiler_p,
25270         suggest_attribute, warn_function_pure, warn_function_const):
25271         New functions.
25272         (check_call): Improve debug info.
25273         (analyze_function): Do not check availability.
25274         (add_new_function): Check availability.
25275         (propagate): Output warnings.
25276         (skip_function_for_local_pure_const): New function.
25277         (local_pure_const): Use it; output warnings.
25278         * common.opt (Wsuggest-attribute=const,
25279         Wsuggest-attribute=pure): New.
25280
25281 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
25282
25283         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
25284         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
25285         or DW_CFA_def_cfa_offset{,_sf}.
25286
25287 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
25288
25289         * tree.h: Fix truncated long macros.
25290
25291 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
25292
25293         * collect2.c (TARGET_64BIT): Redefine to target's default.
25294         * tlink.c: Likewise.
25295         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
25296         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
25297         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
25298         for underscoring __USER_LABEL_PREFIX__.
25299         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
25300         (SUB_LINK_ENTRY32): New.
25301         (SUB_LINK_ENTRY64): New.
25302         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
25303         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
25304         (SUB_LINK_ENTRY64): New.
25305         (SUB_LINK_ENTRY): New.
25306         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
25307         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
25308         x64 target is choosen.
25309         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
25310         * configure: Regenerated.
25311         * configure.ac (leading-mingw64-underscores): Option added.
25312
25313 2010-04-27  Jan Hubicka  <jh@suse.cz>
25314
25315         * doc/invoke.texi (-fipa-profile): Document.
25316         * opts.c (decode_options): Enable ipa-profile at -O1.
25317         * timevar.def (TV_IPA_PROFILE): Define.
25318         * common.opt (fipa-profile): Add.
25319         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
25320         flag for clones.
25321         (cgraph_propagate_frequency): Handle only local ones.
25322         * tree-pass.h (pass_ipa_profile): Declare.
25323         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
25324         (pass_ipa_profile): Use TV_IPA_PROFILE.
25325         * ipa.c (ipa_profile): New function.
25326         (gate_ipa_profile): Likewise.
25327         (pass_ipa_profile): New global variable.
25328         * passes.c (pass_ipa_profile): New.
25329
25330 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
25331
25332         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
25333
25334 2010-04-27  Martin Jambor  <mjambor@suse.cz>
25335
25336         PR middle-end/43812
25337         * ipa.c (dissolve_same_comdat_group_list): New function.
25338         (function_and_variable_visibility): Call
25339         dissolve_same_comdat_group_list when comdat group contains external or
25340         newly local nodes.
25341         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
25342         lists are circular and that they contain only DECL_ONE_ONLY nodes.
25343
25344 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
25345
25346         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
25347         (const_hash_1) <VECTOR_CST>: New case.
25348         (compare_constant) <VECTOR_CST>: Likewise.
25349         <ADDR_EXPR>: Deal with LABEL_REFs.
25350         (copy_constant) <VECTOR_CST>: New case.
25351
25352 2010-04-27  Jan Hubicka  <jh@suse.cz>
25353
25354         * cgraph.c (cgraph_propagate_frequency): New function.
25355         * cgraph.h (cgraph_propagate_frequency): Declare.
25356         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
25357         cgraph_propagate_frequency.
25358
25359 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
25360
25361         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
25362
25363 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
25364
25365         PR target/40657
25366         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
25367         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
25368         here to determine which regs to push and how much stack to reserve.
25369
25370 2010-04-27  Jie Zhang  <jie@codesourcery.com>
25371
25372         * doc/gimple.texi (gimple_statement_with_ops): Remove
25373         addresses_taken field.
25374         (gimple_statement_with_memory_ops): Likewise.
25375
25376 2010-04-27  Jan Hubicka  <jh@suse.cz>
25377
25378         * tree-inline.c (eni_inlining_weights): Remove.
25379         (estimate_num_insns): Special case more builtins.
25380
25381 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
25382
25383         PR c/32207
25384         * c-typeck.c (build_binary_op): Move forward check for comparison
25385         pointer with null pointer constant and adjust the diagnostic message.
25386
25387 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
25388
25389         PR lto/42776
25390         * configure.ac (gcc_cv_as_section_has_align): Set if installed
25391         binutils supports extended .section directive needed by LTO, or
25392         warn if older binutils found.
25393         (LTO_BINARY_READER): New AC_SUBST'd variable.
25394         (LTO_USE_LIBELF): Likewise.
25395         * config.gcc (lto_binary_reader): New target-specific configure
25396         variable.
25397         * Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
25398         (LTO_USE_LIBELF): Likewise.
25399         * configure: Regenerate.
25400
25401         * collect2.c (is_elf): Rename from this ...
25402         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
25403          object files in addition to ELF-formatted ones.
25404         (scan_prog_file): Caller updated.  Also allow for LTO info marker
25405         symbol to be prefixed or not by an extra underscore.
25406
25407         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
25408         * config/i386/winnt.c: Also #include lto-streamer.h
25409         (i386_pe_asm_named_section): Specify 1-byte section alignment for
25410         LTO named sections.
25411         (i386_pe_asm_output_aligned_decl_common): Add comment.
25412         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
25413
25414 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
25415
25416         PR target/43889
25417         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
25418         Add missing earlyclobber for second alternative.
25419
25420 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
25421
25422         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
25423         bits for artificial defs at the top of the block.
25424         * fwprop.c (single_def_use_enter_block): Don't call it.
25425
25426 2010-04-26  Jack Howarth  <howarth@bromo.med.uc.edu>
25427
25428         PR 43715
25429         * configure.ac: Use "$gcc_cv_nm -g" on darwin
25430         instead of "$gcc_cv_objdump -T".
25431         Use "-undefined dynamic_lookup" on darwin.
25432         * configure: Regenerate.
25433
25434 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
25435
25436         PR c/43893
25437         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
25438
25439 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
25440
25441         * c-parser.c (struct c_token): Move location field up.
25442         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
25443         (struct c_declspecs): Convert typespec_word, storage_class, and
25444         default_int_p into bitfields.
25445         (struct c_declarator): Move loc field up.
25446
25447 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
25448
25449         * cfgloop.h (struct loop): Move can_be_parallel field up.
25450         * ipa-prop.h (struct ip_node_params): Move bitfields up.
25451         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
25452         down.
25453         (struct iv_cand): Convert pos field into a bitfield.
25454         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
25455         field up.
25456         (struct _stmt_vec_info): Shuffle fields for better packing.
25457
25458 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
25459
25460         * varasm.c (IN_NAMED_SECTION): Remove guard.
25461         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
25462         (IN_NAMED_SECTION_P): ...this.
25463         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
25464         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
25465
25466 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
25467
25468         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
25469         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
25470         of shadowing it.  Fix comments.
25471
25472 2010-04-26  Jan Hubicka  <jh@suse.cz>
25473
25474         * cgraph.c (cgraph_create_node): Set node frequency to normal.
25475         (cgraph_clone_node): Copy function frequency.
25476         * cgraph.h (node_frequency): New enum
25477         (struct cgraph_node): Add.
25478         * final.c (rest_of_clean_state): Update.
25479         * lto-cgraph.c (lto_output_node): Output node frequency.
25480         (input_overwrite_node): Input node frequency.
25481         * tre-ssa-loop-ivopts (computation_cost): Update.
25482         * lto-streamer-out.c (output_function): Do not output function
25483         frequency.
25484         * predict.c (maybe_hot_frequency_p): Update and handle functions
25485         executed once.
25486         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
25487         attribute lookup.
25488         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
25489         (compute_function_frequency): Set noreturn functions to be executed
25490         once.
25491         (choose_function_section): Update.
25492         * lto-streamer-in.c (input_function): Do not input function frequency.
25493         * function.c (allocate_struct_function): Do not initialize function
25494         frequency.
25495         * function.h (function_frequency): Remove.
25496         (struct function): Remove function frequency.
25497         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
25498         (try_update): Update.
25499         * tree-inline.c (initialize_cfun): Do not update function frequency.
25500         * passes.c (pass_init_dump_file): Update.
25501         * i386.c (ix86_compute_frame_layout): Update.
25502         (ix86_pad_returns): Update.
25503
25504 2010-04-26  Jie Zhang  <jie@codesourcery.com>
25505
25506         PR tree-optimization/43833
25507         * tree-vrp.c (range_int_cst_p): New.
25508         (range_int_cst_singleton_p): New.
25509         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
25510         when both operands are constants.  Use range_int_cst_p in
25511         BIT_IOR_EXPR case.
25512
25513 2010-04-26  Jan Hubicka  <jh@suse.cz>
25514
25515         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
25516
25517 2010-04-26  Richard Guenther  <rguenther@suse.de>
25518
25519         PR lto/43080
25520         * gimple.c (gimple_decl_printable_name): Deal gracefully
25521         with a NULL DECL_NAME.
25522
25523 2010-04-26  Richard Guenther  <rguenther@suse.de>
25524
25525         PR lto/42425
25526         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
25527         if emitting debug information and it is either a function
25528         or a namespace decl.
25529
25530 2010-04-26  Ira Rosen  <irar@il.ibm.com>
25531
25532         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
25533         determine if the statement is vectorizable, and a macro to access it.
25534         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
25535         Skip statements that can't be vectorized. If the analysis fails,
25536         mark the statement as unvectorizable if vectorizing basic block.
25537         (vect_compute_data_refs_alignment): Likewise.
25538         (vect_verify_datarefs_alignment): Skip statements marked as
25539         unvectorizable. Add print.
25540         (vect_analyze_group_access): Skip statements that can't be
25541         vectorized. If the analysis fails, mark the statement as
25542         unvectorizable if vectorizing basic block.
25543         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
25544         * tree-vect-stmts.c (vectorizable_store): Fix the number of
25545         generated stmts for SLP.
25546         (new_stmt_vec_info): Initialize the new field.
25547         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
25548         statements marked as unvectorizable.
25549
25550 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
25551
25552         * c-common.c (flag_isoc1x): New.
25553         (flag_isoc99): Update comment.
25554         * c-common.h (flag_isoc1x): New.
25555         (flag_isoc99): Update comment.
25556         * c-cppbuiltin.c (builtin_define_float_constants): Also define
25557         __<type>_DECIMAL_DIG__.
25558         * c-opts.c (set_std_c1x): New.
25559         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
25560         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
25561         * c.opt (-std=c1x, -std=gnu1x): New options.
25562         * doc/cpp.texi: Mention -std=c1x.
25563         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
25564         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
25565         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
25566         * doc/standards.texi: Mention C1X.
25567         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
25568         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
25569         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
25570         Define for C1X.
25571
25572 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
25573
25574         * config/i386/gmon-sol2.c (_mcleanup): Change format string
25575         placeholder from 0x%x to %#x.
25576         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
25577         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
25578         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
25579         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
25580         * config/i386/i386.c (ix86_target_string): Ditto.
25581         (output_pic_addr_const): Ditto.
25582         (print_operand): Ditto.
25583
25584 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
25585
25586         * combine.c (find_split_point): Add third argument.  Use it
25587         to find nested multiply-accumulate instructions.  Adjust calls.
25588         (try_combine): Adjust call to find_split_point.
25589
25590 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
25591
25592         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
25593
25594 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
25595
25596         PR tree-optimization/41442
25597         * fold-const.c (merge_truthop_with_opposite_arm): New function.
25598         (fold_binary_loc): Call it.
25599
25600 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
25601
25602         * toplev.c (general_init): Set default for fdiagnostics-show-option.
25603         * opts.c (common_handle_option): Allow disabling it.
25604         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
25605
25606 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
25607
25608         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
25609         between modes if both types are integral.
25610
25611 2010-04-23  Richard Guenther  <rguenther@suse.de>
25612
25613         PR tree-optimization/43572
25614         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
25615
25616 2010-04-23  Richard Guenther  <rguenther@suse.de>
25617
25618         PR lto/43455
25619         * tree-inline.c (tree_can_inline_p): Also check compatibility
25620         of return types.
25621
25622 2010-04-23  Martin Jambor  <mjambor@suse.cz>
25623
25624         PR tree-optimization/43846
25625         * tree-sra.c (struct access): New flag grp_assignment_read.
25626         (build_accesses_from_assign): Set grp_assignment_read.
25627         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
25628         (enum mark_read_status): New type.
25629         (analyze_access_subtree): Propagate grp_assignment_read, create
25630         accesses also if both direct_read and root->grp_assignment_read.
25631
25632 2010-04-23  Martin Jambor  <mjambor@suse.cz>
25633
25634         PR middle-end/43835
25635         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
25636         function does not have type attributes.
25637
25638 2010-04-23  Richard Guenther  <rguenther@suse.de>
25639
25640         PR lto/42653
25641         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
25642         of FUNCTION_DECLs.
25643
25644 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
25645
25646         * sese.h (create_if_region_on_edge): Remove.
25647
25648         * sese.c (create_if_region_on_edge): Make static.
25649
25650         * tree-inline.c: Do not include ggc.h.
25651
25652         * expr.c: Do not include ggc.h.
25653
25654         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
25655         dependencies.
25656
25657 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
25658
25659         PR target/43744
25660         * config/sh/sh.c (find_barrier): Don't emit a constant pool
25661         in the middle of insns for casesi_worker_2.
25662
25663 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
25664
25665         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
25666
25667 2010-04-22  Ira Rosen  <irar@il.ibm.com>
25668
25669         PR tree-optimization/43842
25670         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
25671         loop unrolling in update of exit phis. Fix comment.
25672         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
25673         least two reduction statements in the loop before starting SLP
25674         analysis.
25675
25676 2010-04-22  Nick Clifton  <nickc@redhat.com>
25677
25678         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
25679
25680 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
25681
25682         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
25683         to simplify a + ~a.
25684
25685 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
25686
25687         * tree-parloops.c (loop_parallel_p): New argument
25688         parloop_obstack.  Pass it down.
25689         (parallelize_loops): New variable parloop_obstack.  Initialize it,
25690         pass it down, free it.
25691
25692         * tree-loop-linear.c (linear_transform_loops): Pass down
25693         lambda_obstack.
25694
25695         * tree-data-ref.h (lambda_compute_access_matrices): New argument
25696         of type struct obstack *.
25697
25698         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
25699         scratch_obstack.  Initialize it, pass down, free it.
25700
25701         * lambda.h (lambda_loop_new): Remove.
25702         (lambda_matrix_new, lambda_matrix_inverse)
25703         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
25704         argument of type struct obstack *.
25705
25706         * lambda-trans.c (lambda_trans_matrix_new): New argument
25707         lambda_obstack.  Pass it down, use obstack allocation for ret.
25708         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
25709         it down.
25710
25711         * lambda-mat.c (lambda_matrix_get_column)
25712         (lambda_matrix_project_to_null): Remove.
25713         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
25714         allocation for mat.
25715         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
25716         lambda_obstack.
25717
25718         * lambda-code.c (lambda_loop_new): New function.
25719         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
25720         (lambda_compute_auxillary_space, lambda_compute_target_space)
25721         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
25722         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
25723         (build_access_matrix): New argument lambda_obstack.  Use obstack
25724         allocation for am.
25725         (lambda_compute_step_signs, lambda_compute_access_matrices): New
25726         argument lambda_obstack.  Pass it down.
25727
25728 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
25729
25730         * optabs.h (expand_widening_mult): Declare.
25731
25732 2010-04-22  Richard Guenther  <rguenther@suse.de>
25733
25734         PR tree-optimization/43845
25735         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
25736         lookup the CALL_EXPR function and arguments.
25737
25738 2010-04-22  Nick Clifton  <nickc@redhat.com>
25739
25740         * config/stormy16/stormy16.c
25741         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
25742         * config/stormy16/stormy16.h: Tidy up formatting.
25743         (DONT_USE_BUILTIN_SETJMP): Remove definition.
25744         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
25745         (ineqbranchsi): Delete pattern.
25746         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
25747         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
25748         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
25749         stormy16-lib2-ucmpsi2.c.
25750
25751 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
25752
25753         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
25754         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
25755         extra set merge_set_noclobber, and use it to relax the final test
25756         slightly.
25757         * df.h (df_simulate_find_noclobber_defs): Declare.
25758         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
25759         conditional defs.
25760         (df_simulate_find_noclobber_defs): New function.
25761
25762 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
25763
25764         * config/i386/i386.md: Use {} around multi-line preparation statements.
25765
25766 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
25767
25768         * c-tree.h (push_init_level, pop_init_level, set_init_index)
25769         (process_init_element): New argument of type struct obstack *.
25770
25771         * c-typeck.c (push_init_level, pop_init_level, set_designator)
25772         (set_init_index, set_init_label, set_nonincremental_init)
25773         (set_nonincremental_init_from_string, find_init_member)
25774         (output_init_element, output_pending_init_elements)
25775         (process_init_element): New argument braced_init_obstack.  Pass it
25776         down.
25777         (push_range_stack, add_pending_init): New argument
25778         braced_init_obstack.  Use obstack allocation.
25779
25780         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
25781         braced_init_obstack.  Pass it down.
25782         (c_parser_braced_init): New variables ret, braced_init_obstack.
25783         Initialize obstack, pass it down and finally free it.
25784
25785 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
25786
25787         PR middle-end/29274
25788         * tree-pass.h (pass_optimize_widening_mul): Declare.
25789         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
25790         gate_optimize_widening_mul): New static functions.
25791         (pass_optimize_widening_mul): New.
25792         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
25793         <case MULT_EXPR>: Remove support for widening multiplies.
25794         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
25795         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
25796         simplify_gen_unary rather than directly building extensions.
25797         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
25798         WIDEN_MULT_EXPR.
25799         * expmed.c (expand_widening_mult): New function.
25800         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
25801
25802 2010-04-21  Jan Hubicka  <jh@suse.cz>
25803
25804         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
25805         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
25806         * lto-wpa-fixup.c: Remove.
25807         * Makefile.in (lto-wpa-fixup.o): Remove.
25808         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
25809         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
25810         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
25811
25812 2010-04-21  Jan Hubicka  <jh@suse.cz>
25813
25814         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
25815         add write_optimization_summary, read_optimization_summary.
25816         (ipa_write_summaries_of_cgraph_node_set): Remove.
25817         (ipa_write_optimization_summaries): Declare.
25818         (ipa_read_optimization_summaries): Declare.
25819         * ipa-cp.c (pass_ipa_cp): Update.
25820         * ipa-reference.c (pass_ipa_reference): Update.
25821         * ipa-pure-const.c (pass_ipa_pure_const): Update.
25822         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
25823         Update.
25824         * ipa-inline.c (pass_ipa_inline): Update.
25825         * ipa.c (pass_ipa_whole_program): Update.
25826         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
25827         * passes.c (ipa_write_summaries_1): Do not test wpa.
25828         (ipa_write_optimization_summaries_1): New.
25829         (ipa_write_optimization_summaries): New.
25830         (ipa_read_summaries): Do not test ltrans.
25831         (ipa_read_optimization_summaries_1): New.
25832         (ipa_read_optimization_summaries): New.
25833
25834 2010-04-21  Jan Hubicka  <jh@suse.cz>
25835
25836         * lto-cgraph.c (lto_output_node): Do not output comdat groups
25837         for boundary nodes.
25838         (output_cgraph): Do not arrange comdat groups for boundary nodes.
25839
25840 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
25841
25842         PR debug/40040
25843         * dwarf2out.c (add_name_and_src_coords_attributes): Add
25844         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
25845
25846 2010-04-21  Jan Hubicka  <jh@suse.cz>
25847
25848         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
25849
25850 2010-04-21  Jan Hubicka  <jh@suse.cz>
25851
25852         * varpool.c (decide_is_variable_needed): Variable is always needed
25853         during ltrans.
25854
25855 2010-04-21  Jan Hubicka  <jh@suse.cz>
25856
25857         * opts.c (decode_options): Enable pure-const pass for whopr.
25858
25859 2010-04-21  Jan Hubicka  <jh@suse.cz>
25860
25861         * cgraph.c (dump_cgraph_node): Dump also assembler name.
25862         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
25863         at WPA dumping.
25864         (cgraph_decide_inlining): Do not expect callee to be removed in all
25865         cases.
25866
25867 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
25868
25869         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
25870
25871 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
25872
25873         * config/i386/i386.md (x86_shrd): Add athlon_decode and
25874         amdfam10_decode attributes.
25875
25876 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
25877
25878         PR middle-end/43570
25879         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
25880         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
25881         (lower_copyprivate_clauses): Use private var in outer
25882         context instead of original var.  Make sure the types
25883         are correct for VLAs.
25884
25885 2010-04-21  Richard Guenther  <rguenther@suse.de>
25886
25887         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
25888         to non-pointer objects.
25889
25890 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
25891
25892         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
25893         last chain entry if it starts with the still current label.
25894         (add_location_or_const_value_attribute): Check that
25895         loc_list->first->next is NULL instead of comparing ->first with ->last.
25896         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
25897         to add_var_loc_to_decl.
25898
25899         * dwarf2out.c (output_call_frame_info): For dw_cie_version
25900         >= 4 add also address size and segment size fields into CIE header.
25901
25902         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
25903         long as address size is the same as sizeof (void *) and
25904         segment size is 0.
25905         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
25906         address size or segment size is unexpected, return DW_EH_PE_omit.
25907         (classify_object_over_fdes): If get_cie_encoding returned
25908         DW_EH_PE_omit, return -1.
25909         (init_object): If classify_object_over_fdes returned -1,
25910         pretend there were no FDEs at all.
25911
25912 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
25913
25914         * config/i386/i386.md (bswap<mode>2): Macroize expander from
25915         bswap{si,di}2 using SWI48 mode iterator.
25916         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
25917         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
25918         set modrm attribute of bswap insn to 0 and remove length attribute.
25919         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
25920         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
25921         set mode attribute to <MODE> and remove length attribute.
25922
25923 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
25924
25925         PR rtl-optimization/43520
25926         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
25927         zero available registers.
25928
25929 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
25930
25931         * builtins.c (fold_builtin_cproj): Fold more cases.
25932
25933 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
25934
25935         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
25936         (fold_builtin_1): Fold builtin cproj.
25937         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
25938         Use ATTR_CONST_NOTHROW_LIST.
25939
25940 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
25941
25942         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
25943         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
25944         ffsi2_no_cmove for !TARGET_CMOVE.
25945         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
25946         (ffssi2): Remove expander.
25947         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
25948         mode iterator.
25949         (ctz<mode>2): Ditto from ctz{si,di}2.
25950         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
25951         mode iterator.
25952         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
25953         mode iterator.
25954
25955 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
25956
25957         * dwarf2out.c (AT_linkage_name): Define.
25958         (clone_as_declaration): Handle DW_AT_linkage_name.
25959         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
25960         of DW_AT_MIPS_linkage_name.
25961         (move_linkage_attr): Likewise.
25962         (dwarf2out_finish): Likewise.
25963
25964 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
25965
25966         PR middle-end/41952
25967         * fold-const.c (fold_comparison): New folding rule.
25968
25969 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
25970
25971         * double-int.h (double_int_setbit): Declare.
25972         * double-int.c (double_int_setbit): New function.
25973         * rtl.h (immed_double_int_const): Declare.
25974         * emit-rtl.c (immed_double_int_const): New function.
25975         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
25976         and immed_double_int_const functions.
25977         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
25978         expand_copysign_bit): (Ditto.).
25979         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
25980         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
25981         * dojump.c (prefer_and_bit_test): (Ditto.).
25982         * expr.c (convert_modes, reduce_to_bit_field_precision,
25983         const_vector_from_tree): (Ditto.).
25984         * expmed.c (mask_rtx, lshift_value): (Ditto.).
25985
25986 2010-04-20  Jan Hubicka  <jh@suse.cz>
25987
25988         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
25989         (dump_cgraph_node): Dump new flags.
25990         * cgraph.h (struct cgraph_node): Add flags
25991         reachable_from_other_partition and in_other_partition.
25992         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
25993         other partition can not be removed.
25994         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
25995         the other partition must be output; silence sanity checking on
25996         leaking functions bodies from other paritition.
25997         * lto-cgraph.c (reachable_from_other_partition_p): New function.
25998         (lto_output_node): Output new flags; do not sanity check that inline
25999         clones are output; drop lto_forced_extern_inline_p code; do not mock
26000         visibility flags at partition boundaries.
26001         (add_node_to): New function.
26002         (output_cgraph): Use it to sort functions so masters appear before
26003         clones.
26004         (input_overwrite_node): Input new flags.
26005         * passes.c (ipa_write_summaries): Do not call
26006         lto_new_extern_inline_states.
26007         * lto-section-out.c (forced_extern_inline,
26008         lto_new_extern_inline_states lto_delete_extern_inline_states,
26009         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
26010         * lto-streamer.h (lto_new_extern_inline_states,
26011         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
26012         lto_forced_extern_inline_p): Kill.
26013
26014 2010-04-20  Richard Guenther  <rguenther@suse.de>
26015
26016         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
26017         from vars that can have pointers.
26018         (process_constraint): Dump useless constraints.
26019
26020 2010-04-20  Richard Guenther  <rguenther@suse.de>
26021
26022         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
26023         (dump_sa_points_to_info): Remove asserts.
26024         (init_base_vars): nothing_id isn't an escape point nor does it
26025         have pointers.
26026
26027 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
26028
26029         * tree.h (TYPE_REF_IS_RVALUE): Define.
26030         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
26031         should_move_die_to_comdat, prune_unused_types_walk): Handle
26032         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
26033         (modified_type_die, gen_reference_type_die): Emit
26034         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
26035         if TYPE_REF_IS_RVALUE and -gdwarf-4.
26036
26037 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26038
26039         PR target/43635
26040         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
26041         calls for -fpic -m31 if they have been sibcall optimized.
26042
26043 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
26044
26045         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
26046         ar.lc fixed and call-used.
26047
26048         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
26049
26050 2010-04-19  Jan Hubicka  <jh@suse.cz>
26051
26052         * opts.c (decode_options): Disable whpr incompatible passes.
26053         * lto/lto.c (lto_1_to_1_map): Skip clones.
26054         (read_cgraph_and_symbols): Do not mark everything as needed.
26055         (do_whole_program_analysis): Do map only after optimizing;
26056         set proper cgraph_state; use passmanager.
26057
26058 2010-04-19  DJ Delorie  <dj@redhat.com>
26059
26060         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
26061         POINTER_PLUS_EXPR and fix them.
26062
26063 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
26064
26065         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
26066         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
26067         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
26068         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
26069         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
26070         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
26071         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
26072         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
26073         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
26074         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
26075         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
26076
26077 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
26078
26079         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
26080         (check_cond_move_block): Likewise.
26081         (cond_move_process_if_block): Likewise.
26082         (noce_find_if_block): Improve formatting.
26083         (find_if_header): Pass 0 to memset and tweak conditions.
26084         (cond_exec_find_if_block): Fix long lines and tweak conditions.
26085
26086 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
26087
26088         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
26089         for -gdwarf-4.
26090
26091         PR middle-end/43337
26092         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
26093         with non-local decl doesn't need chain.
26094
26095 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
26096
26097         * ira-color.c (allocno_reload_assign): Avoid accumulating
26098         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
26099
26100 2010-04-19  Martin Jambor  <mjambor@suse.cz>
26101
26102         * gimple.h (create_tmp_reg): Declare.
26103         * gimplify.c (create_tmp_reg): New function.
26104         (gimplify_return_expr): Use create_tmp_reg.
26105         (gimplify_omp_atomic): Likewise.
26106         (gimple_regimplify_operands): Likewise.
26107         * tree-dfa.c (make_rename_temp): Likewise.
26108         * tree-predcom.c (predcom_tmp_var): Likewise.
26109         (reassociate_to_the_same_stmt): Likewise.
26110         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
26111         (get_replaced_param_substitute): Likewise.
26112         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
26113         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
26114         * tree-ssa-pre.c (get_representative_for): Likewise.
26115         (create_expression_by_pieces): Likewise.
26116         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
26117         (create_tailcall_accumulator): Likewise.
26118
26119 2010-04-19  Martin Jambor  <mjambor@suse.cz>
26120
26121         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
26122         new_stmt.
26123         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
26124
26125 2010-04-19  Richard Guenther  <rguenther@suse.de>
26126
26127         PR tree-optimization/43796
26128         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
26129         from SCEV in the lattice.
26130         (vrp_visit_phi_node): Dump change.
26131
26132 2010-04-19  Richard Guenther  <rguenther@suse.de>
26133
26134         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
26135         * configure: Re-generated.
26136
26137 2010-04-19  Richard Guenther  <rguenther@suse.de>
26138
26139         PR tree-optimization/43783
26140         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
26141         constant ARRAY_REF operands two and three if possible.
26142
26143 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
26144
26145         PR target/43766
26146         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
26147
26148 2010-04-19  Jie Zhang  <jie@codesourcery.com>
26149
26150         PR target/43662
26151         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
26152
26153 2010-04-19  Ira Rosen  <irar@il.ibm.com>
26154
26155         PR tree-optimization/37027
26156         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
26157         and macro to access it.
26158         (vectorizable_reduction): Add argument.
26159         (vect_get_slp_defs): Likewise.
26160         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
26161         statements for possible use in SLP.
26162         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
26163         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
26164         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
26165         add new argument.
26166         (vectorizable_reduction): Likewise.
26167         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
26168         vect_get_slp_defs.
26169         (vectorizable_type_demotion, vectorizable_type_promotion,
26170         vectorizable_store): Likewise.
26171         (vect_analyze_stmt): Update call to vectorizable_reduction.
26172         (vect_transform_stmt): Likewise.
26173         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
26174         (vect_build_slp_tree): Fix indentation. Check that there are no loads
26175         from different interleaving chains in same node.
26176         (vect_slp_rearrange_stmts): New function.
26177         (vect_supported_load_permutation_p): Allow load permutations for
26178         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
26179         inside SLP nodes if necessary.
26180         (vect_analyze_slp_instance): Handle reductions.
26181         (vect_analyze_slp): Try to build SLP instances originating from groups
26182         of reductions.
26183         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
26184         (vect_get_constant_vectors): Create initial vectors for reductions
26185         according to reduction code. Add new argument.
26186         (vect_get_slp_defs): Add new argument, pass it to
26187         vect_get_constant_vectors.
26188         (vect_schedule_slp_instance): Remove SLP tree root statements.
26189
26190 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
26191
26192         * tree.h (ENUM_IS_SCOPED): Define.
26193         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
26194         for ENUM_IS_SCOPED enums.
26195
26196 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
26197
26198         * fold-const.c (fold_comparison): Use ssizetype.
26199         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
26200         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
26201         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
26202         * tree-object-size.c (compute_object_sizes): Use size_type_node.
26203
26204         * tree.h (initialize_sizetypes): Remove parameter.
26205         (build_common_tree_nodes): Remove second parameter.
26206         * stor-layout.c (initialize_sizetypes): Remove parameter.
26207         Always create an unsigned type.
26208         (set_sizetype): Assert that the passed type is unsigned and simplify.
26209         * tree.c (build_common_tree_nodes): Remove second parameter.
26210         Adjust call to initialize_sizetypes.
26211         * c-decl.c (c_init_decl_processing): Remove second argument in call to
26212         build_common_tree_nodes.
26213
26214 2010-04-18  Matthias Klose  <doko@ubuntu.com>
26215
26216         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
26217
26218 2010-04-18  Ira Rosen  <irar@il.ibm.com>
26219
26220         PR tree-optimization/43771
26221         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
26222         load permutation doesn't have gaps.
26223
26224 2010-04-18  Jan Hubicka  <jh@suse.cz>
26225
26226         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
26227         (sse_prologue_save_insn expander): Use new pattern.
26228         (sse_prologue_save_insn1): New pattern and splitter.
26229         (sse_prologue_save_insn): Update to deal also with 64bit aligned
26230         blocks.
26231         * i386.c (setup_incoming_varargs_64): Do not compute jump
26232         destination here.
26233         (ix86_gimplify_va_arg): Update alignment needed.
26234         (ix86_local_alignment): Do not align all local arrays to 128bit.
26235
26236 2010-04-17  Jan Hubicka  <jh@suse.cz>
26237
26238         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
26239
26240 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
26241
26242         * arm.md (negdi2): Remove redundant code to force values into a
26243         register.
26244
26245 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
26246
26247         * arm/bpabi.S: Add EABI alignment attributes to objects.
26248         * arm/bpabi-v6m.S: Likewise.
26249         * arm/crti.asm: Likewise.
26250         * arm/crtn.asm: Likewise.
26251         * arm/lib1funcs.asm: Likewise.
26252         * arm/libunwind.S: Likewise.
26253
26254 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
26255
26256         * arm-protos.h (tune_params): New structure.
26257         * arm.c (current_tune): New variable.
26258         (arm_constant_limit): Delete.
26259         (struct processors): Add pointer to the tune parameters.
26260         (arm_slowmul_tune): New tuning option.
26261         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
26262         (all_cores): Adjust to pick up the tuning model.
26263         (arm_constant_limit): New function.
26264         (arm_override_options): Select the appropriate tuning model.  Delete
26265         initialization of arm_const_limit.
26266         (arm_split_constant): Use the new constant-limit model.
26267         (arm_rtx_costs): Pick up the current tuning model.
26268         * arm.md (is_strongarm, is_xscale): Delete.
26269         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
26270         for Xscale variant architectures.
26271         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
26272
26273 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
26274
26275         * config/arm/arm.c (arm_gen_constant): Remove unused variable
26276         can_shift.
26277         (arm_rtx_costs_1): Remove unused variable extra_cost.
26278         (arm_unwind_emit_set): Use variable offset.
26279         (thumb1_output_casesi): Remove unused variable flags.
26280
26281 2010-04-16  Jeff Law  <law@redhat.com>
26282
26283         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
26284         needing assignment rather than doing a two-phase assignment.  Remove
26285         unused variable 'm'.
26286
26287 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
26288
26289         PR bootstrap/43767
26290         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
26291
26292 2010-04-16  Doug Kwan  <dougkwan@google.com>
26293
26294         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
26295         (next_operand_entry_id): New static variable.
26296         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
26297         (add_to_ops_vec): Assigned unique ID to operand entry.
26298         (struct oecount_s): New field ID.
26299         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
26300         (undistribute_ops_list): Assign unique IDs to oecounts.
26301         (init_reassoc): reset next_operand_entry_id.
26302
26303 2010-04-16  Doug Kwan  <dougkwan@google.com>
26304
26305         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
26306         missing left parenthesis.
26307
26308 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
26309
26310         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
26311         *btdi_rex64 using SWI48 mode iterator.
26312         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
26313         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
26314         *jcc_btdi_mask_rex64.
26315
26316 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
26317
26318         * double-int.h (tree_to_double_int): Convert to macro.
26319         * double-int.c (tree_to_double_int): Remove.
26320
26321 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
26322
26323         PR debug/43762
26324         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
26325         with want_address 2 and in case a single element list might be
26326         possible, call it again with want_address 0.
26327
26328 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
26329
26330         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
26331         case 'W' print operands for HI mode.
26332         * config/h8300/h8300.h (Y0, Y2) : New constraints.
26333         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
26334         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
26335         * config/h8300/predicate.md (bit_register_indirect_operand): New.
26336
26337         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
26338
26339         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
26340         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
26341         #xx:3 and #xx:4 mode.
26342
26343         * config/h8300/h8300.md (inverted load with HImode dest): Add
26344         support for H8300SX.
26345
26346         * config/h8300/predicate.md (bit_operand): Allow immediate values that
26347         satisfy 'U' constraint.
26348
26349 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26350
26351         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
26352         * configure: Regenerate.
26353         * config.in: Regenerate.
26354         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
26355         works.
26356
26357 2010-04-16  Richard Guenther  <rguenther@suse.de>
26358
26359         * tree.h (struct tree_decl_minimal): Move pt_uid ...
26360         (struct tree_decl_common): ... here.
26361         (DECL_PT_UID): Adjust.
26362         (SET_DECL_PT_UID): Likewise.
26363         (DECL_PT_UID_SET_P): Likewise.
26364
26365 2010-04-16  Richard Guenther  <rguenther@suse.de>
26366
26367         PR tree-optimization/43572
26368         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
26369         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
26370         * tree-flow.h (is_call_clobbered): Remove.
26371         * tree-flow-inline.h (is_call_clobbered): Likewise.
26372         * tree-dfa.c (dump_variable): Do not dump call clobber state.
26373         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
26374         (execute_return_slot_opt): Adjust.
26375         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
26376         check for call clobbered vars here.
26377         (find_tail_calls): Move tailcall verification to the
26378         proper place.
26379
26380 2010-04-16  Diego Novillo  <dnovillo@google.com>
26381
26382         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
26383
26384 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
26385
26386         PR target/40603
26387         * config/arm/arm.md (cbranchqi4): New pattern.
26388         * config/arm/predicates.md (const0_operand,
26389         cbranchqi4_comparison_operator): New predicates.
26390
26391 2010-04-16  Richard Guenther  <rguenther@suse.de>
26392
26393         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
26394         (dump_gimple_stmt): Likewise.
26395
26396 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
26397
26398         * recog.h (struct recog_data): New field is_operator.
26399         (struct insn_operand_data): New field is_operator.
26400         * recog.c (extract_insn): Set recog_data.is_operator.
26401         * genoutput.c (output_operand_data): Emit code to set the
26402         is_operator field.
26403         * reload.c (find_reloads): Use it rather than testing for an
26404         empty constraint string.
26405
26406         PR target/41514
26407         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
26408         If the previous insn is a cbranchsi4_insn with the same arguments,
26409         omit the compare instruction.
26410
26411         * config/arm/arm.md (addsi3_cbranch): If destination is a high
26412         register, inputs must be low registers and we need a low register
26413         scratch.  Handle alternative 2 like alternative 3.
26414
26415 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
26416
26417         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
26418         don't call get_addr on both.  If one expression is a VALUE and
26419         the other a REG, check VALUE's locs if the REG isn't among them.
26420
26421 2010-04-16  Christian Bruel  <christian.bruel@st.com>
26422
26423         * config/sh/sh.h (sh_frame_pointer_required): New function.
26424         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
26425         (flag_omit_frame_pointer) Set.
26426         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
26427         (rounded_frame_size): Adjust size with outgoing_args_size.
26428         (sh_set_return_address): Must return from stack pointer.
26429         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
26430         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
26431         (ACCUMULATE_OUTGOING_ARGS): Define.
26432         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
26433         * config/sh/sh.opt (maccumulate-outgoing-args): New option.
26434
26435 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
26436
26437         PR target/43471
26438         * config/sh/sh.c (sh_legitimize_reload_address): Use
26439         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
26440         Remove a unneeded check for offset_base.
26441
26442 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
26443
26444         * configure: Regenerated.
26445
26446 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26447
26448         * config/s390/s390.c (s390_call_save_register_used): Switch back
26449         to HARD_REGNO_NREGS.
26450
26451 2010-04-15  Richard Guenther  <rguenther@suse.de>
26452
26453         * alias.c (alias_set_subset_of): Handle alias-set zero
26454         child properly.
26455
26456 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
26457             Julian Brown  <julian@codesourcery.com>
26458
26459         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
26460         alternatives according to use of high and low regs.
26461         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
26462         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
26463         optimizing for size on Thumb-2.
26464
26465 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
26466
26467         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
26468
26469 2010-04-15  Richard Guenther  <rguenther@suse.de>
26470
26471         * tree-ssa-structalias.c (struct variable_info): Add
26472         is_fn_info flag.
26473         (new_var_info): Initialize it.
26474         (dump_constraints): Support printing last added constraints.
26475         (debug_constraints): Adjust.
26476         (dump_constraint_graph): Likewise.
26477         (make_heapvar_for): Check for NULL cfun.
26478         (get_function_part_constraint): New function.
26479         (get_fi_for_callee): Likewise.
26480         (find_func_aliases): Properly implement IPA PTA constraints.
26481         (process_ipa_clobber): New function.
26482         (find_func_clobbers): Likewise.
26483         (insert_into_field_list_sorted): Remove.
26484         (create_function_info_for): Properly allocate vars for IPA mode.
26485         Do not use insert_into_field_list_sorted.
26486         (create_variable_info_for): Properly generate constraints for
26487         global vars in IPA mode.
26488         (dump_solution_for_var): Always dump the solution.
26489         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
26490         (find_what_var_points_to): Adjust.
26491         (pt_solution_set): Change.
26492         (pt_solution_ior_into): New function.
26493         (pt_solution_empty_p): Export.
26494         (pt_solution_includes_global): Adjust.
26495         (pt_solution_includes_1): Likewise.
26496         (pt_solutions_intersect_1): Likewise.
26497         (dump_sa_points_to_info): Check some invariants.
26498         (solve_constraints): Move constraint dumping ...
26499         (compute_points_to_sets): ... here.
26500         (ipa_pta_execute): ... and here.
26501         (compute_may_aliases): Do not re-compute points-to info
26502         locally if IPA info is available.
26503         (ipa_escaped_pt): New global var.
26504         (ipa_pta_execute): Properly implement IPA PTA.
26505         * tree-into-ssa.c (dump_decl_set): Support dumping
26506         decls not in referenced-vars.
26507         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
26508         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
26509         (dump_points_to_solution): Likewise.
26510         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
26511         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
26512         (remap_gimple_stmt): Reset call clobber/use information if necessary.
26513         (copy_decl_to_var): Copy DECL_PT_UID.
26514         (copy_result_decl_to_var): Likewise.
26515         * tree.c (make_node_stat): Initialize DECL_PT_UID.
26516         (copy_node_stat): Copy it.
26517         * tree.h (DECL_PT_UID): New macro.
26518         (SET_DECL_PT_UID): Likewise.
26519         (DECL_PT_UID_SET_P): Likewise.
26520         (struct tree_decl_minimal): Add pt_uid member.
26521         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
26522         (pt_solution_empty_p): Declare.
26523         (pt_solution_set): Adjust.
26524         (ipa_escaped_pt): Declare.
26525         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
26526         * gimple-pretty-print.c (pp_points_to_solution): New function.
26527         (dump_gimple_call): Dump call clobber/use information.
26528         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
26529         * tree-pass.h (TDF_ALIAS): New dump option.
26530         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
26531         * doc/invoke.texi (-fipa-pta): Update documentation.
26532
26533 2010-04-15  Richard Guenther  <rguenther@suse.de>
26534
26535         * Makefile.in (OBJS-common): Add gimple-fold.o.
26536         (gimple-fold.o): New rule.
26537         * tree.h (maybe_fold_offset_to_reference,
26538         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
26539         prototypes ...
26540         * gimple.h: ... here.
26541         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
26542         may_propagate_address_into_dereference): Move prototypes ...
26543         * gimple.h: ... here.
26544         * tree-ssa-ccp.c (get_symbol_constant_value,
26545         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
26546         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
26547         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
26548         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
26549         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
26550         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
26551         gimplify_and_update_call_from_tree): Move ...
26552         * gimple-fold.c: ... here.  New file.
26553         (ccp_fold_builtin): Rename to ...
26554         (gimple_fold_builtin): ... this.
26555         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
26556
26557 2010-04-15  Richard Guenther  <rguenther@suse.de>
26558
26559         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
26560         fit_double_type, force_fit_type_double, add_double_with_sign,
26561         neg_double, mul_double_with_sign, lshift_double, rshift_double,
26562         lrotate_double, rrotate_double, div_and_round_double): Move ...
26563         * double-int.c: ... here.
26564         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
26565         add_double, neg_double, mul_double_with_sign, mul_double,
26566         lshift_double, rshift_double, lrotate_double, rrotate_double,
26567         div_and_round_double): Move prototypes ...
26568         * double-int.h: ... here.
26569
26570 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
26571
26572         PR target/43742
26573         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
26574         matching constraints to ensure inputs match the output.
26575
26576 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
26577
26578         PR target/43742
26579         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
26580         in an input-only operand.
26581
26582 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
26583
26584         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
26585         (double_int_not, double_int_lshift, double_int_rshift): Declare.
26586         (double_int_negative_p): Convert to static inline function.
26587         * double-int.c (double_int_lshift, double_int_lshift): New functions.
26588         (double_int_negative_p): Remove.
26589         * tree.h (lshift_double, rshift_double):
26590         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
26591         * fold-const.c (fold_convert_const_int_from_real,
26592         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
26593         (lshift_double): Change type of arith argument to bool.
26594         (rshift_double): Change type of arith argument to bool. Correct
26595         comment.
26596         * expmed.c (mask_rtx, lshift_value): (Ditto.).
26597
26598 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
26599
26600         PR target/21803
26601         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
26602         at the start and end of the then/else blocks, and omit them from the
26603         conversion.
26604         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
26605         argument; all callers changed.  Pass zero to old_insns_match_p instead.
26606         (flow_find_head_matching_sequence): New function.
26607         (old_insns_match_p): Check REG_EH_REGION notes for calls.
26608         * basic-block.h (flow_find_cross_jump,
26609         flow_find_head_matching_sequence): Declare functions.
26610
26611 2010-04-14  Jason Merrill  <jason@redhat.com>
26612
26613         PR c++/36625
26614         * c-common.c (attribute_takes_identifier_p): New fn.
26615         * c-common.h: Declare it.
26616
26617 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
26618
26619         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
26620         splitter condition.
26621         (*udivmod<mode>4): Ditto.
26622
26623 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
26624
26625         * config/i386/i386.md (maxmin_int): Rename code attribute from
26626         maxminiprefix and update all users.
26627         (maxmin_float): Ditto from maxminfprefix.
26628         (logic): Ditto from logicprefix.
26629         (absneg_mnemonic): Ditto from absnegprefix.
26630         * config/i386/mmx.md: Update all users of maxminiprefix,
26631         maxminfprefix and logicprefix for rename.
26632         * config/i386/sse.md: Ditto.
26633         * config/i386/sync.md (sync_<code><mode>): Update for
26634         logicprefix rename.
26635
26636 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26637
26638         PR 42966
26639         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
26640         warnings converted to errors.
26641
26642 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
26643
26644         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
26645         used insn_type variable.
26646         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
26647         to avoid set-but-not-used warning.
26648
26649 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
26650
26651         * df-core.c (df_ref_debug): Change format string placeholder
26652         from 0x%x to %#x.
26653         * dwarf2asm.c (dw2_asm_output_data_raw,
26654         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
26655         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
26656         * dwarf2out.c (output_cfi, output_cfi_directive,
26657         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
26658         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
26659         Ditto.
26660         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
26661         * print-rtl.c (print_rtx): Ditto.
26662
26663 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
26664
26665         PR middle-end/42694
26666         * builtins.c (expand_builtin_pow_root): New function to expand pow
26667         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
26668         series of sqrt and cbrt calls under -ffast-math.
26669         (expand_builtin_pow): Call it.
26670
26671 2010-04-14  Michael Matz  <matz@suse.de>
26672
26673         PR tree-optimization/42963
26674         * tree-cfg.c (touched_switch_bbs): New static variable.
26675         (group_case_labels_stmt): New function broken out from ...
26676         (group_case_labels): ... here, use the above.
26677         (start_recording_case_labels): Allocate touched_switch_bbs.
26678         (end_recording_case_labels): Deallocate it, call
26679         group_case_labels_stmt.
26680         (gimple_redirect_edge_and_branch): Remember index of affected BB.
26681
26682 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
26683
26684         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
26685         from insn template.
26686
26687 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
26688
26689         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
26690
26691 2010-04-13  Jan Hubicka  <jh@suse.cz>
26692
26693         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
26694         of optimized out static functions.
26695         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
26696         cost computation.  Also sanity check for overflows.
26697         (update_caller_keys): Update cgraph_edge_badness call; properly
26698         update fibheap and sanity check that it is up to date.
26699         (add_new_edges_to_heap): Update cgraph_edge_badness.
26700         (cgraph_decide_inlining_of_small_function): Likewise;
26701         add sanity checking that badness in heap is up to date;
26702         improve dumping of reason; Update badness of calls to the
26703         offline copy of function currently inlined; dump badness
26704         of functions not inlined because of unit growth limits.
26705
26706 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
26707
26708         PR middle-end/32628
26709         * c-common.c (pointer_int_sum): Disregard overflow that occured only
26710         because of sign-extension change when converting to sizetype here...
26711         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
26712
26713         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
26714         the folding to constants.  Remove redundant final conversion.
26715         (fold_binary) <associate>: Do not associate if the re-association of
26716         constants alone overflows.
26717         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
26718         to the end of the list.
26719         (multiple_of_p) <COND_EXPR>: New case.
26720
26721 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26722
26723         * opt-functions.awk (opt_sanitized_name): New.
26724         (opt_enum): New.
26725         * optc-gen.awk: Use it
26726         * opth-gen.awk: Use it.
26727
26728 2010-04-13  Martin Jambor  <mjambor@suse.cz>
26729
26730         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
26731         (sra_modify_assign): Delete stmts loading dead data even if racc has no
26732         children.  Call replace_uses_with_default_def_ssa_name to handle
26733         SSA_NAES on lhs.
26734
26735 2010-04-13  Michael Matz  <matz@suse.de>
26736
26737         PR middle-end/43730
26738         * builtins.c (expand_builtin_interclass_mathfn): Also create
26739         a register if the predicate doesn't match.
26740
26741 2010-04-13  Diego Novillo  <dnovillo@google.com>
26742
26743         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
26744         * c-pch.c: Include timevar.h.
26745         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
26746         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
26747         * ggc-common.c: Include timevar.h.
26748         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
26749         * timevar.def (TV_PCH_SAVE): Define.
26750         (TV_PCH_CPP_SAVE): Define.
26751         (TV_PCH_PTR_REALLOC): Define.
26752         (TV_PCH_PTR_SORT): Define.
26753         (TV_PCH_RESTORE): Define.
26754         (TV_PCH_CPP_RESTORE): Define.
26755
26756 2010-04-13  Michael Matz  <matz@suse.de>
26757
26758         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
26759         into MINUS_EXPRs.
26760         (can_reassociate_p): New function.
26761         (break_up_subtract_bb, reassociate_bb): Use it.
26762
26763 2010-04-13  Richard Guenther  <rguenther@suse.de>
26764
26765         PR bootstrap/43737
26766         * builtins.c (c_readstr): Fix assert.
26767
26768 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
26769
26770         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
26771         when generating cltd insn.
26772
26773         (*ashl<mode>3_1): Remove special handling for register operand 2.
26774         (*ashlsi3_1_zext): Ditto.
26775         (*ashlhi3_1): Ditto.
26776         (*ashlhi3_1_lea): Ditto.
26777         (*ashlqi3_1): Ditto.
26778         (*ashlqi3_1_lea): Ditto.
26779         (*<shiftrt_insn><mode>3_1): Ditto.
26780         (*<shiftrt_insn>si3_1_zext): Ditto.
26781         (*<shiftrt_insn>qi3_1_slp): Ditto.
26782         (*<rotate_insn><mode>3_1): Ditto.
26783         (*<rotate_insn>si3_1_zext): Ditto.
26784         (*<rotate_insn>qi3_1_slp): Ditto.
26785
26786 2010-04-13  Richard Guenther  <rguenther@suse.de>
26787
26788         * tree-ssa-structalias.c (callused_id): Remove.
26789         (call_stmt_vars): New.
26790         (get_call_vi): Likewise.
26791         (lookup_call_use_vi): Likewise.
26792         (lookup_call_clobber_vi): Likewise.
26793         (get_call_use_vi): Likewise.
26794         (get_call_clobber_vi): Likewise.
26795         (make_transitive_closure_constraints): Likewise.
26796         (handle_const_call): Adjust to do per-call call-used handling.
26797         (handle_pure_call): Likewise.
26798         (find_what_var_points_to): Remove general callused handling.
26799         (init_base_vars): Likewise.
26800         (init_alias_vars): Initialize call_stmt_vars.
26801         (compute_points_to_sets): Process call-used and call-clobbered
26802         vars for call statements.
26803         (delete_points_to_sets): Free call_stmt_vars.
26804
26805 2010-04-13  Richard Guenther  <rguenther@suse.de>
26806
26807         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
26808         Only add RW dependence for dependence distance zero.
26809         Adjust maximal vectorization factor according to dependences.
26810         Move alignment handling ...
26811         (vect_find_same_alignment_drs): ... here.  New function.
26812         (vect_analyze_data_ref_dependences): Adjust.
26813         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
26814         (vect_analyze_data_refs): Adjust minimal vectorization factor
26815         according to data references.
26816         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
26817         dependences before determining the vectorization factor.
26818         Analyze alignment after determining the vectorization factor.
26819         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
26820         dependences before alignment.
26821         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
26822         Adjust prototype.
26823         (vect_analyze_data_refs): Likewise.
26824         (MAX_VECTORIZATION_FACTOR): New define.
26825
26826 2010-04-13  Duncan Sands  <baldrick@free.fr>
26827
26828         * except.h (lang_eh_type_covers): Remove.
26829         * except.c (lang_eh_type_covers): Likewise.
26830
26831 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26832             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
26833
26834         * config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
26835         * config/s390/s390.c: Replace UNTIS_PER_WORD with
26836         UNITS_PER_LONG where it is ABI relevant.
26837         (s390_return_addr_rtx): Likewise.
26838         (s390_back_chain_rtx): Likewise.
26839         (s390_frame_area): Likewise.
26840         (s390_frame_info): Likewise.
26841         (s390_initial_elimination_offset): Likewise.
26842         (save_gprs): Likewise.
26843         (s390_emit_prologue): Likewise.
26844         (s390_emit_epilogue): Likewise.
26845         (s390_function_arg_advance): Likewise.
26846         (s390_function_arg): Likewise.
26847         (s390_va_start): Likewise.
26848         (s390_gimplify_va_arg): Likewise.
26849         (s390_function_profiler): Likewise.
26850         (s390_optimize_prologue): Likewise.
26851         (s390_rtx_costs): Likewise.
26852         (s390_secondary_reload): Likewise.
26853         (s390_promote_function_mode): Likewise.
26854         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
26855         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
26856         registers available.
26857         (s390_unwind_word_mode): New function.
26858         (s390_function_value): Split 64 bit values into register pair if
26859         used as return value.
26860         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
26861         function call parameters.  Handle parallels.
26862         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
26863         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
26864         (DWARF_CIE_DATA_ALIGNMENT): New macro.
26865         (s390_expand_setmem): Remove unused variable src_addr.
26866         * longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
26867         deal with 64 bit registers.
26868         * config/s390/s390.h: Define __zarch__ predefined macro.
26869         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
26870         (UNITS_PER_LONG): New macro.
26871         * libjava/include/s390-signal.h: Define extended ucontext
26872         structure containing the upper halfs of the 64 bit registers.
26873
26874 2010-04-13  Simon Baldwin  <simonb@google.com>
26875
26876         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
26877
26878 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
26879
26880         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
26881         rvalue on the RHS if the LHS is of a non-renamable type.
26882         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
26883
26884 2010-04-13  Matthias Klose  <doko@ubuntu.com>
26885
26886         * gcc.c (cc1_options): Handle -iplugindir before processing
26887         the cc1 spec. Only add -iplugindir once.
26888         (cpp_unique_options): Add -iplugindir option if -fplugin* options
26889         found.
26890         * common.opt (iplugindir): Remove `Separate' property, initialize.
26891         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
26892         option.
26893         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
26894         (distclean): Remove plugin dir.
26895         * doc/invoke.texi: Document -iplugindir.
26896
26897 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
26898
26899         * doc/plugins.texi (Loading Plugins): Document short
26900         -fplugin=foo option.
26901         (Plugin API): Mention default_plugin_dir_name function.
26902
26903         * gcc.c (find_file_spec_function): Add new declaration.
26904         (static_spec_func): Use it for "find-file".
26905         (find_file_spec_function): Add new function.
26906         (cc1_options): Add -iplugindir option if -fplugin* options found.
26907
26908         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
26909
26910         * plugin.c (add_new_plugin): Updated comment, and handle short
26911         plugin name.
26912         (default_plugin_dir_name): Added new function.
26913
26914         * common.opt (iplugindir): New option to set the plugin directory.
26915
26916 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
26917
26918         * config/i386/i386.md (any_rotate): New code iterator.
26919         (rotate_insn): New code attribute.
26920         (rotate): Ditto.
26921         (SWIM124): New mode iterator.
26922         (<rotate_insn>ti3): New expander.
26923         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
26924         any_rotate code iterator.
26925         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
26926         using any_rotate code iterator and SWIM124 mode iterator.
26927         (ix86_rotlti3): New insn_and_split pattern.
26928         (ix86_rotrti3): Ditto.
26929         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
26930         ix86_rotl{di,ti}3 patterns.
26931         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
26932         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
26933         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
26934         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
26935         code iterator and SWI mode iterator.
26936         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
26937         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
26938         code iterator.
26939         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
26940         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
26941         (bswap rotatert splitter): Add splitter.
26942         (bswap splitter): Macroize splitter using any_rotate code iterator.
26943         Add insn predicate to split only for TARGET_USE_XCHGB or when
26944         optimizing function for size.
26945
26946 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
26947
26948         * config/pa/pa.c (emit_move_sequence): Remove use of
26949         deleted variable flag_argument_noalias.
26950
26951 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26952
26953         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
26954         configurations.
26955         Add to unsupported targets list.
26956         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
26957         sparc*-sun-solaris2.[567]* from target lists.
26958         * configure: Regenerate.
26959         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
26960         removal.
26961         Remove Solaris 7 patch references.
26962         (Specific, sparc-sun-solaris2.7): Removed.
26963         (sparc-sun-solaris2*): Update Solaris 7 example.
26964         (sparc64-*-solaris2*): Likewise.
26965
26966 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26967
26968         * config.build (alpha*-dec-osf4*): Remove.
26969         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
26970         of obsolete configurations.
26971         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
26972         support.
26973         * config/alpha/t-osf4: Renamed to ...
26974         * config/alpha/t-osf5: ... this.
26975         * config/alpha/osf.h: Renamed to ...
26976         * config/alpha/osf5.h: ... this.
26977         Merged old osf5.h contents.
26978         Update comments.
26979         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
26980         (EXTRA_SPECS): Removed.
26981         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
26982         reflect removal of Tru64 UNIX V4.0/V5.0 support.
26983         Document that.
26984
26985 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26986
26987         * doc/contrib.texi (Contributors, Rainer Orth): Update.
26988
26989 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
26990
26991         PR/43702
26992         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
26993         __thiscall convention.
26994
26995 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
26996
26997         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
26998         orig_base.
26999         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
27000
27001 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
27002
27003         * function.c (assign_parms_initialize_all): Add unused attribute
27004         to fntype.
27005
27006 2010-04-12  Richard Guenther  <rguenther@suse.de>
27007
27008         * gsstruct.def (GSS_CALL): New.
27009         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
27010         * gimple.h: Include tree-ssa-alias.h.
27011         (struct gimple_statement_call): New.
27012         (union gimple_statement_struct_d): Add gimple_call member.
27013         (gimple_call_reset_alias_info): Declare.
27014         (gimple_call_use_set): New function.
27015         (gimple_call_clobber_set): Likewise.
27016         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
27017         * gimple.c (gimple_call_reset_alias_info): New function.
27018         (gimple_build_call_1): Call it.
27019         * lto-streamer-in.c (input_gimple_stmt): Likewise.
27020         * tree-inline.c (remap_gimple_stmt): Likewise.
27021         (expand_call_inline): Remove callused handling.
27022         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
27023         * tree-dfa.c (dump_variable): Likewise.
27024         * tree-parloops.c (parallelize_loops): Likewise.
27025         * tree-ssa.c (init_tree_ssa): Likewise.
27026         (delete_tree_ssa): Likewise.
27027         * tree-flow-inline.h (is_call_used): Remove.
27028         * tree-flow.h (struct gimple_df): Remove callused member.
27029         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
27030         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
27031         (ref_maybe_used_by_call_p_1): Simplify.
27032         (call_may_clobber_ref_p_1): Likewise.
27033         * tree-ssa-structalias.c (compute_points_to_sets): Set
27034         the call stmt used and clobbered sets.
27035         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
27036         (find_tail_calls): Verify the tail call.
27037
27038 2010-04-12  Richard Guenther  <rguenther@suse.de>
27039
27040         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
27041         single-iteration always-inline inlining.
27042         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
27043         (cgraph_decide_inlining): Do not handle always-inline specially.
27044         (try_inline): Remove always-inline cycle detection special case.
27045         Do not recurse on always-inlines.
27046         (cgraph_early_inlining): Do not iterate if not optimizing.
27047         (cgraph_gate_early_inlining): remove.
27048         (pass_early_inline): Run unconditionally.
27049         (gate_cgraph_decide_inlining): New function.
27050         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
27051         not inlining or optimizing.
27052         (cgraph_decide_inlining_of_small_functions): Also consider
27053         always-inline functions.
27054         (cgraph_default_inline_p): Return true for nodes which should
27055         disregard inline limits.
27056         (estimate_function_body_sizes): Assume zero size and time for
27057         nodes which are marked as disregarding inline limits.
27058         (cgraph_decide_recursive_inlining): Do not perform recursive
27059         inlining on always-inline nodes.
27060
27061 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
27062
27063         PR bootstrap/43699
27064         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
27065         for exprs satisfying handled_component_p.
27066
27067 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
27068
27069         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
27070         non-constant aggregate elements.
27071
27072         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
27073         is a real initialization.
27074
27075 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
27076
27077         PR c/36774
27078         * c-decl.c (start_function): Move forward check for nested function.
27079
27080 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
27081
27082         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
27083         * config/sh/sh.c: Include reload.h.
27084         (sh_legitimize_reload_address): New.
27085         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
27086         sh_legitimize_reload_address.
27087
27088 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
27089
27090         * config/sh/sh.md (*movqi_pop): New insn pattern.
27091         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
27092
27093 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
27094
27095         * config/i386/i386.md (any_shiftrt): New code iterator.
27096         (shiftrt_insn): New code attribute.
27097         (shiftrt): Ditto.
27098         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
27099         using any_shiftrt code iterator.
27100         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
27101         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
27102         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
27103         pattern from corresponding peephole2 patterns.
27104         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
27105         using any_shiftrt code iterator.
27106         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
27107         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
27108         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
27109         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
27110         *{ashr,lshr}<mode>3_cmp_zext.
27111         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
27112
27113 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
27114
27115         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
27116         scratch register.
27117         (*lshr<mode>3_cconly): Ditto.
27118
27119 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
27120
27121         * config/i386/i386.md (lshr<mode>3): Macroize expander from
27122         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
27123         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
27124         pattern from *lshr{di,ti}3_1 and corresponding splitters using
27125         DWI mode iterator.
27126         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
27127         from corresponding peephole2 patterns.
27128         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
27129         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
27130         and *lshrdi3_1_rex64 using SWI mode iterator.
27131         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
27132         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
27133         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
27134         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
27135         and *lshrdi3_cmp_rex64 using SWI mode iterator.
27136         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
27137         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
27138         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
27139         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
27140         SWI mode iterator.
27141
27142 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
27143
27144         * config/i386/i386.md (ashr<mode>3): Macroize expander from
27145         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
27146         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
27147         pattern from *ashr{di,ti}3_1 and corresponding splitters using
27148         DWI mode iterator.
27149         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
27150         from corresponding peephole2 patterns.
27151         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
27152         (ashrsi3_cvt): Rename from ashrsi3_31.
27153         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
27154         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
27155         and x86_64_shift_adj_3 using SWI48 mode iterator.
27156         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
27157         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
27158         and *ashrdi3_1_rex64 using SWI mode iterator.
27159         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
27160         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
27161         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
27162         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
27163         and *ashrdi3_cmp_rex64 using SWI mode iterator.
27164         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
27165         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
27166         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
27167         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
27168         SWI mode iterator.
27169         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
27170         * config/i386/i386.c (ix86_split_ashr): Update for renamed
27171         x86_shift<mode>_adj_3 expanders.
27172
27173 2010-04-10  Wei Guozhi  <carrot@google.com>
27174
27175         PR target/42601
27176         * config/arm/arm.c (arm_pic_static_addr): New function.
27177         (legitimize_pic_address): Call arm_pic_static_addr when it detects
27178         a static symbol.
27179         (arm_output_addr_const_extra): Output expression for new pattern.
27180         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
27181
27182 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
27183
27184         * ira-costs.c (record_reg_classes): Ignore alternatives that are
27185         not enabled.
27186
27187         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
27188         * web.c: Include "insn-config.h" and "recog.h".
27189         (union_match_dups): New function.
27190         (web_main): Call it.
27191         (union_defs): Don't try to recognize match_dups.
27192
27193         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
27194         if doing so would replace the entire pattern.
27195
27196 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
27197
27198         PR target/43707
27199         PR target/43709
27200         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
27201         and splitter pattern.  Change splitter operand 1 predicate to
27202         nonmemory_operand.
27203
27204 2010-04-09  Martin Jambor  <mjambor@suse.cz>
27205
27206         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
27207         lattices are addresses of CONST_DECLs with the same initial value.
27208         (ipcp_print_all_lattices): Print values of CONST_DECLs.
27209         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
27210
27211 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
27212             Bernd Schmidt  <bernds@codesourcery.com>
27213
27214         * loop-invariant.c (replace_uses): New static function.
27215         (move_invariant_reg): Use it to ensure we can replace the uses.
27216
27217 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
27218
27219         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
27220         function template.
27221         (picochip_override_options): Enable section anchors only above -O1.
27222         (picochip_reorg): Fixed a couple of build warnings.
27223
27224 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27225
27226         * configure.ac (plugin -rdynamic test): Log result.
27227         * configure: Regenerate.
27228         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
27229         (RDYNAMIC_SPEC): Define.
27230         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
27231
27232 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27233
27234         * configure.ac: Determine Sun ld version numbers.
27235         (comdat_group): Restrict GNU ld version checks to gld.
27236         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
27237         (enable_comdat): Support --enable-comdat.
27238         * configure: Regenerate.
27239         * doc/install.texi (Configuration): Document --enable-comdat.
27240
27241 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27242
27243         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
27244         * config/sol2-gld.h: ... here.
27245         * config.gcc (sparc*-*-solaris2*): Reflect this.
27246         (i[34567]86-*-solaris2*): Use it.
27247
27248 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
27249
27250         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
27251         setup_clocks_p.
27252         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
27253
27254 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
27255
27256         PR 42965
27257         * diagnostic.c (diagnostic_initialize): Initialize
27258         some_warnings_are_errors.
27259         (diagnostic_finish): New.
27260         (diagnostic_action_after_output): Call it before exiting.
27261         (diagnostic_report_diagnostic): Do not print message here. Set
27262         some_warnings_are_errors.
27263         * diagnostic.h (diagnostic_context): Delete
27264         issue_warnings_are_errors_message. Add some_warnings_are_errors.
27265         (diagnostic_finish): Declare.
27266         * toplev.c (toplev_main): Call it before exit.
27267
27268 2010-04-09  Jason Merrill  <jason@redhat.com>
27269
27270         PR c++/42623
27271         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
27272         for incomplete type.
27273
27274         PR c++/41788
27275         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
27276         based on a warning flag.
27277
27278 2010-04-09  Richard Guenther  <rguenther@suse.de>
27279
27280         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
27281
27282 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
27283
27284         PR bootstrap/43684
27285         * varasm.c (default_assemble_visibility): Wrap vars that are
27286         set, but unused, by targets without GAS.
27287         * config/rs6000/rs6000.c (paired_emit_vector_compare):
27288         Remove set, but unused, vars.
27289         (rs6000_legitimize_tls_address): Likewise.
27290         (altivec_expand_dst_builtin): Likewise.
27291         * config/darwin.c (machopic_classify_symbol): Likewise.
27292         (machopic_indirection_name): Likewise.
27293
27294 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
27295
27296         * config/i386/i386.md (DWI): New mode iterator.
27297         (S): New mode attribute.
27298         (shift_operand): Ditto.
27299         (shift_immediate_operand): Ditto.
27300         (ashl_input_operand): Ditto.
27301         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
27302         using SDWIM mode iterator.
27303         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
27304         pattern from *ashl{di,ti}3_1 and corresponding splitters using
27305         DWI mode iterator.
27306         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
27307         from corresponding peephole2 patterns.
27308         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
27309         and x86_64_shift_adj_1 using SWI48 mode iterator.
27310         (x86_shift<mode>_adj_2): Ditto.
27311         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
27312         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
27313         using SWI48 mode iterator.
27314         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
27315         *ashldi3_cmp_rex64 using SWI mode iterator.
27316         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
27317         *ashldi3_cconly_rex64 using SWI mode iterator.
27318         * config/i386/i386.c (ix86_split_ashl): Update for renamed
27319         x86_shift<mode>_adj_{1,2}.
27320         (ix86_split_ashr): Ditto.
27321         (ix86_split_lshr): Ditto.
27322
27323 2010-04-09  Richard Guenther  <rguenther@suse.de>
27324
27325         * target.h (builtin_conversion): Pass in input and output types.
27326         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
27327         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
27328         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
27329         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
27330
27331         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
27332         Handle AVX modes.
27333         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
27334
27335 2010-04-09  Richard Guenther  <rguenther@suse.de>
27336
27337         PR target/43152
27338         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
27339
27340 2010-04-09  Richard Guenther  <rguenther@suse.de>
27341
27342         * tree-vectorizer.h (struct _stmt_vec_info): Document
27343         that vectype is the type of the LHS.
27344         (supportable_widening_operation, supportable_narrowing_operation):
27345         Get both input and output vector types as arguments.
27346         (vect_is_simple_use_1): Declare.
27347         (get_same_sized_vectype): Likewise.
27348         * tree-vect-loop.c (vect_determine_vectorization_factor):
27349         Set STMT_VINFO_VECTYPE to the vector type of the def.
27350         (vectorizable_reduction): Adjust.
27351         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
27352         Adjust.  Specify the output vector type.
27353         (vect_pattern_recog_1): Adjust.
27354         * tree-vect-stmts.c (get_same_sized_vectype): New function.
27355         (vectorizable_call): Adjust.
27356         (vectorizable_conversion): Likewise.
27357         (vectorizable_operation): Likewise.
27358         (vectorizable_type_demotion): Likewise.
27359         (vectorizable_type_promotion): Likewise.
27360         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
27361         the def.
27362         (vect_is_simple_use_1): New function.
27363         (supportable_widening_operation): Get both input and output
27364         vector types.
27365         (supportable_narrowing_operation): Likewise.
27366         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
27367
27368 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
27369
27370         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
27371         __thiscall and _thiscall as predefined macros.
27372         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
27373         thiscall attribute handling.
27374         (ix86_comp_type_attributes): Likewise.
27375         (ix86_function_regparm): Likewise.
27376         (ix86_return_pops_args): Likewise.
27377         (init_cumulative_args): Likewise.
27378         (find_drap_reg): Likewise.
27379         (ix86_static_chain): Likewise.
27380         (x86_this_parameter): Likewise.
27381         (x86_output_mi_thunk): Likewise.
27382         (ix86_attribute_table): Add description for thiscall attribute.
27383         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
27384         * doc/extend.texi: Add documentation for thiscall.
27385
27386 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
27387
27388         PR c++/28584
27389         * c.opt (Wint-to-pointer-cast): Available in C++.
27390         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
27391
27392 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
27393
27394         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
27395         * calls.c (expand_call): Pass the function type to aggregate_value_p.
27396         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
27397         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
27398         function type instead.  Reorder and simplify checks.
27399
27400         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
27401
27402 2010-04-08  Jing Yu  <jingyu@google.com>
27403             Zdenek Dvorak  <ook@ucw.cz>
27404
27405         PR tree-optimization/42720
27406         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
27407         loop unswitch conditions here from ...
27408         (tree_unswitch_single_loop): ... here.
27409
27410 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
27411
27412         * tree-if-conv.c: Fix comments and simplify logic.
27413
27414 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
27415
27416         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
27417         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
27418         (main_tree_if_conversion): Update call to tree_if_conversion.
27419
27420 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
27421
27422         PR 42485
27423         * doc/invoke.texi (-b,-V): Delete.
27424         * doc/tm.texi: Do not mention -b.
27425         * gcc.c (display_help): Delete -b and -V.
27426         (process_command): Delete -b and -V.
27427         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
27428
27429 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
27430             Wolfgang Gellerich  <gellerich@de.ibm.com>
27431
27432         Implement target hook for loop unrolling
27433         * target.h (loop_unroll_adjust): Add a new target hook function.
27434         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
27435         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
27436         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
27437         (s390_loop_unroll_adjust): Implement the new target hook for s390.
27438         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
27439         target hook.
27440         (decide_unroll_stupid): Likewise.
27441
27442 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27443
27444         PR target/43643
27445         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
27446
27447 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27448
27449         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
27450         (Specific, *-*-solaris2*): Likewise.
27451         Don't prefer Sun as over GNU as.
27452
27453 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
27454
27455         * config/s390/s390.c (override_options): Adjust the z10 defaults
27456         for max-unroll-times, max-completely-peeled-insns
27457         and max-completely-peel-times.
27458
27459 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
27460
27461         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
27462         instructions for z10.
27463         (s390_expand_setmem): Likewise.
27464         (s390_expand_cmpmem): Likewise.
27465
27466 2010-04-08  Richard Guenther  <rguenther@suse.de>
27467
27468         PR tree-optimization/43679
27469         * tree-ssa-pre.c (eliminate): Only propagate copies.
27470
27471 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
27472
27473         PR bootstrap/43681
27474         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
27475         set but not used variable warning.
27476
27477 2010-04-08  Wei Guozhi  <carrot@google.com>
27478
27479         PR target/41653
27480         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
27481         (arm_size_rtx_costs): Call the new function when optimized for size.
27482
27483 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
27484
27485         PR debug/43670
27486         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
27487         op0 is not a MEM, just return NULL instead of assertion
27488         failure.
27489         (discover_nonconstant_array_refs): Don't walk debug stmts.
27490
27491 2010-04-08  Doug Kwan  <dougkwan@google.com>
27492
27493         * configure.ac: Recognize gold and do not use its version number
27494         to test ld features.
27495         * configure: Regenerate.
27496
27497 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
27498
27499         PR middle-end/40815
27500         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
27501         (negate_value): Move code to push elements to broken_up_substracts ...
27502         (eliminate_plus_minus_pair): ... here.  Push operands that have no
27503         negative pair to plus_negates.
27504         (repropagate_negates, init_reassoc, fini_reassoc): Update.
27505
27506 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
27507
27508         * doc/install.texi (Configuration): Move description of
27509         --enable-lto, --with-libelf*, --enable-gold from Java section to
27510         general section.
27511
27512         * doc/generic.texi (Working with declarations)
27513         (Function Properties, C and C++ Trees): Fix typos.
27514         * doc/sourcebuild.texi (Top Level): Likewise.
27515
27516 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
27517
27518         PR c/18624
27519         * tree.h (DECL_READ_P): Define.
27520         (struct tree_decl_common): Add decl_read_flag.
27521         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
27522         a set but not used warning.
27523         (merge_decls): Merge DECL_READ_P flag.
27524         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
27525         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
27526         * c-common.c (handle_used_attribute, handle_unused_attribute):
27527         Likewise.
27528         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
27529         New prototypes.
27530         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
27531         New functions.
27532         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
27533         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
27534         c_parser_binary_expression, c_parser_cast_expression,
27535         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
27536         Call default_function_array_read_conversion instead of
27537         default_function_array_conversion where needed.
27538         (c_parser_unary_expression, c_parser_conditional_expression,
27539         c_parser_postfix_expression_after_primary, c_parser_initelt):
27540         Likewise.  Call mark_exp_read where needed.
27541         (c_parser_statement_after_labels, c_parser_asm_operands,
27542         c_parser_typeof_specifier, c_parser_sizeof_expression,
27543         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
27544         where needed.
27545         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
27546         New.
27547         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
27548         (warn_unused_but_set_parameter): Default to warn_unused
27549         && extra_warnings.
27550         * doc/invoke.texi: Document -Wunused-but-set-variable and
27551         -Wunused-but-set-parameter.
27552
27553         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
27554         used count variable.
27555         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
27556         when operandN variables aren't used in the body of the expander
27557         or splitter.
27558         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
27559         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
27560         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
27561         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
27562         FOR_EACH_IMM_USE_ON_STMT): Likewise.
27563         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
27564         * tree.c (PROCESS_ARG): Likewise.
27565
27566 2010-04-07  Simon Baldwin  <simonb@google.com>
27567
27568         * diagnostic.h (diagnostic_override_option_index): New macro to
27569         set a diagnostic's option_index.
27570         * c-tree.h (c_cpp_error): Add warning reason argument.
27571         * opts.c (_warning_as_error_callback): New.
27572         (register_warning_as_error_callback): Store callback for
27573         warnings enabled via enable_warning_as_error.
27574         (enable_warning_as_error): Call callback, minor code tidy.
27575         * opts.h (register_warning_as_error_callback): Declare.
27576         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
27577         response to -Werror=.
27578         (c_common_init_options): Register warning_as_error_callback in opts.c.
27579         * common.opt: Add -Wno-cpp option.
27580         * c-common.c (struct reason_option_codes_t): Map cpp warning
27581         reason codes to gcc option indexes.
27582         * (c_option_controlling_cpp_error): New function, lookup the gcc
27583         option index for a cpp warning reason code.
27584         * (c_cpp_error): Add warning reason argument, call
27585         c_option_controlling_cpp_error for diagnostic_override_option_index.
27586         * doc/invoke.texi: Document -Wno-cpp.
27587
27588 2010-04-07  Richard Guenther  <rguenther@suse.de>
27589
27590         * ipa-reference.c (mark_load): Use get_base_address.
27591         (mark_store): Likewise.
27592
27593         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
27594         inserting GIMPLE_NOPs into the IL.
27595         * tree-ssa-structalias.c (get_constraint_for_component_ref):
27596         Explicitly strip handled components and indirect references.
27597
27598         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
27599         folding address expressions.
27600         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
27601         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
27602         operand_equal_p to compare decls.
27603         (ptr_deref_may_alias_decl_p): Likewise.
27604         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
27605         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
27606         Handle reversed comparison ops.
27607         * tree-sra.c (asm_visit_addr): Use get_base_address.
27608         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
27609         * ipa-reference.c (mark_address): Use get_base_address.
27610
27611 2010-04-07  Richard Guenther  <rguenther@suse.de>
27612
27613         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
27614         Propagate constants everywhere.
27615
27616 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
27617
27618         PR debug/43516
27619         * tree.c (MAX_INT_CACHED_PREC): Define.
27620         (nonstandard_integer_type_cache): New array.
27621         (build_nonstandard_integer_type): Cache results for precision
27622         <= MAX_INT_CACHED_PREC.
27623
27624 2010-04-07  Richard Guenther  <rguenther@suse.de>
27625
27626         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
27627         -fargument-noalias-global, -fargument-noalias-anything): Remove.
27628         * common.opt: Likewise.
27629         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
27630         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
27631         (nonoverlapping_memrefs_p): Likewise.
27632         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
27633         * opts.c (common_handle_option): Handle OPT_fargument_alias,
27634         OPT_fargument_noalias, OPT_fargument_noalias_anything and
27635         OPT_fargument_noalias_global for backward compatibility.
27636
27637 2010-04-07  Richard Guenther  <rguenther@suse.de>
27638
27639         PR tree-optimization/43270
27640         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
27641         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
27642         * tree-ssa-pre.c (phi_translate_1): Adjust.
27643         (fully_constant_expression): Split out vn_reference handling to ...
27644         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
27645         Fold reads from constant strings.
27646         (vn_reference_lookup): Handle fully constant references.
27647         (vn_reference_lookup_pieces): Likewise.
27648         * Makefile.in (expmed.o-warn): Add -Wno-error.
27649
27650 2010-04-07  Martin Jambor  <mjambor@suse.cz>
27651
27652         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
27653
27654 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
27655
27656         PR driver/41594
27657         * gcc.c: Add -static-libstdc++ to list of recognized options.
27658
27659 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27660
27661         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
27662
27663 2010-04-07  Richard Guenther  <rguenther@suse.de>
27664
27665         PR middle-end/42617
27666         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
27667         bases build simple mem attributes to retain points-to information.
27668
27669 2010-04-07  Richard Guenther  <rguenther@suse.de>
27670
27671         PR middle-end/42617
27672         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
27673         preserve points-to related information.
27674
27675 2010-04-07  Richard Guenther  <rguenther@suse.de>
27676
27677         PR middle-end/42617
27678         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
27679         discard plain indirect references.
27680         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
27681         * tree.c (tree_nop_conversion): Likewise.
27682
27683 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
27684
27685         PR debug/43628
27686         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
27687
27688 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
27689
27690         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
27691         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
27692
27693 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
27694
27695         * tree-if-conv.c: Fix indentation and comments.
27696
27697 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
27698
27699         * tree-if-conv.c: Sort static functions in topological order.
27700
27701 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
27702
27703         * tree-if-conv.c: Fix indentation and comments.
27704
27705 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
27706
27707         PR middle-end/43519
27708         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
27709         lang_hooks.types.type_for_size instead of
27710         build_nonstandard_integer_type.
27711         When converting an unsigned type to signed, double its precision.
27712         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
27713         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
27714         (graphite_create_new_loop_guard): When ub + 1 wraps around,
27715         use lb <= ub.
27716
27717 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
27718
27719         PR middle-end/43519
27720         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
27721         POINTER_PLUS_EXPR for pointer types.
27722
27723 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
27724
27725         PR middle-end/43519
27726         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
27727         * graphite-clast-to-gimple.c: Include langhooks.h.
27728         (max_signed_precision_type): New.
27729         (max_precision_type): Takes two types as arguments.
27730         (precision_for_value): New.
27731         (precision_for_interval): New.
27732         (gcc_type_for_interval): New.
27733         (gcc_type_for_value): New.
27734         (gcc_type_for_clast_term): New.
27735         (gcc_type_for_clast_red): New.
27736         (gcc_type_for_clast_bin): New.
27737         (gcc_type_for_clast_expr): Split up into several functions.
27738         (gcc_type_for_clast_eq): Rewritten.
27739         (compute_bounds_for_level): New.
27740         (compute_type_for_level_1): New.
27741         (compute_type_for_level): New.
27742         (gcc_type_for_cloog_iv): Removed.
27743         (gcc_type_for_iv_of_clast_loop): Rewritten.
27744         (graphite_create_new_loop): Compute the lower and upper bound types
27745         with gcc_type_for_clast_expr.
27746         (graphite_create_new_loop_guard): Same.
27747         (find_cloog_iv_in_expr): Removed.
27748         (compute_cloog_iv_types_1): Removed.
27749         (compute_cloog_iv_types): Removed.
27750         (gloog): Do not call compute_cloog_iv_types.
27751         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
27752         GBB_CLOOG_IV_TYPES.
27753         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
27754         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
27755         (GBB_CLOOG_IV_TYPES): Removed.
27756
27757 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
27758
27759         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
27760         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
27761         (detect_commutative_reduction): Same.
27762
27763 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
27764
27765         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
27766         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
27767         argument.
27768         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
27769         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
27770         (rewrite_commutative_reductions_out_of_ssa): Same.
27771         * passes.c (execute_function_todo): Call verify_ssa for every pass
27772         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
27773         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
27774         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
27775         with an extra argument.
27776         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
27777         verify_ssa only when the extra argument is true.
27778         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
27779         with an extra argument.
27780         (tree_transform_and_unroll_loop): Same.
27781
27782 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
27783
27784         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
27785         for all the passes of the LNO having LOOP_CLOSED_SSA.
27786         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
27787         * tree-loop-distribution.c (pass_loop_distribution): Same.
27788         * tree-pass.h (TODO_verify_loops): Removed.
27789         * tree-ssa-loop.c (pass_tree_loop_init): Same.
27790         (pass_lim): Same.
27791         (pass_tree_unswitch): Same.
27792         (pass_predcom): Same.
27793         (pass_vectorize): Same.
27794         (pass_linear_transform): Same.
27795         (pass_graphite_transforms): Same.
27796         (pass_iv_canon): Same.
27797         (pass_complete_unroll): Same.
27798         (pass_complete_unrolli): Same.
27799         (pass_parallelize_loops): Same.
27800         (pass_loop_prefetch): Same.
27801         (pass_iv_optimize): Same.
27802
27803 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
27804
27805         PR middle-end/32824
27806         * passes.c (init_optimization_passes): Move pass_lim before
27807         pass_copy_prop and pass_dce_loop.
27808
27809 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
27810
27811         PR target/43667
27812         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
27813         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
27814         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
27815         MULTI_* defines for 4 argument vpermil2p* builtins.
27816
27817 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
27818
27819         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
27820         * config/i386/i386.c (x86_maybe_negate_const_int): New.
27821         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
27822         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
27823         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
27824         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
27825         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
27826         Use x86_maybe_negate_const_int to output insn mnemonic.
27827         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
27828         check from instruction predicate.  Update comments.
27829         * config/i386/sync.md (sync_add<mode>): Use
27830         x86_maybe_negate_const_int to output insn mnemonic.
27831
27832 2010-04-06  Jan Hubicka  <jh@suse.cz>
27833
27834         PR tree-optimization/42906
27835         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
27836         IGNORE_SELF argument.  Set visited_control_parents for fully
27837         processed BBs.
27838         (find_obviously_necessary_stmts): Update call of
27839         mark_control_dependent_edges_necessary.
27840         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
27841
27842 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
27843
27844         * config/i386/i386.md: Remove comment about 'e' and 'E'
27845         operand modifier.
27846
27847 2010-04-06  Richard Guenther  <rguenther@suse.de>
27848
27849         PR tree-optimization/43627
27850         * tree-vrp.c (extract_range_from_unary_expr): Widenings
27851         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
27852         not varying.
27853
27854 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
27855
27856         * BASE-VER: Change to 4.6.0.
27857
27858         PR target/43638
27859         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
27860         handling.
27861
27862 2010-04-06  Richard Guenther  <rguenther@suse.de>
27863
27864         PR middle-end/43661
27865         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
27866
27867 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
27868
27869         * doc/invoke.texi (Optimize Options): Document that LTO
27870         won't remove object access purely due to incompatible
27871         declarations.
27872
27873 2010-04-04  Matthias Klose  <doko@ubuntu.com>
27874
27875         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
27876         Initialize variable.
27877
27878 2010-04-03  Richard Guenther  <rguenther@suse.de>
27879
27880         PR middle-end/42509
27881         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
27882         require a non-NULL MEM_OFFSET.
27883
27884 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
27885
27886         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
27887         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
27888         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
27889         config/alpha/predicates.md, config/arm/arm.md,
27890         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
27891         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
27892         config/darwin9.h, config/darwin.c, config/darwin.h,
27893         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
27894         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
27895         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
27896         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
27897         config/mips/mips.md, config/mn10300/mn10300.c,
27898         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
27899         config/rs6000/aix.h, config/rs6000/dfp.md,
27900         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
27901         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
27902         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
27903         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
27904         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
27905         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
27906         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
27907         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
27908         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
27909         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
27910         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
27911         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
27912         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
27913         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
27914         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
27915         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
27916         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
27917         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
27918         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
27919         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
27920         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
27921         opt-functions.awk, opth-gen.awk, params.def, passes.c,
27922         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
27923         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
27924         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
27925         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
27926         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
27927         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
27928         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
27929         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
27930         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
27931         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
27932         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
27933         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
27934         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
27935         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
27936
27937 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
27938
27939         PR other/43620
27940         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
27941         * aclocal.m4: Regenerate.
27942
27943 2010-04-02  Richard Guenther  <rguenther@suse.de>
27944
27945         PR tree-optimization/43629
27946         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
27947         if we have seen a constant value.
27948
27949 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
27950
27951         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
27952
27953 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
27954
27955         PR target/43469
27956         * arm.c (legitimize_tls_address): Adjust call to
27957         gen_tls_load_dot_plus_four.
27958         (arm_note_pic_base): New function.
27959         (arm_cannot_copy_insn_p): Use it.
27960         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
27961         constraint.
27962
27963 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
27964
27965         PR bootstrap/43531
27966
27967         Revert:
27968         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
27969
27970         * Makefile.in ($(out_object_file)): Depend on
27971         gt-$(basename $(notdir $(out_file))).h.
27972
27973 2010-04-01  Ralf Corsépius  <ralf.corsepius@rtems.org>
27974
27975         * config.gcc (lm32-*-rtems*): Add t-lm32.
27976
27977 2010-04-01  Joel Sherrill  <joel.sherrill@oarcorp.com>
27978
27979         * config.gcc: Add lm32-*-rtems*.
27980         * config/lm32/rtems.h: New file.
27981
27982 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
27983
27984         PR target/42609
27985         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
27986
27987 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
27988
27989         * dwarf2out.c (output_compilation_unit_header): For
27990         -gdwarf-4 use version 4 instead of version 3.
27991         (output_line_info): For version 4 and above emit additional
27992         maximum ops per insn header field.
27993         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
27994
27995         * dwarf2out.c (is_c_family, is_java): Remove.
27996         (lower_bound_default): New function.
27997         (add_bound_info, gen_descr_array_type_die): Use it.
27998
27999 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
28000
28001         PR debug/43325
28002         * dwarf2out.c (gen_variable_die): Allow debug info for variable
28003         re-declaration when it happens in a function.
28004
28005 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
28006
28007         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
28008         (cgraph_remove_function_insertion_hook): Same.
28009         (cgraph_call_function_insertion_hooks): Same.
28010
28011 2010-04-01  Richard Guenther  <rguenther@suse.de>
28012
28013         PR middle-end/43614
28014         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
28015         and TREE_THIS_VOLATILE.
28016         (copy_ref_info): Likewise.
28017         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
28018         * tree.c (build6_stat): Ignore side-effects of all but arg5
28019         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
28020         TARGET_MEM_REF.
28021
28022 2010-04-01  Richard Guenther  <rguenther@suse.de>
28023
28024         PR tree-optimization/43607
28025         * ipa-type-escape.c (check_call): Do not access non-existing
28026         arguments.
28027
28028 2010-04-01  Richard Guenther  <rguenther@suse.de>
28029
28030         PR middle-end/43602
28031         Revert
28032         2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
28033                     Jack Howarth  <howarth@bromo.med.uc.edu>
28034
28035         * tree-profile.c (tree_init_ic_make_global_vars): Make static
28036         variables TLS.
28037
28038 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28039
28040         * doc/install.texi (Prerequisites): Document libelf usability on
28041         IRIX 5/6 and Solaris 2.
28042         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
28043         Update GNU as, GNU ld requirements.
28044         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
28045         Document Sun Studio compiler download.
28046         Update and simplify as, ld recommendations.
28047         (Specific, *-*-solaris2.7): Note obsoletion, removal.
28048
28049 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28050
28051         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
28052         with_tune_32 to pentium4.
28053
28054 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
28055
28056         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
28057
28058 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28059
28060         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
28061         obsoletion, removal.
28062         Update IDO URL.
28063         Document GNU as requirement.
28064         Update configure requirements.
28065         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
28066         Recomment IRIX 6.5.18+.
28067         Document IDF/IDL requirement.
28068         Document GNU as requirement.
28069         Document GNU ld bootstrap failure.
28070         Remove freeware.sgi.com reference.
28071
28072 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28073
28074         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
28075         UNIX V4.0, V5.0 obsoletion, removal.
28076         Remove --with-gc=simple reference.
28077         Update VM requirements during bootstrap.
28078         Remove -oldas bootstrap description.
28079         Update binutils reference.
28080         Remove comparison failure note.
28081
28082 2010-03-31  Richard Guenther  <rguenther@suse.de>
28083             Zdenek Dvorak  <ook@ucw.cz>
28084             Sebastian Pop  <sebastian.pop@amd.com>
28085
28086         PR middle-end/43464
28087         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
28088         with multiple arguments.
28089         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
28090
28091 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
28092
28093         * graphite-dependences.c (print_pddr): Call print_pdr with an
28094         extra argument.
28095         * graphite-poly.c (debug_pdr): Add an extra argument for the
28096         verbosity level.
28097         (print_pdr): Same.
28098         (print_pbb_domain): Same.
28099         (print_pbb): Same.
28100         (print_scop_context): Same.
28101         (print_scop): Same.
28102         (print_cloog): Same.
28103         (debug_pbb_domain): Same.
28104         (debug_pbb): Same.
28105         (print_pdrs): Same.
28106         (debug_pdrs): Same.
28107         (debug_scop_context): Same.
28108         (debug_scop): Same.
28109         (debug_cloog): Same.
28110         (print_scop_params): Same.
28111         (debug_scop_params): Same.
28112         (print_iteration_domain): Same.
28113         (print_iteration_domains): Same.
28114         (debug_iteration_domain): Same.
28115         (debug_iteration_domains): Same.
28116         (print_scattering_function): Same.
28117         (print_scattering_functions): Same.
28118         (debug_scattering_function): Same.
28119         (debug_scattering_functions): Same.
28120         * graphite-poly.h (debug_pdr): Update declaration.
28121         (print_pdr): Same.
28122         (print_pbb_domain): Same.
28123         (print_pbb): Same.
28124         (print_scop_context): Same.
28125         (print_scop): Same.
28126         (print_cloog): Same.
28127         (debug_pbb_domain): Same.
28128         (debug_pbb): Same.
28129         (print_pdrs): Same.
28130         (debug_pdrs): Same.
28131         (debug_scop_context): Same.
28132         (debug_scop): Same.
28133         (debug_cloog): Same.
28134         (print_scop_params): Same.
28135         (debug_scop_params): Same.
28136         (print_iteration_domain): Same.
28137         (print_iteration_domains): Same.
28138         (debug_iteration_domain): Same.
28139         (debug_iteration_domains): Same.
28140         (print_scattering_function): Same.
28141         (print_scattering_functions): Same.
28142         (debug_scattering_function): Same.
28143         (debug_scattering_functions): Same.
28144
28145 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
28146
28147         * graphite-poly.c (print_scattering_function_1): New.
28148         (print_scattering_function): Call it.
28149         (print_scop_params): Remove spaces at the end of lines.
28150         (print_cloog): New.
28151         (debug_cloog): New.
28152         * graphite-poly.h (print_cloog): Declared.
28153         (debug_cloog): Declared.
28154
28155 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
28156
28157         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
28158         in loop->header.
28159         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
28160         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
28161         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
28162         to switch between adding the IV bump in loop->latch or in loop->header.
28163
28164 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
28165
28166         * graphite-poly.c (print_scattering_function): Pretty print following
28167         the scoplib format.
28168         (print_pdr): Same.
28169         (print_pbb_domain): Same.
28170         (dump_gbb_cases): Same.
28171         (dump_gbb_conditions): Same.
28172         (print_pdrs): Same.
28173         (print_pbb): Same.
28174         (print_scop_params): Same.
28175         (print_scop_context): Same.
28176         (print_scop): Same.
28177         (print_pbb_body): New.
28178         (lst_indent_to): New.
28179         (print_lst): Start new lines with a #.
28180         * graphite-poly.h (pbb_bb): New.
28181         (pbb_index): Use pbb_bb.
28182         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
28183         disjuncts.
28184         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
28185
28186 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
28187
28188         * dwarf2out.c (size_of_die): For -gdwarf-4 use
28189         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
28190         and 0 instead of 1 for dw_val_class_flag.
28191         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
28192         dw_val_class_range_list, dw_val_class_loc_list,
28193         dw_val_class_lineptr and dw_val_class_macptr, use
28194         DW_FORM_flag_present for dw_val_class_flag and
28195         DW_FORM_exprloc for dw_val_class_loc.
28196         (output_die): For -gdwarf-4 print dw_val_class_loc
28197         size as uleb128 instead of 1 or 2 bytes and don't print
28198         anything for dw_val_class_flag.
28199
28200         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
28201         instead of cselib_lookup following by tweaking locs->setting_insn.
28202
28203         PR bootstrap/43596
28204         * cselib.c (cselib_process_insn): Clear cselib_current_insn
28205         even before returning from label, setjmp call or volatile asm
28206         handling.
28207
28208 2010-03-31  Richard Guenther  <rguenther@suse.de>
28209
28210         PR middle-end/43600
28211         * cgraphunit.c (cgraph_output_in_order): Do not allocate
28212         temporary data on stack.
28213
28214 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28215
28216         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
28217         (PUSHSECTION_ASM_OP): Remove.
28218         (POPSECTION_ASM_OP): Remove.
28219         (PUSHSECTION_FORMAT): Remove.
28220         * config/sol2.h (PUSHSECTION_FORMAT): Define.
28221         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
28222         * config/sol2.c (solaris_output_init_fini): Use it.
28223
28224 2010-03-31  Jie Zhang  <jie@codesourcery.com>
28225
28226         PR 43574
28227         * opt-functions.awk (var_type_struct): Use signed char type
28228         for simple variables.
28229
28230 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28231
28232         * config/sol2.c: Include output.h.
28233         (solaris_assemble_visibility): New function.
28234         * config/t-sol2 (sol2.o): Add output.h dependency.
28235         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
28236         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
28237         Redefine.
28238
28239 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
28240
28241         PR target/43580
28242         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
28243         V2SImode or XFmode on PRE_DEC.
28244
28245         PR debug/43557
28246         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
28247         BLKmode.
28248
28249 2010-03-31  Jie Zhang  <jie@codesourcery.com>
28250
28251         PR 43562
28252         * reload.h (caller_save_initialized_p): Declare.
28253         * toplev.c (backend_init_target): Don't call
28254         init_caller_save but set caller_save_initialized_p to false.
28255         * caller-save.c (caller_save_initialized_p): Define.
28256         (init_caller_save): Check caller_save_initialized_p.
28257         * ira.c (ira): Call init_caller_save if flag_caller_saves.
28258
28259 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28260
28261         PR target/39048
28262         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
28263         and soft-fp/t-softfp to tmake_file.
28264         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
28265         (LIBGCC2_TF_CEXT): Define.
28266         (TF_SIZE): Define.
28267
28268 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
28269
28270         PR debug/42977
28271         * cselib.c (n_useless_values): Document handling of debug locs.
28272         (n_useless_debug_values, n_debug_values): New variables.
28273         (new_elt_loc_list): Don't add to debug values, keep count.
28274         (promote_debug_loc): New.
28275         (cselib_reset_table): Zero new variables.
28276         (entry_and_rtx_equal_p): Promote debug locs.
28277         (discard_useless_locs): Increment n_useless_debug_values for
28278         debug values.
28279         (remove_useless_values): Adjust n_useless_values and n_debug_values
28280         with n_useless_debug_values.
28281         (add_mem_for_addr): Promote debug locs.
28282         (cselib_lookup_mem): Likewise.
28283         (cselib_lookup_addr): Renamed to...
28284         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
28285         (cselib_log_lookup): ... this.  Turn into...
28286         (cselib_lookup_addr): ... new wrapper.
28287         (cselib_lookup_from_insn): New.
28288         (cselib_invalidate_regno): Increment n_useless_debug_values for
28289         debug values.
28290         (cselib_invalidate_mem): Likewise.
28291         (cselib_process_insn): Take n_deleted and n_debug_values into
28292         account to guard remove_useless_value call.
28293         (cselib_finish): Zero n_useless_debug_values.
28294         * cselib.h (cselib_lookup_from_insn): Declare.
28295         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
28296         (sched_analyze_2): Likewise.
28297
28298 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
28299
28300         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
28301         functions.
28302         (adjust_mems): Replace narrowing SUBREG of expression containing
28303         just PLUS, MINUS, MULT and ASHIFT of registers and constants
28304         with operations in the narrower mode.
28305
28306         PR debug/43593
28307         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
28308         regs_invalidated_by_call instead all call_used_reg_set registers.
28309
28310 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
28311
28312         PR middle-end/43430
28313         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
28314         pointer comparisons with types_compatible_p.
28315         * tree-vect-stmts.c (vectorizable_call): Same.
28316         (vectorizable_condition): Same.
28317
28318 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
28319
28320         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
28321         stack check if the mask would be zero.
28322
28323 2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
28324             Jack Howarth  <howarth@bromo.med.uc.edu>
28325
28326         * tree-profile.c (tree_init_ic_make_global_vars): Make static
28327         variables TLS.
28328
28329 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
28330
28331         PR other/25232
28332         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
28333         and __unordtf2.
28334         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
28335         Include ___unordxf2 and ___unordtf2.
28336         * config/i386/libgcc-glibc.ver: Do not define inheritance from
28337         GCC_4.4.0 here.
28338
28339 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
28340
28341         * config/lm32/t-lm32: New file.
28342         * config.gcc: Use the above file when targetting lm32.
28343
28344 2010-03-28  Duncan Sands  <baldrick@free.fr>
28345
28346         * Makefile.in (PLUGIN_HEADERS): Add except.h.
28347
28348 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
28349
28350         PR middle-end/43431
28351         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
28352         Improve vectorization cost model diagnostic.
28353
28354 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
28355
28356         PR middle-end/43436
28357         * tree-vect-data-refs.c (vect_analyze_data_refs): When
28358         compute_data_dependences_for_loop returns false, early exit
28359         and output an extra diagnostic for the failed data reference
28360         analysis.
28361
28362 2010-03-29  Richard Guenther  <rguenther@suse.de>
28363
28364         PR tree-optimization/43560
28365         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
28366         (can_sm_ref_p): Treat stores to readonly locations as trapping.
28367
28368 2010-03-29  Jie Zhang  <jie@codesourcery.com>
28369
28370         PR 43564
28371         * toplev.c (process_options): Set optimization_default_node
28372         and optimization_current_node.
28373         * opts.c (decode_options): Don't set optimization_default_node
28374         and optimization_current_node.
28375
28376 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
28377
28378         * config/rtems.h: Abandon -qrtems_debug.
28379
28380 2010-03-28  Jan Hubicka  <jh@suse.cz>
28381
28382         PR tree-optimization/43505
28383         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
28384         map should not be copied.
28385
28386 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
28387
28388         PR middle-end/41674
28389         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
28390         cdtors, set DECL_PRESERVE_P.
28391         * ipa.c (cgraph_externally_visible_p): Return true if declaration
28392         should be preseved.
28393
28394 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
28395
28396         PR tree-optimization/43528
28397         * stor-layout.c (place_field): Check that constant fits into
28398         unsigned HWI when skipping calculation of MS bitfield layout.
28399
28400 2010-03-27  Jan Hubicka  <jh@suse.cz>
28401
28402         PR middle-end/43391
28403         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
28404         notice_global_symbol work.
28405
28406 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
28407
28408         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
28409         instead of dwarf2out_decl.
28410         (struct var_loc_node): Remove section_label field.
28411         (dwarf2out_function_decl): New function.
28412         (dwarf2out_var_location): Don't set section_label field.
28413         (dwarf2out_begin_function): Don't empty decl_loc_table here.
28414
28415 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
28416
28417         PR tree-optimization/43544
28418         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
28419         First argument for builtin vectorized function hook is now a
28420         tree to be able to distinguish between machine specific and
28421         standard builtins.
28422         * targhooks.c (default_builtin_vectorized_function): Ditto.
28423         * targhooks.h (default_builtin_vectorized_function): Ditto.
28424         * target.h (struct gcc_target): Ditto.
28425         * tree-vect-stmts.c (vectorizable_function): Ditto.
28426         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
28427         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
28428         Ditto.
28429
28430 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
28431
28432         PR c/43381
28433         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
28434         nested binding iff it is a FUNCTION_DECL.
28435         (store_parm_decls_newstyle): Pass nested=true to bind for
28436         FUNCTION_DECLs amongst parameters.
28437
28438 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
28439
28440         * var-tracking.c (vt_expand_loc_callback): Don't run
28441         cselib_expand_value_rtx_cb in dummy mode if
28442         cselib_dummy_expand_value_rtx_cb returned false.
28443
28444         * var-tracking.c (emit_note_insn_var_location): For one part
28445         notes with offset 0, don't add EXPR_LIST around the location.
28446         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
28447         add_location_or_const_value_attribute): Adjust for that change.
28448
28449         PR debug/43540
28450         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
28451         into first operand and location into second.
28452         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
28453         dw_cfi_oprnd_loc for DW_CFA_expression.
28454         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
28455         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
28456         assume first argument is regnum and second argument is location.
28457
28458 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
28459
28460         PR target/42113
28461         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
28462         of scratch register to DImode.  Split to DImode comparison operator.
28463         Use SImode subreg of scratch register in the multiplication.
28464         (*cmp_sadd_sidi): Ditto.
28465         (*cmp_ssub_si): Ditto.
28466         (*cmp_ssub_sidi): Ditto.
28467
28468 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
28469
28470         PR target/43524
28471         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
28472         Remove invalid assert and wrong comment.
28473
28474 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
28475
28476         PR debug/43516
28477         * flags.h (final_insns_dump_p): New extern.
28478         * final.c (final_insns_dump_p): New variable.
28479         (rest_of_clean_state): Set it before -fdump-final-insns=
28480         dumping, clear afterwards.
28481         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
28482         MEM_ALIAS_SET on MEMs.
28483
28484 2010-03-26  David S. Miller  <davem@davemloft.net>
28485
28486         * configure.ac: Fix sparc GOTDATA_OP bug check.
28487         * configure: Rebuild.
28488
28489 2010-03-26  Alan Modra  <amodra@gmail.com>
28490
28491         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
28492
28493 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28494
28495         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
28496         TLS_SECTION_ASM_FLAG.
28497
28498 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
28499
28500         PR bootstrap/43511
28501         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
28502         Clear first_function_block_is_cold.
28503
28504         PR c/43385
28505         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
28506         argument if the argument is truth_value_p.
28507
28508 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
28509
28510         * config/rs6000/constraints.md: Update copyright year for my changes.
28511
28512         PR target/43484
28513         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
28514         used in reg+reg addressing, swap registers.
28515
28516 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
28517
28518         PR debug/43293
28519         * target.h (struct gcc_target): Add code_end hook.
28520         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
28521         if not yet defined.
28522         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
28523         * toplev.c (compile_file): Call targetm.asm_out.code_end
28524         hook before unwind info/debug info output.
28525         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
28526         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
28527         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
28528         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
28529         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
28530         * config/i386/i386.c (ix86_file_end): Renamed to...
28531         (ix86_code_end): ... this.  Make static.  Don't call
28532         file_end_indicate_exec_stack.  Emit unwind info using
28533         final_start_function/final_end_function.
28534         (darwin_x86_file_end): Remove.
28535         (TARGET_ASM_CODE_END): Define.
28536         * config/i386/i386.h (TARGET_ASM_FILE_END,
28537         NEED_INDICATE_EXEC_STACK): Don't define.
28538         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
28539         (TARGET_ASM_FILE_END): Define to darwin_file_end.
28540         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
28541         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
28542
28543         PR target/43498
28544         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
28545         at the beginning and final_end_function at the end.
28546         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
28547
28548 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28549
28550         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
28551         and Sun as TLS syntax.
28552         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
28553         * configure: Regenerate.
28554         * config.in: Regenerate.
28555         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
28556         (default_elf_asm_named_section): Use it.
28557         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
28558         (i386_output_dwarf_dtprel): Likewise.
28559         (output_addr_const_extra): Likewise.
28560         (output_pic_addr_const): Lowercase @GOTTPOFF.
28561         (output_addr_const_extra): Likewise.
28562         (output_pic_addr_const): Lowercase @GOTNTPOFF.
28563         (output_addr_const_extra): Likewise.
28564         (output_pic_addr_const): Lowercase @INDNTPOFF.
28565         (output_addr_const_extra): Likewise.
28566         (output_pic_addr_const): Lowercase @NTPOFF.
28567         (output_addr_const_extra): Likewise.
28568         (output_pic_addr_const): Lowercase @TPOFF.
28569         (output_addr_const_extra): Likewise.
28570         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
28571         (*tls_global_dynamic_64): Likewise.
28572         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
28573         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
28574
28575         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
28576         (ASM_OUTPUT_TLS_COMMON): Use it.
28577         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
28578
28579         PR target/38118
28580         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
28581         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
28582         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
28583         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
28584         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
28585         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
28586
28587 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28588
28589         * config/i386/i386.c (override_options): Don't accept
28590         -mtls-dialect=sun any longer.
28591         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
28592         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
28593         (*tls_local_dynamic_base_32_sun): Likewise.
28594         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
28595
28596 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
28597
28598         PR debug/43508
28599         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
28600         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
28601
28602         PR debug/43479
28603         * ira.c (adjust_cleared_regs): New function.
28604         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
28605
28606         PR debug/19192
28607         PR debug/43479
28608         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
28609         from gimple_block.
28610         * expr.c (expand_expr_real): Restore previous
28611         curr_insn_source_location and curr_insn_block after
28612         expand_expr_real_1 call.
28613         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
28614         instead of expand_expr_real_1.
28615
28616 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
28617
28618         PR rtl-optimization/43413
28619         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
28620         hard regs too.
28621
28622 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
28623
28624         PR target/43348
28625         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
28626         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
28627
28628 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
28629
28630         * config/i386/i386.c (ix86_target_string): Add -mfma.
28631         Fix a typo in comment.
28632
28633 2010-03-22  Mike Stump  <mikestump@comcast.net>
28634
28635         PR target/23071
28636         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
28637         Don't overly align based upon packed packed fields.
28638
28639 2010-03-22  Jason Merrill  <jason@redhat.com>
28640
28641         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
28642         Use () rather than [], and move before the element type.
28643
28644 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28645
28646         * doc/configfiles.texi (Configuration Files): Removed
28647         fixinc/Makefile*, intl/Makefile.*.
28648         * doc/makefile.texi: Fixed markup. Abstract from version
28649         control system used.
28650         (Makefile): Removed obsolete java/parse.y example.
28651         * doc/sourcebuild.texi: Likewise.
28652         (Top Level): Added config, gnattools, libdecnumber, libgcc,
28653         libgomp, libssp.  Removed fastjar.
28654         (Miscellaneous Docs): Clarify location.
28655         Added COPYING3, COPYING3.LIB.
28656         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
28657
28658 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28659
28660         PR target/38085
28661         * config/i386/i386.c (x86_function_profiler)
28662         [!NO_PROFILE_COUNTERS]: Fix typo.
28663         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
28664         instead of callq.
28665
28666 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
28667             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28668
28669         * doc/sourcebuild.texi (Test Directives): Split into six
28670         subsections, with most of the current text in new subsections
28671         Directives, Selectors, and Final Actions.
28672         (Directives): Split list of test directives into multiple
28673         subsubsections.
28674         (Selectors): Describe use and syntax of selectors.
28675         (Effective-Target Keywords): Describe all existing keywords.
28676         (Add Options): Describe features for dg-add-options.
28677         (Require Support): Describe variants of dg-require-support.
28678         (Final Actions): Describe commands to use in dg-final.
28679
28680 2010-03-22  Michael Matz  <matz@suse.de>
28681
28682         PR middle-end/43475
28683         * recog.c (validate_replace_rtx_group): Replace also in
28684         REG_EQUAL and REG_EQUIV notes.
28685
28686 2010-03-22  Richard Guenther  <rguenther@suse.de>
28687
28688         PR tree-optimization/43390
28689         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
28690         sure vector extracts are type correct.
28691
28692 2010-03-22  Richard Guenther  <rguenther@suse.de>
28693
28694         PR middle-end/40106
28695         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
28696         x * sqrt (x) even when optimizing for size if the target
28697         has native support for sqrt.
28698
28699 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
28700
28701         * varasm.c (make_decl_rtl_for_debug): Also clear
28702         flag_mudflap for the duration of make_decl_rtl call.
28703
28704         PR debug/43443
28705         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
28706         locs from preserved VALUEs.
28707
28708 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
28709
28710         PR middle-end/42718
28711         * pa.md (movmemsi): Set align to one if zero.
28712         (movmemdi): Likewise.
28713
28714 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
28715
28716         PR target/42321
28717         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
28718         with their corresponding prologue pushes.
28719
28720 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
28721
28722         PR target/43156
28723         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
28724         at the begining or end.
28725         (spu_expand_epilogue): Likewise.
28726
28727 2010-03-20  Richard Guenther  <rguenther@suse.de>
28728
28729         PR rtl-optimization/43438
28730         * combine.c (make_extraction): Properly zero-/sign-extend an
28731         extraction of the low part of a CONST_INT.  Also handle
28732         CONST_DOUBLE.
28733
28734 2010-03-19  Mike Stump  <mikestump@comcast.net>
28735
28736         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
28737         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
28738         (override_options): Use SUBTARGET32_DEFAULT_CPU.
28739
28740 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
28741
28742         PR c/43211
28743         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
28744         an error.
28745
28746 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
28747
28748         PR rtl-optimization/42258
28749         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
28750         use that may match DEF.
28751
28752         PR target/40697
28753         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
28754         the cost of loading the constant rather than assuming
28755         COSTS_N_INSNS (1).
28756         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
28757         outer code is AND, do the same tests as the andsi3 expander and
28758         return COSTS_N_INSNS (1) if and is cheap.
28759
28760         * optabs.c (avoid_expensive_constant): Fix formatting.
28761
28762 2010-03-19  Michael Matz  <matz@suse.de>
28763
28764         PR c++/43116
28765         * attribs.c (decl_attributes): When rebuilding a function pointer
28766         type use the same qualifiers as the original pointer type.
28767
28768 2010-03-19  Martin Jambor  <mjambor@suse.cz>
28769
28770         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
28771         and is_gimple_ip_invariant_address.
28772
28773 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
28774
28775         Revert
28776         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
28777
28778         * config/arm/arm.c (arm_override_options): Turn off
28779         flag_dwarf2_cfi_asm for AAPCS variants.
28780
28781 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
28782
28783         PR target/43399
28784         * config/arm/arm.c (emit_multi_reg_push): Update comments.
28785         Use PRE_MODIFY instead of PRE_DEC.
28786         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
28787         (vfp_emit_fstmd): Likewise.
28788
28789 2010-03-19  Michael Matz  <matz@suse.de>
28790
28791         PR target/43305
28792         * builtins.c (expand_builtin_interclass_mathfn,
28793         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
28794         if that fails.
28795
28796 2010-03-19  Richard Guenther  <rguenther@suse.de>
28797
28798         PR tree-optimization/43415
28799         * tree-ssa-pre.c (phi_translate): Split out worker to ...
28800         (phi_translate_1): ... this.
28801         (phi_translate): Move all caching here.  Cache all NARY
28802         and REFERENCE translations.
28803
28804 2010-03-19  David S. Miller  <davem@davemloft.net>
28805
28806         With help from Eric Botcazou.
28807         * config/sparc/sparc.c: Include dwarf2out.h.
28808         (emit_pic_helper): Delete.
28809         (pic_helper_symbol_name): Delete.
28810         (pic_helper_emitted_p): Delete.
28811         (pic_helper_needed): New.
28812         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
28813         (get_pc_thunk_name): New.
28814         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
28815         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
28816         Set pic_helper_needed to true.  Don't call emit_pic_helper.
28817         (sparc_expand_prologue): Update load_pic_register call.
28818         (sparc_output_mi_thunk): Likewise.
28819         (sparc_file_end): Emit a hidden comdat symbol for the PIC
28820         thunk if possible.  Output CFI information as needed.
28821
28822 2010-03-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
28823             Jack Howarth  <howarth@bromo.med.uc.edu>
28824
28825         PR target/36399
28826         * config/i386/i386.h: Fix ABI on darwin x86-32.
28827
28828 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
28829
28830         * tree.h: Declare make_decl_rtl_for_debug.
28831         * varasm.c (make_decl_rtl_for_debug): New.
28832         * dwarf2out.c (rtl_for_decl_location): Call it.
28833         * cfgexpand.c (expand_debug_expr): Call it.
28834
28835 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
28836
28837         PR bootstrap/43399
28838         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
28839         mem_mode.
28840
28841         PR bootstrap/43403
28842         * var-tracking.c (vt_init_cfa_base): Do nothing if
28843         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
28844
28845 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
28846
28847         PR debug/42873
28848         * var-tracking.c (canonicalize_vars_star): New.
28849         (dataflow_post_merge_adjust): Use it.
28850
28851 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
28852
28853         PR debug/43058
28854         * var-tracking.c (non_suitable_const): New function.
28855         (add_uses): For DEBUG_INSNs with constants, don't record any
28856         value, instead just the constant value itself.
28857         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
28858         is not VAR_LOC_UNKNOWN_P, set var to the constant.
28859         (emit_notes_in_bb): Likewise.
28860         (emit_note_insn_var_location): For onepart variables if
28861         cur_loc is a VOIDmode constant, use DECL_MODE.
28862
28863 2010-03-18  Martin Jambor  <mjambor@suse.cz>
28864
28865         PR middle-end/42450
28866         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
28867         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
28868         all non-clones.  Moved call redirection...
28869         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
28870         (cgraph_materialize_all_clones): Dispose of all
28871         combined_args_to_skip bitmaps.
28872         (verify_cgraph_node): Do not check for edges pointing to wrong
28873         nodes in inline clones.
28874         * tree-inline.c (copy_bb): Call
28875         cgraph_redirect_edge_call_stmt_to_callee.
28876         * ipa.c (cgraph_remove_unreachable_nodes): Call
28877         cgraph_node_remove_callees even when there are used clones.
28878
28879 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
28880
28881         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
28882
28883 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
28884
28885         PR target/43383
28886         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
28887         for 32bit.
28888
28889 2010-03-18  Michael Matz  <matz@suse.de>
28890
28891         PR middle-end/43419
28892         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
28893         into sqrt(x) if we need to preserve signed zeros.
28894
28895 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
28896             Eric Botcazou  <ebotcazou@adacore.com>
28897
28898         PR rtl-optimization/43360
28899         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
28900         note if we don't know its invariant status.
28901
28902 2010-03-18  Michael Matz  <matz@suse.de>
28903
28904         PR tree-optimization/43402
28905         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
28906         PHI chains of ssa names registered for update.
28907
28908 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
28909
28910         PR target/42427
28911         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
28912         non-offsettable and pre_modify update addressing.
28913         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
28914         and "2" alternatives "#".
28915         (*movdd_softfloat32): Make all alternatives "#";
28916         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
28917         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
28918         (*movdf_softfloat32): Make all alternatives "#";
28919         (movdi): Use the new DIFD mode iterator to create a common splitter
28920         for movdi, movdf and movdd patterns.
28921
28922 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
28923
28924         * common.opt (dumpdir): Remove redundant tab.
28925
28926 2010-03-17  Martin Jambor  <mjambor@suse.cz>
28927
28928         PR tree-optimization/43347
28929         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
28930         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
28931
28932 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
28933
28934         PR rtl-optimization/42216
28935         * regrename.c (create_new_chain): New function, broken out from...
28936         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
28937         appending a use to an empty chain.
28938         (build_def_use): Remove previous changes that convert OP_INOUT to
28939         OP_OUT operands; instead detect the case where an OP_INOUT operand
28940         uses a previously untracked register and create an empty chain for it.
28941
28942 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
28943
28944         * doc/extend.texi (Function Attributes): Rewrite unfinished
28945         sentence in ms_abi documentation.
28946
28947 2010-03-17  Alan Modra  <amodra@gmail.com>
28948
28949         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
28950         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
28951         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
28952         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
28953
28954 2010-03-16  Richard Henderson  <rth@redhat.com>
28955
28956         PR middle-end/43365
28957         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
28958         (lower_try_finally): Save and restore eh_seq around the expansion
28959         of the try-finally.
28960
28961 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
28962
28963         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
28964         statements before splitting block.
28965
28966 2010-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28967
28968         * doc/sourcebuild.texi (Testsuites): Fix markup.
28969         Use pathnames relative to gcc/testsuite.
28970         (Test Directives): Move description of how timeout is determined.
28971         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
28972         (C Tests): Correct gcc.misc-tests directory.
28973         Framework tests now live in gcc.test-framework.
28974
28975 2010-03-16  Richard Guenther  <rguenther@suse.de>
28976
28977         PR middle-end/43379
28978         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
28979         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
28980
28981 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
28982             Alexandre Oliva  <aoliva@redhat.com>
28983
28984         PR tree-optimization/42917
28985         * lambda-code.c (remove_iv): Skip debug statements.
28986         (lambda_loopnest_to_gcc_loopnest): Likewise.
28987         (not_interesting_stmt): Debug statements are not interesting.
28988
28989 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
28990
28991         PR debug/43051
28992         PR debug/43092
28993         * cselib.c (cselib_preserve_constants,
28994         cfa_base_preserved_val): New static variables.
28995         (preserve_only_constants): New function.
28996         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
28997         clear its REG_VALUES.  If cselib_preserve_constants, don't
28998         empty the whole hash table, but preserve there VALUEs with constants,
28999         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
29000         (cselib_preserve_cfa_base_value): New function.
29001         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
29002         (cselib_init): Change argument to int bitfield.  Set
29003         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
29004         is in it.
29005         (cselib_finish): Clear cselib_preserve_constants and
29006         cfa_base_preserved_val.
29007         * cselib.h (enum cselib_record_what): New enum.
29008         (cselib_init): Change argument to int.
29009         (cselib_preserve_cfa_base_value): New prototype.
29010         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
29011         * dse.c (dse_step1): Likewise.
29012         * cfgcleanup.c (thread_jump): Likewise.
29013         * sched-deps.c (sched_analyze): Likewise.
29014         * gcse.c (local_cprop_pass): Likewise.
29015         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
29016         If FN is non-NULL, call the callback always and whenever it returns
29017         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
29018         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
29019         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
29020         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
29021         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
29022         * var-tracking.c: Include recog.h.
29023         (bb_stack_adjust_offset): Remove.
29024         (vt_stack_adjustments): Don't call it, instead just gather the
29025         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
29026         (adjust_stack_reference): Remove.
29027         (compute_cfa_pointer): New function.
29028         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
29029         (struct adjust_mem_data): New type.
29030         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
29031         functions.
29032         (get_address_mode): New function.
29033         (replace_expr_with_values): Use it.
29034         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
29035         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
29036         (adjust_sets): Remove.
29037         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
29038         Use get_address_mode.
29039         (get_adjusted_src): Remove.
29040         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
29041         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
29042         (add_with_sets): Don't call adjust_sets.
29043         (fp_setter, vt_init_cfa_base): New functions.
29044         (vt_initialize): Change return type to bool.  Move most of pool etc.
29045         initialization to the beginning of the function from end.  Pass
29046         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
29047         If !frame_pointer_needed, call vt_stack_adjustment before mos
29048         vector is filled, call vt_init_cfa_base if argp/framep has been
29049         eliminated to sp.  If frame_pointer_needed and argp/framep has
29050         been eliminated to hard frame pointer, set
29051         hard_frame_pointer_adjustment and call vt_init_cfa_base after
29052         encountering fp setter in the prologue.  For MO_ADJUST, call
29053         log_op_type before pusing the op into mos vector, not afterwards.
29054         Call adjust_insn before cselib_process_insn/add_with_sets,
29055         call cancel_changes (0) afterwards.
29056         (variable_tracking_main_1): Adjust for vt_initialize calling
29057         vt_stack_adjustments and returning whether it succeeded or not.
29058
29059 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
29060
29061         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
29062         debug statements.
29063
29064 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
29065
29066         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
29067         has been set.
29068         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
29069         drap_reg has not been set.
29070
29071 2010-03-15  Michael Matz  <matz@suse.de>
29072
29073         PR middle-end/43300
29074         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
29075         use it to expand block copies.
29076         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
29077         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
29078         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
29079
29080 2010-03-15  Richard Guenther  <rguenther@suse.de>
29081
29082         PR tree-optimization/43367
29083         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
29084         elimination check.
29085
29086 2010-03-15  Richard Guenther  <rguenther@suse.de>
29087
29088         PR tree-optimization/43317
29089         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
29090
29091 2010-03-15  Martin Jambor  <mjambor@suse.cz>
29092
29093         PR tree-optimization/43141
29094         * tree-sra.c (create_abstract_origin): New function.
29095         (modify_function): Call create_abstract_origin.
29096
29097 2010-03-15  Chris Demetriou  <cgd@google.com>
29098
29099         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
29100         wasn't copied.
29101
29102 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
29103
29104         PR middle-end/43354
29105         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
29106         call insert_out_of_ssa_copy for default definitions.
29107
29108 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
29109
29110         * graphite-clast-to-gimple.c (my_long_long): Defined.
29111         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
29112         * graphite-sese-to-poly.c (my_long_long): Defined.
29113         (scop_ivs_can_be_represented): Use it.
29114
29115 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
29116
29117         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
29118         graphite-max-bbs-per-function, and loop-block-tile-size.
29119         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
29120         with "maximum".
29121         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
29122
29123 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
29124
29125         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
29126         forward declaration.
29127         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
29128         (add_upper_bounds_from_estimated_nit): New.
29129         (build_loop_iteration_domains): Use it.
29130
29131 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
29132
29133         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
29134
29135 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
29136
29137         PR middle-end/43306
29138         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
29139         should be an INTEGER_CST.  Also handle CASE_CONVERT.
29140
29141 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
29142
29143         * graphite.c (graphite_initialize): To bound the number of bbs per
29144         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
29145         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
29146         * doc/invoke.texi: Document it.
29147
29148 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
29149
29150         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
29151         * graphite-sese-to-poly.h (build_poly_scop): Same.
29152
29153 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
29154
29155         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
29156         the number of parameters in the scop.  Use as an upper bound
29157         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
29158         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
29159         * doc/invoke.texi: Document it.
29160
29161 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
29162
29163         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
29164         * doc/c-tree.texi: Remove.
29165         * doc/generic.texi: Merge c-tree.texi here.
29166         * doc/gccint.texi (Trees): Remove menu entry.
29167         (c-tree.texi): Remove @include.
29168         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
29169         * doc/languages.texi (Reading RTL): Ditto.
29170
29171 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
29172
29173         PR target/42869
29174         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
29175
29176 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
29177
29178         PR middle-end/42431
29179         * config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
29180         code added to work around reload clobbering CONST insns.
29181
29182 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
29183
29184         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
29185         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
29186         (cselib_preserve_only_values): Remove retain argument, don't
29187         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
29188         * cselib.h (cselib_preserve_only_values): Remove retain argument.
29189         * var-tracking.c (micro_operation): Move insn field before union.
29190         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
29191         (struct variable_tracking_info_def): Remove n_mos field, change
29192         mos into a vector of micro_operations.
29193         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
29194         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
29195         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
29196         changing into a vector.
29197         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
29198         come before all other uops generated by add_stores.
29199         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
29200         argument removal.
29201         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
29202         a vector.  Run just one pass over the bbs instead of separate counting
29203         and computation phase.
29204         (vt_finalize): Free VTI (bb)->mos vector instead of array.
29205
29206         PR debug/43329
29207         * tree-inline.c (remap_decls): Put old_var rather than origin_var
29208         into *nonlocalized_list vector.
29209         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
29210         even if origin is non-NULL.
29211         (gen_variable_die): Likewise.
29212         (process_scope_var): Don't change origin.
29213         (gen_decl_die): Likewise.
29214         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
29215         before adding new edges instead of after it, fix moving over
29216         debug stmts.
29217
29218 2010-03-11  David S. Miller  <davem@davemloft.net>
29219
29220         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
29221         of four.
29222         * configure: Rebuild.
29223
29224 2010-03-11  Martin Jambor  <mjambor@suse.cz>
29225
29226         PR tree-optimization/43257
29227         * tree.c (assign_assembler_name_if_neeeded): New function.
29228         (free_lang_data_in_cgraph): Assembler name assignment moved to the
29229         above new function.
29230         * tree.h (assign_assembler_name_if_neeeded): Declare.
29231         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
29232         the function if needed.
29233
29234 2010-03-11  Chris Demetriou  <cgd@google.com>
29235
29236         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
29237         include/stdint-gcc.h, and include/stdint.h world-readable.
29238
29239 2010-03-11  Richard Guenther  <rguenther@suse.de>
29240
29241         PR tree-optimization/43255
29242         * tree-vrp.c (process_assert_insertions_for): Do not insert
29243         asserts for trivial conditions.
29244
29245 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
29246
29247         PR tree-optimization/43280
29248         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
29249         generation.  Move calculation of size out of the if branch.
29250         (find_bswap): Modify compare number generation.
29251
29252 2010-03-11  Richard Guenther  <rguenther@suse.de>
29253
29254         PR lto/43200
29255         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
29256         (input_gimple_stmt): Fixup handled component types during
29257         operand read.  Also fix up decls in ADDR_EXPRs.
29258
29259 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
29260
29261         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
29262         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
29263
29264 2010-03-10  Jan Hubicka  <jh@suse.cz>
29265
29266         PR c/43288
29267         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
29268         * varasm.c (get_variable_section): Don't do that here...
29269         (make_decl_rtl): ... and here.
29270         (do_assemble_alias): Produce decl RTL.
29271         (assemble_alias): Likewise.
29272
29273 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
29274
29275         PR debug/43290
29276         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
29277         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
29278         of fde->vdrap_reg.
29279         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
29280         (based_loc_descr): Only express drap or vdrap regno based expressions
29281         using DW_OP_fbreg when not optimizing.
29282         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
29283         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
29284         REG_CFA_SET_VDRAP note.
29285
29286 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
29287
29288         PR tree-optimization/43236
29289         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
29290         error in calculation of base address in reverse iteration case.
29291         (generate_builtin): Take number of latch executions if the statement
29292         is in the latch.
29293
29294 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
29295
29296         PR middle-end/42859
29297         * tree-eh.c: Include pointer-set.h.
29298         (lower_eh_dispatch): Filter out duplicate case labels and
29299         remove the unneeded edge when the label is unused.  Return
29300         true when some edges are removed.
29301         (execute_lower_eh_dispatch): When any lowering resulted in
29302         removing an edge, also delete unreachable blocks.
29303
29304 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
29305
29306         PR bootstrap/43287
29307         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
29308         UNSPEC_MACHOPIC_OFFSET.
29309
29310 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
29311
29312         PR target/43294
29313         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
29314         (m68k_delegitimize_address): New function.
29315
29316 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
29317
29318         PR debug/43299
29319         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
29320
29321         PR debug/43299
29322         * var-tracking.c (adjust_sets): New function.
29323         (count_with_sets, add_with_sets): Use it.
29324         (get_adjusted_src): New inline function.
29325         (add_stores): Use it.
29326
29327         PR debug/43304
29328         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
29329         call cselib_dummy_expand_value_rtx_cb instead of
29330         cselib_expand_value_rtx_cb.
29331
29332         PR debug/43293
29333         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
29334         * config/i386/i386.c: Include debug.h and dwarf2out.h.
29335         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
29336         and .cfi_endproc around the pic thunks.
29337         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
29338         all queued unwind info register saves are saved before the call.
29339         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
29340         considered as sp-=4 for unwind info and the pop as sp+=4 which
29341         also clobbers dest, but doesn't actually restore it.
29342
29343         PR debug/43290
29344         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
29345         RTX_FRAME_RELATED_P.
29346
29347 2010-03-09  Jie Zhang  <jie@codesourcery.com>
29348
29349         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
29350         whitespaces in output template.
29351
29352 2010-03-09  Jie Zhang  <jie@codesourcery.com>
29353
29354         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
29355         out array boundary.
29356
29357 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
29358
29359         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
29360         builtins.exp in a separate job.
29361
29362 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
29363
29364         * graphite-sese-to-poly.c (add_param_constraints): Use
29365         lower_bound_in_type and upper_bound_in_type.
29366
29367 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
29368
29369         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
29370         instead of unsigned_type_node.
29371
29372 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
29373             Reza Yazdani  <reza.yazdani@amd.com>
29374
29375         PR middle-end/43065
29376         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
29377         on pointer type parameters.
29378
29379 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
29380
29381         PR middle-end/42644
29382         PR middle-end/42130
29383         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
29384         handle conversions from pointer to integers.
29385         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
29386         induction variable, to be able to work with code generated by CLooG.
29387         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
29388         (build_poly_scop): Bail out if we cannot codegen a loop.
29389
29390 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
29391
29392         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
29393         code generation with gloog_error.
29394
29395 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
29396
29397         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
29398         Call fold_convert on all the returned values.
29399         (expand_scalar_variables_expr): Pass to
29400         expand_scalar_variables_ssa_name the type of the resulting expression.
29401
29402 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
29403
29404         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
29405         ppl_min_for_le_pointset.
29406         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
29407         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
29408
29409 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
29410
29411         * graphite-dependences.c (map_into_dep_poly): Removed.
29412         (dependence_polyhedron_1): Use combine_context_id_scat.
29413
29414 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
29415
29416         * graphite-poly.h (struct poly_scattering): Add layout documentation.
29417         (struct poly_bb): Same.
29418         (combine_context_id_scat): New.
29419
29420 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
29421
29422         PR middle-end/42326
29423         * sese.c (name_defined_in_loop_p): Return false for default
29424         definitions.
29425
29426 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
29427
29428         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
29429         and clean up the logic.
29430
29431 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
29432
29433         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
29434         early return.
29435
29436 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
29437
29438         * var-tracking.c (remove_cselib_value_chains): Define only for
29439         ENABLE_CHECKING.
29440         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
29441         delete_slot_part, emit_notes_for_differences_1): Don't call
29442         remove_cselib_value_chains here.
29443         (set_slot_part, emit_notes_for_differences_2): Don't call
29444         add_cselib_value_chains here.
29445         (preserved_values): New vector.
29446         (preserve_value): New function.
29447         (add_uses, add_stores, vt_add_function_parameters): Use it
29448         instead of cselib_preserve_value.
29449         (changed_values_stack): New vector.
29450         (check_changed_vars_0): New function.
29451         (check_changed_vars_1, check_changed_vars_2): Use it.
29452         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
29453         changed_values_stack VALUEs.
29454         (vt_emit_notes): For all preserved_values call
29455         add_cselib_value_chains.  If ENABLE_CHECKING call
29456         remove_cselib_value_chains before verifying value_chains is empty.
29457         Initialize and free changed_values_stack.
29458         (vt_initialize): Initialize preserved_values.
29459         (vt_finalize): Free preserved_values.
29460
29461 2010-03-08  Richard Guenther  <rguenther@suse.de>
29462
29463         PR tree-optimization/43269
29464         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
29465         region detection.
29466
29467 2010-03-08  Martin Jambor  <mjambor@suse.cz>
29468
29469         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
29470         (ipa_is_param_called): Removed.
29471         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
29472         (ipa_print_node_params): Do not print the called flag.
29473         (ipa_write_node_info): Do not stream the called flag.
29474         (ipa_read_node_info): Likewise.
29475
29476 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
29477
29478         PR debug/43176
29479         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
29480         * cselib.c (struct expand_value_data): Add dummy field.
29481         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
29482         dummy to false.
29483         (cselib_dummy_expand_value_rtx_cb): New function.
29484         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
29485         any rtl.
29486         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
29487         * var-tracking.c: Include pointer-set.h.
29488         (variable): Change n_var_parts to char from int.  Add
29489         cur_loc_changed and in_changed_variables fields.
29490         (variable_canonicalize): Remove.
29491         (shared_var_p): New inline function.
29492         (unshare_variable): Maintain cur_loc_changed and
29493         in_changed_variables fields.  If var was in changed_variables,
29494         replace it there with new_var.  Just copy cur_loc instead of
29495         resetting it to something else.
29496         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
29497         (dataflow_set_union): Don't call variable_canonicalize.
29498         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
29499         of their DEBUG_EXPR_TREE_DECLs.
29500         (canonicalize_loc_order_check): Verify that cur_loc is NULL
29501         and in_changed_variables and cur_loc_changed is false.
29502         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
29503         and cur_loc_changed.  Don't update cur_loc here.
29504         (variable_merge_over_src): Don't call variable_canonicalize.
29505         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
29506         removing loc that is equal to cur_loc, clear cur_loc,
29507         set cur_loc_changed and ensure variable_was_changed is called.
29508         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
29509         compare pointers in cur_loc check, if it is equal to loc,
29510         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
29511         (variable_different_p): Remove compare_current_location argument,
29512         don't compare cur_loc.
29513         (dataflow_set_different_1): Adjust variable_different_p caller.
29514         (variable_was_changed): If dv had some var in changed_variables
29515         already, reset in_changed_variables flag for it and propagate
29516         cur_loc_changed over to the new variable.  On empty var
29517         always set cur_loc_changed.  Set in_changed_variables on whatever
29518         var is added to changed_variables.
29519         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
29520         Use shared_var_p.  When removing loc that is equal to cur_loc,
29521         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
29522         end, don't set it to something else, just call variable_was_changed.
29523         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
29524         loc being removed, clear cur_loc and set cur_loc_changed.
29525         Set cur_loc_changed if all locations have been removed.
29526         (struct expand_loc_callback_data): New type.
29527         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
29528         allocated.  Always create SUBREGs if simplify_subreg failed.
29529         Prefer to use cur_loc, when that fails and still in
29530         changed_variables (and seen first time) recompute it.  Set
29531         cur_loc_changed of variables which had to change cur_loc and
29532         compute elcd->cur_loc_changed if any of the subexpressions used
29533         had to change cur_loc.
29534         (vt_expand_loc): Adjust to pass arguments in
29535         expand_loc_callback_data structure.
29536         (vt_expand_loc_dummy): New function.
29537         (emitted_notes): New variable.
29538         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
29539         that weren't used for any other decl in current
29540         emit_notes_for_changes call call vt_expand_loc_dummy to update
29541         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
29542         first loc_chain location if NULL before.  Always use just
29543         cur_loc instead of first loc_chain location.  When cur_loc_changed
29544         is false, when not --enable-checking=rtl just don't emit any note.
29545         When rtl checking, compute the note and assert it is the same
29546         as previous note.  Clear cur_loc_changed and in_changed_variables
29547         at the end before removing from changed_variables.
29548         (check_changed_vars_3): New function.
29549         (emit_notes_for_changes): Traverse changed_vars to call
29550         check_changed_vars_3 on each changed var.
29551         (emit_notes_for_differences_1): Clear cur_loc_changed and
29552         in_changed_variables.  Recompute cur_loc of new_var.
29553         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
29554         (vt_emit_notes): Initialize and destroy emitted_notes.
29555
29556 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
29557
29558         PR rtl-optimization/42220
29559         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
29560         Use verify_reg_tracked to determine if we should use OP_OUT rather
29561         than OP_INOUT.
29562         (build_def_use): If we see an in-out operand for a register that we
29563         know nothing about, treat is an output if possible, fail the block if
29564         not.
29565
29566 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
29567
29568         PR debug/42897
29569         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
29570         permanently.
29571
29572 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
29573
29574         PR debug/42897
29575         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
29576         uses of relevant DEFs that are dead outside the loop too.
29577
29578 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
29579
29580         * var-tracking.c (dataflow_set_merge): Swap src and src2.
29581         Reverted:
29582         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
29583         PR debug/41371
29584         * var-tracking.c (values_to_unmark): New variable.
29585         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
29586         values_to_unmark vector.  Moved body to...
29587         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
29588         instead queue it into values_to_unmark vector.
29589         (vt_find_locations): Free values_to_unmark vector.
29590
29591 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
29592
29593         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
29594         (site.exp): Export them when plugins are enabled.
29595
29596 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
29597
29598         PR middle-end/42326
29599         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
29600         that contain scevs.
29601         (chrec_fold_multiply): Same.
29602
29603 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
29604
29605         PR c/43248
29606         * c-decl.c (build_compound_literal): Return early if init is
29607         an error_mark_node.
29608
29609 2010-03-04  Martin Jambor  <mjambor@suse.cz>
29610
29611         PR tree-optimization/43164
29612         PR tree-optimization/43191
29613         * tree-sra.c (type_consists_of_records_p): Reject records with
29614         zero-size bit-fields at the end.
29615
29616 2010-03-04  Mike Stump  <mikestump@comcast.net>
29617
29618         * Makefile.in (TAGS): Remove *.y.
29619
29620 2010-03-04  Richard Guenther  <rguenther@suse.de>
29621
29622         PR tree-optimization/40761
29623         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
29624         in reverse order.
29625         (my_rev_post_order_compute): New function.
29626         (init_pre): Call it.
29627
29628 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
29629
29630         PR middle-end/43209
29631         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
29632         decrease the cost of an IV candidate when the cost is infinite.
29633
29634 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
29635
29636         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
29637         Use '3DNow!' for the extension of that name, ensure normal space
29638         after the string.
29639         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
29640
29641 2010-03-03  Jeff Law  <law@redhat.com>
29642
29643         * PR middle-end/32693
29644         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
29645         than gen_rtx_SUBREG.
29646         (extract_bit_field_1): Likewise.
29647
29648 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
29649
29650         * doc/sourcebuild.texi (Test directives): Document that arguments
29651         include-opts and exclude-opts are now optional for dg-skip-if,
29652         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
29653
29654 2010-03-03  Jason Merrill  <jason@redhat.com>
29655
29656         PR c++/12909
29657         * cgraph.h (varpool_node): Add extra_name field.
29658         * varpool.c (varpool_extra_name_alias): New.
29659         (varpool_assemble_decl): Emit extra name aliases.
29660         (varpool_mark_needed_node): Look past an extra name alias.
29661         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
29662         * lto-streamer-in.c (lto_input_tree): Read it.
29663         * lto-streamer-out.c (output_unreferenced_globals): Write it.
29664
29665 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
29666
29667         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
29668         (sparc*-*-solaris2*): ...this.
29669
29670 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
29671
29672         PR debug/43229
29673         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
29674         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
29675         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
29676         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
29677
29678         PR debug/43237
29679         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
29680         fallthrough to default handling, just with want_address 0 instead of 2.
29681         For single element lists, add_AT_loc directly, otherwise create an
29682         artificial variable DIE and stick location list to it.
29683
29684         PR debug/43177
29685         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
29686         (VAL_EXPR_HAS_REVERSE): Define.
29687         (reverse_op): New function.
29688         (add_stores): For reversible operations add an extra MO_VAL_USE.
29689
29690 2010-03-02  Jason Merrill  <jason@redhat.com>
29691
29692         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
29693
29694 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
29695
29696         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
29697         (sparc64-*-linux*): Likewise.
29698         (sparc64-*-solaris2*): Include assembler files before linker ones.
29699         (sparc-*-solaris2*): Simplify and reorder to match previous case.
29700         * config/sparc/gas.h: Delete.
29701         * config/sparc/sol2-64.h: Add copyright notice.
29702         * config/sparc/sol2-gas-bi.h: Likewise.
29703         * config/sparc/sol2-gld.h: Likewise.
29704         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
29705         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
29706         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
29707         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
29708         (sparc_elf_asm_named_section): Rename into...
29709         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
29710
29711 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
29712
29713         * config/alpha/alpha.c (override_options): Fix -mtune error message.
29714
29715 2010-03-02  Jeff Law  <law@redhat.com>
29716
29717         PR middle-end/42431
29718         * reload1.c (rtx_p, substitute_stack): Declare.
29719         (substitute): Record addresses of changed rtxs.
29720         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
29721         Restore the original rtx when complete.
29722         (reload): Free subsitute_stack when complete.
29723
29724 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
29725
29726         * doc/gccint.texi (menu): Add Testsuites as a chapter.
29727         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
29728         new chapter.
29729         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
29730         LTO Testing, gcov Testing, profopt Testing, compat Testing,
29731         Torture Tests): Change from subsection to section.
29732
29733 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
29734             Steven Bosscher  <steven@gcc.gnu.org>
29735
29736         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
29737         instead of bb.
29738
29739 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
29740
29741         PR middle-end/42640
29742         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
29743         the assignment from the new induction variable to the assignment
29744         of the value from the original loop PHI function.
29745
29746 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
29747             Daniel Jacobowitz  <dan@codesourcery.com>
29748
29749         * doc/sourcebuild.texi (Test directives): Clarify options to
29750         dg-skip-if.
29751
29752 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29753
29754         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
29755         Disable cfi directives unless GCC and gas agree on using read-only
29756         .eh_frame sections for 64-bit.
29757         * configure: Regenerate.
29758
29759 2010-03-01  Richard Guenther  <rguenther@suse.de>
29760
29761         PR tree-optimization/43220
29762         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
29763         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
29764
29765 2010-03-01  Richard Guenther  <rguenther@suse.de>
29766             Martin Jambor  <mjambor@suse.cz>
29767
29768         PR middle-end/41250
29769         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
29770         gimplified parameters.
29771
29772 2010-03-01  Christian Bruel  <christian.bruel@st.com>
29773
29774         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
29775
29776 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
29777
29778         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
29779
29780 2010-03-01  Richard Guenther  <rguenther@suse.de>
29781
29782         PR middle-end/43213
29783         * expr.c (expand_assignment): Use the alias-oracle to tell
29784         if the rhs aliases the result decl.
29785
29786 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29787
29788         PR pch/14940
29789         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
29790         to sol_gt_pch_get_address.
29791         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
29792         64-bit, SPARC and x86.
29793         (sol_gt_pch_get_address): New function.
29794
29795 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
29796
29797         * toplev.h (inform_n, error_n): Declare.
29798         * diagnostic.c (inform_n, error_n): New function.
29799
29800 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
29801
29802         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
29803         has no rtl yet when processing local_decls, queue it and recheck
29804         if deferred stack allocation hasn't assigned it rtl.
29805
29806 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
29807
29808         * config/sh/sh.c (unspec_bbr_uid): New.
29809         (gen_block_redirect): Use it instead of INSN_UID.
29810         (gen_far_branch): Likewise.
29811
29812 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
29813
29814         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
29815         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
29816
29817 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
29818
29819         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
29820         (Warning Options): -Wno-conversion-null is valid for
29821         Objective-C++ as well.
29822         * doc/tm.texi (Named Address Spaces): Likewise.
29823         * doc/plugins.texi (Plugins): Replace TABs with spaces.
29824         * doc/tree-ssa.texi (Tree SSA): Likewise.
29825
29826 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
29827
29828         PR bootstrap/43202
29829         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
29830         by default.  Don't set the default arch for
29831         i[34567]86-*-darwin*|x86_64-*-darwin*.
29832
29833 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
29834
29835         PR bootstrap/43202
29836         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
29837         default.  Set the default 32bit/64bit archs with $with_arch
29838         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
29839
29840 2010-02-27  Richard Guenther  <rguenther@suse.de>
29841
29842         PR tree-optimization/43186
29843         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
29844         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
29845         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
29846         unroller iterations.
29847
29848 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
29849
29850         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
29851         required and i[34567]86-*-* targets don't support 64bit ISA.
29852
29853 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
29854
29855         PR ada/43096
29856         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
29857         the same alias set.
29858
29859 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
29860
29861         * config.gcc: Set the default arch at least to Prescott for
29862         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
29863         if SSE math is enabled.
29864
29865 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
29866
29867         * diagnostic.c (diagnostic_initialize): Update.
29868         (diagnostic_report_diagnostic): Test inhibit_notes_p for
29869         informative notes.
29870         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
29871         (diagnostic_inhibit_notes): New.
29872         * toplev.c (process_options): inhibit notes with -fcompare-debug.
29873
29874 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
29875
29876         PR c/20631
29877         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
29878         * doc/standards.texi: Likewise.
29879         * doc/extend.texi: Likewise.
29880         * doc/trouble.texi: Likewise.
29881         * doc/cppopts.texi: Likewise.
29882         * doc/install.texi: Likewise.
29883         * c.opt (std=c90,std=gnu90): New options.
29884         * c-opts.c (c_common_handle_option): Handle them.
29885
29886 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
29887
29888         PR c/24577
29889         * c-decl.c (undeclared_variable): Use an informative note.
29890
29891 2010-02-26  Richard Guenther  <rguenther@suse.de>
29892
29893         PR tree-optimization/43186
29894         * gimple.h (gimple_fold): Remove.
29895         * gimple.c (gimple_fold): Remove.  Inline into single user ...
29896         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
29897         Try harder for conditions.
29898
29899 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
29900
29901         PR debug/43190
29902         * function.c (used_types_insert): Don't skip through named pointer
29903         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
29904         and it is different from the main variant's type.
29905
29906 2010-02-26  Nick Clifton  <nickc@redhat.com>
29907
29908         * config/rx/rx.md (sminsi3): Remove bogus alternative.
29909
29910 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
29911
29912         * config.gcc: Support --with-fpmath=sse for x86.
29913
29914         * config/i386/ssemath.h: New.
29915
29916         * doc/install.texi (--with-fpmath=sse): Documented.
29917
29918 2010-02-26  Richard Guenther  <rguenther@suse.de>
29919
29920         PR tree-optimization/43188
29921         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
29922         vector types of over-aligned element type.
29923
29924 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
29925
29926         PR target/43175
29927         * config/i386/i386.c (expand_vec_perm_blend): Use correct
29928         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
29929
29930 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
29931
29932         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
29933
29934 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
29935
29936         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
29937         * var-tracking.c: Include diagnostic.h.
29938         (debug_dv): New function.
29939         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
29940
29941         PR debug/43160
29942         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
29943         (add_value_chain, add_value_chains, remove_value_chain,
29944         remove_value_chains): Handle DEBUG_EXPRs.
29945         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
29946
29947         PR debug/43161
29948         * regcprop.c (struct queued_debug_insn_change): New type.
29949         (struct value_data_entry): Add debug_insn_changes field.
29950         (struct value_data): Add n_debug_insn_changes field.
29951         (debug_insn_changes_pool): New variable.
29952         (free_debug_insn_changes, apply_debug_insn_changes,
29953         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
29954         (kill_value_one_regno): Call free_debug_insn_changes if needed.
29955         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
29956         fields.
29957         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
29958         changes for them.
29959         (copyprop_hardreg_forward_1): Don't call apply_change_group for
29960         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
29961         changes, call cprop_find_used_regs via note_stores.
29962         (copyprop_hardreg_forward): When copying vd from predecessor
29963         which has any queued DEBUG_INSN changes, make sure the pointers are
29964         cleared.  At the end call df_analyze and then if there are any
29965         DEBUG_INSN changes queued at the end of some basic block for still
29966         live registers, apply them.
29967         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
29968
29969 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
29970
29971         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
29972         (arm*-*-*): Ditto.
29973
29974 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
29975
29976         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
29977         targets.  Set the default with_cpu/with_arch from arch/cpu.
29978         Allow x86-64 and native for with_cpu/with_arch.
29979
29980 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
29981
29982         * ebitmap.c: Change calls to verify_popcount with calls to
29983         sbitmap_verify_popcount.
29984         (ebitmap_clear_bit): Fixed map->cacheindex test and
29985         map>cache update when bit clearing results in an empty
29986         element.
29987
29988 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
29989
29990         PR target/43154
29991         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
29992         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
29993         and support both V2DF and V2DI modes.
29994         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
29995         support both V2DF and V2DI modes.
29996         (general): Delete trailing whitespace from a few patterns.
29997
29998         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
29999         V2DF/V2DI interleave high/low builtins.
30000
30001         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
30002         new VSX builtins.
30003
30004         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
30005         interleave high/low functions.
30006
30007 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
30008
30009         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
30010         #pragma extern_prefix.
30011
30012 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
30013
30014         PR debug/43166
30015         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
30016         BLKmode, assert op0 is a MEM and just adjust its mode.
30017
30018         PR debug/43165
30019         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
30020         if bitpos isn't multiple of mode's bitsize.
30021
30022 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
30023
30024         * c.opt (-ftemplate-depth=): New.
30025         (-ftemplate-depth-): Deprecate.
30026         * optc-gen.awk: Handle -ftemplate-depth=.
30027         * opth-gen.awk: Likewise.
30028         * c-opts.c (c_common_handle_option): Likewise.
30029         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
30030
30031 2010-02-24  Jason Merrill  <jason@redhat.com>
30032
30033         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
30034
30035 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30036
30037         * cfg.c (alloc_aux_for_block): Remove inline.
30038         (alloc_aux_for_edge): Likewise.
30039
30040 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30041
30042         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
30043
30044 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30045
30046         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
30047         * config/i386/sol2-gas.h: New file.
30048         * config.gcc (i[34567]86-*-solaris2*): Use it.
30049
30050 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
30051
30052         PR c/43128
30053         * c-typeck.c (ep_convert_and_check): New.
30054         (build_conditional_expr): Use it.
30055         (build_binary_op): Likewise.
30056
30057 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
30058
30059         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
30060
30061         PR debug/43150
30062         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
30063         bounds even for -O+.
30064         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
30065         expr needs to have DECL_NAME set.
30066
30067 2010-02-24  Nick Clifton  <nickc@redhat.com>
30068
30069         * config/mep/mep.c: Include gimple.h.
30070         (mep_function_uses_sp): Delete unused function.
30071         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
30072         parameters.  Use unsigned integers to count args.  Return a
30073         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
30074
30075 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
30076
30077         PR target/43107
30078         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
30079         greater or equal to nelt instead of 2 * nelt.
30080         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
30081         with nelt - 1.
30082
30083 2010-02-23  Jason Merrill  <jason@redhat.com>
30084
30085         PR debug/42800
30086         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
30087         in cfun->local_decls even if they have register types.
30088
30089         PR c++/42837
30090         * stor-layout.c (place_field): Don't warn about unnecessary
30091         DECL_PACKED if the type is packed.
30092
30093 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
30094
30095         PR target/43139
30096         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
30097         GOTOFF relocs, even when the base reg isn't pic pointer.
30098
30099 2010-02-23  Michael Matz  <matz@suse.de>
30100
30101         PR debug/43077
30102         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
30103         (expand_gimple_basic_block): Generate and use debug temps if there
30104         are debug uses left after the last real use of TERed ssa names.
30105         Unlink debug immediate uses when they are expanded.
30106
30107 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
30108
30109         PR 43123
30110         * config/i386/i386.c (override_options): Reorganise to provide
30111         better error messages.
30112
30113 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
30114
30115         PR middle-end/43083
30116         * graphite-scop-detection.c (create_single_exit_edge): Move
30117         the call to find_single_exit_edge to....
30118         (create_sese_edges): ...here.  Don't handle multiple edges
30119         exiting the function.
30120         (build_graphite_scops): Don't handle multiple edges
30121         exiting the function.
30122
30123 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
30124
30125         PR middle-end/43097
30126         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
30127         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
30128
30129 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
30130
30131         PR middle-end/43026
30132         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
30133
30134 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
30135
30136         PR c++/43126
30137         * c-typeck.c (convert_arguments): Print declaration location.
30138         * c-common.c (validate_nargs): Rename as
30139         builtin_function_validate_nargs.
30140         (check_builtin_function_arguments): Update.
30141
30142 2010-02-22  Richard Guenther  <rguenther@suse.de>
30143
30144         PR lto/43045
30145         * tree-inline.c (declare_return_variable): Use the type of
30146         the call stmt lhs if available.
30147
30148 2010-02-22  Duncan Sands  <baldrick@free.fr>
30149
30150         * passes.c (register_pass): Always consider all pass lists when
30151         ref_pass_instance_number is zero.
30152
30153 2010-02-22  Richard Guenther  <rguenther@suse.de>
30154
30155         PR tree-optimization/42749
30156         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
30157         parameter.  Do arithmetic in the original type.
30158         (update_accumulator_with_ops): Likewise.
30159         (adjust_accumulator_values): Adjust.
30160
30161 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
30162
30163         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
30164         (QI to BLKmode splitter): New splitter.
30165
30166 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
30167
30168         * config/i386/i386.c (initial_ix86_tune_features): Turn on
30169         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
30170
30171 2010-02-22  Richard Guenther  <rguenther@suse.de>
30172
30173         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
30174
30175 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
30176
30177         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
30178         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
30179         ($(T)crti.o, $(T)crtn.o): Remove rules.
30180
30181 2010-02-21  Tobias Burnus  <burnus@net-b.de>
30182
30183         PR fortran/35259
30184         * doc/invoke.texi (-fassociative-math): Document that this
30185         option is automatically enabled for Fortran.
30186
30187 2010-02-20  David S. Miller  <davem@davemloft.net>
30188
30189         * configure.ac: Test if linker and assembler properly support
30190         GOTDATA_OP relocations.
30191         * configure: Rebuild.
30192         * config.in: Likewise.
30193         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
30194         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
30195         (movsi_high_pic): Likewise.
30196         (movdi_lo_sum_pic): Likewise.
30197         (movdi_high_pic): Likewise.
30198         (movsi_pic_gotdata_op): New pattern.
30199         (movdi_pic_gotdata_op): Likewise.
30200         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
30201         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
30202
30203 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
30204
30205         PR target/43067
30206         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
30207         attribute to ssemul.
30208         (xop_mulv2div2di3_high): Ditto.
30209
30210 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
30211
30212         PR c++/35669
30213         * c.opt (Wconversion-null): New option.
30214         * doc/invoke.texi (Wconversion-null): Document.
30215
30216 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
30217
30218         * common.opt (Wlarger-than-): Add Undocumented.
30219
30220 2010-02-19  Mike Stump  <mikestump@comcast.net>
30221
30222         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
30223
30224 2010-02-19  Jason Merrill  <jason@redhat.com>
30225
30226         PR target/40332
30227         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
30228         * configure: Likewise.
30229
30230 2010-02-20  Alan Modra  <amodra@gmail.com>
30231
30232         PR middle-end/42344
30233         * cgraph.h (cgraph_make_decl_local): Declare.
30234         * cgraph.c (cgraph_make_decl_local): New function.
30235         (cgraph_make_node_local): Use it.
30236         * cgraphunit.c (cgraph_function_versioning): Likewise.
30237         * ipa.c (function_and_variable_visibility): Likewise.
30238
30239 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
30240
30241         PR bootstrap/43121
30242         * except.c (sjlj_emit_function_enter): Don't call
30243         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
30244         directly.
30245         * rtl.h (add_reg_br_prob_note): Remove prototype.
30246
30247 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
30248
30249         PR 41779
30250         * c-common.c (conversion_warning): Remove widening conversions
30251         before checking the conversion of integers to reals.
30252
30253 2010-02-19  Mike Stump  <mikestump@comcast.net>
30254
30255         PR middle-end/43125
30256         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
30257
30258         PR objc/43061
30259         * cgraphunit.c (process_function_and_variable_attributes): Check
30260         DECL_PRESERVE_P instead of looking up attribute "used".
30261         * ipa-pure-const.c (check_decl): Likewise.
30262         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
30263         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
30264         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
30265         instead of attribute "used".
30266         * config/sol2-c.c (solaris_pragma_init): Likewise.
30267         (solaris_pragma_fini): Likewise.
30268
30269 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
30270
30271         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
30272         Use XCNEW instead of xcalloc.
30273         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
30274         XNEW instead of xmalloc.
30275         (get_fields): Use XNEWVEC instead of xmalloc.
30276
30277         PR debug/43084
30278         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
30279         populate vars array.
30280         (create_new_general_access): For debug stmts just reset value.
30281         (get_stmt_accesses): For accesses within debug stmts just record them
30282         using add_access_to_acc_sites instead of preventing the peeling or
30283         counting them as accesses.
30284
30285         PR middle-end/42233
30286         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
30287
30288 2010-02-19  Richard Guenther  <rguenther@suse.de>
30289
30290         PR tree-optimization/42916
30291         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
30292         instructions.
30293
30294 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
30295
30296         * configure.ac: Replace all uses of changequote in macro arguments
30297         with proper quoting.
30298
30299 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
30300
30301         PR middle-end/42233
30302         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
30303
30304 2010-02-19  Richard Guenther  <rguenther@suse.de>
30305
30306         PR tree-optimization/42944
30307         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
30308         test for aliasing with errno.
30309
30310 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
30311
30312         PR middle-end/42233
30313         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
30314         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
30315         * dojump.c: Include output.h.
30316         (inv): New inline function.
30317         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
30318         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
30319         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
30320         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
30321         argument, pass it down to other calls.
30322         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
30323         add REG_BR_PROB note to the conditional jump.
30324         * cfgexpand.c (add_reg_br_prob_note): Removed.
30325         (expand_gimple_cond): Don't call it, add the probability
30326         as last argument to jumpif_1/jumpifnot_1.
30327         * Makefile.in (dojump.o): Depend on output.h.
30328         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
30329         callers.
30330         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
30331         * stmt.c (do_jump_if_equal): Likewise.
30332         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
30333         * loop-unswitch.c (compare_and_jump_seq): Likewise.
30334         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
30335         Likewise.
30336         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
30337         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
30338         jumpifnot_1 callers.
30339         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
30340         callers.
30341         (store_expr): Adjust jumpifnot caller.
30342         (store_constructor): Adjust jumpif caller.
30343
30344         PR middle-end/42233
30345         * gimplify.c (gimple_boolify): For __builtin_expect call
30346         gimple_boolify also on its first argument.
30347
30348 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
30349
30350         * configure.ac (gnu-unique-object): Wrap regexps using [] in
30351         changequote block.
30352         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
30353         * configure: Regenerated.
30354
30355 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
30356
30357         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
30358         lang_hooks.types_compatible_p instead of comptypes.
30359
30360 2010-02-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
30361
30362         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
30363         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
30364         if __prefer_thumb__ is defined.
30365
30366 2010-02-18  Martin Jambor  <mjambor@suse.cz>
30367
30368         PR tree-optimization/43066
30369         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
30370         array with zero-sized element type.
30371
30372 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
30373
30374         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
30375         rtx, allocate struct var_loc_node here and return it to the
30376         caller, and only if it is actually needed.
30377         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
30378         move it earlier and return immediately if it returns NULL.
30379
30380 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
30381
30382         * config/sparc/gas.h: New file.  Restore
30383         TARGET_ASM_NAMED_SECTION to its ELF default.
30384         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
30385         check !HAVE_GNU_AS.
30386         * config/sparc/sparc.c (sparc_elf_asm_named_section):
30387         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
30388         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
30389         after sparc/sysv4.h.
30390
30391 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
30392
30393         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
30394
30395 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
30396
30397         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
30398         patterns from predicated pattern.
30399
30400 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
30401
30402         PR target/43103
30403         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
30404         for insn mnemonic suffix.
30405
30406 2010-02-17  Richard Guenther  <rguenther@suse.de>
30407
30408         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
30409         to loop PHI nodes.
30410
30411 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
30412
30413         PR debug/42918
30414         * caller-save.c (save_call_clobbered_regs): If BB ends with
30415         a DEBUG_INSN, move any notes in between last real insn and the last
30416         DEBUG_INSN after the last DEBUG_INSN.
30417
30418 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
30419
30420         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
30421         Fix return type.  Fix argument type.  Explain meaning of return value.
30422
30423 2010-02-16  Richard Guenther  <rguenther@suse.de>
30424
30425         PR tree-optimization/41043
30426         * tree-vrp.c (vrp_var_may_overflow): Only ask SCEV for real loops.
30427         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
30428         statements ...
30429         (vrp_visit_phi_node): ... but only for loop PHI nodes.
30430
30431 2010-02-16  Ira Rosen  <irar@il.ibm.com>
30432
30433         PR tree-optimization/43074
30434         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
30435         * tree-vect-loop.c (vect_analyze_loop_operations): Add
30436         vectorizable cycles in hybrid SLP check.
30437         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
30438
30439 2010-02-16  Richard Guenther  <rguenther@suse.de>
30440
30441         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
30442         (true_dependence): If memrefs_conflict_p computes must-alias
30443         trust it.  Move TBAA check after offset-based disambiguation.
30444         (canon_true_dependence): Likewise.
30445
30446 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
30447
30448         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
30449         * doc/invoke.texi: Document it.
30450         * var-tracking.c: Include toplev.h and params.h.
30451         (vt_find_locations): Return bool indicating success.  Compute
30452         hash sizes unconditionally.  Check new parameter, report.
30453         (variable_tracking_main_1): Check vt_find_locations results and
30454         retry.  Renamed from...
30455         (variable_tracking_main): ... this.  New wrapper to preserve
30456         flag_var_tracking_assignments.
30457         * Makefile.in (var-tracking.o): Adjust dependencies.
30458
30459 2010-02-16  Jack Howarth  <howarth@bromo.med.uc.edu>
30460             Jakub Jelinek  <jakub@redhat.com>
30461
30462         PR target/42854
30463         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
30464         if weak_import attribute is present.
30465         * config/darwin.c (machopic_select_section): Likewise.
30466
30467 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
30468
30469         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
30470         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
30471         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
30472         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
30473
30474         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
30475         types.
30476
30477         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
30478         Fix argument types.
30479
30480         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
30481         Rewrite text to refer to the names.
30482
30483 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
30484
30485         * config/i386/i386-builtin-types.def
30486         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
30487         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
30488         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
30489         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
30490         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
30491         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
30492         IX86_BUILTIN_VPERMIL2PS256.
30493         (MULTI_ARG_4_DF2_DI_I): Defined.
30494         (MULTI_ARG_4_DF2_DI_I1): Defined.
30495         (MULTI_ARG_4_SF2_SI_I): Defined.
30496         (MULTI_ARG_4_SF2_SI_I1): Defined.
30497         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
30498         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
30499         __builtin_ia32_vpermil2ps256.
30500         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
30501         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
30502         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
30503         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
30504         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
30505         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
30506         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
30507         CODE_FOR_xop_vpermil2v8sf3.
30508         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
30509         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
30510         * config/i386/xopintrin.h (_mm_permute2_pd): New.
30511         (_mm256_permute2_pd): New.
30512         (_mm_permute2_ps): New.
30513         (_mm256_permute2_ps): New.
30514
30515 2010-02-15  Nick Clifton  <nickc@redhat.com>
30516
30517         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
30518         boolean parameters.  Use emit_jump_insn when emitting a pop
30519         instruction containing a return insn.
30520         (push): Use 'true' rather than '1' as second parameter to F.
30521         (h8300_expand_prologue): Likewise.
30522         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
30523         (h8300_expand_epilogue): Likewise.
30524
30525 2010-02-15  Richard Guenther  <rguenther@suse.de>
30526
30527         PR middle-end/43068
30528         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
30529         if that is zero.
30530
30531 2010-02-15  Nick Clifton  <nickc@redhat.com>
30532
30533         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
30534         delta.
30535
30536 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
30537
30538         * intl.c (fake_ngettext): New function.
30539         * intl.h (fake_ngettext): Declare.
30540         (ngettext): Define macro.
30541         * collect2.c (notice_translated): New function.
30542         (main): Use notice_translated and ngettext.
30543         * collect2.h (notice_translated): Declare.
30544
30545 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
30546
30547         * reorg.c (delete_computation): Comment fixes.
30548         * caller-save.c (setup_save_areas): Idem.
30549         * sel-sched-dump.c (dump_lv_set): Idem.
30550         * rtl.def: Idem.
30551
30552 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
30553
30554         * config/s390/s390.c (s390_sched_init): New function.
30555         (TARGET_SCHED_INIT): Target hook defined.
30556
30557 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
30558             Jack Howarth  <howarth@bromo.med.uc.edu>
30559             Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
30560
30561         PR target/42982
30562         Partial revert of unintended change in fix for PR41605.
30563         * config/darwin.h: Fix typo.
30564         * config/darwin9.h: Same.
30565
30566 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
30567
30568         * c-pch.c (pch_init): Clear v.
30569
30570 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
30571
30572         PR middle-end/42930
30573         * graphite-scop-detection.c (graphite_can_represent_scev): Call
30574         graphite_can_represent_init for MULT_EXPR.
30575
30576 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
30577
30578         PR middle-end/42914
30579         PR middle-end/42530
30580         * graphite-sese-to-poly.c (remove_phi): New.
30581         (translate_scalar_reduction_to_array): Call remove_phi.
30582
30583 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
30584
30585         PR middle-end/42771
30586         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
30587         * graphite-clast-to-gimple.h (gloog): Update declaration.
30588         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
30589         * graphite-poly.h (struct poly_bb): Add missing comments.
30590         (struct scop): Add poly_scop_p field.
30591         (POLY_SCOP_P): New.
30592         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
30593         * graphite.c (graphite_transform_loops): Build the polyhedral
30594         representation for each scop before code generation.
30595         * sese.c (rename_variables_in_operand): Removed.
30596         (rename_variables_in_expr): Return the renamed expression.
30597         (rename_sese_parameters): New.
30598         * sese.h (rename_sese_parameters): Declared.
30599
30600 2010-02-11  Richard Guenther  <rguenther@suse.de>
30601
30602         PR tree-optimization/42998
30603         * tree-ssa-pre.c (create_expression_by_pieces): Treat
30604         POINTER_PLUS_EXPR properly.
30605
30606 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
30607             Changpeng Fang  <changpeng.fang@amd.com>
30608
30609         PR middle-end/40886
30610         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
30611         the cost of an IV candidate when the IV is used in a test against zero.
30612
30613         * gcc.dg/tree-ssa/ivopts-3.c: New.
30614
30615 2010-02-11  Richard Guenther  <rguenther@suse.de>
30616
30617         PR lto/41664
30618         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
30619         pointer-vs-decl case by swapping refs.  Handle some cases
30620         of pointer-vs-decl disambiguations more conservatively.
30621         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
30622         to false after expanding.
30623
30624 2010-02-11  Richard Guenther  <rguenther@suse.de>
30625
30626         PR driver/43021
30627         * gcc.c (process_command): Handle LTO file@offset case more
30628         appropriately.
30629
30630 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
30631
30632         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
30633         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
30634         of DEBUG_INSNs.
30635         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
30636
30637         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
30638         if MEM's mode size isn't DWARF2_ADDR_SIZE.
30639         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
30640         Optimize eq/ne comparisons when both arguments are known to be
30641         zero-extended.
30642         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
30643         Don't mask operands unnecessarily if they are known to be already
30644         zero-extended.
30645
30646 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
30647
30648         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
30649         instead of loop.
30650
30651 2010-02-10  Richard Guenther  <rguenther@suse.de>
30652
30653         PR tree-optimization/43017
30654         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
30655         for wrapping signed arithmetic.
30656
30657 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
30658
30659         PR debug/43010
30660         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
30661         if no debug info should be emitted for it.
30662
30663 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
30664
30665         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
30666         note when flag_exceptions is set.
30667
30668 2010-02-10  Duncan Sands  <baldrick@free.fr>
30669
30670         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
30671
30672 2010-02-10  Richard Guenther  <rguenther@suse.de>
30673
30674         PR c/43007
30675         * tree.c (get_unwidened): Handle constants.
30676         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
30677
30678 2010-02-10  Martin Jambor  <mjambor@suse.cz>
30679
30680         PR lto/42985
30681         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
30682         check for variable argument counts independently.
30683
30684 2010-02-10  Christian Bruel  <christian.bruel@st.com>
30685
30686         PR target/42841
30687         * config/sh/sh.c (find_barrier): Increase length for non delayed
30688         conditional branches.
30689
30690 2010-02-10  Christian Bruel  <christian.bruel@st.com>
30691
30692         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
30693
30694 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
30695
30696         * builtins.c (set_builtin_user_assembler_name): Also handle
30697         ffs if int is smaller than word.
30698
30699 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
30700
30701         PR middle-end/42973
30702         * ira-conflicts.c (get_dup): Remove.
30703         (process_reg_shuffles): Add new parameter.  Use it as an
30704         additional guard for copy generation.
30705         (add_insn_allocno_copies): Rewrite.
30706
30707 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
30708
30709         * common.opt (fsched2-use-traces): Preserved for backward
30710         compatibility.
30711         * doc/invoke.texi: Remove the documentation about option
30712         -fsched2-use-traces.
30713         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
30714         flag_sched2_use_traces.
30715         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
30716         the backward compatibility flag section.
30717
30718 2010-02-09  Richard Guenther  <rguenther@suse.de>
30719
30720         PR tree-optimization/43008
30721         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
30722         make HEAP variables initialized from global memory if they
30723         are not known builtin functions.
30724         (find_func_aliases): Adjust.
30725
30726 2010-02-09  Richard Guenther  <rguenther@suse.de>
30727
30728         PR tree-optimization/43000
30729         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
30730         arithmetic manually.
30731
30732 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
30733
30734         PR tree-optimization/42931
30735         * tree-loop-linear.c (try_interchange_loops): Don't call
30736         double_int_mul if estimated_loop_iterations failed.
30737
30738 2010-02-08  Martin Jambor  <mjambor@suse.cz>
30739
30740         PR middle-end/42898
30741         * tree-sra.c (build_accesses_from_assign): Do not mark in
30742         should_scalarize_away_bitmap if stmt has volatile ops.
30743         (sra_modify_assign): Do not process assigns piecemeal if if stmt
30744         has volatile ops.
30745
30746 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
30747
30748         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
30749
30750 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
30751
30752         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
30753         before the pattern.
30754
30755 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
30756
30757         PR middle-end/42946
30758         * df-core.c (df_finish_pass): Change type of saved_flags to int.
30759
30760 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
30761
30762         PR middle-end/42988
30763         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
30764         to unknown_dependence.
30765         (graphite_legal_transform_dr): Handle the unknown_dependence.
30766         (graphite_carried_dependence_level_k): Same.
30767
30768 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
30769
30770         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
30771
30772 2010-02-07  Richard Guenther  <rguenther@suse.de>
30773
30774         PR middle-end/42991
30775         * expr.c (get_inner_reference): Always initialize *pbitsize.
30776
30777 2010-02-07  Richard Guenther  <rguenther@suse.de>
30778
30779         PR middle-end/42956
30780         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
30781         new ARRAY_REFs on variable size element or minimal index arrays.
30782         Complete.
30783         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
30784         gimple_fold_indirect_ref.
30785
30786 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
30787
30788         PR target/42957
30789         * arm.c (arm_override_options): Just return if the user has specified
30790         an invalid fpu name.
30791
30792 2010-02-03  Jason Merrill  <jason@redhat.com>
30793
30794         PR c++/42870
30795         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
30796         i386_pe_maybe_record_exported_symbol.
30797
30798 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
30799
30800         PR target/42924
30801         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
30802         (pa_delegitimize_address): New function.
30803
30804 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
30805
30806         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
30807         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
30808
30809 2010-02-05  Richard Guenther  <rguenther@suse.de>
30810
30811         PR lto/42762
30812         * lto-streamer-in.c (get_resolution): Deal with references
30813         to undefined functions.
30814
30815 2010-02-05  Richard Guenther  <rguenther@suse.de>
30816
30817         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
30818         (fold_const_aggregate_ref): Likewise.
30819         (ccp_fold_stmt): Substitute loads.
30820         (maybe_fold_reference): Verify types before substituting.
30821         Unshare properly.
30822         (fold_gimple_assign): Unshare properly.
30823         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
30824
30825 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
30826
30827         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
30828         for rs6000_gen_cell_microcode.
30829
30830 2010-02-04  Richard Guenther  <rguenther@suse.de>
30831
30832         PR rtl-optimization/42952
30833         * dse.c (const_or_frame_p): Remove MEM handling.
30834
30835 2010-02-04  Nick Clifton  <nickc@redhat.com>
30836
30837         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
30838         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
30839         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
30840         (mn10300_asm_output_mi_thunk): New function.
30841         (mn10300_can_output_mu_thunk): New function.
30842         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
30843         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
30844         (FUNCTION_ARG): Delete incorrect comment.
30845
30846 2010-02-03  Jason Merrill  <jason@redhat.com>
30847
30848         PR c++/40138
30849         * fold-const.c (operand_equal_p): Handle erroneous types.
30850
30851 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
30852
30853         * config/h8300/h8300.md (can_delay): Fix attibute condition.
30854
30855 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
30856
30857         PR rtl-optimization/42941
30858         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
30859         of xmalloc.
30860
30861 2010-02-03  Jason Merrill  <jason@redhat.com>
30862
30863         PR c++/35652
30864         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
30865
30866 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
30867
30868         PR debug/42896
30869         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
30870         (cselib_reset_table): Renamed from...
30871         (cselib_reset_table_with_next_value): ... this.
30872         (cselib_get_next_uid): Renamed from...
30873         (cselib_get_next_unknown_value): ... this.
30874         * cselib.c (next_uid): Renamed from...
30875         (next_unknown_value): ... this.
30876         (cselib_clear_table): Adjust.
30877         (cselib_reset_table): Adjust.  Renamed from...
30878         (cselib_reset_table_with_next_value): ... this.
30879         (cselib_get_next_uid): Adjust.  Renamed from...
30880         (cselib_get_next_unknown_value): ... this.
30881         (get_value_hash): Use hash.
30882         (cselib_hash_rtx): Likewise.
30883         (new_cselib_val): Adjust.  Set and dump uid.
30884         (cselib_lookup_mem): Pass next_uid as hash.
30885         (cselib_subst_to_values): Likewise.
30886         (cselib_log_lookup): Dump uid.
30887         (cselib_lookup): Pass next_uid as hash.  Adjust.
30888         (cselib_process_insn): Adjust.
30889         (cselib_init): Initialize next_uid.
30890         (cselib_finish): Adjust.
30891         (dump_cselib_table): Likewise.
30892         * dse.c (canon_address): Dump value uid.
30893         * print-rtl.c (print_rtx): Print value uid.
30894         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
30895         (dvuid): New type.
30896         (dv_uid): New function, sort of renamed from...
30897         (dv_htab_hash): ... this, reimplemented in terms of it and...
30898         (dv_uid2hash): ... this.  New.
30899         (variable_htab_eq): Drop excess assertions.
30900         (tie_break_pointers): Removed.
30901         (canon_value_cmp): Compare uids.
30902         (variable_post_merge_New_vals): Print uids.
30903         (vt_add_function_parameters): Adjust.
30904         (vt_initialize): Reset table.  Adjust.
30905
30906 2010-02-03  Richard Guenther  <rguenther@suse.de>
30907
30908         PR tree-optimization/42944
30909         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
30910         (call_may_clobber_ref_p_1): Likewise.  Properly handle
30911         malloc and calloc clobbering errno.
30912
30913 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
30914
30915         * doc/invoke.texi: Fix name of sched1 dump.
30916
30917         * opts.c (decode_options): Set flag_tree_switch_conversion
30918         only conditionally on optimize >= 2.
30919
30920         * gcse.c: Assorted comment fixes in pass description.
30921
30922 2010-02-03  Anthony Green  <green@moxielogic.com>
30923
30924         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
30925         nop padding in order to maintain alignment of storage location of
30926         target function address.
30927         (moxie_trampoline_init): Store target function address at newly
30928         aligned location.
30929         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
30930         to 32.
30931         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
30932
30933 2010-02-03  Richard Guenther  <rguenther@suse.de>
30934
30935         PR middle-end/42927
30936         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
30937
30938 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30939
30940         * config.gcc: Reenable check for obsolete targets.
30941         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
30942         mips-sgi-irix6.[0-4]*.
30943
30944 2010-02-02  Nick Clifton  <nickc@redhat.com>
30945
30946         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
30947         constant size of 4 as being the same as 0.
30948         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
30949         can take values in the range 0..4.
30950
30951 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
30952
30953         PR java/41991
30954         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
30955         as _darwin10_Unwind_FindEnclosingFunction().
30956         * libgcc-libsystem.ver: New.
30957
30958 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
30959
30960         PR target/41399
30961         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
30962         implicitly set registers.
30963
30964 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
30965
30966         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
30967         (arm_override_options): Allow automatic selection of the thread
30968         pointer register if thumb2.
30969         (legitimize_pic_address): Improve code sequences for Thumb2.
30970         (arm_call_tls_get_addr): Likewise.
30971         (legitimize_tls_address): Likewise.
30972         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
30973         (pic_load_addr_32bit): ... this.  New named pattern.
30974         * thumb2.md (pic_load_addr_thumb2): Delete.
30975         (pic_load_dot_plus_four): Delete.
30976         (tls_load_dot_plus_four): New named pattern.
30977
30978 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30979
30980         PR libgomp/29986
30981         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
30982         Document fix for TLS bug.
30983
30984 2010-01-31  Richard Guenther  <rguenther@suse.de>
30985
30986         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
30987         conservatively correct.
30988
30989 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
30990
30991         PR target/42850
30992         Revert:
30993         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
30994
30995         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
30996
30997 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
30998
30999         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
31000
31001 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
31002
31003         * config.gcc: Adjust order of makefile fragments for mingw targets.
31004
31005 2010-01-31  Richard Guenther  <rguenther@suse.de>
31006
31007         PR middle-end/42898
31008         * gimplify.c (gimplify_init_constructor): For volatile LHS
31009         initialize a temporary.
31010
31011 2010-01-31  Matthias Klose  <doko@ubuntu.com>
31012
31013         * configure.ac: Fix __stack_chk_fail check for cross builds configured
31014         --with-headers
31015         * configure: Regenerate.
31016
31017 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
31018
31019         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
31020         the same alias set and their sizes different constantness.
31021         (aliasing_component_refs_p): Revert 2009-10-24 change.
31022
31023 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31024
31025         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
31026         unused.
31027
31028 2010-01-29  Richard Guenther  <rguenther@suse.de>
31029
31030         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
31031         Assert we successfully updated the call.
31032
31033 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
31034
31035         PR rtl-optimization/42889
31036         * df.h (df_set_bb_dirty_nonlr): New prototype.
31037         * df-core.c (df_set_bb_dirty_nonlr): New function.
31038         * df-scan.c (df_insn_rescan): Call it instead of
31039         df_set_bb_dirty for DEBUG_INSNs.
31040
31041 2010-01-29  Richard Guenther  <rguenther@suse.de>
31042
31043         PR middle-end/37448
31044         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
31045         quadratic behavior in most cases.
31046
31047 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
31048
31049         PR target/42891
31050         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
31051         in the call to gen_x86_movsicc_0_m1.
31052
31053 2010-01-28  Richard Guenther  <rguenther@suse.de>
31054
31055         PR tree-optimization/42871
31056         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
31057
31058 2010-01-28  Richard Guenther  <rguenther@suse.de>
31059
31060         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
31061         into call arguments.
31062
31063 2010-01-28  Richard Guenther  <rguenther@suse.de>
31064
31065         PR middle-end/42883
31066         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
31067         the forwarder if the destination is an EH landing pad.
31068
31069 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
31070
31071         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
31072         block list passed to gimple_duplicate_sese_tail.
31073         (parallelize_loops): Avoid parallelization when the function
31074         has_nonlocal_label.
31075         Avoid parallelization when the preheader is IRREDUCIBLE.
31076         Try to optimize when estimated_loop_iterations_int is unresolved.
31077         Add the loop's location to the dump file.
31078         * tree-cfg.c (add_phi_args_after_redirect): Remove.
31079         (gimple_duplicate_sese_tail): Remove the check for the latch.
31080         Redirect nexits to the exit block.
31081         Remove handling of the incoming edges to the latch.
31082         Redirect the backedge from the copied latch to the exit bb.
31083
31084 2010-01-28  Michael Matz  <matz@suse.de>
31085
31086         PR target/42881
31087         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
31088         Wrap force_reg into a sequence, emit it before user.
31089
31090 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
31091
31092         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
31093         (arm_rev): New.
31094         (arm_legacy_rev): Likewise.
31095         (thumb_legacy_rev): Likewise.
31096
31097 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
31098
31099         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
31100         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
31101         on MEM's address failed, try avoid_constant_pool_reference and
31102         recurse if it returned something different.
31103         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
31104         address, try avoid_constant_pool_reference and recurse if it
31105         returned something different.
31106         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
31107         address and avoid_constant_pool_reference returned something
31108         different, don't set have_address.
31109
31110 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
31111
31112         PR debug/42861
31113         * var-tracking.c (val_store): Add modified argument, obey it.
31114         Adjust callers.
31115         (count_uses): Move down logging of main.
31116         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
31117         don't need resolution.
31118         (emit_notes_in_bb): Likewise.
31119
31120 2010-01-27  Richard Guenther  <rguenther@suse.de>
31121
31122         PR middle-end/42878
31123         * tree-inline.c (remap_decl): Delay remapping of SSA name
31124         default definitions until we need them.
31125
31126 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
31127
31128         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
31129         (rs6000_delegitimize_address): New function.
31130
31131         * config/s390/s390.c (s390_delegitimize_address): Call
31132         delegitimize_mem_from_attrs.
31133
31134         PR middle-end/42874
31135         * tree-inline.c (cannot_copy_type_1): Removed.
31136         (copy_forbidden): Don't forbid copying of functions containing
31137         records/unions with variable length fields.
31138
31139 2010-01-27  Christian Bruel  <christian.bruel@st.com>
31140
31141         Revert:
31142         PR target/42841
31143         * config/sh/sh.c (find_barrier): Increase length for non delayed
31144         conditional branches.
31145
31146 2010-01-27  Matthias Klose  <doko@ubuntu.com>
31147
31148         * configure.ac (gnu-unique-object): Fix ldd version check.
31149         * configure: Regenerate.
31150
31151 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31152
31153         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
31154         HAVE_GNU_AS value.
31155         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
31156         Test for HAVE_GNU_AS value.
31157
31158 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31159
31160         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
31161         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
31162         INT64_TYPE): Define.
31163         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
31164         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
31165         INT_LEAST64_TYPE): Define.
31166         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
31167         UINT_LEAST64_TYPE): Define.
31168         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
31169         INT_FAST64_TYPE): Define.
31170         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
31171         UINT_FAST64_TYPE): Define.
31172         (INTMAX_TYPE, UINTMAX_TYPE): Define.
31173         (INTPTR_TYPE, UINTPTR_TYPE): Define.
31174         (SIG_ATOMIC_TYPE): Define.
31175
31176 2010-01-26  Richard Guenther  <rguenther@suse.de>
31177
31178         * df-scan.c (df_scan_set_bb_info): Remove assert.
31179         (df_insn_rescan_debug_internal): Merge asserts.
31180         (df_install_ref): Likewise.
31181         (df_mark_reg): Use bitmap_set_range.
31182         (df_hard_reg_used_p): Remove assert.
31183         (df_hard_reg_used_count): Likewise.
31184
31185 2010-01-26  Richard Guenther  <rguenther@suse.de>
31186
31187         PR rtl-optimization/42685
31188         * web.c (web_main): Ignore DEBUG_INSNs.
31189
31190 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
31191
31192         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
31193
31194         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
31195         Fix types of fndecl and arglist parameters.
31196
31197 2010-01-26  Richard Guenther  <rguenther@suse.de>
31198
31199         PR middle-end/42806
31200         * tree-eh.c (unsplit_eh): Skip debug insns.
31201
31202 2010-01-26  Richard Guenther  <rguenther@suse.de>
31203
31204         PR tree-optimization/42250
31205         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
31206
31207 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
31208
31209         PR fortran/42866
31210         * omp-low.c (expand_omp_sections): Only use single_pred if
31211         l2_bb is single_pred_p.
31212
31213 2010-01-25  Christian Bruel  <christian.bruel@st.com>
31214
31215         PR target/42841
31216         * config/sh/sh.c (find_barrier): Increase length for non delayed
31217         conditional branches.
31218         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
31219
31220 2010-01-24  David S. Miller  <davem@davemloft.net>
31221
31222         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
31223         define if not using GAS.
31224         * config/sparc/sparc.c (sparc_elf_asm_named_section):
31225         Likewise.  Delete SECTION_MERGE code, which is only applicable
31226         when using GAS.
31227
31228 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
31229
31230         PR c++/42748
31231         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
31232         mangling of va_list in system headers.
31233
31234 2010-01-23  Toon Moene  <toon@moene.org>
31235
31236         * tree-predcom.c (combine_chains): Return NULL, not false.
31237
31238 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
31239
31240         * tree-loop-distribution.c (distribute_loop): Fix declaration and
31241         initialization of variable res to agree with return type.
31242
31243 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
31244
31245         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
31246         * tree-sra.c: Add include of expr.h.
31247
31248 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
31249
31250         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
31251         insert the debug stmt on the single non-EH edge from the stmt.
31252
31253 2010-01-22  Richard Henderson  <rth@redhat.com>
31254
31255         PR tree-opt/42833
31256         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
31257         the RHS until after generate_subtree_copies has insertted its
31258         code before the current statement.
31259
31260 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
31261
31262         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
31263
31264         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
31265
31266 2010-01-21  Martin Jambor  <mjambor@suse.cz>
31267
31268         PR tree-optimization/42585
31269         * tree-sra.c (struct access): New field grp_total_scalarization.
31270         (dump_access): Dump the new field.
31271         (should_scalarize_away_bitmap): New variable.
31272         (cannot_scalarize_away_bitmap): Likewise.
31273         (sra_initialize): Allocate new bitmaps.
31274         (sra_deinitialize): Free new bitmaps.
31275         (create_access_1): New function.
31276         (create_access): Parts moved to create_access_1.
31277         (type_consists_of_records_p): New function.
31278         (completely_scalarize_record): Likewise.
31279         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
31280         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
31281         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
31282         access.
31283         (analyze_all_variable_accesses): Completely scalarize small eligible
31284         records.
31285
31286 2010-01-21  Martin Jambor  <mjambor@suse.cz>
31287
31288         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
31289
31290 2010-01-21  Andrew Haley  <aph@redhat.com>
31291
31292         * gcc.c (process_command): Move lang_specific_driver before
31293         setting cc_libexec_prefix.
31294
31295 2010-01-21  Richard Guenther  <rguenther@suse.de>
31296
31297         PR middle-end/19988
31298         * fold-const.c (negate_expr_p): Pretend only negative
31299         real constants are easily negatable.
31300
31301 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
31302             Jason Merrill  <jason@redhat.com>
31303
31304         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
31305         (TYPE_TRANSPARENT_AGGR): this, for union and record.
31306         * calls.c (initialize argument_information): Handle it.
31307         * c-common.c (handle_transparent_union_attribute): Use new name.
31308         * c-decl.c (finish_struct): Ditto.
31309         * c-typeck.c (type_lists_compatible_p): Ditto.
31310         (convert_for_assignment): Use new name and also handle record.
31311         * function.c (aggregate_value_p): Handle it.
31312         (pass_by_reference): Ditto.
31313         (assign_parm_data_types): Ditto.
31314         * print-tree.c (print_node): Ditto.
31315         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
31316         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
31317         * tree.c (first_field): New fn.
31318
31319 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
31320
31321         PR target/42818
31322         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
31323         even when linking statically, for now.
31324
31325 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
31326
31327         PR debug/42715
31328         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
31329         without a cselib val.
31330         (count_uses): Accept MO_VAL_SET with no val on stores.
31331         (add_stores): Likewise.
31332
31333 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
31334
31335         * var-tracking.c (check_value_val): Add a compile time assertion.
31336         (dv_is_decl_p): Simplify.
31337         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
31338         gcc_assert if ENABLE_CHECKING.
31339
31340 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
31341
31342         PR debug/42782
31343         * var-tracking.c: Include tree-flow.h.
31344         (mem_dies_at_call): New.
31345         (dataflow_set_preserve_mem_locs): Use it.
31346         (dataflow_set_remove_mem_locs): Likewise.
31347         (dump_var): Renamed from dump_variable.  Adjust all callers.
31348         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
31349         * Makefile.in (var-tracking.o): Adjust deps.
31350
31351 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
31352
31353         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
31354
31355 2010-01-20  Richard Guenther  <rguenther@suse.de>
31356
31357         PR tree-optimization/42717
31358         * tree-ssa-dce.c (get_live_post_dom): Remove.
31359         (forward_edge_to_pdom): Take an arbitrary edge to copy
31360         degenerate PHI args from.
31361         (remove_dead_stmt): Use the first post-dominator even if it
31362         does not contain live statements as redirection destination.
31363
31364 2010-01-20  Richard Guenther  <rguenther@suse.de>
31365
31366         * tree-inline.c (estimate_num_insns): Handle EH builtins.
31367
31368 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
31369
31370         * sel-sched.c (create_speculation_check): Remove set but not used
31371         variable twin.
31372         (try_transformation_cache): Remove set but not used variable ds.
31373         (calculate_privileged_insns): Remove set but not used variables
31374         cur_insn and min_spec_insn.
31375         (find_best_expr): Remove set but not used variable avail_n.
31376         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
31377         variable e.
31378         * cgraphunit.c (assemble_thunk): Remove set but not used variable
31379         false_label.
31380         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
31381         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
31382         new_scop_exit_edge.
31383
31384 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
31385
31386         PR bootstrap/42786
31387         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
31388         cpu types.  Add support for *-sse3 cpu types.
31389         (x86_64-*-*): Ditto.
31390
31391 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
31392
31393         PR middle-end/42803
31394         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
31395         argument, call initializer_constant_valid_p_1 instead of
31396         initializer_constant_valid_p, pass CACHE to it, return NULL
31397         immediately if first call returns NULL.
31398         (initializer_constant_valid_p_1): New function.
31399         (initializer_constant_valid_p): Use it.
31400
31401 2010-01-20  Thomas Quinot  <quinot@adacore.com>
31402
31403         * tree.def (PLACEHOLDER_EXPR): Fix comment.
31404
31405 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
31406
31407         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
31408         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
31409         (loc_list_from_tree): Don't handle unsigned division.  Handle
31410         signed modulo using DW_OP_{over,over,div,mul,minus}.
31411         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
31412         modulo instead of signed.
31413
31414 2010-01-20  DJ Delorie  <dj@redhat.com>
31415
31416         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
31417         (Fpa): Pass it
31418         (h8300_emit_stack_adjustment): Propogate it.
31419         (push): Pass it.
31420         (h8300_expand_prologue): Likewise.
31421         (h8300_expand_epilogue): Likewise.
31422
31423 2010-01-19  Michael Matz  <matz@suse.de>
31424
31425         PR tree-optimization/41783
31426         * tree-data-ref.c (toplevel): Include flags.h.
31427         (dump_data_dependence_relation):  Also dump the inputs if the
31428         result will be unknown.
31429         (split_constant_offset_1): Look through some conversions.
31430         * tree-predcom.c (determine_roots_comp): Restart a new chain if
31431         the offset from last element is too large.
31432         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
31433         (reassociate_to_the_same_stmt): Handle vector registers.
31434         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
31435         (e.g. conversions).
31436         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
31437         wide_prolog_niters argument, emit widening instructions.
31438         (vect_do_peeling_for_alignment): Adjust caller, use widened
31439         variant of the iteration cound.
31440         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
31441
31442 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
31443
31444         PR target/38697
31445         * config/arm/neon-testgen.m (emit_automatics): New parameter
31446         features. Adjust for Fixed_return_reg feature.
31447         (test_intrinsic): Call emit_automatics with new feature.
31448         * config/arm/neon.ml: Update copyright years.
31449         (features): New Fixed_return_reg feature.
31450         (ops): Update feature for Vget_low.
31451
31452 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
31453
31454         PR tree-optimization/42719
31455         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
31456         stmt uses.
31457
31458         PR debug/42728
31459         * fwprop.c (all_uses_available_at): Return false if def_set dest
31460         is a REG that is used in def_insn.
31461
31462 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
31463
31464         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
31465
31466         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
31467         Add argument names.
31468
31469         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
31470
31471         * target.h (struct gcc_target) <secondary_reload>: Change type
31472         of last argument to secondary_reload_info *.
31473
31474 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
31475
31476         PR target/42774
31477         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
31478         memory references with unaligned offsets.  Remove CQImode handling.
31479         (unaligned_memory_operand): Return 1 for memory references with
31480         unaligned offsets.  Remove CQImode handling.
31481
31482 2010-01-18  Richard Guenther  <rguenther@suse.de>
31483
31484         PR middle-end/39954
31485         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
31486         builtin calls.
31487
31488 2010-01-18  Richard Guenther  <rguenther@suse.de>
31489
31490         PR tree-optimization/42781
31491         * tree-ssa-structalias.c (find_what_var_points_to): Skip
31492         restrict processing only if the original variable was artificial.
31493
31494 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
31495
31496         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
31497         find number of popped argument bytes.
31498
31499         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
31500         Fix the text that describes the return value for invalid insns.
31501
31502         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
31503
31504         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
31505         Clarify what 'cost of the -dependence' is.  Fix quoting.
31506
31507         * toplev.c (default_get_pch_validity): Rename argument to "sz".
31508         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
31509
31510 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
31511
31512         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
31513         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
31514
31515 2010-01-17  Richard Guenther  <rguenther@suse.de>
31516
31517         PR middle-end/42248
31518         * function.c (split_complex_args): Take a VEC to modify.
31519         (assign_parms_augmented_arg_list): Build a VEC instead of
31520         a chain of PARM_DECLs.
31521         (assign_parms_unsplit_complex): Take a VEC of arguments.
31522         Do not fixup unmodified parms.
31523         (assign_parms): Deal with the VEC.
31524         (gimplify_parameters): Likewise.
31525
31526 2010-01-17  Richard Guenther  <rguenther@suse.de>
31527
31528         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
31529         node existence check.
31530         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
31531         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
31532         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
31533         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
31534         (gimple_execute_on_growing_pred): Likewise.
31535
31536 2010-01-17  Richard Guenther  <rguenther@suse.de>
31537
31538         PR tree-optimization/42773
31539         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
31540         (compute_antic_aux): Likewise.
31541         (compute_partial_antic_aux): Likewise.
31542
31543 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
31544
31545         PR debug/42767
31546         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
31547         and US_TRUNCATE.
31548
31549 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
31550
31551         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
31552         appearance.
31553
31554         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
31555         Fix markup for strict argument.
31556
31557         (TARGET_SCHED_REORDER2): Fix argument types.
31558
31559         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
31560         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
31561
31562         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
31563         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
31564
31565         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
31566         Add argument name.
31567
31568         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
31569         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
31570         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
31571         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
31572         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
31573
31574         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
31575
31576         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
31577
31578         (TARGET_ASM_RELOC_RW_MASK): Add return type.
31579         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
31580
31581         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
31582
31583         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
31584         Use prototype.
31585
31586         (TARGET_ASM_NAMED_SECTION): Fix argument list.
31587
31588         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
31589         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
31590
31591         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
31592
31593         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
31594
31595         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
31596         referring to it.  Fix language.
31597
31598         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
31599
31600         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
31601
31602         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
31603
31604         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
31605
31606         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
31607         '@var{stream}.  Remove stray 'and'.
31608
31609         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
31610
31611         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
31612
31613         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
31614
31615         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
31616         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
31617
31618         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
31619         Fix description of return value.
31620         Rename argument "sz" to "len."
31621
31622         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
31623         Clarify meaning of 'true' return value.
31624
31625         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
31626
31627         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
31628         rep_mode versus mode_rep.
31629
31630         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
31631
31632         (TARGET_BUILTIN_DECL): Fix name.
31633
31634         (TARGET_COMMUTATIVE_P): Fix type of first argument.
31635
31636         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
31637
31638         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
31639
31640         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
31641
31642         (TARGET_RELAXED_ORDERING): Use @deftypevr.
31643
31644         (TARGET_GET_DRAP_RTX): Note that this is a hook.
31645         Clarify language.
31646
31647         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
31648         Rename argument tm_fn to md_fn.
31649
31650         (TARGET_OPTION_PRINT): Fix argument list.
31651
31652 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
31653
31654         PR target/42664
31655         * config/i386/i386.c (ix86_fixup_binary_operands):
31656         Revert FMA4 fixup of operands.
31657
31658 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
31659
31660         PR gcc/42525
31661         * Makefile.in (write_entries_to_file, install-plugin):
31662         Use \012 instead of \n with tr.
31663
31664 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
31665
31666         * configure.ac (HAVE_AS_REF): New C macro.
31667         * configure: Regenerate.
31668         * config.in: Likewise.
31669         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
31670         if HAVE_AS_REF.
31671         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
31672         if HAVE_AS_REF.
31673
31674 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
31675
31676         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
31677
31678         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
31679
31680         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
31681
31682         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
31683
31684         (TARGET_IN_SMALL_DATA_P): Fix argument type.
31685
31686         (TARGET_BINDS_LOCAL_P): Fix argument type.
31687
31688         (TARGET_ASM_FILE_END): Use prototype.
31689
31690         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
31691
31692         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
31693
31694         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
31695
31696         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
31697
31698         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
31699         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
31700
31701         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
31702         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
31703
31704         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
31705         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
31706         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
31707         (TARGET_ADDR_SPACE_CONVERT): Likewise.
31708
31709         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
31710
31711         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
31712
31713         (TARGET_INIT_BUILTINS): Use prototype.
31714
31715         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
31716         Put 'const char *' in braces.  Fix parameter types.
31717         (TARGET_INVALID_CONVERSION): Fix parameter types.
31718         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
31719         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
31720
31721         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
31722         Fix argument type.
31723
31724         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
31725
31726         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
31727
31728 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
31729
31730         * doc/tm.texi (TARGET_HELP): Fix return type.
31731
31732         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
31733         in braces.  Fix argument types.
31734
31735         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
31736
31737         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
31738
31739         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
31740
31741         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
31742         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
31743
31744         (TARGET_MANGLE_TYPE): Fix argument types.
31745
31746         (TARGET_IRA_COVER_CLASSES): Use prototype.
31747
31748         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
31749
31750         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
31751
31752         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
31753
31754         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
31755
31756         (TARGET_CALLEE_COPIES): Fix argument types.
31757
31758         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
31759
31760         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
31761
31762         (TARGET_FUNCTION_VALUE): Fix argument types.
31763
31764         (TARGET_RETURN_IN_MSB): Fix argument type.
31765
31766         (TARGET_RETURN_IN_MEMORY): Fix argument types.
31767
31768         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
31769
31770         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
31771
31772         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
31773         agree with return type.
31774
31775         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
31776
31777 2010-01-15  Jing Yu  <jingyu@google.com>
31778
31779         PR rtl-optimization/42691
31780         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
31781         a pseudo to a constant and are merged, and adjust comments.
31782
31783 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
31784
31785         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
31786
31787 2010-01-15  Richard Guenther  <rguenther@suse.de>
31788
31789         PR middle-end/42739
31790         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
31791         labels of computed or non-local gotos to the destination.
31792         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
31793         landing pad label is the first label.
31794
31795 2010-01-15  Richard Guenther  <rguenther@suse.de>
31796
31797         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
31798
31799 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
31800
31801         PR target/42747
31802         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
31803         to allow generation of the xssqrtdp instruction on power7.
31804         (sqrtdf2_fpr): Ditto.
31805
31806 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
31807
31808         PR middle-end/42674
31809         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
31810         functions with noreturn attribute.
31811
31812         PR c++/42608
31813         * varasm.c (declare_weak): Add weak attribute to decl if it
31814         doesn't have one already.
31815         (assemble_external): Only add decls to weak_decls if they also
31816         have weak attribute.
31817
31818 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
31819
31820         * var-tracking.c (var_reg_delete): Don't delete the association
31821         between REGs and values or one-part variables if the register
31822         isn't clobbered.
31823
31824 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
31825
31826         PR debug/42657
31827         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
31828         because its first operand is a non-localized variable.
31829
31830 2010-01-14  Martin Jambor  <mjambor@suse.cz>
31831
31832         PR tree-optimization/42706
31833         * tree-sra.c (encountered_recursive_call): New variable.
31834         (encountered_unchangable_recursive_call): Likewise.
31835         (sra_initialize): Initialize both new variables.
31836         (callsite_has_enough_arguments_p): New function.
31837         (scan_function): Call decl and flags check only for IPA-SRA, check
31838         whether there is a recursive call and whether it has enough arguments.
31839         (all_callers_have_enough_arguments_p): New function.
31840         (convert_callers): Look for recursive calls only when
31841         encountered_recursive_call is set.
31842         (ipa_early_sra): Bail out either if
31843         !all_callers_have_enough_arguments_p or
31844         encountered_unchangable_recursive_call.
31845
31846 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
31847
31848         * sel-sched.c: Add 2010 to copyright years.
31849         * sel-sched-ir.c: Likewise.
31850         * sel-sched-ir.h: Likewise.
31851
31852 2010-01-14  Martin Jambor  <mjambor@suse.cz>
31853
31854         PR tree-optimization/42714
31855         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
31856         constructors specially.
31857
31858 2010-01-14  Andi Kleen  <ak@linux.intel.com>
31859
31860         * config/i386/drivers-i386.c (detect_caches_intel):
31861         Add l2sizekb parameter and fill in.
31862         (host_detect_local_cpu): Add l2sizekb, fill in.
31863         Add Atom small cache heuristic.
31864
31865 2010-01-14  Andi Kleen  <ak@linux.intel.com>
31866
31867         * config/i386/drivers-i386.c (detect_caches_cpuid4):
31868         Add level3 parameter and fill in.
31869         (detect_caches_intel): Handle level3 cache.
31870
31871 2010-01-14  Andi Kleen  <ak@linux.intel.com>
31872
31873         * config/i386/drivers-i386.c (host_detect_local_cpu):
31874         Fix core duo detection.
31875
31876 2010-01-14  Andi Kleen  <ak@linux.intel.com>
31877
31878         * config/i386/drivers-i386.c (host_detect_local_cpu):
31879         Fix Atom detection.
31880
31881 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
31882
31883         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
31884         (rs6000_variable_issue_1): this.  Use...
31885         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
31886
31887 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
31888
31889         * sel-sched-ir.c (sel_restore_other_notes): Rename to
31890         sel_restore_notes.  Update all callers.  Call reemit_notes
31891         for all insns.
31892
31893 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
31894
31895         PR rtl-optimization/42246
31896         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
31897         loops.
31898
31899 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
31900
31901         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
31902         all successors is the same as number of successors in current region.
31903
31904 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
31905
31906         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
31907         to rename is not separable.  Otherwise check that its LHS is not NULL.
31908
31909 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
31910
31911         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
31912
31913 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
31914
31915         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
31916         available registers when failed to discover LHS register class.
31917         Fix indentation.  Update comment.
31918
31919 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
31920             Alexander Monakov  <amonakov@ispras.ru>
31921
31922         PR rtl-optimization/42389
31923         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
31924         to can_issue_more.
31925         (advance_state_on_fence): Likewise.
31926         (sel_target_adjust_priority): Print debug output only when
31927         sched_verbose >= 4, not 2.
31928         (get_expr_cost): Do not issue all unique insns on the next cycle.
31929         (fill_insns): Initialize can_issue_more from the value saved
31930         with the fence.
31931         * sel-sched-ir.c (flist_add): New parameter issue_more.
31932         Init FENCE_ISSUE_MORE with it.
31933         (merge_fences): Likewise.
31934         (init_fences): Update call to flist_add.
31935         (add_to_fences, add_clean_fence_to_fences)
31936         (add_dirty_fence_to_fences): Likewise.
31937         (move_fence_to_fences): Update call to merge_fences.
31938         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
31939         sched groups.
31940         * sel-sched-ir.h (struct _fence): New field issue_more.
31941         (FENCE_ISSUE_MORE): New accessor macro.
31942
31943 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
31944
31945         PR rtl-optimization/42388
31946         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
31947         that have no predecessors nor successors.  Do not call move_bb_info
31948         for empty blocks outside of current region.
31949
31950 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
31951
31952         PR rtl-optimization/42294
31953         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
31954         * sel-sched.c (move_exprs_to_boundary): Transitively add all
31955         originators' originators.
31956
31957 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
31958
31959         PR rtl-optimization/39453
31960         PR rtl-optimization/42246
31961         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
31962         for pipelining_p.
31963         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
31964
31965 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
31966             Alexander Monakov  <amonakov@ispras.ru>
31967
31968         PR middle-end/42245
31969         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
31970         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
31971         argument.  Update all callers.
31972         (tidy_control_flow): ... and here.  Recompute topological order
31973         of basic blocks in region if necessary.
31974         (sel_redirect_edge_and_branch): Change return type.  Return true
31975         if topological order might have been invalidated.
31976         (purge_empty_blocks): Export and move from...
31977         * sel-sched.c (purge_empty_blocks): ... here.
31978         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
31979         (maybe_tidy_empty_bb): Delete prototype.
31980         (purge_empty_blocks): Declare.
31981
31982 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
31983
31984         PR rtl-optimization/42249
31985         * sel-sched.c (try_replace_dest_reg): When chosen register
31986         and original register is the same, do not bail out early, but
31987         still check all original insns for validity of replacing destination
31988         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
31989         in this case.
31990
31991 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
31992
31993         PR c/42721
31994         Port from no-undefined-overflow branch:
31995         2009-03-09  Richard Guenther  <rguenther@suse.de>
31996
31997         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
31998
31999 2010-01-14  Richard Guenther  <rguenther@suse.de>
32000
32001         PR lto/42665
32002         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
32003
32004 2010-01-14  Ira Rosen  <irar@il.ibm.com>
32005
32006         PR tree-optimization/42709
32007         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
32008         as scalar type in creation of constant vector operand.
32009
32010 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
32011
32012         PR testsuite/42414
32013         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
32014         (check-parallel-%): Match `testsuite' directory component only
32015         at the end.
32016
32017 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
32018
32019         PR translation/39521
32020         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
32021         strings with _().
32022
32023 2010-01-13  Richard Guenther  <rguenther@suse.de>
32024
32025         PR tree-optimization/42730
32026         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
32027         offset zero.
32028
32029 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
32030
32031         PR target/pr42542
32032         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
32033         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
32034         them signed.
32035
32036 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
32037
32038         * config/bfin/libgcc-bfin.ver: Regenerate based on current
32039         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
32040         ___umulsi3_highpart.
32041
32042         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
32043         rather than schedule_insns if the pass is enabled.
32044
32045 2010-01-13  Martin Jambor  <mjambor@suse.cz>
32046
32047         PR tree-optimization/42704
32048         * tree-sra.c (sra_modify_assign): Do not delete assignments to
32049         SSA_NAMEs.
32050
32051 2010-01-13  Martin Jambor  <mjambor@suse.cz>
32052
32053         PR tree-optimization/42703
32054         * tree-sra.c (analyze_access_subtree): Check that we can build a
32055         reference to the original data within the aggregate.
32056
32057 2010-01-13  Richard Guenther  <rguenther@suse.de>
32058
32059         PR tree-optimization/42705
32060         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
32061
32062 2010-01-13  Richard Guenther  <rguenther@suse.de>
32063
32064         PR middle-end/42716
32065         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
32066
32067 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
32068
32069         PR debug/41371
32070         * var-tracking.c (values_to_unmark): New variable.
32071         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
32072         values_to_unmark vector.  Moved body to...
32073         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
32074         instead queue it into values_to_unmark vector.
32075         (vt_find_locations): Free values_to_unmark vector.
32076
32077 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
32078
32079         * config/s390/s390.c (override_options): Set
32080         default of max-pending-list-length to 256
32081
32082 2010-01-13  Richard Guenther  <rguenther@suse.de>
32083
32084         PR lto/42678
32085         * tree-pass.h (PROP_gimple_lcx): New.
32086         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
32087         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
32088         before the final cleanup_eh.
32089         (dump_properties): Dump PROP_gimple_lcx.
32090         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
32091         (tree_lower_complex_O0): Remove.
32092         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
32093         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
32094         tree_lower_complex, schedule TODO_update_ssa.
32095         * lto-streamer-out.c (output_function): Stream the functions
32096         properties.
32097         * lto-streamer-in.c (input_function): Likewise.
32098         (lto_read_body): Do not override them here.
32099
32100 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
32101
32102         PR c/42708
32103         * c-typeck.c (build_c_cast): Fold value cast to union type before
32104         wrapping it in a CONSTRUCTOR.
32105
32106 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
32107
32108         PR rtl-optimization/42699
32109         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
32110         involved.
32111
32112 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32113
32114         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
32115         SUBTARGET_WARN_UNUSED_SPEC): Move ...
32116         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
32117         SUBTARGET_WARN_UNUSED_SPEC): ... here
32118         * config/mips/iris5.h (LIBGCC_SPEC): Define.
32119
32120 2010-01-12  Julian Brown  <julian@codesourcery.com>
32121
32122         * config/arm/neon-schedgen.ml (Utils): Don't try to
32123         open missing module.
32124         (find_with_result): New.
32125
32126 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
32127
32128         PR debug/42662
32129         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
32130         sharing when canonicalizing ({lt,ge}u (plus a b) b).
32131
32132         PR tree-optimization/42645
32133         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
32134         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
32135         decl_map, set processing_debug_stmt to -1 and return name without
32136         any remapping.
32137
32138 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
32139
32140         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
32141         binutils version, and reword target configuration description.
32142
32143 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
32144
32145         * config/avr/avr.h (LINKER_NAME): Remove.
32146
32147 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
32148
32149         PR target/42416
32150         * config/rs6000/rs6000.c (rs6000_override_options): On targets
32151         that support VSX, warn for -mno-altivec if vsx is not disabled,
32152         and disable vsx.
32153
32154 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
32155             Shujing Zhao  <pearly.zhao@oracle.com>
32156
32157         PR translation/42469
32158         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
32159         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
32160         character between option name and help text.
32161         * c.opt (imultilib): Likewise.
32162
32163 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
32164
32165         * lto-streamer-out.c (output_unreferenced_globals): Output static
32166         variables.
32167
32168 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
32169
32170         PR rtl-optimization/42621
32171         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
32172         optimizing for size.
32173         (duplicate_computed_gotos): Remove now-redundant check.
32174
32175 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
32176
32177         PR target/37454
32178         * configure.ac: Save and restore LDFLAGS and LIBS
32179         * configure: Regenerate.
32180
32181 2010-01-10  Richard Guenther  <rguenther@suse.de>
32182
32183         PR middle-end/42667
32184         * builtins.c (fold_builtin_strlen): Add type argument and
32185         convert the resulting length to it.
32186         (fold_builtin_1): Adjust.
32187
32188 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
32189
32190         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
32191         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
32192         1 insn.
32193         (num_insns_constant_wide): Adjust for that change.
32194
32195 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
32196
32197         PR debug/42631
32198         * web.c (union_defs): Add used argument, to combine uses of
32199         uninitialized regs.
32200         (entry_register): Adjust type and tests of used argument.
32201         (web_main): Widen used for new use.  Pass it to union_defs.
32202         * df.h (union_defs): Adjust prototype.
32203
32204 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
32205
32206         PR debug/42630
32207         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
32208         uses in new incoming argument.  Free body.
32209         (reset_debug_uses_in_loop): New.
32210         (analyze_insn_to_expand_var): Call the latter if the former found
32211         anything.  Fix whitespace.  Reject invalid dest overlaps before
32212         going through all insns in the loop.
32213
32214 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
32215
32216         PR debug/42629
32217         * haifa-sched.c (dying_use_p): Debug insns don't count.
32218
32219 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
32220
32221         PR middle-end/42363
32222         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
32223         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
32224         (verify_gimple_call): Reject LHS in noreturn calls.
32225
32226 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
32227
32228         PR debug/42604
32229         PR debug/42395
32230         * tree-vect-loop-manip.c (adjust_info): New type.
32231         (adjust_vec): New pointer to vector.
32232         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
32233         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
32234         (slpeel_update_phis_for_duplicate_loop): Use them.
32235         (slpeel_update_phi_nodes_for_guard1): Likewise.
32236         (slpeel_update_phi_nodes_for_guard2): Likewise.
32237         (slpeel_tree_peel_loop_to_edge): Likewise.
32238         (vect_update_ivs_after_vectorizer): Likewise.
32239
32240 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
32241
32242         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
32243         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
32244
32245 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
32246
32247         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
32248         bogus uninitialized warning.
32249
32250 2010-01-09  Richard Guenther  <rguenther@suse.de>
32251
32252         PR middle-end/42512
32253         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
32254         the evolution is compatible with the initial condition.
32255
32256 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
32257
32258         * gcc.c (process_command): Update copyright notice dates.
32259         * gcov.c (print_version): Likewise.
32260         * gcov-dump.c (print_version): Likewise.
32261         * mips-tfile.c (main): Likewise.
32262         * mips-tdump.c (main): Likewise.
32263
32264 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
32265
32266         PR target/41885
32267         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
32268         (rotlhi3): Delete.
32269         (rotlhi3_8): Delete.
32270         (rotlsi3): Delete.
32271         (rotlsi3_8): Delete.
32272         (rotlsi3_16): Delete.
32273         (rotlsi3_24): Delete.
32274         (rotl<mode>3): New.
32275         (*rotw<mode>3): New.
32276         (*rotb<mode>3): New.
32277         * config/avr/avr.c (avr_rotate_bytes): New function.
32278         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
32279
32280 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
32281
32282         PR target/37454
32283         * configure.ac: Modify -rdynamic check.
32284         * configure: Regenerate.
32285
32286 2010-01-08  DJ Delorie  <dj@redhat.com>
32287
32288         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
32289         register popping order.
32290
32291 2010-01-08  Richard Guenther  <rguenther@suse.de>
32292
32293         PR lto/42528
32294         * c.opt (fsigned-char): Also let LTO handle this option.
32295         (funsigned-char): Likewise.
32296
32297 2010-01-07  Richard Guenther  <rguenther@suse.de>
32298
32299         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
32300         (gimple_op): Likewise.
32301         (gimple_op_ptr): Likewise.
32302         (gimple_assign_set_lhs): Remove gcc_assert.
32303         (gimple_assign_set_rhs1): Likewise.
32304         (gimple_assign_set_rhs2): Likewise.
32305         (gimple_call_set_lhs): Likewise.
32306         (gimple_call_set_fn): Likewise.
32307         (gimple_call_set_fndecl): Likewise.
32308         (gimple_call_fndecl): Likewise.
32309         (gimple_call_return_type): Likewise.
32310         (gimple_call_set_chain): Likewise.
32311         (gimple_call_num_args): Likewise.
32312         (gimple_call_set_arg): Likewise.
32313         (gimple_cond_set_code): Likewise.
32314         (gimple_cond_set_lhs): Likewise.
32315         (gimple_cond_set_rhs): Likewise.
32316         (gimple_cond_set_true_label): Likewise.
32317         (gimple_cond_set_false_label): Likewise.
32318         (gimple_label_set_label): Likewise.
32319         (gimple_goto_set_dest): Likewise.
32320         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
32321         (gimple_debug_bind_get_value): Likewise.
32322         (gimple_debug_bind_get_value_ptr): Likewise.
32323         (gimple_debug_bind_set_var): Likewise.
32324         (gimple_debug_bind_set_value): Likewise.
32325         (gimple_debug_bind_reset_value): Likewise.
32326         (gimple_debug_bind_has_value_p): Likewise.
32327         (gimple_return_retval_ptr): Remove gcc_assert.
32328         (gimple_return_retval): Likewise.
32329         (gimple_return_set_retval): Likewise.
32330         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
32331         (safe_referenced_var_iterator): Remove.
32332         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
32333         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
32334         (fill_referenced_var_vec): Remove.
32335         (first_readonly_imm_use): Remove redundant gcc_assert.
32336         (phi_arg_index_from_use): Combine gcc_asserts.
32337         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
32338         (first_imm_use_stmt): Remove redundant gcc_assert.
32339         * tree-cfg.c (verify_gimple_call): Verify function and chain
32340         operands.  Verify arguments.
32341         (verify_types_in_gimple_stmt): Verify condition code and labels.
32342
32343 2010-01-07  Richard Guenther  <rguenther@suse.de>
32344
32345         PR tree-optimization/42641
32346         * sese.c (rename_map_elt_info): Use the SSA name version, do
32347         not hash pointers.
32348
32349 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
32350
32351         PR tree-optimization/42625
32352         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
32353         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
32354
32355 2010-01-07  Duncan Sands  <baldrick@free.fr>
32356
32357         * Makefile.in (PLUGIN_HEADERS): Add version.h.
32358
32359 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
32360
32361         PR target/42511
32362         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
32363         note itself is not function_invariant_p.
32364
32365 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
32366
32367         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
32368         Do not add the DF_NOTE problem.
32369         * store-motion.c (execute_rtl_store_motion): Likewise.
32370
32371 2010-01-07  Martin Jambor  <mjambor@suse.cz>
32372
32373         PR tree-optimization/42157
32374         * tree-sra.c (compare_access_positions): Stabilize sort if both
32375         accesses have integer types, return zero immediately if they are the
32376         same.
32377
32378 2010-01-06  Richard Henderson  <rth@redhat.com>
32379
32380         PR middle-end/41883
32381         * haifa-sched.c (add_to_note_list): Merge into ...
32382         (concat_note_lists): ... here, and ...
32383         (unlink_other_notes, rm_other_notes): Merge into...
32384         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
32385         NOTE_INSN_EPILOGUE_BEG.
32386
32387 2010-01-06  Richard Guenther  <rguenther@suse.de>
32388
32389         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
32390         not inline regular functions into always-inline functions.
32391
32392 2010-01-06  Nick Clifton  <nickc@redhat.com>
32393
32394         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
32395         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
32396         used together.
32397         (OVERRIDE_OPTIONS): Delete.
32398         (OPTIMIZATION_OPTIONS): Define.
32399         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
32400         * config/rx/rx.c (rx_handle_option): Issue an error message if
32401         -mcpu=rx200 and -fpu are used together.
32402         (rx_set_optimization_options): New function.  Issue an error
32403         message if an optimization attribute attempts to reset the FPU/
32404         math optimization pairing.
32405         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
32406         * config/rx/rx.opt: Set the default to 32-bit doubles.
32407         * config/rx/t-rx: Add multilibs for -nofpu option.
32408         * doc/invoke.texi: Update documentation of RX options.
32409
32410 2010-01-06  Richard Guenther  <rguenther@suse.de>
32411
32412         * tree-ssa-pre.c (name_to_id): New global.
32413         (alloc_expression_id): Simplify SSA name handling.
32414         (lookup_expression_id): Likewise.
32415         (init_pre): Zero name_to_id.
32416         (fini_pre): Free it.
32417
32418 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
32419
32420         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
32421
32422 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
32423
32424         PR target/42542
32425         * config/i386/sse.md (smaxv2di3): New.
32426         (umaxv2di3): Likewise.
32427         (sminv2di3): Likewise.
32428         (uminv2di3): Likewise.
32429
32430 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
32431
32432         PR target/42564
32433         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
32434         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
32435         (legitimize_tls_address): Likewise.
32436         (sparc_tls_referenced_p): Likewise.
32437         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
32438         and adjust calls to legitimize_pic_address.
32439         (legitimate_constant_p) Use sparc_tls_referenced_p.
32440         (legitimate_pic_operand_p): Likewise.
32441         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
32442         (sparc_tls_symbol_ref_1): Delete.
32443         (sparc_tls_referenced_p): Make static, recognize specific patterns.
32444         (legitimize_tls_address): Make static, handle CONST patterns.
32445         (legitimize_pic_address): Make static, remove unused parameter and
32446         adjust recursive calls.
32447         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
32448         and adjust call to legitimize_pic_address.
32449         (sparc_output_mi_thunk): Likewise.
32450
32451 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
32452             H.J. Lu  <hongjiu.lu@intel.com>
32453
32454         PR target/42542
32455         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
32456         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
32457         operands to make them signed.
32458
32459         Revert:
32460         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
32461
32462         PR target/42542
32463         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
32464         GTU to GT for V4SI and V2DI.
32465
32466         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
32467         (umin<mode>3): Removed.
32468         (uminv8hi3): New.
32469         (uminv4si3): Likewise.
32470
32471 2010-01-05  Martin Jambor  <mjambor@suse.cz>
32472
32473         PR tree-optimization/42462
32474         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
32475         current_function_decl to helper functions and macros.
32476
32477 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32478
32479         PR bootstrap/41771
32480         * flags.h: Don't include real.h.
32481         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
32482         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
32483         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
32484         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
32485         * dominance.c: Update copyright.
32486         * gimple.c (walk_gimple_op): Remove inline.
32487         * tree-ssa-reassoc.c: Include real.h.
32488         * Makefile.in (FLAGS_H): Remove $(REAL_H).
32489         (tree-ssa-reassoc.o): Depend on $(REAL_H).
32490
32491 2010-01-05  Nick Clifton  <nickc@redhat.com>
32492
32493         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
32494         register to push into the stack frame when the accumulator has to
32495         be saved during interrupts.
32496
32497 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
32498
32499         * doc/invoke.texi: Remove the documentation about option
32500         -Wunreachable-code.
32501         * common.opt (Wunreachable-code):  Preserved for backward
32502         compatibility.
32503         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
32504         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
32505         the backward compatibility flag section.
32506
32507 2010-01-05  Richard Guenther  <rguenther@suse.de>
32508
32509         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
32510
32511 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
32512
32513         PR other/42611
32514         * cfgexpand.c (expand_one_var): Diagnose too large variables.
32515
32516         PR tree-optimization/42508
32517         * tree-sra.c (convert_callers): Check for recursive call
32518         by comparing cgraph nodes instead of decls.
32519         (modify_function): Call ipa_modify_formal_parameters also
32520         on all same_body aliases.
32521
32522         * cgraphunit.c (cgraph_materialize_all_clones): Compare
32523         cgraph nodes when checking for same_body aliases.
32524
32525 2010-01-05  Richard Guenther  <rguenther@suse.de>
32526
32527         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
32528         allocation and lookup.
32529         (get_or_alloc_expr_for_constant): Likewise.
32530         (phi_translate): Sink allocation.
32531
32532 2010-01-04  Richard Guenther  <rguenther@suse.de>
32533
32534         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
32535         a new entry only if needed.
32536         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
32537         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
32538         hashtable lookup.
32539         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
32540         the result array.
32541         (phi_translate): Handle CONSTANTs early.
32542
32543 2010-01-04  Martin Jambor  <mjambor@suse.cz>
32544
32545         PR tree-optimization/42398
32546         * tree-sra.c (struct access): Removed flag grp_different_types.
32547         (dump_access): Do not dump the removed flag.
32548         (sort_and_splice_var_accesses): Do not set the removed flag.
32549         (sra_modify_expr): Check for type compatibility directly.
32550
32551 2010-01-04  Martin Jambor  <mjambor@suse.cz>
32552
32553         PR tree-optimization/42366
32554         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
32555         edges with variable number of parameters.
32556         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
32557         flag instead of asserting it.
32558         (ipa_read_node_info): Read uses_analysis_done flag.
32559
32560 2010-01-04  Richard Guenther  <rguenther@suse.de>
32561
32562         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
32563         iterative_hash_* as intended.
32564         (vn_reference_compute_hash): Likewise.  Simplify hashing
32565         SSA names.
32566         (vn_reference_lookup_2): Likewise.
32567         (vn_nary_op_compute_hash): Likewise.
32568         (vn_phi_compute_hash): Likewise.
32569         (expressions_equal_p): Remove strange code.
32570         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
32571         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
32572         (bitmap_insert_into_set_1): Take value-id as parameter.
32573         (add_to_value): Pass it.
32574         (bitmap_insert_into_set): Likewise.
32575         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
32576
32577 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
32578
32579         PR driver/42442
32580         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
32581         (do_self_spec): For switches with SWITCH_IGNORE set set also
32582         SWITCH_IGNORE_PERMANENTLY.
32583         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
32584         of SWITCH_IGNORE.
32585
32586 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
32587
32588         * lto-streamer-out.c (output_unreferenced_globals): Output the full
32589         tree of an unreferenced global var.
32590
32591 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
32592
32593         PR target/42542
32594         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
32595         GTU to GT for V4SI and V2DI.
32596
32597         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
32598         (umin<mode>3): Removed.
32599         (uminv8hi3): New.
32600         (uminv4si3): Likewise.
32601
32602 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
32603
32604         PR lto/42581
32605         * collect2.c (main): Turn on trace in collect2 if -v is passed
32606         to gcc with LTO.
32607
32608 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
32609
32610         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
32611         description of expression operand.
32612
32613 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
32614
32615         * configure.ac: Add install-html to target_list for Make-hooks.
32616         * configure: Regenerate.
32617         * fortran/Make-lang.in (F95_HTMLFILES): New.
32618         (fortran.html): Use it.
32619         (fortran.install-html): New.
32620         * Makefile.in (install-html): Add lang.install-html.
32621         * java/Make-lang.in (JAVA_HTMLFILES): New.
32622         (java.html): Use it.
32623         (java.install-html): New.
32624         * objc/Make-lang.in (objc.install-html): New.
32625         * objcp/Make-lang.in (obj-c++.install-html): New.
32626         * cp/Make-lang.in (c++.install-html): New.
32627         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
32628         * lto/Make-lang.in (lto.install-html): New.
32629
32630 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
32631
32632         PR lto/42520
32633         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
32634
32635 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
32636
32637         PR rtl-optimization/41862
32638         * store-motion.c (store_killed_in_insn, compute_store_table,
32639         remove_reachable_equiv_notes, replace_store_insn,
32640         build_store_vectors): Ignore all DEBUG_INSNs.
32641
32642 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
32643
32644         PR lto/41564
32645         * common.opt: Add dumpdir.
32646
32647         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
32648         isn't specified.
32649         (option_map): Add --dumpdir.
32650
32651         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
32652
32653         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
32654
32655         * opts.c (decode_options): Try dump_dir_name first if
32656         dump_base_name isn't an absolute path.
32657         (common_handle_option): Handle OPT_dumpdir.
32658
32659         * toplev.c (dump_dir_name): New.
32660         (print_switch_values): Also ignore -dumpdir.
32661
32662         * toplev.h (dump_dir_name): New.
32663
32664 2010-01-03  Richard Guenther  <rguenther@suse.de>
32665
32666         PR tree-optimization/42589
32667         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
32668         double-word expansion of bswap32.
32669
32670 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
32671
32672         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
32673         with BLOCK_FOR_INSN.
32674         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
32675         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
32676         noce_process_if_block): Likewise.
32677         * gcse.c (compute_local_properties, insert_expr_in_table,
32678         insert_set_in_table, canon_list_insert, find_avail_set,
32679         pre_insert_copy_insn): Likewise.
32680
32681         * basic-block.h (BLOCK_NUM): Move from here...
32682         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
32683
32684 2010-01-03  Richard Guenther  <rguenther@suse.de>
32685
32686         PR tree-optimization/42438
32687         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
32688         contains_may_not_return_call flag.
32689         (BB_MAY_NOTRETURN): New.
32690         (valid_in_sets): Trapping nary operations are not valid
32691         in blocks that may not return.
32692         (insert_into_preds_of_block): Remove check for trapping expressions.
32693         (compute_avail): Compute also BB_MAY_NOTRETURN.
32694
32695 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
32696
32697         * doc/invoke.texi: Add 2010 to copyright years.
32698
32699 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
32700
32701         * config/sparc/sparc.c: Fix formatting nits.
32702
32703 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
32704             Alexander Monakov  <amonakov@ispras.ru>
32705
32706         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
32707
32708 2010-01-02  Richard Guenther  <rguenther@suse.de>
32709
32710         PR middle-end/42577
32711         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
32712         (simplify_switch_using_ranges): Mark to be removed edges
32713         as non-executable.
32714
32715 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
32716
32717         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
32718
32719         * collect2.c (scan_libraries): Add missing argument in call to
32720         scan_prog_file.
32721
32722 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
32723
32724         PR target/42448
32725         * config/alpha/predicates.md (aligned_memory_operand): Return false
32726         for CQImode.
32727         (unaligned_memory_operand): Return true for CQImode.
32728         * config/alpha/alpha.c (get_aligned_mem): Assert that location
32729         doesn not cross aligned SImode word boundary.
32730
32731 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
32732
32733         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
32734         Remove.
32735         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
32736         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
32737
32738 2010-01-02  Richard Guenther  <rguenther@suse.de>
32739
32740         PR lto/41597
32741         * toplev.c (compile_file): Emit LTO marker properly.  Change
32742         it to __gnu_lto_v1.
32743         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
32744
32745 2010-01-01  Richard Guenther  <rguenther@suse.de>
32746
32747         PR debug/42455
32748         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
32749
32750 2010-01-01  Richard Guenther  <rguenther@suse.de>
32751
32752         PR c/42570
32753         * c-decl.c (grokdeclarator): For zero-size arrays force
32754         structural equality checks as layout_type does.
32755
32756 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
32757
32758         * builtins.c: Update copyright to 2010.
32759
32760 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
32761
32762         PR lto/42531
32763         * lto-streamer-out.c (produce_asm): Revert the last change.
32764         (copy_function): Likewise.
32765
32766         * lto-streamer.c (lto_get_section_name): Skip any leading
32767         asterisk in name.
32768
32769 2010-01-01  Richard Guenther  <rguenther@suse.de>
32770
32771         PR middle-end/42559
32772         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
32773         for LABEL_DECLs.
32774
32775 \f
32776 Copyright (C) 2010 Free Software Foundation, Inc.
32777
32778 Copying and distribution of this file, with or without modification,
32779 are permitted in any medium without royalty provided the copyright
32780 notice and this notice are preserved.