OSDN Git Service

2010-08-30 Richard Guenther <rguenther@suse.de>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-08-30  Richard Guenther  <rguenther@suse.de>
2
3         PR tree-optimization/45449
4         * tree-ssa-live.c (remove_unused_locals): Also remove address-taken
5         variables.
6
7 2010-08-30  Joseph Myers  <joseph@codesourcery.com>
8
9         * opts.h (CL_ERR_NEGATIVE): Define.
10         * opts.c (unknown_option_callback): Don't postpone warnings for
11         options marked with CL_ERR_NEGATIVE.
12         * opts-common.c (decode_cmdline_option): Set CL_ERR_NEGATIVE error
13         for negative versions of CL_REJECT_NEGATIVE options.
14
15 2010-08-30  Uros Bizjak  <ubizjak@gmail.com>
16
17         * config/i386/i386.md (zero_extendsidi2_1): Rename from
18         zero_extendsidi2_32.
19         (zero_extend<mode>di2): Macroize insn from zero_extend{qi,hi}di2
20         using SWI12 mode iterator.
21         (zero_extendhisi2_and): Merge insn pattern and corresponding spliter
22         to define_insn_and_split pattern.
23         (zero_extendqi<mode>2): Macroize expander from zero_extendqi{hi,si}2
24         using SWI24 mode iterator.
25         (*zero_extendqi<mode>2_and): Macroize insn from
26         *zero_extendqi{hi,si}2_and using SWI24 mode iterator.
27         (*zero_extendqi<mode>2_movzbl_and): Macroize insn from
28         *zero_extendqihi2_movzbw_and and *zero_extendqisi2_movzbl_and using
29         SWI24 mode iterator.
30         (*zero_extendqi<mode>2_movzbl): Ditto from
31         *zero_extendqi{hi,si}2_movzbl.
32         (extendsidi2_1): Rename from extendsidi2_32.
33         (extend<mode>di2): Macroize insn from extend{qi,hi}di2 using
34         SWI12 mode iterator.
35
36 2010-08-29  Eric Botcazou  <ebotcazou@adacore.com>
37
38         * config/ia64/ia64.h (HARD_REGNO_NREGS): Return 1 for CCImode in
39         general purpose registers.
40         (HARD_REGNO_MODE_OK): Accept CCImode in general purpose registers.
41         * config/ia64/ia64.md (*movcci): Change to named pattern.  Deal
42         with general purpose registers and memory operands.  Add associated
43         CCImode post-reload splitter.
44         * config/ia64/div.md: Change BImode to CCImode throughout.
45
46 2010-08-28  Eric Botcazou  <ebotcazou@adacore.com>
47
48         * config/ia64/ia64.md (cstorebi4): Fix thinko.
49
50 2010-08-28  Hariharan Sandanagobalane <hariharan@picochip.com>
51
52         * config/picochip/picochip.c (reorder_var_tracking_notes): This
53         function was dropping debug insns which caused PR45299.
54
55 2010-08-28  Uros Bizjak  <ubizjak@gmail.com>
56
57         * config/i386/sse.md (extsuffix): New code attribute.
58         (sse4_1_<code>v8qiv8hi2): Macroize insn from sse4_1_extendv8qiv8hi2
59         and sse4_1_zero_extendv8qiv8hi2 using any_extend code iterator.
60         (sse4_1_<code>v4qiv4si2): Ditto from sse4_1_extendv4qiv4si2
61         and sse4_1_zero_extendv4qiv4si2.
62         (sse4_1_<code>v2qiv2di2): Ditto from sse4_1_extendv2qiv2di2
63         and sse4_1_zero_extendv2qiv2di2.
64         (sse4_1_<code>v4hiv4si2): Ditto from sse4_1_extendv4hiv4si2
65         and sse4_1_zero_extendv4hiv4si2.
66         (sse4_1_<code>v2hiv2di2): Ditto from sse4_1_extendv2hiv2di2
67         and sse4_1_zero_extendv2hiv2di2.
68         (sse4_1_extendv2siv2di2): Ditto from sse4_1_extendv2siv2di2
69         and sse4_1_zero_extendv2siv2di2
70
71         (<s>mulv8hi3_highpart): Macroize expander from {u,s}mulv8hi3_highpart
72         using any_extend code iterator.
73         (*avx_<s>mulv8hi3_highpart): Macroize insn from
74         *avx_{u,s}mulv8hi3_highpart using any_extend code iterator.
75         (*<s>mulv8hi3_highpart): Ditto from *{u,s}mulv8hi3_highpart.
76
77         * config/i386/i386.c (ix86_expand_sse4_unpack): Update for renamed
78         gen_sse4_1_sign_extend* functions.
79         (struct builtin_description bdesc_args): Ditto.
80
81 2010-08-27  Xinliang David Li  <davidxl@google.com>
82
83         PR/45422
84         * tree-ssa-loop-ivopts.c (iv_ca_get_num_inv_exprs): Remove.
85         (iv_ca_set_no_cp): Update used inv expr count.
86         (iv_ca_set_cp): Ditto.
87         (iv_ca_new): Initialize new member.
88         (iv_ca_free): Free memory.
89
90 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
91
92         * config/sh/sh-protos.h (sh_function_arg): Delete.
93         (sh_function_arg_advance): Delete.
94         * config/sh/sh.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
95         (PASS_IN_REG_P): Eliminate cast.
96         * config/sh/sh.c (sh_function_arg_advance): Make static.  Take a
97         const_tree and a bool.
98         (sh_function_arg): Likewise.
99         (sh_output_mi_thunk): Call sh_function_arg_advance) and
100         sh_function_arg.
101         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
102
103 2010-08-27  Naveen H.S  <naveen.S@kpitcummins.com>
104             Kaz Kojima  <kkojima@gcc.gnu.org>
105
106         * config/sh/sh.c (push_regs): Emit movml for interrupt handler
107         when possible.
108         (sh_expand_epilogue): Likewise.
109         * config/sh/sh.md (movml_push_banked): New insn.
110         (movml_pop_banked): Likewise.
111
112 2010-08-28  Bernd Schmidt  <bernds@codesourcery.com>
113
114         * genautomata.c (gen_regexp_repeat, gen_regexp_allof,
115         gen_regexp_oneof, gen_regexp_sequence): Use the string found
116         in vector element 0 rather than the original string when there's
117         only one element.
118         (gen_regexp): Remove extra semicolon.
119
120         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp, movsf_vfp,
121         thumb2_movsf_vfp): Set attribute "insn".
122         * config/arm/arm.md (arm_ashrdi3_1bit, arm_lshrdi3_1bit, not_shiftsi,
123         not_shiftsi_compare0, not_shiftsi_compare0_scratch, arm_one_cmplsi2,
124         thumb1_one_cmplsi2, notsi_compare0, notsi_compare0_scratch,
125         arm_zero_extendsidi2, arm_extendsidi2, thumb1_movdi_insn,
126         arm_movsi_insn, movhi_insn_arch4, movhi_bytes, arm_movqi_insn,
127         thumb1_movqi_insn arm32_movhf, thumb1_movhf, arm_movsf_soft_insn,
128         thumb1_movsf_insn, thumb_movdf_insn, mov_scc, mov_negscc, mov_notscc,
129         movsicc_insn, movsfcc_soft_insn, and_scc, cond_move, if_move_not,
130         if_not_move, if_shift_move, if_move_shift, if_shift_shift,
131         if_not_arith, if_arith_not, cond_move_not): Likewise.
132
133 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
134
135         * config/rs6000/rs6000-protos.h (rs6000_address_for_fpconvert):
136         New declaration.
137         (rs6000_allocate_stack_temp): Ditto.
138         (rs6000_expand_convert_si_to_sfdf): Ditto.
139
140         * config/rs6000/rs6000.c (rs6000_override_options): Adjust long
141         line.  Update the options set if power6 or power7 server/embedded
142         type options are used.  If we give a warning for no vsx under
143         -mcpu=power7 -mno-altivec, mark -mvsx as an explicit option.
144         (rs6000_allocate_stack_temp): New function to allocate a stack
145         tempoary and adjust the address so it meets either REG+OFFSET or
146         REG+REG addressing requirements.
147         (rs6000_address_for_fpconvert): Adjust REG+OFFSET addresses so
148         that they can be used with the LFIWAX/LFIWZX instrucitons.
149         (rs6000_expand_convert_si_to_sfdf): New helper funciton for
150         converting signed/unsigned SImode to either SFmode/DFmode.
151
152         * config/rs6000/rs6000.h (TARGET_FCFID): New macros to determine
153         whether certain instructions can be generated.
154         (TARGET_FCTIDZ): Ditto.
155         (TARGET_STFIWX): Ditto.
156         (TARGET_LFIWAX): Ditto.
157         (TARGET_LFIWZX): Ditto.
158         (TARGET_FCFIDS): Ditto.
159         (TARGET_FCFIDU): Ditto.
160         (TARGET_FCFIDUS): Ditto.
161         (TARGET_FCTIDUZ): Ditto.
162         (TARGET_FCTIWUZ): Ditto.
163
164         * config/rs6000/rs6000.md (UNSPEC_FCTIW): New unspec constants.
165         (UNSPEC_FCTID): Ditto.
166         (UNSPEC_LFIWAX): Ditto.
167         (UNSPEC_LFIWZX): Ditto.
168         (UNSPEC_FCTIWUZ): Ditto.
169         (rreg): Use correct constraints.
170         (SI_CONVERT_FP): New mode attribute for floating point conversion
171         tests.
172         (E500_CONVERT): Ditto.
173         (lfiwax): New insns for converting from integer to floating point
174         utilizing newer instructions.  Attempt to optimize conversions
175         that come from memory so that we don't load the value into a GPR,
176         spill it to the stack and reload it into a FPR.
177         (floatsi<mode>2_lfiwax): Ditto.
178         (floatsi<mode>2_lfiwax_mem): Ditto.
179         (floatsi<mode>2_lfiwax_mem2): Ditto.
180         (lfiwzx): Ditto.
181         (floatunssi<mode>2_lfiwzx): Ditto.
182         (floatunssi<mode>2_lfiwzx_mem): Ditto.
183         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
184         (floatdidf2_mem): Ditto.
185         (floatunsdidf2_fcfidu): Ditto.
186         (floatunsdidf2_mem): Ditto.
187         (floatunsdisf2): Ditto.
188         (floatunsdisf2_fcfidus): Ditto.
189         (floatunsdisf2_mem): Ditto.
190         (floatsidf2): Add support for LFIWAX/LFIWZX/FCFIDS/FCFIDU/FCFIDUS.
191         Use FCFID on 32-bit hosts that support it.
192         (floatsidf2_internal): Ditto.
193         (floatunssisf2): Ditto.
194         (floatunssidf2): Ditto.
195         (floatunssidf2_internal): Ditto.
196         (floatsisf2): Ditto.
197         (floatdidf2): Ditto.
198         (floatdidf2_fpr): Ditto.
199         (floatunsdidf2): Ditto.
200         (floatdisf2): Ditto.
201         (floatdisf2_fcfids): Ditto.
202         (floatdisf2_internal1): Ditto.
203         (fixuns_truncsfsi2): Delete, merge into common pattern for both
204         SF/DF.  Add power7 support.
205         (fix_truncsfsi2): Ditto.
206         (fixuns_truncdfsi2): Ditto.
207         (fixuns_truncdfdi2): Ditto.
208         (fix_truncdfsi2): Ditto.
209         (fix_truncdfsi2_internal): Ditto.
210         (fix_truncdfsi2_internal_gfxopt): Ditto.
211         (fix_truncdfsi2_mfpgpr): Ditto.
212         (fctiwz): Ditto.
213         (btruncdf2): Ditto.
214         (btruncdf2_fpr): Ditto.
215         (btructsf2): Ditto.
216         (ceildf2): Ditto.
217         (ceildf2_fpr): Ditto.
218         (ceilsf2): Ditto.
219         (floordf2): Ditto.
220         (floordf2_fpr): Ditto.
221         (floorsf2): Ditto.
222         (rounddf2): Ditto.
223         (rounddf2_fpr): Ditto.
224         (roundsf2): Ditto.
225         (fix_trunc<mode>si2): Combine SF/DF conversion into one insn.
226         (fix_trunc<mode>di2): Ditto.
227         (fixuns_trunc<mode>si2): Ditto.
228         (fixuns_trunc<mode>di2): Ditto.
229         (fctiwz_<mode>): Ditto.
230         (btrunc<mode>2): Ditto.
231         (btrunc<mode>2_fpr): Ditto.
232         (ceil<mode>2): Ditto.
233         (ceil<mode>2_fpr): Ditto.
234         (floor<mode>2): Ditto.
235         (float<mode>2_fpr): Ditto.
236         (round<mode>2): Ditto.
237         (round<mode>2_fpr): Ditto.
238         (fix_trunc<mode>si2_stfiwx): New insn for machines with STFIWX.
239         (fixuns_trunc<mode>si2_stfiwx): Ditto.
240         (fix_truncdfsi2_internal): Ditto.
241         (fix_trunc<mode>si2_mem): Combiner pattern to eliminate storing
242         converted value on stack, loaded into GPR, and then stored into
243         the final destination.
244         (fix_trunc<mode>di2_fctidz): New pattern for targets supporting
245         FCTIDZ.
246         (lrint<mode>di2): New insn, provide the lrint builtin functions.
247         (ftruncdf2): Delete, unused.
248         (fix_trunctfsi2_internal): Use gen_fctiwz_df, not gen_fctiwz.
249
250         * config/rs6000/vsx.md (toplevel): Update copyright year.
251         (VSr2): Use "ws" contraint for DFmode, not "!r#r".
252         (VSr3): Ditto.
253
254 2010-08-27  Basile Starynkevitch  <basile@starynkevitch.net>
255             Jeremie Salvucci  <jeremie.salvucci@free.fr>
256
257         * gengtype.c (output_type_enum): Test the right union member.
258
259 2010-08-27  Uros Bizjak  <ubizjak@gmail.com>
260
261         PR target/41484
262         * config/i386/sse.md (sse4_1_extendv8qiv8hi2): Also accept memory
263         operands for operand 1.
264         (sse4_1_extendv4qiv4si2): Ditto.
265         (sse4_1_extendv2qiv2di2): Ditto.
266         (sse4_1_extendv4hiv4si2): Ditto.
267         (sse4_1_extendv2hiv2di2): Ditto.
268         (sse4_1_extendv2siv2di2): Ditto.
269         (sse4_1_zero_extendv8qiv8hi2): Ditto.
270         (sse4_1_zero_extendv4qiv4si2): Ditto.
271         (sse4_1_zero_extendv2qiv2di2): Ditto.
272         (sse4_1_zero_extendv4hiv4si2): Ditto.
273         (sse4_1_zero_extendv2hiv2di2): Ditto.
274         (sse4_1_zero_extendv2siv2di2): Ditto.
275         (*sse4_1_extendv8qiv8hi2): Remove insn pattern.
276         (*sse4_1_extendv4qiv4si2): Ditto.
277         (*sse4_1_extendv2qiv2di2): Ditto.
278         (*sse4_1_extendv4hiv4si2): Ditto.
279         (*sse4_1_extendv2hiv2di2): Ditto.
280         (*sse4_1_extendv2siv2di2): Ditto.
281         (*sse4_1_zero_extendv8qiv8hi2): Ditto.
282         (*sse4_1_zero_extendv4qiv4si2): Ditto.
283         (*sse4_1_zero_extendv2qiv2di2): Ditto.
284         (*sse4_1_zero_extendv4hiv4si2): Ditto.
285         (*sse4_1_zero_extendv2hiv2di2): Ditto.
286         (*sse4_1_zero_extendv2siv2di2): Ditto.
287
288 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
289
290         * config/mips/mips-protos.h (mips_function_arg_advance): Delete
291         (mips_function_arg): Delete.
292         (mips_function_arg_boundary): Take a const_tree.
293         * config/mips/mips.c (mips_function_arg_boundary): Likewise.
294         (mips_arg_info): Likewise.
295         (mips_setup_incoming_varargs): Call mips_function_arg_advance
296         instead of FUNCTION_ARG_ADVANCE.
297         (mips_function_arg_advance): Adjust prototype.  Make static.
298         (mips_function_arg): Likewise.
299         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
300         * config/mips/mips.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
301
302 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
303
304         * config/rs6000/rs6000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
305         * config/rs6000/rs6000-protos.h (function_arg_advance): Delete.
306         (function_arg): Delete.
307         (function_arg_boundary): Take a const_tree.
308         * config/rs6000/rs6000.c (function_arg_boundary): Likewise.
309         (rs6000_spe_function_arg): Likewise.
310         (rs6000_parm_start): Likewise.
311         (rs6000_arg_size): Likewise.
312         (rs6000_darwin64_record_arg_advance_recurse): Likewise.
313         (rs6000_darwin64_record_arg): Likewise.  Take a bool instead of an int.
314         (rs6000_mixed_function_arg): Likewise.
315         (function_arg): Rename to...
316         (rs6000_function_arg): ...this.
317         (function_arg_advance): Rename to...
318         (rs6000_function_arg_advance_1): ...this
319         (rs6000_function_arg_advance): New function.  Call it.
320         (setup_incoming_varargs): Call rs6000_function_arg_advance_1.
321         (rs6000_return_in_memory): Adjust call to rs6000_darwin64_record_arg.
322         (rs6000_function_value): Likewise.
323         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
324
325 2010-08-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
326
327         * config/arm/arm.md (enabled): Test the value of arch_enabled
328         rather than just using it.
329
330 2010-08-27  Olivier Hainque  <hainque@adacore.com>
331             Eric Botcazou  <ebotcazou@adacore.com>
332
333         * dse.c (group_info.base_mem, get_group_info): Use BLKmode to
334         cover all the possible offsets from this base.
335         (scan_reads_nospill): Pass base_mem's mode to canon_true_dependence.
336
337 2010-08-26  Jakub Jelinek  <jakub@redhat.com>
338
339         PR tree-optimization/44485
340         * calls.c (flags_from_decl_or_type): For const or pure
341         noreturn functions return ECF_LOOPING_CONST_OR_PURE|ECF_NORETURN
342         together with ECF_CONST resp. ECF_PURE.
343         * builtins.c (expand_builtin): Use flags_from_decl_or_type
344         instead of querying flags directly.
345         * tree-ssa-loop-niter.c (finite_loop_p): Likewise.
346         * tree-ssa-dce.c (find_obviously_necessary_stmts): Likewise.
347
348 2010-08-26  Richard Guenther  <rguenther@suse.de>
349
350         PR tree-optimization/45255
351         * tree.c (decl_address_invariant_p): DECL_DLLIMPORT_P statics
352         and externals are also invariant.
353
354 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
355
356         PR rtl-optimization/44858
357         * combine.c (try_combine): If recog_for_combine added CLOBBERs to
358         newi2pat, make sure they don't affect newpat.
359
360         PR rtl-optimization/45400
361         * combine.c (simplify_shift_const_1) <case SUBREG>: Only use
362         SUBREG_REG if both modes are of MODE_INT class.
363
364 2010-08-25  Julian Brown  <julian@codesourcery.com>
365
366         * config/arm/arm.c (arm_issue_rate): Return 2 for Cortex-A5.
367         * config/arm/arm.md (generic_sched): No for Cortex-A5.
368         (generic_vfp): Likewise.
369         (cortex-a5.md): Include.
370         * config/arm/cortex-a5.md: New.
371
372 2010-08-25  Richard Guenther  <rguenther@suse.de>
373
374         * alias.c (get_alias_set): Assign a single alias-set to all pointers.
375         * gimple.c (gimple_get_alias_set): Remove special handling
376         for pointers.
377
378 2010-08-25  Bernd Schmidt  <bernds@codesourcery.com>
379
380         PR middle-end/45355
381         * combine.c (try_combine): Use reg_overlap_mentioned_p rather than
382         dead_or_set_p when computing i0_feeds_i2_n.
383
384         * combine.c (find_split_point): Undo canonicalization of multiply-add
385         to (minus x (mult)) when it seems likely that this will increase the
386         chances of a split.
387
388 2010-08-25  Richard Guenther  <rguenther@suse.de>
389
390         PR lto/44562
391         * lto-streamer.c (lto_record_common_node): Do not mess with
392         TYPE_CANONICAL when not in lto.
393         * gimple.c (gimple_register_type): Likewise.
394
395 2010-08-25  Richard Guenther  <rguenther@suse.de>
396
397         PR tree-optimization/45316
398         * tree-ssa-pre.c (eliminate): Properly clean EH info.
399
400 2010-08-25  Richard Guenther  <rguenther@suse.de>
401
402         PR tree-optimization/45393
403         * tree-ssa-math-opts.c (execute_cse_sincos_1): Properly transfer
404         and clean EH info.  Avoid SSA update.
405         (execute_cse_sincos): Cleanup the CFG if it has changed.
406
407 2010-08-25  Richard Guenther  <rguenther@suse.de>
408
409         PR middle-end/45379
410         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle
411         TARGET_MEM_REF in alignment computation.
412
413 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
414
415         PR tree-optimization/45059
416         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Strip useless
417         type conversions from newop{1,2}.  Assert t is a comparison and
418         newop{1,2} after the stripping are gimple vals.
419
420 2010-08-25  Tejas Belagod  <tejas.belagod@arm.com>
421
422         * config/arm/iterators.md (VU, SE, V_widen_l): New.
423         (V_unpack, US): New.
424         * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Expansion for vmovl.
425         (vec_unpack<US>_lo_<mode>): Likewise.
426         (neon_vec_unpack<US>_hi_<mode>): Instruction pattern for vmovl.
427         (neon_vec_unpack<US>_lo_<mode>): Likewise.
428         (vec_widen_<US>mult_lo_<mode>): Expansion for vmull.
429         (vec_widen_<US>mult_hi_<mode>): Likewise.
430         (neon_vec_<US>mult_lo_<mode>"): Instruction pattern for vmull.
431         (neon_vec_<US>mult_hi_<mode>"): Likewise.
432         (neon_unpack<US>_<mode>): Widening move intermediate step for
433         vectorizing without -mvectorize-with-neon-quad.
434         (neon_vec_<US>mult_<mode>): Widening multiply intermediate step
435         for vectorizing without -mvectorize-with-neon-quad.
436         * config/arm/predicates.md (vect_par_constant_high): Check for
437         high-half lanes of a vector.
438         (vect_par_constant_low): Check for low-half lanes of a vector.
439
440 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
441
442         * tree-if-conv.c (struct ifc_dr): New.
443         (IFC_DR): New.
444         (DR_WRITTEN_AT_LEAST_ONCE): New.
445         (DR_RW_UNCONDITIONALLY): New.
446         (memref_read_or_written_unconditionally): Use the cached values
447         when possible.
448         (write_memref_written_at_least_once): Same.
449         (if_convertible_loop_p): Initialize and free DR->aux fields.
450
451 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
452
453         * gimple.c (gimple_could_trap_p_1): Not static anymore.
454         Pass an extra bool parameter include_mem.
455         (gimple_could_trap_p): Adjust call to gimple_could_trap_p_1.
456         (gimple_assign_rhs_could_trap_p): Same.
457         * gimple.h (gimple_could_trap_p_1): Declared.
458         * tree-data-ref.h (same_data_refs_base_objects): New.
459         (same_data_refs): New.
460         * tree-if-conv.c (memrefs_read_or_written_unconditionally): New.
461         (write_memrefs_written_at_least_once): New.
462         (ifcvt_memrefs_wont_trap): New.
463         (operations_could_trap): New.
464         (ifcvt_could_trap_p): New.
465         (if_convertible_gimple_assign_stmt_p): Call ifcvt_could_trap_p.
466         Gets a vector of data refs.
467         (if_convertible_stmt_p): Same.
468         (if_convertible_loop_p_1): New.
469         (if_convertible_loop_p): Call if_convertible_loop_p_1.
470
471 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
472
473         * common.opt (ftree-loop-if-convert-stores): New flag.
474         * doc/invoke.texi (ftree-loop-if-convert-stores): Documented.
475         * tree-if-conv.c (ifc_temp_var): Pass an extra parameter GSI.  Insert
476         the created statement before GSI.
477         (if_convertible_phi_p): Allow virtual phi nodes when
478         flag_loop_if_convert_stores is set.
479         (if_convertible_gimple_assign_stmt_p): Allow memory reads and writes
480         Do not handle types that do not match is_gimple_reg_type.
481         Remove loop and bb parameters.  Call gimple_could_trap_p instead of
482         when flag_loop_if_convert_stores is set, as LHS can contain
483         memory refs.
484         (if_convertible_stmt_p): Remove loop and bb parameters.  Update calls
485         to if_convertible_gimple_assign_stmt_p.
486         (if_convertible_loop_p): Update call to if_convertible_stmt_p.
487         (replace_phi_with_cond_gimple_assign_stmt): Renamed
488         predicate_scalar_phi.  Do not handle virtual phi nodes.
489         (ifconvert_phi_nodes): Renamed predicate_all_scalar_phis.
490         Call predicate_scalar_phi.
491         (insert_gimplified_predicates): Insert the gimplified predicate of a BB
492         just after the labels for flag_loop_if_convert_stores, otherwise
493         insert the predicate in the end of the BB.
494         (predicate_mem_writes): New.
495         (combine_blocks): Call predicate_all_scalar_phis.  When
496         flag_loop_if_convert_stores is set, call predicate_mem_writes.
497         (tree_if_conversion): Call mark_sym_for_renaming when
498         flag_loop_if_convert_stores is set.
499         (main_tree_if_conversion): Return TODO_update_ssa_only_virtuals when
500         flag_loop_if_convert_stores is set.
501
502 2010-08-24  Anatoly Sokolov  <aesok@post.ru>
503
504         * config/pa/pa.c (hppa_register_move_cost, pa_libcall_value,
505         pa_function_value_regno_p, pa_print_operand_punct_valid_p): New.
506         (pa_function_value): Make static.
507         (override_options): Rename to...
508         (pa_option_override): ...this. Make static.
509         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_REGISTER_MOVE_COST,
510         TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P,
511         TARGET_OPTION_OVERRIDE): Define.
512         * config/pa/pa.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P,
513         LIBCALL_VALUE, REGISTER_MOVE_COST, PRINT_OPERAND_PUNCT_VALID_P):
514         Remove.
515         * config/pa/pa-protos.h (override_options): Remove.
516
517 2010-08-24  Richard Guenther  <rguenther@suse.de>
518
519         PR middle-end/45379
520         * tree-ssa-address.c (create_mem_ref_raw): Drop to MEM_REF
521         if addr->index is NULL or zero.
522         * tree-ssa-alias.c (indirect_refs_may_alias_p): Handle
523         TARGET_MEM_REF more properly.
524         (indirect_ref_may_alias_decl_p): Likewise.
525         * emit-rtl.c (set_mem_attributes_minus_bitpos): Keep TARGET_MEM_REFs.
526         * alias.c (ao_ref_from_mem): Handle TARGET_MEM_REF more properly.
527
528 2010-08-23  Anatoly Sokolov  <aesok@post.ru>
529
530         * config/m32c/m32c.c (m32c_function_value_regno_p): Make static.
531         (m32c_override_options): Rename to...
532         (m32c_option_override): ...this. Make static.
533         (TARGET_FUNCTION_VALUE_REGNO_P, TARGET_OPTION_OVERRIDE): Define.
534         * config/m32c/m32c.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P):
535         Remove.
536         * config/m32c/m32c-protos.h (m32c_override_options,
537         m32c_function_value_regno_p): Remove.
538
539 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
540
541         * tree-ssa-loop-prefetch.c (gather_memory_references_ref) :
542         Fix a typo in a previous commit.
543
544 2010-08-23  Kai Tietz  <kai.tietz@onevision.com>
545
546         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost):
547         Pre-initialize innerloop_iters to one.
548
549 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
550
551         * tree-flow.h (may_be_nonaddressable_p): New definition. Make the
552         existing static function global.
553
554         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): This function
555         is changed to global.
556
557         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Call
558         may_be_nonaddressable_p on base, and don't collect this reference
559         if the address of the base could not be taken.
560
561 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
562
563         * config/rs6000/rs6000.opt (-mveclibabi=mass): New option to
564         enable the compiler to autovectorize mathmetical functions for
565         power7 using the Mathematical Acceleration Subsystem library.
566
567         * config/rs6000/rs6000.c (rs6000_veclib_handler): New variable to
568         handle which vector math library we have.
569         (rs6000_override_options): Add -mveclibabi=mass support.
570         (rs6000_builtin_vectorized_libmass): New function to handle auto
571         vectorizing math functions that are in the MASS library.
572         (rs6000_builtin_vectorized_function): Call it.
573
574         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
575         -mveclibabi=mass.
576
577 2010-08-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
578
579         PR boehm-gc/34544
580         * gthr-posix.h (__gthread_active_init): Delete.
581         (__gthread_active_p): Do activity check here.
582         Don't include errno.h on hppa-hpux.  Update comment.
583         * gthr-posix95.h (__gthread_active_init): Delete.
584         (__gthread_active_p): Do activity check here.
585         Don't include errno.h on hppa-hpux.  Update comment.
586         * config.gcc (hppa[12]*-*-hpux11*): Define extra_parts.
587         * config/pa/pa64-hpux.h (LIB_SPEC): When -static is specified, only
588         add -lpthread when -mt or -pthread is specified.
589         * config/pa/pa-hpux11.h (LIB_SPEC): likewise.
590         (LINK_GCC_C_SEQUENCE_SPEC): Define.
591         * config/pa/t-pa-hpux11 (LIBGCCSTUB_OBJS): Define.
592         (stublib.c, pthread_default_stacksize_np-stub.o,
593         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o,
594         $(T)libgcc_stub.a): Add methods.
595         * config/pa/t-pa64 (LIBGCCSTUB_OBJS): Add pthread stubs.
596         (stublib.c, pthread_default_stacksize_np-stub.o,
597         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o): Add methods.
598         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
599         pthread_mutex_unlock): New stubs.
600
601 2010-08-22  Joseph Myers  <joseph@codesourcery.com>
602
603         * Makefile.in (gccspec.o, cppspec.o): Update dependencies.
604         * common.opt (L, nodefaultlibs, nostdlib, pg, static): New
605         options.
606         * config/avr/avr.h (LIBSTDCXX): Remove initial "-l".
607         * config/freebsd.h (MATH_LIBRARY_PROFILE): Remove initial "-l".
608         * config/i386/djgpp.h (LIBSTDCXX): Remove initial "-l".
609         * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove initial "-l".
610         * config/s390/tpf.h (MATH_LIBRARY, LIBSTDCXX): Remove initial
611         "-l".
612         * cppspec.c: Include opts.h.
613         (lang_specific_driver): Use cl_decoded_option structures.
614         * doc/tm.texi.in (MATH_LIBRARY): Update documentation.
615         * doc/tm.texi: Regenerate.
616         * gcc.c (translate_options): Translate -d to -foutput-class-dir=.
617         (driver_handle_option): Allow driver options needing no special
618         processing.
619         (process_command): Decode options before call to
620         lang_specific_driver.  Pass decoded options to
621         lang_specific_driver.
622         * gcc.h (lang_specific_driver): Update prototype.
623         * gccspec.c: Include opts.h.
624         (lang_specific_driver): Use cl_decoded_option structures.
625         * opts-common.c (option_ok_for_language, generate_option,
626         generate_option_input_file): New.
627         (decode_cmdline_option): Use option_ok_for_language.
628         (decode_cmdline_options_to_array): Use generate_option_input_file.
629         (handle_generated_option): Use generate_option.
630         * opts.h (generate_option, generate_option_input_file): Declare.
631
632 2010-08-22  Anatoly Sokolov  <aesok@post.ru>
633
634         * config/mips/mips.c (mips_override_options): Rename to...
635         (mips_option_override): ...this. Make static.
636         (TARGET_OPTION_OVERRIDE): Define.
637         (mips_in_small_data_p): Update comment.
638         * config/mips/mips.h (OVERRIDE_OPTIONS): Remove.
639         (FIXED_REGISTERS): Update comment.
640         * config/mips/mips-protos.h (mips_override_options): Remove.
641
642 2010-08-21  Olivier Hainque  <hainque@adacore.com>
643
644         * config/rs6000/vxworks.h (TARGET_OS_CPP_BUILTINS): Define __PPC__.
645
646 2010-08-21  Olivier Hainque  <hainque@adacore.com>
647
648         * config/rs6000/vxworks.h (PREFERRED_STACK_BOUNDARY,
649         ABI_STACK_BOUNDARY): Ensure STACK_BOUNDARY is honored despite EABI.
650
651 2010-08-20  Jan Hubicka  <jh@suse.cz>
652
653         * tree-pass.h (pass_ipa_cdtor_merge): New function.
654         * cgraphunit.c (static_ctors, static_dtors): Move to ipa.c; make
655         heap allocated.
656         (record_cdtor_fn): Move to ipa.c; do not test for
657         have_ctors_dtors.
658         (build_cdtor): Move to ipa.c; add code avoiding construction
659         when target have ctors/dtors and there is only one ctor/dtor at given
660         priority.
661         (compare_ctor, compare_dtor): Move to ipa.c; use DECL_UID to stabilize
662         sort; reverse order of constructors.
663         (cgraph_build_cdtor_fns): Move to ipa.c; rename to build_cdtor_fns.
664         (cgraph_finalize_function): Do not call record_cdtor_fn.
665         (cgraph_finalize_compilation_unit): Do not call cgraph_build_cdtor_fns.
666         (cgraph_build_static_cdtor): Move to ipa.c.
667         * ipa.c: Include target.h and tree-iterator.h.
668         (cgraph_build_static_cdtor, static_ctors, static_dtors,
669         record_cdtor_fn, build_cdtor, compare_ctor, compare_dtor,
670         build_cdtor_fns, ipa_cdtor_merge, gate_ipa_cdtor_merge,
671         pass_ipa_cdtor_merge): New.
672         * passes.c (init_optimization_passes): Enqueue pass_ipa_cdtor_merge.
673         * ipa-prop.c (update_indirect_edges_after_inlining): Avoid out of
674         bounds access.
675
676 2010-08-20  Jan Hubicka  <jh@suse.cz>
677
678         PR c++/45307
679         PR c++/17736
680         * cgraph.h (cgraph_only_called_directly_p,
681         cgraph_can_remove_if_no_direct_calls_and_refs_p): Handle
682         static cdtors.
683         * cgraphunit.c (cgraph_decide_is_function_needed): Static cdtors
684         are not needed.
685         (cgraph_finalize_function): Static cdtors are reachable.
686         (cgraph_mark_functions_to_output): Use cgraph_only_called_directly_p.
687
688 2010-08-20  Jan Hubicka  <jh@suse.cz>
689
690         * lto-cgraph.c (lto_output_edge): Use gimple_has_body_p instead of
691         flag_wpa.
692         * lto-streamer-out.c (lto_output): Likewise.
693         * passes.c (ipa_write_optimization_summaries): Initialize statement
694         uids.
695
696 2010-08-20  Olivier Hainque  <hainque@adacore.com>
697
698         * tree.h (alias_diag_flags): New enum.
699         (alias_pair): Add an 'emitted_diags' field.
700         * varasm.c (finish_aliases_1): Honor and update p->emitted_diags.
701         (assemble_alias): Initialize emitted_diags of new pairs.
702
703 2010-08-20  Eric Botcazou  <ebotcazou@adacore.com>
704
705         * config/rs6000/aix.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
706         * config/rs6000/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
707         * config/rs6000/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
708         (STACK_CHECK_PROTECT): Define.
709         * config/rs6000/rs6000.c (rs6000_emit_probe_stack_range): New function.
710         (output_probe_stack_range): Likewise.
711         (rs6000_emit_prologue): Invoke rs6000_emit_probe_stack_range if static
712         builtin stack checking is enabled.
713         * config/rs6000/rs6000-protos.h (output_probe_stack_range): Declare.
714         * config/rs6000/rs6000.md (UNSPECV_PROBE_STACK_RANGE): New constant.
715         (probe_stack_range): New insn.
716
717 2010-08-20  H.J. Lu  <hongjiu.lu@intel.com>
718
719         PR target/45336
720         * config/i386/emmintrin.h (_mm_extract_epi16): Cast to unsigned
721         short first.
722
723         * config/i386/smmintrin.h (_mm_extract_epi8): Cast to unsigned
724         char first.
725
726 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
727
728         PR target/45336
729         * config/i386/sse.md (*sse4_1_pextrb): Add SWI48 mode iterator
730         to cover zero extension into 64-bit register.
731         (*sse2_pextrw): Likewise.
732         (*sse4_1_pextrd_zext): New insn.
733
734 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
735
736         revert r163410, partially revert r163267.
737         * config/rs6000/darwin.h (LIB_SPEC): Remove.
738         * config/darwin.h (REAL_LIBGCC_SPEC): Link lgcc for all
739         Darwin versions.
740
741 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
742
743         PR middle-end/44974
744         * builtins.c (expand_builtin): Don't optimize away
745         calls to DECL_LOOPING_CONST_OR_PURE_P builtins.
746
747 2010-08-20  Uros Bizjak  <ubizjak@gmail.com>
748
749         * config/i386/i386.md (ashift %rsp splitter): Remove splitter.
750         (pro_epilogue_adjust_stack_di_2): Use "l" constraint for
751         alternative 1 of operand 2.
752
753 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
754             Paolo Bonzini  <bonzini@gnu.org>
755
756         * simplify-rtx.c (simplify_unary_operation_1): Optimize
757         (sign_extend (zero_extend (...)) and
758         ({sign,zero}_extend (lshiftrt (ashift X (const_int I)) (const_int I))).
759
760 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
761
762         PR rtl-optimization/45353
763         * sel-sched-ir.c (sel_bb_head): Return NULL even if next_nonnote_insn
764         after bb_note is a BARRIER.
765
766 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
767
768         * config/rs6000/darwin.h (LIB_SPEC): New. Provide saveFP/restFP by
769         linking libgcc.a.
770
771 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
772             Michael Matz  <matz@suse.de>
773
774         * tree-ssa-address.c (tree_mem_ref_addr): Convert offset to sizetype.
775
776 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
777
778         * ggc-common.c (ggc_mark_root_tab): New function, split out from...
779         (ggc_mark_roots): ...here.
780
781 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
782
783         * vec.h (FOR_EACH_VEC_ELT): Define.
784         * c-decl.c: Use it.
785         * cfgloop.c: Likewise.
786         * cfgloopmanip.c: Likewise.
787         * cgraph.c: Likewise.
788         * cgraphunit.c: Likewise.
789         * combine.c: Likewise.
790         * config/bfin/bfin.c: Likewise.
791         * config/mips/mips.c: Likewise.
792         * config/rs6000/rs6000.c: Likewise.
793         * dbxout.c: Likewise.
794         * df-scan.c: Likewise.
795         * dominance.c: Likewise.
796         * dse.c: Likewise.
797         * dwarf2out.c: Likewise.
798         * except.c: Likewise.
799         * expr.c: Likewise.
800         * function.c: Likewise.
801         * gcse.c: Likewise.
802         * genattr.c: Likewise.
803         * ggc-common.c: Likewise.
804         * gimplify.c: Likewise.
805         * graphite-blocking.c: Likewise.
806         * graphite-clast-to-gimple.c: Likewise.
807         * graphite-dependences.c: Likewise.
808         * graphite-interchange.c: Likewise.
809         * graphite-poly.c: Likewise.
810         * graphite-scop-detection.c: Likewise.
811         * graphite-sese-to-poly.c: Likewise.
812         * graphite.c: Likewise.
813         * haifa-sched.c: Likewise.
814         * ifcvt.c: Likewise.
815         * implicit-zee.c: Likewise.
816         * ipa-prop.c: Likewise.
817         * ipa-struct-reorg.c: Likewise.
818         * ipa.c: Likewise.
819         * ira-build.c: Likewise.
820         * ira-color.c: Likewise.
821         * ira-emit.c: Likewise.
822         * lambda-code.c: Likewise.
823         * loop-invariant.c: Likewise.
824         * loop-unroll.c: Likewise.
825         * lower-subreg.c: Likewise.
826         * lto-cgraph.c: Likewise.
827         * lto-opts.c: Likewise.
828         * lto-streamer-in.c: Likewise.
829         * lto-streamer-out.c: Likewise.
830         * lto-streamer.c: Likewise.
831         * lto-symtab.c: Likewise.
832         * matrix-reorg.c: Likewise.
833         * opts.c: Likewise.
834         * predict.c: Likewise.
835         * print-tree.c: Likewise.
836         * sdbout.c: Likewise.
837         * sel-sched-dump.c: Likewise.
838         * sel-sched-ir.c: Likewise.
839         * sel-sched.c: Likewise.
840         * sese.c: Likewise.
841         * stor-layout.c: Likewise.
842         * tree-cfg.c: Likewise.
843         * tree-cfgcleanup.c: Likewise.
844         * tree-chrec.c: Likewise.
845         * tree-data-ref.c: Likewise.
846         * tree-emutls.c: Likewise.
847         * tree-inline.c: Likewise.
848         * tree-into-ssa.c: Likewise.
849         * tree-loop-distribution.c: Likewise.
850         * tree-loop-linear.c: Likewise.
851         * tree-mudflap.c: Likewise.
852         * tree-outof-ssa.c: Likewise.
853         * tree-parloops.c: Likewise.
854         * tree-predcom.c: Likewise.
855         * tree-pretty-print.c: Likewise.
856         * tree-scalar-evolution.c: Likewise.
857         * tree-ssa-live.c: Likewise.
858         * tree-ssa-loop-im.c: Likewise.
859         * tree-ssa-loop-ivcanon.c: Likewise.
860         * tree-ssa-loop-ivopts.c: Likewise.
861         * tree-ssa-loop-manip.c: Likewise.
862         * tree-ssa-loop-niter.c: Likewise.
863         * tree-ssa-loop-prefetch.c: Likewise.
864         * tree-ssa-phiprop.c: Likewise.
865         * tree-ssa-pre.c: Likewise.
866         * tree-ssa-reassoc.c: Likewise.
867         * tree-ssa-sccvn.c: Likewise.
868         * tree-ssa-structalias.c: Likewise.
869         * tree-ssa.c: Likewise.
870         * tree-vect-data-refs.c: Likewise.
871         * tree-vect-loop-manip.c: Likewise.
872         * tree-vect-loop.c: Likewise.
873         * tree-vect-patterns.c: Likewise.
874         * tree-vect-slp.c: Likewise.
875         * tree-vect-stmts.c: Likewise.
876         * tree-vrp.c: Likewise.
877         * tree.c: Likewise.
878         * value-prof.c: Likewise.
879         * var-tracking.c: Likewise.
880         * varasm.c: Likewise.
881         * vmsdbgout.c: Likewise.
882
883 2010-08-19  Nathan Sidwell  <nathan@codesourcery.com>
884             Richard Guenther  <richard.guenther@gmail.com>
885
886         * gimplify.c (gimplify_modify_expr): When assigning to volatiles,
887         copy the src value and return a copy.
888         * doc/extend.texi (Volatiles): Move from C++ to C and expand.
889         (C++ Volatiles): Adjust to describe C++ semantics only.
890
891 2010-08-20  Joseph Myers  <joseph@codesourcery.com>
892
893         * doc/tm.texi.in (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Document to
894         be zero or nonzero.
895         * doc/tm.texi: Regenerate.
896         * defaults.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define.
897         * df-scan.c (df_get_exit_block_use_set), reginfo.c
898         (init_reg_sets_1), rtlanal.c (rtx_unstable_p, rtx_varies_p):
899         Handle new PIC_OFFSET_TABLE_REG_CALL_CLOBBERED semantics.
900         * config/ia64/ia64.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define
901         to 1.
902
903 2010-08-20  Olivier Hainque  <hainque@adacore.com>
904
905         * config/sparc/sparc.c (sparc_asm_function_epilogue): Don't output
906         an extra nop past a sibling call at the very end.
907
908 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
909
910         PR bootstrap/45350
911         * combine.c (try_combine): Initialize i1_is_used and i2_is_used.  Fix
912         a comment.
913
914 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
915
916         * target.def (function_arg, function_incoming_arg): Remove const
917         qualifier on CUMULATIVE_ARGS parameter.
918         * targhooks.h (default_function_arg, default_function_incoming_arg):
919         Likewise.
920         * targhooks.c (default_function_arg, default_function_incoming_arg):
921         Likewise.
922         * config/i386/i386.c (ix86_function_arg): Likewise.
923
924 2010-08-19  Jakub Jelinek  <jakub@redhat.com>
925
926         PR target/45336
927         * simplify-rtx.c (simplify_unary_operation_1): Optimize nested
928         SIGN_EXTENDs or ZERO_EXTENDs.
929
930 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
931
932         PR target/42172
933         * combine.c (combine_validate_cost): New arg I0.  All callers changed.
934         Take its cost into account if nonnull.
935         (insn_a_feeds_b): New static function.
936         (combine_instructions): Look for four-insn combinations.
937         (can_combine_p): New args PRED2, SUCC2.  All callers changed.  Take
938         them into account when computing all_adjacent and looking for other
939         uses.
940         (combinable_i3pat): New args I0DEST, I0_NOT_IN_SRC.  All callers
941         changed.  Treat them like I1DEST and I1_NOT_IN_SRC.
942         (try_combine): New arg I0.  Handle four-insn combinations.
943         (distribute_notes): New arg ELIM_I0.  All callers changed.  Treat it
944         like ELIM_I1.
945
946 2010-08-19  Jason Merrill  <jason@redhat.com>
947
948         PR c++/45307
949         * gimplify.c (gimplify_init_constructor): Just return GS_UNHANDLED
950         if ctor is empty.
951         (gimplify_modify_expr_rhs): Adjust.
952
953 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
954
955         * cfgloop.c (get_loop_body_in_bfs_order): Avoid redundant call to
956         bitmap_bit_p.
957         * config/bfin/bifn.c (bfin_discover_loop): Likewise.
958         * dominance.c (iterate_fix_dominators): Likewise.
959         * dse.c (set_usage_bits): Likewise.
960         (set_position_unneeded, record_store): Likewise.
961         * gimple-fold.c (get_maxval_strlen): Likewise.
962         * haifa-sched.c (fix_inter_tick, fix_recovery_deps): Likewise.
963         * ipa-inline.c (update_caller_keys): Likewise.
964         * ipa-split.c (verify_non_ssa_vars): Likewise.
965         * ipa-type-escape.c (mark_type, close_type_seen): Likewise.
966         (close_type_exposed_parameter, close_type_full_escape): Likewise.
967         (close_addressof_down): Likewise.
968         * ira-color.c (assign_hard_reg, push_allocno_to_stack): Likewise.
969         (setup_allocno_left_conflicts_size): Likewise.
970         (ira_reassign_conflict_allocnos): Likewise.
971         (ira_reassign_pseudos): Likewise.
972         * ira-emit.c (change_loop): Likewise.
973         * loop-invariant.c (mark_regno_live, mark_regno_death): Likewise.
974         * lto-streamer-out.c (write_symbol): Likewise.
975         * predict.c (expr_expected_value_1): Likewise.
976         * regstat.c (regstat_bb_compute_ri): Likewise.
977         * sel-sched.c (create_block_for_bookkeeping): Likewise.
978         (track_scheduled_insns_and_blocks, sel_sched_region_1): Likewise.
979         * stmt.c (expand_case): Likewise.
980         * tree-eh.c (emit_eh_dispatch): Likewise.
981         * tree-into-ssa.c (prune_unused_phi_nodes): Likewise.
982         * tree-loop-distribution.c (make_nodes_having_upstream_mem_writes):
983         Likewise.
984         (rdg_flag_vertex, rdg_flag_loop_exits): Likewise.
985         (rdg_build_components): Likewise.
986         * tree-object-size.c (collect_object_sizes_for): Likewise.
987         * tree-sra.c (convert_callers): Likewise.
988         * tree-ssa-coalesce.c (live_track_add_partition): Likewise.
989         * tree-ssa-live.c (mark_all_vars_used_1): Likewise.
990         * tree-ssa-pre.c (bitmap_set_replace_value): Likewise.
991
992 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
993
994         * config/i386/i386.md (*lea_1): Use P mode iterator.
995         (lea add splitter): Also handle DImode operands.
996         (DImode lea add splitter): Use x86_64_immediate_operand for operand 2
997         predicate.  Do not use ix86_lea_for_add_ok.
998         (zext DImode lea add splitter): Use ix86_lea_for_add_ok.
999         (lea ashift splitter): Also handle DImode operands.
1000         (DImode lea ashift splitter): Remove splitter.
1001
1002 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
1003
1004         * config/i386/i386.md (*add<SWI:mode>3_cconly_overflow): Do not use
1005         ix86_binary_operator_ok.
1006
1007 2010-08-19  Andrey Belevantsev  <abel@ispras.ru>
1008
1009         PR rtl-optimization/44691
1010         * sel-sched.c (count_occurrences_1): Also punt when SUBREG_REG
1011         is not a register.
1012
1013 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
1014
1015         PR target/45070
1016         * config/arm/arm.c (arm_output_epilogue): Ensure that return
1017          value of size 1-3 is handled correctly.
1018
1019 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
1020
1021         * tree-switch-conversion.c (gen_inbound_check): Ensure that the
1022         type for the conditional has wide enough range.
1023
1024 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
1025
1026         PR target/45327
1027         * config/i386/i386.md (<any_or:code><SWI:mode>_3): Do not use
1028         ix86_binary_operator_ok.
1029
1030 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
1031
1032         * config/i386/i386.md (*add<mode>_1) <TYPE_LEA>: Split insn to lea.
1033         <default>:  Swap operands 1 and 2 for alternative 2 to use existing
1034         code to output insn mnemonic.  Fix comment.
1035         (*addsi_1_zext): Add r-r-0 alternative 1.
1036         <TYPE_LEA>: Split insn to lea.
1037         <default>: Handle alternative 1.
1038         (*addhi_1_lea): Add r-r-0 alternative 2.  Use cond RTX instead of
1039         multi-level if_then_else RTX to set "type" attribute.
1040         <default>: Handle alternative 2.
1041         (*addqi_1_lea): Add q-q-0 alternative 2 and r-r-0 alternative 4.
1042         Use cond RTX instead of multi-level if_then_else RTX to set
1043         "type" attribute.
1044         <default>: Handle alternatives 2 and 4.
1045         (lea splitters): Update calls to ix86_lea_for_add_ok.
1046
1047         * config/i386/i386.c (ix86_lea_for_add_ok): Remove unused "code"
1048         argument.
1049         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Update prototype.
1050
1051 2010-08-18  Richard Guenther  <rguenther@suse.de>
1052
1053         * tree-ssa-uninit.c (find_uninit_use): Disregard debug stmts,
1054         use operand helpers.
1055
1056 2010-08-18  Paolo Bonzini  <bonzini@gnu.org>
1057
1058         PR middle-end/45292
1059         * optabs.c (expand_bool_compare_and_swap): Expand pending
1060         pops before trying the optab.
1061
1062 2010-08-18  Yao Qi  <yao@codesourcery.com>
1063
1064         PR target/45094
1065         * config/arm/arm.c (output_move_double): Fix typo generating
1066         instructions ('ldr'->'str').
1067
1068 2010-08-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
1069
1070         PR rtl-optimization/42575
1071         * optabs.c (expand_doubleword_mult): Generate new pseudos to shorten
1072         live ranges.
1073
1074 2010-08-18  Marcus Shawcroft  <marcus.shawcroft@arm.com>
1075
1076         * config/arm/arm-protos.h (arm_expand_sync): New.
1077         (arm_output_memory_barrier, arm_output_sync_insn): New.
1078         (arm_sync_loop_insns): New.
1079         * config/arm/arm.c (FL_ARCH7): New.
1080         (FL_FOR_ARCH7): Include FL_ARCH7.
1081         (arm_arch7): New.
1082         (arm_print_operand): Support %C markup.
1083         (arm_legitimize_sync_memory): New.
1084         (arm_emit, arm_insn_count, arm_count, arm_output_asm_insn): New.
1085         (arm_process_output_memory_barrier, arm_output_memory_barrier): New.
1086         (arm_ldrex_suffix, arm_output_ldrex, arm_output_strex): New.
1087         (arm_output_op2, arm_output_op3, arm_output_sync_loop): New.
1088         (arm_get_sync_operand, FETCH_SYNC_OPERAND): New.
1089         (arm_process_output_sync_insn, arm_output_sync_insn): New.
1090         (arm_sync_loop_insns,arm_call_generator, arm_expand_sync): New.
1091         * config/arm/arm.h (struct arm_sync_generator): New.
1092         (TARGET_HAVE_DMB, TARGET_HAVE_DMB_MCR): New.
1093         (TARGET_HAVE_MEMORY_BARRIER): New.
1094         (TARGET_HAVE_LDREX, TARGET_HAVE_LDREXBHD): New.
1095         * config/arm/arm.md: Include sync.md.
1096         (UNSPEC_MEMORY_BARRIER): New.
1097         (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK): New.
1098         (VUNSPEC_SYNC_OP):New.
1099         (VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): New.
1100         (sync_result, sync_memory, sync_required_value): New attributes.
1101         (sync_new_value, sync_t1, sync_t2): Likewise.
1102         (sync_release_barrier, sync_op): Likewise.
1103         (length): Add logic to length attribute defintion to call
1104         arm_sync_loop_insns when appropriate.
1105         * config/arm/sync.md: New file.
1106
1107 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
1108
1109         * tree.h (host_integerp): Add ATTRIBUTE_PURE when not
1110         ENABLE_TREE_CHECKING.
1111         (tree_low_cst): Add inline version for !ENABLE_TREE_CHECKING
1112         and GCC >= 4.3.
1113
1114 2010-08-17  H.J. Lu  <hongjiu.lu@intel.com>
1115
1116         * config/i386/i386.c (ix86_lea_for_add_ok): For !TARGET_OPT_AGU
1117         or optimizing for size, always avoid lea if possible.
1118
1119         * config/i386/i386.md (*add<mode>_1): Always avoid lea if possible.
1120
1121 2010-08-17  Iain Sandoe  <iains@gcc.gnu.org>
1122
1123         * unwind-dw2-fde-darwin.c (_darwin10_Unwind_FindEnclosingFunction):
1124         Dunmmy function with NULL return unless the target is
1125         OSX >= 10.6 (Darwin10).
1126
1127 2010-08-17  Jack Howarth <howarth@bromo.med.uc.edu>
1128
1129         * gcc.c (spec_function): Add remove-outfile.
1130         (remove_outfile_spec_function): New function.
1131         * config/darwin.h (LINK_SPEC): Add removal of -ldl, -lm and -lpthread.
1132         * invoke.texi (replace-outfile): Document.
1133
1134 2010-08-17  Uros Bizjak  <ubizjak@gmail.com>
1135
1136         PR target/45296
1137         * reginfo.c (globalize_reg): Reject stack registers.
1138
1139 2010-08-17  Richard Guenther  <rguenther@suse.de>
1140
1141         * tree-ssa-dom.c (struct edge_info): Use a VEC for the
1142         list of conditional equivalences.
1143         (free_all_edge_infos): Adjust.
1144         (record_equivalences_from_incoming_edge): Likewise.
1145         (record_cond): Likewise.
1146         (build_and_record_new_cond): Likewise.
1147         (record_conditions): Likewise.
1148         (dom_opt_leave_block): Likewise.
1149
1150 2010-08-17  Kai Tietz  <kai.tietz@onevision.com>
1151
1152         * doc/invoke.texi (ms-extension): Add documentation.
1153
1154 2010-08-17  Richard Guenther  <rguenther@suse.de>
1155
1156         * fold-const.c (fold_comparison): Strip nops inside POINTER_PLUS_EXPR.
1157
1158 2010-08-17  Shujing Zhao  <pearly.zhao@oracle.com>
1159
1160         PR c/40563
1161         * c-decl.c (diagnose_uninitialized_cst_member): New function.
1162         (finish_decl): Use it to issue a -Wc++-compat warning about
1163         uninitialized const field in struct or union.
1164
1165         (finish_struct): Use strip_array_types.
1166
1167 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
1168
1169         * function.c (block_fragments_nreverse, blocks_nreverse_all): New
1170         functions.
1171         (reorder_blocks): Use blocks_nreverse_all instead of blocks_nreverse.
1172         (reorder_blocks_1): Assert BLOCK_FRAGMENT_ORIGIN is NULL.  Don't
1173         call block_nreverse here.
1174         (blocks_nreverse): Rename decl temporary to block.
1175
1176 2010-08-16  Bernd Schmidt  <bernds@codesourcery.com>
1177
1178         * config/arm/thumb2.md (thumb2_notsi_shiftsi,
1179         thumbsi_notsi_shiftsi_compare0, thumb2_not_shiftsi_compare0_scratch,
1180         thumb2_cmpsi_shiftsi, thumb2_cmpsi_shiftsi_swp, thumb2_arith_shiftsi,
1181         thumb2_arith_shiftsi splitter, thumb2_arith_shiftsi_compare0,
1182         thumb2_arith_shiftsi_compare0_scratch, thumb2_sub_shiftsi,
1183         thumb2_sub_shiftsi_compare0, thumb2_sub_shiftsi_compare0_scratch,
1184         thumb2_iorsi3): Delete.
1185         (orsi_notsi_si): No longer a named pattern.
1186         (orsi_not_shiftsi_si): Renamed from thumb_orsi_not_shiftsi_si.
1187         * config/arm/predicates.md (shift_amount_operand): New.
1188         (mult_operator): New.
1189         * config/arm/arm.md (attr arch, attr arch_enabled, attr insn_enabled,
1190         attr enabled): New.
1191         (iorsi3_insn): Renamed from arm_iorsi3.  Handle a new alternative if
1192         arch matches t2.
1193         (not_shiftsi): Renamed from arm_notsi_shiftsi.  Handle Thumb2 variant.
1194         (not_shiftsi_compare0): Likewise, renamed from
1195         arm_notsi_shiftsi_compare0.
1196         (not_shiftsi_compare0_scratch): Likweise, renamed from
1197         arm_notsi_shiftsi_compare0_scratch.
1198         (cmpsi_shiftsi): Likewise, renamed from arm_cmpsi_shiftsi.
1199         (cmpsi_shiftsi_swp): Likewise, renamed from arm_cmpsi_shiftsi_swp.
1200         (arith_shiftsi): Handle Thumb2 variant.  Set insn_enabled attribute
1201         so that the register alternative is disabled when the shift_operator
1202         is MULT.  Use "M" as the constraint for constants.
1203         (arith_shiftsi splitter): Enable for TARGET_32BIT.
1204         (arith_shiftsi_compare0): Handle Thumb2 variant.  Use "M" as the
1205         constraint for constants.
1206         (arith_shiftsi_compare0_scratch): Likewise.
1207         (sub_shiftsi, sub_shiftsi_compare0, sub_shiftsi_compare0_scratch):
1208         Handle Thumb2 alternative.
1209
1210 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
1211
1212         * doc/options.texi (NoDriverArg): Document.
1213         * gcc.c (cpp_unique_options): Generate -MD and -MMD instead of
1214         -MDX and -MMDX.
1215         * opt-functions.awk (switch_flags): Handle NoDriverArg.
1216         * opts-common.c (decode_cmdline_option): Ignore CL_SEPARATE
1217         marking for CL_NO_DRIVER_ARG options when in the driver.
1218         * opts.h (CL_NO_DRIVER_ARG): Define.
1219         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
1220         CL_COMMON): Update values.
1221
1222 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
1223
1224         * common.opt: Add driver options.
1225         (auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
1226         * doc/options.texi (Driver, RejectDriver): Document.
1227         * gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
1228         print_prog_name, print_multi_directory, print_sysroot,
1229         print_multi_os_directory, print_multi_lib,
1230         print_sysroot_headers_suffix, report_times, combine_flag,
1231         use_pipes, wrapper_string): Remove.
1232         (save_switch, driver_unknown_option_callback,
1233         driver_wrong_lang_callback, driver_post_handling_callback,
1234         driver_handle_option): New.
1235         (spec_lang, last_language_n_infiles): Make file-scope static
1236         instead of local to process_command.
1237         (process_command): Use decode_cmdline_options_to_array and
1238         read_cmdline_option for option processing.  Compute have_c in
1239         prescan of decoded options.
1240         * opt-functions.awk (switch_flags): Handle Driver and
1241         RejectDriver.
1242         (var_type, var_type_struct): Handle Separate options as generating
1243         const char * variables.
1244         * opts-common.c (decode_cmdline_option): Expect CL_COMMON and
1245         CL_TARGET to be passed by caller if required.
1246         (decode_cmdline_options_to_array): Update comment.
1247         * opts.c (complain_wrong_lang): Handle options only valid for the
1248         driver.
1249         (decode_options): Update call to decode_cmdline_options_to_array.
1250         (print_filtered_help): Ignore driver-only options.
1251         (print_specific_help): Ignore CL_DRIVER.
1252         (common_handle_option): Don't call print_specific_help for CL_DRIVER.
1253         * opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
1254         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
1255         Update values.
1256
1257 2010-08-16  Richard Guenther  <rguenther@suse.de>
1258
1259         * tree-cfg.c (verify_types_in_gimple_reference): Verify
1260         TARGET_MEM_REF a bit.
1261         * tree-ssa-address.c (addr_for_mem_ref): Adjust.
1262         (create_mem_ref_raw): Always create TMR_OFFSET, store the
1263         alias pointer type via it.
1264         (copy_mem_ref_info): Adjust.
1265         (maybe_fold_tmr): Likewise.
1266         * tree.c (mem_ref_offset): Also handle TARGET_MEM_REF.
1267         (reference_alias_ptr_type): Likewise.
1268         * tree.def (TARGET_MEM_REF): Remove TMR_ORIGINAL operand,
1269         adjust documentation of TMR_OFFSET operand.
1270         * alias.c (get_alias_set): Do not look at TMR_ORIGINAL but
1271         use the alias pointer type.
1272         * expr.c (expand_expr_real_1): Do not use TMR_ORIGINAL to
1273         initialize mem attrs but the TMR itself.
1274         * tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REF
1275         similar to MEM_REF.
1276         * tree-pretty-print.c (dump_generic_node): Do not dump TMR_ORIGINAL.
1277         * tree-ssa-loop-ivopts.c (idx_remove_ssa_names): Remove.
1278         (unshare_and_remove_ssa_names): Likewise.
1279         (copy_ref_info): Adjust.
1280         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Simplify
1281         TARGET_MEM_REF case.
1282         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Do not look
1283         at TMR_ORIGINAL.
1284         * tree.h (TMR_ORIGINAL): Remove.
1285         * gimple.c (get_base_address): For TARGET_MEM_REF with a
1286         symbol return that.
1287         * tree-dfa.c (get_ref_base_and_extent): Handle TARGET_MEM_REF
1288         with a symbol.
1289         (get_addr_base_and_unit_offset): Likewise.
1290         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Handle
1291         TARGET_MEM_REFs.
1292         (indirect_ref_may_alias_decl_p): Likewise.
1293         (refs_may_alias_p_1): Do not bail out for TARGET_MEM_REFs.
1294
1295 2010-08-15  Uros Bizjak  <ubizjak@gmail.com>
1296
1297         * doc/invoke.texi (-fomit-frame-pointer): Document that starting
1298         with GCC version 4.6, the default setting (when not optimizing
1299         for size) for 32-bit Linux x86 and 32-bit Darwin x86 targets has
1300         been changed to -fomit-frame-pointer.
1301
1302 2010-08-15  Iain Sandoe  <iains@gcc.gnu.org>
1303
1304         * config/darwin.h (REAL_LIBGCC_SPEC): Remove libgcc_s.10.5 stub for
1305         Darwin10.  Do not link libgcc.a for Darwin >= 9.
1306
1307 2010-08-15  Gerald Pfeifer  <gerald@pfeifer.com>
1308
1309         * doc/invoke.texi (Warning Options): Fix terminology and markup
1310         in the description of how unknown warning options are handled.
1311
1312 2010-08-15  Ira Rosen  <irar@il.ibm.com>
1313
1314         * tree-vect-data-refs.c (vect_setup_realignment): Support realignment
1315         in basic blocks.
1316         (vect_supportable_dr_alignment): Check alignment for basic blocks.
1317         * tree-vect-slp.c (vect_build_slp_tree): Allow different codes for
1318         data references.
1319         (vect_bb_vectorization_profitable_p): New function.
1320         (vect_slp_analyze_bb): Call vect_bb_vectorization_profitable_p() to
1321         check if it's worthwhile to vectorize the basic block.
1322
1323 2010-08-14  Anatoly Sokolov  <aesok@post.ru>
1324
1325         * reload.h (register_move_cost, memory_move_secondary_cost,
1326         secondary_reload_class): Adjust prototype.
1327         * rtl.h (reg_class_subset_p): Adjust prototype.
1328         * reload.c (secondary_reload_class): Change arguments type from
1329         enum reg_class to reg_class_t. Change result type to reg_class_t.
1330         * reginfo.c (register_move_cost, reg_class_subset_p): Change
1331         arguments type from enum reg_class to reg_class_t.
1332         (memory_move_secondary_cost): Change arguments type from
1333         enum reg_class to reg_class_t. Change type of saved_flags to
1334         reg_class_t.
1335
1336         * config/mips/mips.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
1337         Remove macros.
1338         (mips_cost): Remove.
1339         (struct mips_rtx_cost_data): Moved to mips.c.
1340         * config/mips/mips-protos.h (mips_register_move_cost): Remove.
1341         * config/mips/mips.c (struct mips_rtx_cost_data): Moved from mips.h.
1342         (mips_cost): Make static.
1343         (mips_canonicalize_move_class): Change argument type to reg_class_t.
1344         Change result type to reg_class_t.
1345         (mips_move_to_gpr_cost, mips_move_from_gpr_cost): Change arguments
1346         type from enum reg_class to reg_class_t.
1347         (mips_register_move_cost): Make static. Change arguments
1348         type from enum reg_class to reg_class_t.
1349         (mips_memory_move_cost): New function.
1350         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
1351
1352 2010-08-14  Richard Sandiford  <rdsandiford@googlemail.com>
1353
1354         PR rtl-optimization/43358
1355         * ira-lives.c (process_single_reg_class_operands): Adjust the costs
1356         of a single hard register, using simplify_subreg_regno to decide
1357         what that register should be.
1358
1359 2010-08-14  Mingjie Xing  <mingjie.xing@gmail.com>
1360
1361         * config/mips/mips.c (CODE_FOR_loongson_pmullh): Define.
1362         * config/mips/loongson.md (UNSPEC_LOONGSON_PMULL): Delete.
1363         (loongson_pmull<V_suffix>): Rename to...
1364         (mul<mode>3): ...this and use MULT instead of an UNSPEC.
1365
1366 2010-08-13  Jack Howarth <howarth@bromo.med.uc.edu>
1367
1368         * gcc/configure.ac: Enable -fomit-frame-pointer on darwin
1369         which support dwarf2.
1370         * config/i386/i386.c (override_options): Same.
1371
1372 2010-08-13  Jie Zhang  <jie@codesourcery.com>
1373
1374         * config/arm/arm.md (cstoredf4): Only valid when !TARGET_VFP_SINGLE.
1375
1376 2010-08-12  Joseph Myers  <joseph@codesourcery.com>
1377
1378         * gcc.c (cpp_unique_options): Generate -MDX and -MMDX from -MD and
1379         -MMD.
1380
1381 2010-08-12  Changpeng Fang  <changpeng.fang@amd.com>
1382
1383         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Give
1384         up dot_prod pattern searching if a stmt is outside the loop.
1385
1386 2010-08-12  H.J. Lu  <hongjiu.lu@intel.com>
1387             Uros Bizjak  <ubizjak@gmail.com>
1388
1389         * config.gcc: Handle --enable-frame-pointer.
1390
1391         * configure.ac: Add --enable-frame-pointer.
1392         * configure: Regenerated.
1393
1394         * config/i386/i386.c (USE_IX86_FRAME_POINTER): Default to 0.
1395         (override_options): If not configured with --enable-frame-pointer,
1396         enable -fomit-frame-pointer (but not for TARGET_MACHO or when
1397         optimizing for size), -fasynchronous-unwind-tables and
1398         -maccumulate-outgoing-args by default.
1399
1400 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
1401
1402         * builtins.c (fold_builtin_memory_op): Avoid -Wsign-compare warning.
1403
1404         PR middle-end/45262
1405         * fold-const.c (make_range) <case NEGATE_EXPR>: Punt if
1406         -a overflows.  Normalize the range.
1407
1408 2010-08-12  Richard Guenther  <rguenther@suse.de>
1409
1410         PR tree-optimization/45232
1411         * tree-ssa-reassoc.c (can_reassociate_p): Disable re-association
1412         for types with undefined overflow.
1413         (reassociate_bb): Allow re-associating of bit and min/max
1414         operations for types with undefined overflow.
1415         * tree-ssa-forwprop.c (associate_plusminus): New function.
1416         (tree_ssa_forward_propagate_single_use_vars): Call it.
1417
1418 2010-08-12  Richard Guenther  <rguenther@suse.de>
1419
1420         * tree-flow.h (struct ptr_info_def): Add align and misalign fields.
1421         * tree-ssa-alias.c (get_ptr_info): Move ...
1422         * tree-ssanames.c (get_ptr_info): ... here.  Initialize
1423         align and misalign fields conservatively.
1424         * tree-ssa-ccp.c (ccp_finalize): From partially constant pointers
1425         derive alignment information.
1426         (evaluate_stmt): Derive alignment information from memory
1427         allocation functions.
1428         * tree.h (get_pointer_alignment): Make unsigned.
1429         * builtins.c (get_object_alignment): Use alignment information we
1430         have computed for pointers.
1431         (get_pointer_alignment): Likewise.  Make conservative, return
1432         and unsigned value.
1433         (expand_builtin_strlen): Adjust.
1434         (expand_builtin_memcmp): Likewise.
1435         (expand_builtin_strcmp): Likewise.
1436         (expand_builtin_strncmp): Likewise.
1437         (get_builtin_sync_mem): Use at least mode alignment.
1438         (fold_builtin_memset): Adjust.
1439         (fold_builtin_memory_op): Likewise.
1440         * gimple-pretty-print.c (dump_gimple_phi): Alongside alias
1441         information also dump pointer alignment knowledge.
1442         (dump_gimple_stmt): Likewise.
1443
1444 2010-08-12  Uros Bizjak  <ubizjak@gmail.com>
1445
1446         * config/i386/i386.c (LONG_TYPE_SIZE): Remove.
1447         (EMPTY_FIELD_BOUNDARY): Remove.
1448         * config/i386/i386-interix.h (PCC_BITFIELD_TYPE_MATTERS): Remove.
1449
1450 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
1451
1452         PR debug/45259
1453         * caller-save.c (save_call_clobbered_regs): Only swap notes with
1454         DEBUG_INSNs if n_regs_saved.
1455
1456 2010-08-12  Wei Guozhi  <carrot@google.com>
1457
1458         PR target/44999
1459         * config/arm/arm.md (andsi3): Change to zero extension if possible.
1460         * config/arm/thumb2.md (thumb2_zero_extendqisi2_v6): Change the name.
1461
1462 2010-08-11  Vladimir Makarov  <vmakarov@redhat.com>
1463
1464         * ira-int.h (ira_remove_allocno_copy_from_list): Remove.
1465
1466         * ira-build.c (ira_remove_allocno_copy_from_list): Remove.
1467
1468 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
1469
1470         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add back
1471         the case removed in the previous patch, when the only phi argument
1472         is defined in the same loop as the phi node itself.  Handle it
1473         separately from the invariant case by both propagating it outside
1474         the region and replacing the phi node with an assign.
1475
1476 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
1477
1478         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): The only
1479         constant phi nodes with one argument are is_gimple_min_invariant
1480         and SSA_NAME_IS_DEFAULT_DEF.
1481
1482 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
1483
1484         * graphite-cloog-util.c (oppose_constraint):
1485         Extend loop counter's value range (CLOOG_ORG).
1486         (cloog_matrix_to_ppl_constraint): Same.
1487         (new_Constraint_System_from_Cloog_matrix): Same.
1488         * graphite-cloog-compat.h (matrix_num_type): New.
1489
1490 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
1491
1492         * graphite.c (graphite_initialize): Do not initialize
1493         CLooG and initialize the Parma Polyhedra Library
1494         manually when using CLOOG_ORG.
1495         (graphite_finalize): Do not finalize CLooG and finalize
1496         the Parma Polyhedra Library manually when using CLOOG_ORG.
1497         * graphite-cloog-compat.h (cloog_initialize): Hide function
1498         when using CLOOG_ORG.
1499         (cloog_finalize): Same.
1500
1501 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
1502
1503         * graphite-clast-to-gimple.c (free_scattering): Change
1504         CloogDomainList/CloogDomain to CloogScatteringList/CloogScattering
1505         (CLOOG_ORG).
1506         (build_cloog_prog): Same.
1507         * graphite-cloog-compat.h (cloog_domain): Removed.
1508         (cloog_scattering): New.
1509         (cloog_set_domain): Removed.
1510         (cloog_set_scattering): New.
1511         (cloog_next_domain): Removed.
1512         (cloog_next_scattering): New.
1513         (cloog_set_next_domain): Removed.
1514         (cloog_set_next_scattering): New.
1515         (CloogScatteringList): New.
1516         (CloogScattering): New.
1517         (cloog_scattering_free): New.
1518         (new_Cloog_Scattering_from_ppl_Polyhedron): New.
1519         * graphite-cloog-util.c (new_Cloog_Scattering_from_ppl_Polyhedron):
1520         New.
1521
1522 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
1523
1524         * graphite-clast-to-gimple.c (build_cloog_prog): Extend with
1525         CloogState.
1526         (set_cloog_options): Same.
1527         (print_clast_stmt): Same.
1528         (scop_to_clast): Same.
1529         (print_generated_program): Same.
1530         (gloog): Same.
1531         * graphite-clast-to-gimple.h: Include graphite-cloog-util.h.
1532         (scop_to_clast): Extend with CloogState.
1533         * graphite-cloog-util.c: Include graphite-cloog-compat.h
1534         (new_Cloog_Domain_from_ppl_Polyhedron):
1535         Extend with CloogState.  Use cloog_domain_from_cloog_matrix (CLOOG_ORG).
1536         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Extend with CloogState.
1537         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
1538         * graphite-cloog-util.h (build_cloog_prog): Same.
1539         * graphite-cloog-copat.h (build_cloog_prog): New.
1540         (CloogState): New.
1541         (cloog_state_malloc): New.
1542         (cloog_state_free): New.
1543         (cloog_loop_malloc): New.
1544         (cloog_options_malloc): New.
1545         (cloog_statement_alloc): New.
1546         (cloog_domain_from_cloog_matrix): New.
1547         (new_Cloog_Domain_from_ppl_Pointset_Powerset): New.
1548         (new_Cloog_Domain_from_ppl_Polyhedron): New.
1549
1550 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
1551
1552         * graphite-clast-to-gimple.c (clast_name_to_gcc): Parameter
1553         type of NAME now depends on used CLooG version.
1554         (clast_to_gcc_expression): Replace expr_* with clast_expr_*.
1555         (gcc_type_for_clast_expr): Same.
1556         (print_clast_stmt): Replace pprint with clast_pprint.
1557         * graphite-cloog-compat.h: Provide compatibility macros for
1558         CLooG Legacy.
1559         (clast_name_p): New.
1560         (clast_expr_term): New.
1561         (clast_expr_red): New.
1562         (clast_expr_bin): New.
1563         (clast_pprint): New.
1564
1565 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
1566
1567         * graphite-clast-to-gimple.c (set_cloog_options): Make CLooG options
1568         compatible to newer CLooG releases (CLOOG_ORG).
1569         (build_cloog_prog): Pass CloogOptions to more functions (CLOOG_ORG).
1570         (scop_to_clast): Pass CloogOptions to build_cloog_prog (CLOOG_ORG).
1571         * graphite-cloog-compat.h: Add compatibility macros for CLooG Legacy.
1572         (build_cloog_prog) : New.
1573         (cloog_program_extract_scalars): New.
1574         (cloog_program_scatter): New.
1575
1576 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
1577
1578         * graphite-clast-to-gimple.c: Include graphite-cloog-compat.h
1579         conditionally (CLOOG_ORG).
1580         * graphite-cloog-compat.h: New.  Include graphite-cloog-compat.h.
1581         (cloog_statement_usr): New.
1582         (cloog_domain): Same.
1583         (cloog_set_domain): Same.
1584         (cloog_next_domain): Same.
1585         (cloog_set_next_domain): Same.
1586         (cloog_program_nb_scattdims): Same.
1587         (cloog_program_set_nb_scattdims): Same.
1588         (cloog_program_names): Same.
1589         (cloog_program_set_names): Same.
1590         (cloog_program_set_context): Same.
1591         (cloog_program_set_loop): Same.
1592         (cloog_program_blocklist): Same.
1593         (cloog_program_set_blocklist): Same.
1594         (cloog_program_scaldims): Same.
1595         (cloog_program_set_scaldims): Same.
1596         (cloog_names_nb_parameters): Same.
1597         (cloog_names_set_nb_parameters): Same.
1598         (cloog_names_parameters): Same.
1599         (cloog_names_set_parameters): Same.
1600         (cloog_names_set_nb_iterators): Same.
1601         (cloog_names_set_iterators): Same.
1602         (cloog_names_set_nb_scattering): Same.
1603         (cloog_names_set_scattering): Same.
1604         (cloog_statement_set_usr): Same.
1605         (cloog_loop_set_next): Same.
1606         (cloog_loop_set_domain): Same.
1607         (cloog_loop_set_block): Same.
1608         (cloog_block_list_next): Same.
1609         (cloog_block_list_set_next):
1610         (cloog_block_list_set_block): Same.
1611
1612 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
1613
1614         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Returns
1615         a bool.
1616         (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
1617         (rewrite_commutative_reductions_out_of_ssa_loop): Same.
1618         (rewrite_cross_bb_scalar_deps_out_of_ssa): Call scev_reset_htab
1619         when something has been changed.
1620         (rewrite_commutative_reductions_out_of_ssa): Same.
1621
1622 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
1623
1624         * graphite-sese-to-poly.c (propagate_expr_outside_region): Also
1625         handle the case when def is in the sese region.
1626         (rewrite_close_phi_out_of_ssa): Call propagate_expr_outside_region
1627         for invariant expressions.
1628         (rewrite_cross_bb_phi_deps): Removed.
1629         (rewrite_cross_bb_scalar_deps): Also handle GIMPLE_PHI nodes.
1630         (rewrite_cross_bb_scalar_deps_out_of_ssa): Do not call
1631         rewrite_cross_bb_phi_deps.
1632
1633 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
1634
1635         * graphite-sese-to-poly.c
1636         (rewrite_commutative_reductions_out_of_ssa_loop): Call
1637         scev_analyzable_p only on is_gimple_reg
1638
1639 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
1640
1641         * graphite-sese-to-poly.c (propagate_expr_outside_region): New.
1642         (rewrite_close_phi_out_of_ssa): Propagate constant values or
1643         parametric expressions outside the scop region.
1644         (rewrite_cross_bb_scalar_deps): Same.
1645         * sese.c (rename_uses): Use NULL_TREE instead of NULL for trees.
1646
1647 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
1648
1649         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Use
1650         SSA_NAME_DEF_STMT only on SSA_NAMEs.
1651
1652 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
1653
1654         * tree-scalar-evolution.c (instantiate_scev_name): Do not
1655         instantiate default definitions.
1656
1657 2010-08-11  Vladimir Kargov  <kargov@gmail.com>
1658             Sebastian Pop  <sebastian.pop@amd.com>
1659
1660         * cfgloop.c (is_loop_exit): Renamed loop_exits_to_bb_p.
1661         (loop_exits_from_bb_p): New.
1662         * cfgloop.h (is_loop_exit): Renamed loop_exits_to_bb_p.
1663         (loop_exits_from_bb_p): Declared.
1664         * graphite-scop-detection.c (scopdet_basic_block_info): Call
1665         loop_exits_to_bb_p.
1666
1667 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
1668
1669         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add an
1670         extra parameter for the region.  Call scev_analyzable_p.
1671         (rewrite_reductions_out_of_ssa): Update call to
1672         rewrite_close_phi_out_of_ssa.
1673         (rewrite_cross_bb_phi_deps): Same.
1674         (rewrite_commutative_reductions_out_of_ssa_loop): Add an extra
1675         parameter for the region.  Call scev_analyzable_p.
1676         (rewrite_commutative_reductions_out_of_ssa): Update call to
1677         rewrite_commutative_reductions_out_of_ssa_loop.
1678
1679 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
1680
1681         * sese.c (rename_uses): Call unshare_expr before force_gimple_operand.
1682
1683 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
1684
1685         * graphite-sese-to-poly.c (reduction_phi_p): Do not rewrite out of
1686         SSA scalar phi nodes that can be scev_analyzable_p.
1687
1688 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
1689
1690         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Correctly
1691         handle SSA_NAME_IS_DEFAULT_DEF.
1692
1693 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
1694
1695         * sese.c (rename_uses): Handl unconditionally gimple_debug statements.
1696
1697 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
1698
1699         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Special
1700         case non close-phi nodes with one argument.
1701
1702 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
1703
1704         * sese.h (scev_analyzable_p): Scevs could be expressions without
1705         chrecs and still be scev_analyzable_p.
1706
1707 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
1708
1709         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
1710
1711 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
1712
1713         * cfgloop.c (alloc_loop): Remove initialization of loop->single_iv.
1714         * cfgloop.h (struct loop): Remove single_iv field.
1715         * graphite-sese-to-poly.c (graphite_loop_normal_form): Removed.
1716         (scop_canonicalize_loops): Removed.
1717         (scop_ivs_can_be_represented): Do not use loop->single_iv.  Iterate
1718         over all the loop phi nodes in loop->header.
1719         (build_poly_scop): Remove use of scop_canonicalize_loops.
1720
1721 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
1722
1723         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Also
1724         handle GIMPLE_CALL.
1725
1726 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
1727
1728         * tree-chrec.c (chrec_apply): Should only apply to the specified
1729         variable.  Also handle multivariate chains of recurrences that
1730         satisfy evolution_function_is_affine_p.  Also handle CASE_CONVERT.
1731
1732 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
1733
1734         * graphite-clast-to-gimple.c (debug_clast_name_index): Removed.
1735         (debug_clast_name_indexes_1): Removed.
1736         (debug_clast_name_indexes): Removed.
1737         (pbb_to_depth_to_oldiv): Removed.
1738         (build_iv_mapping): Replace the use of rename_map with iv_map.
1739         (translate_clast_user): Remove uses of rename_map.  Allocate and
1740         free iv_map.
1741         (translate_clast_for_loop): Remove uses of rename_map.
1742         (translate_clast_for): Same.
1743         (translate_clast_guard): Same.
1744         (translate_clast): Same.
1745         (gloog): Same.
1746         * graphite-clast-to-gimple.h (debug_clast_name_indexes): Removed.
1747         * graphite-sese-to-poly.c (scev_analyzable_p): Moved...
1748         * sese.c (set_rename): Now static.
1749         (rename_variables_in_stmt): Removed.
1750         (rename_uses): New.
1751         (is_parameter): Removed.
1752         (is_iv): Removed.
1753         (expand_scalar_variables_call): Removed.
1754         (expand_scalar_variables_ssa_name): Removed.
1755         (expand_scalar_variables_expr): Removed.
1756         (expand_scalar_variables_stmt): Removed.
1757         (expand_scalar_variables): Removed.
1758         (rename_variables): Removed.
1759         (remove_condition): Removed.
1760         (get_true_edge_from_guard_bb): Removed.
1761         (get_false_edge_from_guard_bb): Removed.
1762         (struct igp): Removed.
1763         (default_before_guard): Removed.
1764         (convert_for_phi_arg): Removed.
1765         (add_guard_exit_phis): Removed.
1766         (insert_guard_phis): Removed.
1767         (graphite_copy_stmts_from_block): Now also uses iv_map and a
1768         region.  Do not copy conditions.  Do not copy induction variables.
1769         Call rename_uses.
1770         (copy_bb_and_scalar_dependences): Allocate a local rename_map for
1771         the translated statement.  Use the iv_map for the induction
1772         variable renaming.
1773         * sese.h (copy_bb_and_scalar_dependences): Update declaration.
1774         (set_rename): Removed declaration.
1775         (scev_analyzable_p): ...here.
1776         * tree-chrec.c (chrec_apply_map): New.
1777         * tree-chrec.h (chrec_apply_map): Declared.
1778
1779 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
1780
1781         * graphite-clast-to-gimple.c (translate_clast_for_loop): Do not call
1782         insert_loop_close_phis.
1783         * sese.c (name_defined_in_loop_p): Removed.
1784         (expr_defined_in_loop_p): Removed.
1785         (alive_after_loop): Removed.
1786         (close_phi_not_yet_inserted_p): Removed.
1787         (struct alep): Removed.
1788         (add_loop_exit_phis): Removed.
1789         (insert_loop_close_phis): Removed.
1790
1791 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
1792
1793         * graphite-cloog-util.c
1794         (cloog_matrix_to_ppl_constraint): Fix flipped condition.
1795         * graphite-poly.c
1796         (psct_scattering_dim_for_loop_depth): Same.
1797
1798 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
1799
1800         * graphite-cloog-util.h: Added cloog.h.
1801         * graphite-blocking.c: Removed cloog.h.
1802         * graphite-dependences.c: Same.
1803         * graphite-interchange.c: Same.
1804         * graphite-poly.c: Same.
1805         * graphite-ppl.c: Same.
1806         * graphite-scop-detection.c: Same.
1807         * graphite-sese-to-poly.c:
1808         Removed cloog.h.
1809         Removed graphite-clast-to-gimple.h.
1810         (check_poly_representation): Removed (unused).
1811         * graphite-sese-to-poly.h
1812         (check_poly_representation): Removed (unused).
1813
1814 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
1815
1816         * Makefile.in (OBJS-common): Added graphite-cloog-util.o.
1817         (graphite-clast-to-gimple.o): Added graphite-cloog-util.h.
1818         (graphite-cloog-util.o): New.
1819         (graphite-ppl.o): Added graphite-cloog-util.h.
1820         * graphite-clast-to-gimple.c:
1821         Added graphite-cloog-util.h to include statements.
1822         * graphite-cloog-util.c: New.
1823         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.c.
1824         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
1825         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
1826         (new_C_Polyhedron_from_Cloog_Matrix): Same.
1827         (insert_constraint_into_matrix): Same.
1828         (ppl_Constrain_System_number_of_constraints): Same.
1829         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
1830         (oppose_constraint): Same.
1831         (cloog_matrix_to_ppl_constraint): Same.
1832         (new_Constraint_System_from_Cloog_Matrix): Same.
1833         * graphite-cloog-util.h: New.
1834         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.h.
1835         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
1836         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
1837         (new_C_Polyhedron_from_Cloog_Matrix): Same.
1838         (insert_constraint_into_matrix): Same.
1839         * graphite-ppl.c:
1840         Added graphite-cloog-util.h to include statements.
1841         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to graphite-cloog-util.c.
1842         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
1843         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
1844         (new_C_Polyhedron_from_Cloog_Matrix): Same.
1845         (insert_constraint_into_matrix): Same.
1846         (ppl_Constrain_System_number_of_constraints): Same.
1847         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
1848         (oppose_constraint): Same.
1849         (cloog_matrix_to_ppl_constraint): Same.
1850         (new_Constraint_System_from_Cloog_Matrix): Same.
1851         * graphite-ppl.h:
1852         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to
1853         graphite-cloog-util.h.
1854         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
1855         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
1856         (new_C_Polyhedron_from_Cloog_Matrix): Same.
1857         (insert_constraint_into_matrix): Same.
1858
1859 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
1860
1861         * graphite-clast-to-gimple.c
1862         (precision_for_value): Resolve value_* calls to matching mpz_* calls.
1863         (precision_for_interval): Same.
1864         (gcc_type_for_interval): Same.
1865         (compute_type_for_level): Same.
1866         * graphite-interchange.c
1867         (lst_interchange_profitable_p): Same.
1868         * graphite-poly.c
1869         (psct_scattering_dim_for_loop_depth): Same.
1870         * graphite-ppl.c
1871         (ppl_max_for_le_pointset): Same.
1872         (ppl_min_for_le_pointset): Same.
1873
1874 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
1875
1876         * graphite-sese-to-poly.c (rewrite_degenerate_phi): New.
1877         (rewrite_reductions_out_of_ssa): Call it for degenerate_phi_result.
1878
1879 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
1880
1881         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Call
1882         rewrite_close_phi_out_of_ssa.
1883
1884 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
1885
1886         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Remove dead code.
1887
1888 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
1889
1890         * graphite-clast-to-gimple.c (build_iv_mapping): Rename map with
1891         rename_map.
1892         * sese.c (debug_rename_map): Same.
1893         (get_rename): Same.
1894         (set_rename): Same.
1895         (rename_variables_in_stmt): Same.
1896         (expand_scalar_variables_call): Same.
1897         (expand_scalar_variables_ssa_name): Same.
1898         (expand_scalar_variables_expr): Same.
1899         (expand_scalar_variables_stmt): Same.
1900         (expand_scalar_variables): Same.
1901         (rename_variables): Same.
1902         (graphite_copy_stmts_from_block): Same.
1903         (copy_bb_and_scalar_dependences): Same.
1904
1905 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
1906
1907         * graphite-clast-to-gimple.c (copy_renames): Removed.
1908         (translate_clast_for): Do not call copy_renames.
1909         (translate_clast_guard): Same.
1910
1911 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
1912
1913         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Moved up.
1914         (rewrite_cross_bb_phi_deps): Split out of rewrite_cross_bb_scalar_deps.
1915         (rewrite_cross_bb_scalar_deps_out_of_ssa): Run rewrite_cross_bb_phi_deps
1916         before rewrite_cross_bb_scalar_deps.
1917
1918 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
1919
1920         * graphite-sese-to-poly.c (rewrite_commutative_reductions_out_of_ssa):
1921         Early return in when flag_associative_math is not set.
1922
1923 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
1924
1925         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Always insert out
1926         of SSA copies on edges except for loop->latch.
1927
1928 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
1929
1930         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps_out_of_ssa):
1931         Split out of rewrite_reductions_out_of_ssa.
1932         * graphite-sese-to-poly.h (rewrite_cross_bb_scalar_deps_out_of_ssa):
1933         Declared.
1934         * graphite.c (graphite_transform_loops): Call it.
1935
1936 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
1937
1938         * graphite.c (graphite_transform_loops): Add two more dbg_cnt calls.
1939
1940 2010-08-11  Alexander Monakov  <amonakov@ispras.ru>
1941
1942         * dbgcnt.def (graphite_scop): New counter.
1943         * graphite.c: Include dbgcnt.h.
1944         (graphite_transform_loops): Use new counter to limit transformations.
1945         * Makefile.in (graphite.o): Depend on DBGCNT_H.
1946
1947 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
1948
1949         * passes.c (init_optimization_passes): Add pass_graphite.
1950         Schedule a pass_copy_prop before pass_graphite_transforms.
1951         * timevar.def (TV_GRAPHITE): Declared.
1952         * tree-pass.h (pass_graphite): Declared.
1953         * tree-ssa-loop.c (pass_graphite): New.
1954
1955 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
1956
1957         * graphite-clast-to-gimple.c (gloog): Do not pass scops in parameter.
1958         Remove calls to rename_nb_iterations and rename_sese_parameters.
1959         * graphite-clast-to-gimple.h (gloog): Update declaration.
1960         * graphite.c (graphite_transform_loops): Update call to gloog.
1961         * sese.c (rename_variables_in_expr): Removed.
1962         (rename_nb_iterations): Removed.
1963         (rename_sese_parameters): Removed.
1964         * sese.h (rename_nb_iterations): Removed.
1965         (rename_sese_parameters): Removed.
1966
1967 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
1968
1969         * graphite-clast-to-gimple.c (gloog): Remove call to
1970         sese_adjust_liveout_phis.
1971         * graphite-sese-to-poly.c (scev_analyzable_p): When scev returns an
1972         SSA_NAME, allow it to be handled by rewrite_cross_bb_scalar_deps.
1973         (rewrite_cross_bb_scalar_deps): Handle GIMPLE_PHI nodes: call
1974         rewrite_phi_out_of_ssa.
1975         * sese.c (get_vdef_before_sese): Removed.
1976         (sese_adjust_vphi): Removed.
1977         (sese_adjust_liveout_phis): Removed.
1978         * sese.h (sese_adjust_liveout_phis): Removed.
1979
1980 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
1981
1982         * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Pass an extra
1983         argument for the place after which to insert the out of SSA copy.
1984         (rewrite_close_phi_out_of_ssa): Update calls to insert_out_of_ssa_copy.
1985         (rewrite_phi_out_of_ssa): Same.
1986         (rewrite_cross_bb_scalar_deps): Same.
1987         (insert_copyout): Removed.
1988         (insert_copyin): Removed.
1989         (translate_scalar_reduction_to_array): Call insert_out_of_ssa_copy and
1990         insert_out_of_ssa_copy_on_edge instead of insert_copyout and
1991         insert_copyin.
1992
1993 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
1994
1995         * graphite-sese-to-poly.c (build_scop_bbs): Not static anymore.
1996         (rewrite_reductions_out_of_ssa): Same.
1997         (rewrite_commutative_reductions_out_of_ssa): Same.
1998         (build_poly_scop): Do not call these functions.
1999         * graphite-sese-to-poly.h (build_poly_scop): Declared.
2000         (rewrite_reductions_out_of_ssa): Declared.
2001         (rewrite_commutative_reductions_out_of_ssa): Declared.
2002         * graphite.c (graphite_transform_loops): Call on every scop
2003         rewrite_commutative_reductions_out_of_ssa before calling
2004         rewrite_reductions_out_of_ssa and build_scop_bbs.
2005
2006 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2007
2008         * graphite-dependences.c (dot_deps): Make system call to dotty run
2009         in background.
2010         (dot_deps_stmt): Same.
2011         * graphite-poly.c (dot_lst): Same.
2012
2013 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2014
2015         * graphite-sese-to-poly.c (loop_entry_phi_arg): Renamed
2016         phi_arg_in_outermost_loop.
2017         (remove_simple_copy_phi): Call phi_arg_in_outermost_loop.
2018         (remove_invariant_phi): Same.
2019
2020 2010-08-11  Anatoly Sokolov  <aesok@post.ru>
2021
2022         * target.def (output_addr_const_extra): New hook.
2023         * doc/tm.texi.in (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Document.
2024         * doc/tm.texi: Regenerate.
2025         * targhooks.c (default_asm_output_addr_const_extra): New function.
2026         * targhooks.h (default_asm_output_addr_const_extra): Declare.
2027         * final.c: (output_addr_const): Use TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA
2028         target hook.
2029
2030         * config/i386/i386.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
2031         * config/i386/i386-protos.h (output_addr_const_extra): Remove.
2032         * config/i386/i386.h (output_addr_const_extra): Rename to...
2033         (i386_asm_output_addr_const_extra): ...this. Make static.
2034         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
2035
2036 2010-08-11  Richard Henderson  <rth@redhat.com>
2037
2038         * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): New.
2039
2040 2010-08-11  Nick Clifton  <nickc@redhat.com>
2041
2042         * config/stormy16/stormy16-lib2.c (__cmpsi2): New function.
2043         * config/stormy16/stormy16-lib2-cmpsi2.c: New file.
2044         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
2045         stormy16-lib2-cmpsi.c.
2046
2047         * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Change to
2048         -O2.
2049
2050 2010-08-11  Joseph Myers  <joseph@codesourcery.com>
2051
2052         * opts.h (struct cl_option_handler_func): Make handler take
2053         cl_decoded_option structure as parameter, not individual elements.
2054         (struct cl_option_handlers): Make callbacks take cl_decoded_option
2055         structure as parameter, not individual elements.
2056         (handle_option): Take cl_decoded_option structure as parameter,
2057         not individual elements.
2058         (handle_generated_option): Declare.
2059         * opts-common.c (handle_option): Take cl_decoded_option structure
2060         as parameter, not individual elements.  Update calls to callback
2061         and handler functions.
2062         (handle_generated_option): New.
2063         (read_cmdline_option): Update calls to callback functions and
2064         handle_option.
2065         * opts.c (common_handle_option, complain_wrong_lang,
2066         unknown_option_callback, post_handling_callback,
2067         lang_handle_option, target_handle_option): Take cl_decoded_option
2068         structure as parameter, not individual elements.
2069         (lang_handle_option, target_handle_option, common_handle_option):
2070         Assert option has at most one argument.
2071         (enable_warning_as_error): Call handle_generated_option instead of
2072         handle_option.  Do not pass -Werror argument as argument of
2073         generated option.
2074
2075 2010-08-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2076
2077         * config/pa/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
2078         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
2079         (SUBWORD_BOOL_CAS): Likewise.
2080         (SUBWORD_SYNC_OP): Likewise.
2081         (SUBWORD_TEST_AND_SET): Likewise.
2082         (FETCH_AND_OP_WORD): Parenthesise INF_OP
2083         (SUBWORD_SYNC_OP): Likewise.
2084         (OP_AND_FETCH_WORD): Likewise.
2085
2086 2010-08-10  Xinliang David Li  <davidxl@google.com>
2087
2088         * tree-ssa-loop-ivopts.c (get_address_cost): Properly
2089         compute max/min offset in address.
2090
2091 2010-08-10  Vladimir Makarov  <vmakarov@redhat.com>
2092
2093         * ira-live.c: Include sbitmap.h.
2094         (remove_some_program_points_and_update_live_ranges): Use sbitmaps.
2095         Compress live ranges even more.
2096
2097 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
2098
2099         * coverage.c (ctr_labels): Delete.
2100
2101 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
2102
2103         PR bootstrap/45177
2104         * config/arm/arm.c (multiple_operation_profitable_p): Move xscale
2105         test here from arm_gen_load_multiple_1.
2106         (arm_gen_load_multiple_1, arm_gen_store_multiple_1): Use
2107         multiple_operation_profitable_p.
2108
2109 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
2110
2111         * tree-ssa-pre.c (init_pre): Call alloc_aux_for_blocks.
2112         (fini_pre): Call free_aux_for_blocks.  Delete unused bb variable.
2113
2114 2010-08-10  Richard Henderson  <rth@redhat.com>
2115
2116         * config/i386/i386.c (ix86_compute_frame_layout): Re-align stack
2117         after saving registers.  Assert that SSE registers are only saved
2118         with a sufficiently aligned frame.
2119         (ix86_emit_save_reg_using_mov): Assert realigned only with DRAP;
2120         remove stack_realign_fp handling.
2121         (ix86_expand_prologue): Save int registers before stack_realign_fp,
2122         and do not mark the stack alignment as frame related.
2123         (ix86_expand_epilogue): SP is now invalid with stack_realign_fp.
2124
2125         * dwarf2out.c (dwarf2out_frame_debug_expr): Flush queued register
2126         saves when re-aligning the stack.
2127
2128 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
2129
2130         * basic-block.h (alloc_aux_for_block, alloc_aux_for_edge): Delete.
2131         * cfg.c (alloc_aux_for_block, alloc_aux_for_edge): Make static.
2132         (alloc_aux_for_blocks, clear_aux_for_blocks): Use FOR_ALL_BB.
2133
2134 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
2135
2136         * dwarf2out.c (struct die_struct): Move die_tag to the end.
2137
2138 2010-08-09  Sofiane Naci  <sofiane.naci@arm.com>
2139
2140         * config/arm/iterators.md: New file.
2141         * config/arm/arm.md: Include iterators.md.
2142         (QHSI): Move to new file.
2143         (LTUGEU, cnb, optab, ior_xor): Likewise.
2144         * config/arm/iwmmxt.md (VMMX): Move to new file.
2145         (VSHFT, MMX_char): Likewise.
2146         * config/arm/neon.md (VD): Move to new file.
2147         (VDX, VDI, VQ, VQX, VQI, VQXMOV, VSTRUCT, VTAB, V_TAB_n, VW): Likewise.
2148         (VN, VDQ, VDQW, VDQIW, VCVTF, VCVTI, VMD, VMQ, VMDQ, VMDI): Likewise.
2149         (VMDQI, VX, VE, V64, V32, V_CVTTO, V_elem, V_ext): Likewise.
2150         (V_two_elem, V_three_elem, V_four_elem, V_req, V_widen): Likewise.
2151         (V_narrow, V_HALF, V_half,V_DOUBLE, V_double): Likewise.
2152         (V_double_width, V_cmp_result, V_if_elem, V_s_elem): Likewise.
2153         (V_u_elem, V_uf_sclr, V_sz_elem, VD_dup): Likewise.
2154         (V_PAIR, vqh_ops, vqhs_ops, VQH_mnem, VQH_sign, V_suf64): Likewise.
2155         (scalar_mul_constraint,Is_float_mode, Scalar_mul_8_16): Likewise.
2156         (Is_d_reg, V_mode_nunits): Likewise.
2157         * config/arm/vec-common.md (VALL): Move to new file.
2158         (VALLW, VINT, VINTW): Likewise.
2159
2160 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
2161
2162         PR middle-end/45182
2163         * combine.c (make_compound_operation): Don't try to convert
2164         shifts into multiplications for modes that aren't SCALAR_INT_MODE_P.
2165
2166 2010-08-10  Richard Guenther  <rguenther@suse.de>
2167
2168         * tree.h (get_object_alignment): Adjust prototype.
2169         * builtins.c (get_object_alignment): Return unsigned int,
2170         drop the align parameter.  Handle MEM_REF, MISALIGNED_INDIRECT_REF
2171         and TARGET_MEM_REF properly.
2172         (get_pointer_alignment): Adjust.
2173         * emit-rtl.c (get_mem_align_offset): Adjust comment.
2174         (set_mem_attributes_minus_bitpos): Adjust.
2175         * tree-ssa-ccp.c (get_value_from_alignment): Adjust.
2176
2177 2010-08-10  Richard Guenther  <rguenther@suse.de>
2178
2179         * tree-ssa-copy.c (set_copy_of_val): Use operand_equal_p.
2180         (copy_prop_visit_assignment): Simplify.
2181         (copy_prop_visit_stmt): Also visit assignments from
2182         constants.
2183         (copy_prop_visit_phi_node): Use operand_equal_p.
2184
2185 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
2186
2187         * ipa-split.c (find_split_points): Free stack.
2188
2189 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
2190
2191         * tree.h (tree_node_kind) [perm_list_kind,temp_list_kind]: Delete.
2192         * tree.c (tree_node_kind): Delete corresponding entries.
2193
2194 2010-08-09  H.J. Lu  <hongjiu.lu@intel.com>
2195
2196         * alias.c (may_alias_p): Remove unused ret.
2197
2198 2010-08-09  Bingfeng Mei  <bmei@broadcom.com>
2199
2200         * ddg.c (walk_mems_2): Moved from alias.c, use may_alias_p instead of
2201         alias_sets_conflict_p.
2202         (walk_mems_1): Moved from alias.c.
2203         (insns_may_alias_p): New function, originally insn_alias_sets_conflict_p
2204         in alias.c.
2205         (add_inter_loop_mem_dep): Use insns_may_alias_p now.
2206         * cse.c (cse_insn): New argument in calling nonoverlapping_memrefs_p.
2207         * alias.c (walk_mems_2): Moved to ddg.c.
2208         (walk_mems_1): Ditto.
2209         (insn_alias_sets_conflict_p): Renamed to insns_may_alias_p and moved
2210         to ddg.c.
2211         (nonoverlapping_memrefs_p): Add flag to guard offset-based memory
2212         disambiguation.
2213         *(may_alias_p): New function to check whether two memory expression
2214         may alias or not. Currently used in buidling inter-iteration memory
2215         dependence.
2216         *alias.h (nonoverlapping_memrefs_p): New flag as third argument.
2217         (insn_alias_sets_conflict_p): Removed
2218         *rtl.h (may_alias_p): New function prototype.
2219
2220 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
2221
2222         * tree.c (nreverse): Assert that we don't have a BLOCK.
2223
2224 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
2225
2226         * builtins.c (fold_builtin_next_arg): Use stdarg_p.
2227         * config/arm/arm.c (arm_get_pcs_model): Likewise.
2228         * config/avr/avr.c (init_cumulative_args): Likewise.
2229         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
2230         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
2231         * config/m68k/m68k.c (m68k_return_pops_args): Likewise.
2232         * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
2233         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
2234         * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
2235         * config/rs6000/rs6000.c (init_cumulative_args): Likewise.
2236         * dwarf2out.c (gen_subprogram_die): Likewise.
2237         * function.c (allocate_struct_function): Likewise.
2238         * c-aux-info.c (gen_formal_list_for_func_dec): Likewise.
2239         (deserves_ellipsis): Delete.
2240
2241 2010-08-09  Richard Guenther  <rguenther@suse.de>
2242
2243         * tree-ssa-copy.c (cached_last_copy_of): Remove.
2244         (valueize_val): New function.
2245         (get_last_copy_of): Remove.
2246         (set_copy_of_val): Simplify.
2247         (dump_copy_of): Likewise.
2248         (copy_prop_visit_cond_stmt): Use valueize_val.
2249         (copy_prop_visit_phi_node): Properly handle unvisited names.
2250         Drop code managing copy-of chains.
2251         (init_copy_prop): Adjust.
2252         (fini_copy_prop): Likewise.
2253         (execute_copy_prop): Remove obsolete comment.
2254
2255 2010-08-09  Richard Guenther  <rguenther@suse.de>
2256
2257         PR middle-end/44632
2258         * function.c (gimplify_parameters): Do not clear addressable
2259         bit of the original parameter.
2260
2261 2010-08-09  Richard Guenther  <rguenther@suse.de>
2262
2263         PR middle-end/45212
2264         * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust
2265         alignment from MEM_REF offset only if we took it from the
2266         base object.
2267
2268 2010-08-09  Eric Fisher <joefoxreal@gmail.com>
2269
2270         * doc/sourcebuild.texi (vect_int_mult): Remove duplicate entry.
2271
2272 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
2273
2274         * c-tree.h (build_arg_info): Declare.
2275         * c-decl.c (build_arg_info): Define.
2276         (get_parm_info): Call it.  Delete initialization code.
2277         * c-parser.c (c_parser_parms_declarator): Likewise.
2278         (c_parser_parms_list_declaractor): Likewise.
2279
2280 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
2281
2282         * c-tree.h (c_arg_tag): Define.  Define a VEC containing it.
2283         (struct c_arg_info): Change type of tags field.
2284         * c-decl.c (grokdeclarator): Update for changed type of tags field.
2285         (get_parm_info): Likewise.
2286         (store_parm_decls_newstyle): Likewise.
2287
2288 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
2289
2290         * config/rs6000/rs6000.c (branch_island): Define.  Define a VEC of it.
2291         (branch_island_list): Delete.
2292         (branch_islands): Declare.
2293         (add_compiler_branch_island): Adjust for branch_islands instead of
2294         branch_island_list.
2295         (macho_branch_islands): Likewise.
2296         (no_previous_def): Likewise.
2297         (get_prev_label): Likewise.
2298
2299 2010-08-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2300
2301         PR boehm-gc/34544
2302         * gthr-posix.h (__gthread_start): Delete.
2303         (__gthread_active_init): Use pthread_default_stacksize_np instead of
2304         pthread_create to determine if hpux pthreads are active.
2305         * gthr-posix95.h (__gthread_start): Delete.
2306         (__gthread_active_init): Likewise use pthread_default_stacksize_np.
2307
2308 2010-08-08  Kai Tietz  <kai.tietz@onevision.com>
2309
2310         * config/i386/mingw32.h ((EXTRA_OS_CPP_BUILTINS): Define
2311         _WIN64 not expanded.
2312
2313 2010-08-07  Uros Bizjak  <ubizjak@gmail.com>
2314             H.J. Lu  <hongjiu.lu@intel.com>
2315
2316         PR target/45213
2317         * config/i386/i386.c (ix86_print_operand): Handle 'q' operand modifier
2318         to output 32bit SFmode immediate as 8 byte sign extended value.
2319
2320 2010-08-07  Marcus Shawcroft  <marcus.shawcroft@arm.com>
2321
2322         * config/arm/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
2323         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
2324         (SUBWORD_BOOL_CAS): Likewise.
2325         (SUBWORD_SYNC_OP): Likewise.
2326         (SUBWORD_TEST_AND_SET): Likewise.
2327         (FETCH_AND_OP_WORD): Parenthesise INF_OP
2328         (SUBWORD_SYNC_OP): Likewise.
2329         (OP_AND_FETCH_WORD): Likewise.
2330
2331 2010-08-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2332
2333         * config/arm/cortex-a9.md: Rewrite VFP Pipeline description.
2334         * config/arm/arm.c (arm_xscale_tune): Initialize sched_adjust_cost.
2335         (arm_fastmul_tune,arm_slowmul_tune, arm_9e_tune): Likewise.
2336         (arm_adjust_cost): Split into xscale_sched_adjust_cost and a
2337         generic part.
2338         (cortex_a9_sched_adjust_cost): New function.
2339         (xscale_sched_adjust_cost): New function.
2340         * config/arm/arm-protos.h (struct tune_params): New field
2341         sched_adjust_cost.
2342         * config/arm/arm-cores.def: Adjust costs for cortex-a9.
2343
2344 2010-08-06  Eric Botcazou  <ebotcazou@adacore.com>
2345
2346         PR target/44942
2347         * config/sparc/sparc.c (function_arg_advance): Always take into account
2348         the padding, if any.
2349
2350 2010-08-06  Richard Guenther  <rguenther@suse.de>
2351
2352         * tree-ssa-ccp.c (struct prop_value_d): Add mask member.
2353         (dump_lattice_value): Dump it.
2354         (get_default_value): Adjust.
2355         (get_constant_value): Likewise.
2356         (set_value_varying): Likewise.
2357         (set_lattice_value): Make sure to not go up the lattice
2358         with bitwise constant values.
2359         (get_value_for_expr): Handle ADDR_EXPRs.
2360         (value_to_double_int): New function.
2361         (get_value_from_alignment): Likewise.
2362         (do_dbg_cnt): Adjust.
2363         (ccp_lattice_meet): Handle partially constant values.
2364         (bit_value_unop_1): New function.
2365         (bit_value_binop_1): Likewise.
2366         (bit_value_unop): Likewise.
2367         (bit_value_binop): Likewise.
2368         (evaluate_stmt): Track partially constant values if
2369         flag_tree_bit_ccp is set.
2370         (ccp_fold_stmt): Dump if we folded a predicate.
2371         (ccp_visit_stmt): Adjust.
2372         * common.opt (ftree-bit-ccp): New flag.
2373         * doc/invoke.texi (ftree-bit-ccp): Document.
2374         * opts.c (decode_options): Enable bit-CCP at -O1.
2375
2376 2010-08-06  Alan Modra  <amodra@gmail.com>
2377
2378         * doc/invoke.texi (RS/6000 and PowerPC Options): Rewrite -mrelocatable
2379         and -mrelocatable-lib description.
2380
2381 2010-08-05  Bernd Schmidt  <bernds@codesourcery.com>
2382
2383         From Martin Thuresson  <martint@google.com>
2384         * postreload.c (reload_cse_simplify_operands): Use
2385         SET_REGNO_RAW instead of SET_REGNO.
2386         * caller-save.c (reg_save_code): Use SET_REGNO_RAW instead of
2387         SET_REGNO.
2388         * ira.c (setup_prohibited_mode_move_regs): Use SET_REGNO_RAW
2389         instead of SET_REGNO.
2390         * rtl.h (SET_REGNO_RAW): New macro.
2391
2392 2010-08-05  Eric Botcazou  <ebotcazou@adacore.com>
2393
2394         * rtlanal.c (nonzero_bits1): Use unsigned HOST_WIDE_INT in all mask
2395         computations.  Fix formatting issues.
2396         (num_sign_bit_copies1): Likewise.
2397         (canonicalize_condition): Likewise.
2398
2399 2010-08-05  Richard Henderson  <rth@redhat.com>
2400
2401         * toplev.h (ctz_hwi, clz_hwi, ffs_hwi): New.
2402         (floor_log2): Use clz_hwi.
2403         (exact_log2): Use ctz_hwi.
2404         * toplev.c (ctz_hwi, clz_hwi, ffs_hwi): New.
2405         * builtins.c (fold_builtin_bitop): Use them.
2406         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
2407         * combine.c (get_pos_from_mask): Use ctz_hwi.
2408         * double-int.c (double_int_ctz): Likewise.
2409         * explow.c (force_reg): Likewise.
2410         * tree.h (SET_DECL_OFFSET_ALIGN): Use ffs_hwi.
2411
2412 2010-08-05  Richard Henderson  <rth@redhat.com>
2413
2414         PR target/45189
2415         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Make sure
2416         the alignment constant is properly sign-extended.
2417
2418 2010-08-05  Richard Guenther  <rguenther@suse.de>
2419
2420         * expr.c (store_expr): Use emit_block_move only if both
2421         source and target are MEMs.  Use store_bit_field if only
2422         the target is a MEM.
2423
2424 2010-08-05  Richard Henderson  <rth@redhat.com>
2425
2426         PR debug/45188
2427         * dwarf2out.c (DWARF2_UNWIND_INFO): Provide default definition.
2428         (INCOMING_RETURN_ADDR_RTX): Likewise.
2429         (dwarf2out_do_frame): Remove conditional compilation.
2430         (dwarf2out_frame_init): Likewise.
2431
2432 2010-08-05  Nicolas Setton  <setton@adacore.com>
2433
2434         * gcov.c (flag_display_progress): New static variable.
2435         (main): Display progress info on standard output if requested.
2436         (options): Add -d/--display-progress.
2437         (print_usage): Print them.
2438         (process_args): Handle them.
2439         * doc/gcov.texi: Document them.
2440
2441 2010-08-05  Martin Jambor  <mjambor@suse.cz>
2442
2443         * ipa-cp.c (ipcp_discover_new_direct_edges): New function.
2444         (ipcp_insert_stage): Redirect only edges not flagged with
2445         indirect_inlining_edge.  Call ipcp_discover_new_direct_edges for all
2446         discovered constants.
2447
2448 2010-08-05  Martin Jambor  <mjambor@suse.cz>
2449
2450         * ipa-prop.h (enum ipa_lattice_type): Changed comments.
2451         (struct ipa_param_descriptor): New fields types and
2452         cannot_devirtualize.
2453         (ipa_param_cannot_devirtualize_p): New function.
2454         (ipa_param_types_vec_empty): Likewise.
2455         (ipa_make_edge_direct_to_target): Declare.
2456         * ipa-cp.c: Fixed first stage driver name in initial comment,
2457         described devirtualization there too.
2458         (ipcp_analyze_node): Call ipa_analyze_params_uses.
2459         (ipcp_print_all_lattices): Print devirtualization info.
2460         (ipa_set_param_cannot_devirtualize): New function.
2461         (ipcp_initialize_node_lattices): Set cannot_devirtualize when setting
2462         lattice to BOTTOM.
2463         (ipcp_init_stage): Merged into...
2464         (ipcp_generate_summary): ...its caller.
2465         (ipcp_change_tops_to_bottom): Also process type lists.
2466         (ipcp_add_param_type): New function.
2467         (ipcp_copy_types): Likewise.
2468         (ipcp_propagate_types): Likewise.
2469         (ipcp_propagate_stage): Also propagate types.
2470         (ipcp_need_redirect_p): Variable jump_func moved to its scope block.
2471         Also return true if propagated types require it.
2472         (ipcp_update_callgraph): Dump redirection info.
2473         (ipcp_process_devirtualization_opportunities): New function.
2474         (ipcp_const_param_count): Include known type information.
2475         (ipcp_insert_stage): Call ipcp_process_devirtualization_opportunities
2476         on new node.  Fixed formatting.
2477         * ipa-prop.c (make_edge_direct_to_target): Renamed to
2478         ipa_make_edge_direct_to_target and changed all callers.  Made
2479         externally visible.
2480         (ipa_node_duplication_hook): Duplicate types vector.
2481         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Also try to
2482         redirect outgoing calls for which we can't get a decl from the
2483         statement.  Check that we can get a decl from the call statement.
2484         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
2485         ipa_analyze_params_uses only when ipa-cp is disabled.
2486         * tree-inline.c (get_indirect_callee_fndecl): Removed.
2487         (expand_call_inline): Do not call get_indirect_callee_fndecl.
2488         * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): New parameter.
2489         * Makefile.in (ipa-cp.o): Add gimple.h to dependencies.
2490
2491 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
2492
2493         * expmed.c (expand_mult_const) <case alg_shift>: Expand shift into
2494         temporary. Emit move from temporary to accum, so REG_EQUAL note will
2495         be attached to this insn in correct mode.
2496
2497 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
2498
2499         * config/i386/i386.c (ix86_decompose_address): Check for SI_REG
2500         using REGNO of base_reg directly.
2501
2502 2010-08-05  Jie Zhang  <jie@codesourcery.com>
2503
2504         PR tree-optimization/45144
2505         * tree-sra.c (type_consists_of_records_p): Return false
2506         if the record contains bit-field.
2507
2508 2010-08-04  Richard Henderson  <rth@redhat.com>
2509
2510         * config/i386/i386.c (struct ix86_frame): Remove padding and
2511         to_allocate members.
2512         (ix86_compute_frame_layout): Don't store them.
2513         (ix86_can_use_return_insn_p): Use a more direct and more obviously
2514         correct condition for the position of the stack pointer.
2515         (ix86_expand_prologue): Compute remaining stack allocation based
2516         on the ultimate stack pointer offset.
2517         (ix86_expand_epilogue): Use more obvious expressions testing for
2518         the stack pointer already pointing to the saved registers.
2519
2520         * config/i386/i386.c (ix86_expand_epilogue): Eliminate code
2521         duplication deconstructing the frame pointer.  Simplify
2522         deallocation of the local stack frame.
2523
2524         * reg-notes.def (CFA_EXPRESSION): New.
2525         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
2526         (dwarf2out_frame_debug_cfa_expression): New.
2527         (dwarf2out_frame_debug_def_cfa): Handle simple MEMs.
2528
2529         * config/i386/i386.h (struct machine_frame_state): Add realigned flag.
2530         * config/i386/i386.c (ix86_expand_prologue): Set it.
2531         (ix86_expand_epilogue): Clear it.
2532         (ix86_emit_save_reg_using_mov): For registers saved in a realigned
2533         context, add REG_CFA_EXPRESSION notes.
2534
2535         * config/i386/i386.h (struct machine_frame_state): Rename from
2536         machine_cfa_state.  Add members tracking SP and FP regardless
2537         of the current CFA register.
2538         (ix86_cfa_state): Remove.
2539         * config/i386/i386.c (struct ix86_frame): Add reg_save_offset
2540         and sse_reg_save_offset members.
2541         (ix86_compute_frame_layout): Set them.
2542         (gen_push): Increment sp_offset too.
2543         (choose_baseaddr_len, choose_baseaddr): New.
2544         (ix86_emit_save_reg_using_mov): New.
2545         (ix86_emit_save_regs_using_mov): Use it.
2546         (ix86_emit_save_sse_regs_using_mov): Likewise.
2547         (ix86_add_cfa_restore_note): Take cfa_offset not red_offset argument;
2548         compare vs the saved red_zone_offset.
2549         (pro_epilogue_adjust_stack): Adjust sp_offset.
2550         (ix86_adjust_stack_and_probe): Likewise.
2551         (ix86_expand_prologue): Set up, use, and validate the new
2552         frame_state_info members.  Use gen_frame_mem.
2553         (ix86_emit_restore_regs_using_pop): Remove red_offset parameter.
2554         (ix86_emit_restore_reg_using_pop): Likewise.  Use and update the
2555         new frame_state_info members.
2556         (ix86_emit_leave): Likewise.
2557         (ix86_emit_restore_regs_using_mov): Likewise.  Don't check for
2558         out-of-range stack pointer offsets here.
2559         (ix86_emit_restore_sse_regs_using_mov): Likewise.
2560         (ix86_expand_epilogue): Use and validate the new frame_state_info
2561         members.  Break up and simplify the logic selecting the
2562         restore_regs_via_mov code path.  Ensure that there will be no
2563         out-of-range stack pointer offsets.
2564
2565         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Remove.
2566
2567         * config/i386/i386.c (ix86_function_ms_hook_prologue): Fix
2568         argument name to reflect the expected tree; fix indentation.
2569         (ix86_asm_output_function_label): Output the entire 32-bit
2570         ms_hook here as bytes ...
2571         (ix86_expand_prologue): ... not here as insns.  Attach the
2572         unwind info for the ms_hook to a blockage insn.
2573         (ix86_handle_fndecl_attribute): Don't check HAVE_AS_IX86_SWAP.
2574         (ix86_ms_bitfield_layout_p): Fix indentation.
2575         * config/i386/i386.md (UNSPECV_VSWAPMOV, vswapmov): Remove.
2576
2577         * config/i386/i386.c (ix86_using_red_zone): New.
2578         (ix86_compute_frame_layout, ix86_add_cfa_restore_note,
2579         ix86_expand_prologue, ix86_force_to_memory): Use it.
2580
2581         * config/i386/i386.c (ix86_expand_prologue): Simplify logic
2582         saving the int registers.
2583
2584         * dwarf2out.c: Remove most of the DWARF2_DEBUGGING_INFO
2585         and DWARF2_UNWIND_INFO conditional compilation.
2586
2587 2010-08-04  Richard Henderson  <rth@redhat.com>
2588
2589         PR debug/45171
2590         * dwarf2out.c (gen_typedef_die): Don't re-generate the die of
2591         an is_naming_typedef_decl.
2592
2593 2010-08-04  Bernd Schmidt  <bernds@codesourcery.com>
2594
2595         PR rtl-optimization/45162
2596         * df-problems.c (df_word_lr_bb_local_compute): Ignore DEBUG_INSNs.
2597         * dce.c (word_dce_process_block): Likewise.
2598
2599 2010-08-04  Steve Ellcey  <sje@cup.hp.com>
2600
2601         PR target/44583
2602         * config/ia64/constraints.md (Z): New.
2603         * config/ia64/predicates.md (fr_reg_or_signed_fp01_operand): New.
2604         (xfreg_or_signed_fp01_operand): New.
2605         * config/ia64/ia64.md (addsf3): Replace fr_reg_or_fp01_operand
2606         with fr_reg_or_signed_fp01_operand and constraint G with Z.
2607         (subsf3): Ditto.
2608         (*maddsf4): Ditto.
2609         (*msubsf4): Ditto.
2610         (adddf3): Ditto.
2611         (adddf3_trunc): Ditto.
2612         (subdf3): Ditto.
2613         (*subdf3_trunc): Ditto.
2614         (*madddf4): Ditto.
2615         (*madddf4_trunc): Ditto.
2616         (*msubdf4): Ditto.
2617         (*msubdf4_trunc): Ditto.
2618         (addxf3): Replace xfreg_or_fp01_operand with
2619         xfreg_or_signed_fp01_operand and constraint G with Z.
2620         (*addxf3_truncsf): Ditto.
2621         (*addxf3_truncdf): Ditto.
2622         (subxf3): Ditto.
2623         (*subxf3_truncsf): Ditto.
2624         (*subxf3_truncdf): Ditto.
2625         (*maddxf4): Ditto.
2626         (*maddxf4_truncsf): Ditto.
2627         (*maddxf4_truncdf): Ditto.
2628         (*msubxf4): Ditto.
2629         (*msubxf4_truncsf): Ditto.
2630         (*msubxf4_truncdf): Ditto.
2631
2632 2010-08-04  Richard Guenther  <rguenther@suse.de>
2633
2634         * alias.c (rtx_refs_may_alias_p): Do not resort to TBAA
2635         if either alias-set is zero.
2636
2637 2010-08-04  Richard Guenther  <rguenther@suse.de>
2638
2639         * tree-ssa-propagate.h (struct prop_value_d, prop_value_t): Move ...
2640         * tree-ssa-ccp.c: ... here.
2641         * tree-ssa-copy.c: ... and here.
2642         * tree-ssa-propagate.h (enum value_range_type, struct value_range_d,
2643         value_range_t): Move ...
2644         * tree-vrp.c: ... here.
2645         * tree-ssa-propagate.h (ssa_prop_get_value_fn): New typedef.
2646         (substitute_and_fold): Adjust prototype.
2647         * tree-ssa-propagate.c (replace_uses_in): Adjust.
2648         (replace_phi_args_in): Likewise.
2649         (substitute_and_fold): Take callback to query lattice instead
2650         of pointer to lattice.  Replace SSA name defs with lattice
2651         values first.
2652         * tree-ssa-ccp.c (ccp_finalize): Adjust.
2653         * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust.
2654         (get_value): New function.
2655         (fini_copy_prop): Adjust.
2656         * tree-vrp.c (vrp_finalize): Adjust.
2657
2658 2010-08-04  Richard Guenther  <rguenther@suse.de>
2659
2660         PR middle-end/45176
2661         * expr.c (expand_expr_real_1): Also preserve TARGET_MEM_REF
2662         points-to set for original MEM_REF.
2663
2664 2010-08-04  Richard Guenther  <rguenther@suse.de>
2665
2666         * tree-ssa-ccp.c (get_constant_value): New function.
2667         (get_rhs_assign_op_for_ccp): Remove.
2668         (valueize_op): New function.
2669         (ccp_fold): Use get_constant_value and valueize_op.
2670         (fold_const_aggregate_ref): Likewise.
2671         (ccp_fold_stmt): Likewise.
2672         (visit_assignment): Simplify.
2673
2674 2010-08-04  Richard Guenther  <rguenther@suse.de>
2675
2676         * Makefile.in (double-int.o): Add $(TOPLEV_H) dependency.
2677         * double-int.h (double_int_ctz): Declare.
2678         * double-int.c (double_int_ctz): New function.
2679
2680 2010-08-04  Hariharan Sandanagobalane <hariharan@picochip.com>
2681
2682         * config/picochip/picochip.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE):
2683         Define.
2684         picochip_expand_movmemhi : Expand movmem pattern.
2685         * config/picochip/picochip-protos.h (picochip_expand_movmemhi) :
2686         Declare.
2687         * config/picochip/picochip.md (movmemhi) : New pattern.
2688
2689 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
2690
2691         * config/i386/unix.h (GLOBAL_ASM_OPS): Add tabs around .globl.
2692
2693 2010-08-03  Bernd Schmidt  <bernds@codesourcery.com>
2694
2695         * simplify-rtx.c (simplify_binary_operation_1): Try to simplify away
2696         NEG as operand of a MULT by merging it with the other operand.
2697         * combine.c (make_compound_operation): Use trunc_int_for_mode when
2698         generating a MULT with constant.  Canonicalize PLUS and MINUS involving
2699         MULT.
2700         * config/arm/constraints.md (M): Examine only 32 bits of a
2701         HOST_WIDE_INT.
2702         * config/arm/predicates.md (power_of_two_operand): Likewise.
2703
2704 2010-08-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2705
2706         * config/spu/spu.c (spu_emit_branch_hint): Do not access NOTE_KIND of
2707         non-NOTE insns.
2708
2709 2010-08-03  Jan Hubicka  <jh@suse.cz>
2710
2711         * ipa-split.c (struct split_point): Add split_part_set_retval.
2712         (find_retval): Forward declare.
2713         (test_nonssa_use, mark_nonssa_use): Special case return by reference.
2714         (consider_split): Compute current->split_part_set_retval.
2715         (visit_bb): Do not look into return value.
2716         (split_function): Handle !split_part_set_retval
2717
2718 2010-08-03  Martin Jambor  <mjambor@suse.cz>
2719
2720         * tree-sra.c (completely_scalarize_record): New parameter REF, create
2721         its own access->expr intead of using build_ref_for_offset.
2722
2723 2010-08-03  Joseph Myers  <joseph@codesourcery.com>
2724
2725         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Define.
2726         * config/alpha/osf5.h (LIB_SPEC): Don't handle -a.
2727         * config/bfin/bfin.h (ASM_SPEC, LINK_SPEC): Don't pass -G* options.
2728         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Handle -iframework.
2729         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Define.
2730         * config/iq2000/iq2000.h (SWITCH_TAKES_ARG): Remove.
2731         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Define using
2732         DEFAULT_SWITCH_TAKES_ARG.
2733         * config/rx/rx.opt (-patch=): Remove option.
2734         * config/rx/rx.c (rx_handle_option): Don't handle OPT_patch_.
2735         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Handle -imultilib.
2736         * doc/invoke.texi (RX Options): Remove -patch=.
2737         * gcc.c (cc1_options): Pass -aux-info* instead of -a* options.
2738         (option_map): Remove --profile-blocks, --quiet and --silent.
2739
2740 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
2741
2742         * config/i386/i386.h (ix86_compare_op0, ix86_compare_op1): Remove.
2743         * config/i386/i386.c (ix86_compare_op0, ix86_compare_op1): Remove.
2744         (ix86_expand_branch): Add op0 and op1 arguments.  Do not access
2745         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
2746         Update calls to ix86_expand_compare and ix86_expand_branch.
2747         (ix86_expand_setcc): Add op0 and op1 arguments.  Update calls to
2748         ix86_expand_compare.
2749         (ix86_expand_compare): Add op0 and op1 arguments.  Do not access
2750         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
2751         Make static.
2752         (ix86_expand_carry_flag_compare): Do not set ix86_compare_op0
2753         and ix86_compare_op1.  Update calls to ix86_expand_compare.
2754         (ix86_expand_int_movcc): Ditto.
2755         (ix86_expand_fp_movcc): Ditto.  Update calls to ix86_expand_setcc.
2756         * config/i386/i386-protos.h (ix86_expand_branch): Update prototype.
2757         (ix86_expand_setcc): Ditto.
2758         (ix86_expand_compare): Remove prototype.
2759         * config/i386/i386.md (cbranch<SDWIM:mode>4): Do not set
2760         ix86_compare_op0 and ix86_compare_op1.  Update calls
2761         to ix86_expand_branch to directly pass operands[1] and operands[2].
2762         (cbranchxf4): Ditto.
2763         (cbranch<MODEF:mode>4): Ditto.
2764         (cbranchcc4): Ditto.
2765         (cstore<SWIM:mode>4): Do not set ix86_compare_op0 and ix86_compare_op1.
2766         Update calls to ix86_expand_setcc to directly pass operands[2] and
2767         operands[3].
2768         (cstorexf4): Ditto.
2769         (cstore<MODEF:mode>4): Ditto.
2770         (cstorecc4): Ditto.
2771
2772 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
2773
2774         PR target/45063
2775         * caller-save.c (save_call_clobbered_regs): Remove regs from
2776         hard_regs_saved when they are set.
2777
2778 2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
2779
2780         PR target/41089
2781         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
2782         as volatile.
2783
2784 2010-08-02  Sebastian Pop  <sebastian.pop@amd.com>
2785
2786         * common.opt (ftree-loop-distribute-patterns): New.
2787         * invoke.texi (-ftree-loop-distribute-patterns): Documented.
2788         * opts.c (decode_options): Enable flag_tree_loop_distribute_patterns
2789         at -O3.
2790         * tree-data-ref.c (stores_zero_from_loop): New.
2791         * tree-data-ref.h (stores_zero_from_loop): Declared.
2792         * tree-loop-distribution.c (tree_loop_distribution): Call
2793         stores_zero_from_loop.
2794         (tree_loop_distribution): Check flag_tree_loop_distribute_patterns.
2795
2796 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
2797
2798         * postreload.c (reload_cse_simplify_operands): Take attribute enabled
2799         into account.
2800
2801         * final.c (final_scan_insn): Call CC_STATUS_INIT unconditionally.
2802         * config/arm/arm.c (thumb1_code): New variable.
2803         (arm_override_options): Set it.
2804         (thumb1_final_prescan_insn): Keep track of condition code status.
2805         (arm_adjust_cost): For Thumb, try to keep cc-setting insns next to
2806         jumps that depend on them.
2807         * config/arm/arm.h (thumb1_code): Declare variable.
2808         (struct machine_function): Guard with #ifndef GENERATOR_FILE.  Add
2809         members thumb1_cc_insn, thumb1_cc_op0, thumb1_cc_op1 and
2810         thumb1_cc_mode.
2811         (CC_STATUS_INIT): New macro.
2812         * config/arm/constraints.md (Pd): New constraint.
2813         * config/arm/predicates.md (noov_comparison_operator): New predicate.
2814         * config/arm/arm.md (is_thumb1): New define_attr.
2815         (conds): Set default to "clob" when generating Thumb1 code.
2816         (thumb1_bicsi3): Renamed from bicsi3.  All uses changed.  Condition
2817         code are set.  Use two-operand assembly syntax.
2818         (thumb1_subsi3_insn): Condition codes are set.  Now a properly named
2819         pattern.
2820         (thumb1_andsi3_insn, thumb1_iorsi3_insn, thumb1_xorsi3_insn): Condition
2821         codes are set.  Use two-operand assembly syntax.
2822         (zero_extendhisi splitter): Remove constraints.
2823         (thumb1_movsi_insn, thumb1_movhi_insn, thumb1_movqi_insn, thumb1_movhf,
2824         thumb1_movsf_insn): Set conds attribute as appropriate.
2825         (cbranchsi4_insn): Use condition code status from struct
2826         machine_function to determine whether the comparison can be eliminated.
2827         Discourage the alternative using high registers.
2828         (movsi_cbranchsi4, andsi3_cbranch, orrsi3_cbranch_scratch,
2829         orrsi3_cbranch, xorsi3_cbranch_scratch, xorsi3_cbranch,
2830         bicsi3_cbranch_scratch, bicsi3_cbranch, subsi3_cbranch_scratch,
2831         subsi3_cbranch): Delete.
2832         (movsi_cbranchsi4 peepholes): Rewrite to generate a sequence of
2833         one subtract and one cbranch insn.
2834
2835         * config/arm/thumb2.md (thumb2_movdi, thumb2_movsf_soft_insn,
2836         thumb2_movdf_soft_insn): Delete patterns.
2837         * config/arm/arm.md (arm_pool_range, thumb2_pool_range,
2838         arm_neg_pool_range, thumb2_neg_pool_range): New attributes.
2839         (pool_range, neg_pool_range): Use them to define defaults.
2840         (movdi, arm_movsf_soft_insn, arm_movdf_soft_insn): Define them
2841         and allow for TARGET_32BIT.
2842
2843         PR target/40457
2844         * config/arm/arm.h (arm_regs_in_sequence): Declare.
2845         * config/arm/arm-protos.h (emit_ldm_seq, emit_stm_seq,
2846         load_multiple_sequence, store_multiple_sequence): Delete
2847         declarations.
2848         (arm_gen_load_multiple, arm_gen_store_multiple): Adjust
2849         declarations.
2850         * config/arm/ldmstm.md: New file.
2851         * config/arm/arm.c (arm_regs_in_sequence): New array.
2852         (load_multiple_sequence): Now static.  New args SAVED_ORDER,
2853         CHECK_REGS.  All callers changed.
2854         If SAVED_ORDER is nonnull, copy the computed order into it.
2855         If CHECK_REGS is false, don't sort REGS.  Handle Thumb mode.
2856         (store_multiple_sequence): Now static.  New args NOPS_TOTAL,
2857         SAVED_ORDER, REG_RTXS and CHECK_REGS.  All callers changed.
2858         If SAVED_ORDER is nonnull, copy the computed order into it.
2859         If CHECK_REGS is false, don't sort REGS.  Set up REG_RTXS just
2860         like REGS.  Handle Thumb mode.
2861         (arm_gen_load_multiple_1): New function, broken out of
2862         arm_gen_load_multiple.
2863         (arm_gen_store_multiple_1): New function, broken out of
2864         arm_gen_store_multiple.
2865         (arm_gen_multiple_op): New function, with code from
2866         arm_gen_load_multiple and arm_gen_store_multiple moved here.
2867         (arm_gen_load_multiple, arm_gen_store_multiple): Now just
2868         wrappers around arm_gen_multiple_op.  Remove argument UP, all callers
2869         changed.
2870         (gen_ldm_seq, gen_stm_seq, gen_const_stm_seq): New functions.
2871         * config/arm/predicates.md (commutative_binary_operator): New.
2872         (load_multiple_operation, store_multiple_operation): Handle more
2873         variants of these patterns with different starting offsets.  Handle
2874         Thumb-1.
2875         * config/arm/arm.md: Include "ldmstm.md".
2876         (ldmsi_postinc4, ldmsi_postinc4_thumb1, ldmsi_postinc3, ldmsi_postinc2,
2877         ldmsi4, ldmsi3, ldmsi2, stmsi_postinc4, stmsi_postinc4_thumb1,
2878         stmsi_postinc3, stmsi_postinc2, stmsi4, stmsi3, stmsi2 and related
2879         peepholes): Delete.
2880         * config/arm/ldmstm.md: New file.
2881         * config/arm/arm-ldmstm.ml: New file.
2882
2883         * config/arm/arm.c (arm_rtx_costs_1): Remove second clause from the
2884         if statement which adds extra costs to frame-related expressions.
2885
2886 2010-08-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2887
2888         * config/arm/arm.c (COSTS_N_INSNS): Remove definition.
2889
2890 2010-08-01  Uros Bizjak  <ubizjak@gmail.com>
2891
2892         PR target/45142
2893         * config/i386/sse.md (vec_set<mode>_0): Do not set mode attribute for
2894         alternative 2.
2895         (vec_set<moode>_0 splitter): Use SSEMODE4S mode iterator to also
2896         split V4SI operands.
2897
2898 2010-08-01  Anatoly Sokolov  <aesok@post.ru>
2899
2900         * config/mmix/mmix.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
2901         * config/mmix/mmix-protos.h (mmix_asm_output_source_filename): Remove.
2902         * config/mmix/mmix.c (mmix_asm_output_source_filename): Make static.
2903         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
2904
2905 2010-07-31  Kai Tietz  <kai.tietz@onevision.com>
2906
2907         * cppdefault.c (cpp_include_defaults): Move GCC_INCLUDE_DIR before
2908         LOCAL_INCLUDE_DIR.
2909
2910 2010-07-31  Richard Sandiford  <rdsandiford@googlemail.com>
2911
2912         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Fix type
2913         used in the call to optab_for_tree_code.  Fix the second
2914         is_widening_mult_p call.  Check that both unwidened operands
2915         have the same sign.
2916
2917 2010-07-31  John Tytgat  <John.Tytgat@aaug.net>
2918
2919         * config/arm/arm.c (arm_function_arg): Remove superfluous test.
2920
2921 2010-07-31  Anatoly Sokolov  <aesok@post.ru>
2922
2923         * config/spu/spu.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
2924
2925 2010-07-30  DJ Delorie  <dj@redhat.com>
2926
2927         * config/rx/predicates.md (rx_constshift_operand): New.
2928         * config/rx/rx.md (zs_cond): New.
2929         (cbranchsi4): Remove mode.
2930         (*cbranchsi4_<code>): Likewise.
2931         (*tstbranchsi4_<code>): New.
2932         (*tstbranchsi4r_<code>): New.
2933         (*tstbranchsi4m_eq): New.
2934         (*tstbranchsi4m_ne): New.
2935         (cbranchsf4): Remove mode.
2936         (*cbranchsf4_<code>): Likewise.
2937
2938 2010-07-30  Bernd Schmidt  <bernds@codesourcery.com>
2939
2940         * rtlanal.c (simplify_subreg_regno): Don't treat
2941         HARD_FRAME_POINTER_REGNUM specially.
2942
2943 2010-07-30  Joseph Myers  <joseph@codesourcery.com>
2944
2945         * common.opt (-G): Don't define option here.
2946         * config/g.opt: New.
2947         * config.gcc: Use g.opt for alpha, frv, ia64, lm32, m32r, mips,
2948         rs6000/powerpc and score targets.
2949         * opts.c (common_handle_option): Don't handle -G here.
2950         * config/alpha/alpha.c (alpha_handle_option): Handle -G.
2951         * config/frv/frv.c (frv_handle_option): Handle -G.
2952         * config/ia64/ia64.c (ia64_handle_option): Handle -G.
2953         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION): New.
2954         * config/m32r/m32r.c (m32r_handle_option): Handle -G.
2955         * config/mips/mips.c (mips_handle_option): Handle -G.
2956         * config/rs6000/rs6000.c (rs6000_handle_option) Handle -G.
2957         * config/score/score.c (score_handle_option): Handle -G.
2958
2959 2010-07-30  Anatoly Sokolov  <aesok@post.ru>
2960
2961         * config/mmix/mmix.c: Include basic-block.h.
2962
2963 2010-07-30  Jakub Jelinek  <jakub@redhat.com>
2964
2965         PR debug/45055
2966         PR rtl-optimization/45137
2967         * rtl.h (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn): New
2968         prototypes.
2969         * emit-rtl.c (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn):
2970         New functions.
2971         * combine.c (next_nonnote_nondebug_insn): Removed.
2972         * ifcvt.c (noce_process_if_block): Use prev_nonnote_nondebug_insn.
2973         * haifa-sched.c (queue_to_ready): Use next_nonnote_nondebug_insn.
2974         * sched-deps.c (sched_analyze_insn): Likewise.
2975         (fixup_sched_groups, deps_start_bb): Use prev_nonnote_nondebug_insn.
2976         * rtlanal.c (canonicalize_condition): Likewise.
2977         * postreload.c (reload_combine_recognize_pattern): Likewise.
2978         (reload_cse_move2add): Use next_nonnote_nondebug_insn.
2979
2980 2010-07-29  Uros Bizjak  <ubizjak@gmail.com>
2981
2982         * config/i386/i386.md (int_cond): Remove code iterator.
2983         (fp_cond): Ditto.
2984         (cbranch<mode>4): Use ordered_comparison_operator predicate
2985         for operator0.
2986         (cstore<mode>4): Ditto for operator1.
2987         (mov<SWIM:mode>cc and corresponding splitter): Ditto.
2988         (add<mode>cc): ditto.
2989
2990 2010-07-30  Richard Guenther  <rguenther@suse.de>
2991
2992         PR middle-end/45141
2993         * expr.c (expand_expr_real_1): Check for not handled base address.
2994
2995 2010-07-30  Richard Guenther  <rguenther@suse.de>
2996
2997         * ipa-prop.c (ipa_modify_formal_parameters): Use
2998         build_distinct_type_copy.
2999
3000 2010-07-30  Anthony Green  <green@moxielogic.com>
3001
3002         * config/moxie/rtems.h: New file.
3003         * config.gcc: Add moxie-rtems support.
3004
3005 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
3006
3007         * dce.c (run_word_dce): Take flag_dce into account.  Clear and restore
3008         df flags as in run_fast_df_dce.
3009
3010 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
3011
3012         Revert:
3013         2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
3014
3015         * rtl.def (NOTE): Swap operands 4 and 5.
3016         * rtl.h (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK,
3017         NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_KIND):
3018         Adjust accordingly.
3019         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of NOTEs.
3020
3021 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
3022
3023         PR debug/45110
3024         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_object_pointer.
3025         (gen_formal_types_die): Add DW_AT_object_pointer in methods.
3026         (gen_subprogram_die): Likewise.  Remove it when removing declaration's
3027         formal parameters.
3028         (gen_decl_die): Change return type to dw_die_ref, return what
3029         gen_formal_parameter_die returned.
3030
3031 2010-07-29  Martin Jambor  <mjambor@suse.cz>
3032
3033         * dbgcnt.def (eipa_sra): New counter.
3034         * tree-sra.c (ipa_early_sra_gate): Also check eipa_sra debug counter.
3035
3036 2010-07-29  Xinliang David Li  <davidxl@google.com>
3037
3038         PR bootstrap/45119
3039         * tree-ssa-loop-ivopts.c (get_address_cost): Revert change
3040         in revision 162652.
3041
3042 2010-07-29  Richard Guenther  <rguenther@suse.de>
3043
3044         * timevar.def (TV_TREE_STORE_COPY_PROP): Remove.
3045         (TV_TREE_STORE_CCP): Likewise.
3046         (TV_TREE_REDPHI): Likewise.
3047
3048 2010-07-29  Richard Guenther  <rguenther@suse.de>
3049
3050         * double-int.h (double_int_and_not): New function.
3051         * combine.c (try_combine): Use it.
3052         * tree-vrp.c (simplify_bit_ops_using_ranges): Likewise.
3053
3054 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
3055
3056         PR rtl-optimization/42575
3057         * dce.c (word_dce_process_block): Renamed from byte_dce_process_block.
3058         Argument AU removed.  All callers changed.  Ignore artificial refs.
3059         Use return value of df_word_lr_simulate_defs to decide whether an insn
3060         is necessary.
3061         (fast_dce): Rename arg to WORD_LEVEL.
3062         (run_word_dce): Renamed from rest_of_handle_fast_byte_dce.  No longer
3063         static.
3064         (pass_fast_rtl_byte_dce): Delete.
3065         * dce.h (run_word_dce): Declare.
3066         * df-core.c (df_print_word_regset): Renamed from df_print_byteregset.
3067         All callers changed.  Simplify code to only deal with two-word regs.
3068         * df.h (DF_WORD_LR): Renamed from DF_BYTE_LR.
3069         (DF_WORD_LR_BB_INFO): Renamed from DF_BYTE_LR_BB_INFO.
3070         (DF_WORD_LR_IN): Renamed from DF_BYTE_LR_IN.
3071         (DF_WORD_LR_OUT): Renamed from DF_BYTE_LR_OUT.
3072         (struct df_word_lr_bb_info): Renamed from df_byte_lr_bb_info.
3073         (df_word_lr_mark_ref): Declare.
3074         (df_word_lr_add_problem, df_word_lr_mark_ref, df_word_lr_simulate_defs,
3075         df_word_lr_simulate_uses): Declare or rename from byte variants.
3076         (df_byte_lr_simulate_artificial_refs_at_top,
3077         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
3078         df_byte_lr_get_regno_len, df_compute_accessed_bytes): Delete
3079         declarations.
3080         (df_word_lr_get_bb_info): Rename from df_byte_lr_get_bb_info.
3081         (enum df_mm): Delete.
3082         * df-byte-scan.c: Delete file.
3083         * df-problems.c (df_word_lr_problem_data): Renamed from
3084         df_byte_lr_problem_data, all members deleted except for
3085         WORD_LR_BITMAPS, which is renamed from BYTE_LR_BITMAPS.  Uses changed.
3086         (df_word_lr_expand_bitmap, df_byte_lr_simulate_artificial_refs_at_top,
3087         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
3088         df_byte_lr_get_regno_len, df_byte_lr_check_regs,
3089         df_byte_lr_confluence_0): Delete functions.
3090         (df_word_lr_free_bb_info): Renamed from df_byte_lr_free_bb_info; all
3091         callers changed.
3092         (df_word_lr_alloc): Renamed from df_byte_lr_alloc; all callers changed.
3093         Don't initialize members that were deleted, don't try to discover data
3094         about registers.  Ignore hard regs.
3095         (df_word_lr_reset): Renamed from df_byte_lr_reset; all callers changed.
3096         (df_word_lr_mark_ref): New function.
3097         (df_word_lr_bb_local_compute): Renamed from
3098         df_byte_bb_lr_local_compute; all callers changed.  Use
3099         df_word_lr_mark_ref.  Assert that artificial refs don't include
3100         pseudos.  Ignore hard registers.
3101         (df_word_lr_local_compute): Renamed from df_byte_lr_local_compute.
3102         Assert that exit block uses don't contain pseudos.
3103         (df_word_lr_init): Renamed from df_byte_lr_init; all callers changed.
3104         (df_word_lr_confluence_n): Renamed from df_byte_lr_confluence_n; all
3105         callers changed.  Ignore hard regs.
3106         (df_word_lr_transfer_function): Renamed from
3107         df_byte_lr_transfer_function; all callers changed.
3108         (df_word_lr_free): Renamed from df_byte_lr_free; all callers changed.
3109         (df_word_lr_top_dump): Renamed from df_byte_lr_top_dump; all callers
3110         changed.
3111         (df_word_lr_bottom_dump): Renamed from df_byte_lr_bottom_dump; all
3112         callers changed.
3113         (problem_WORD_LR): Renamed from problem_BYTE_LR; uses changed;
3114         confluence operator 0 set to NULL.
3115         (df_word_lr_add_problem): Renamed from df_byte_lr_add_problem; all
3116         callers changed.
3117         (df_word_lr_simulate_defs): Renamed from df_byte_lr_simulate_defs.
3118         Return bool, true if bitmap changed or insn otherwise necessary.
3119         All callers changed.  Simplify using df_word_lr_mark_ref.
3120         (df_word_lr_simulate_uses): Renamed from df_byte_lr_simulate_uses;
3121         all callers changed.  Simplify using df_word_lr_mark_ref.
3122         * lower-subreg.c: Include "dce.h"
3123         (decompose_multiword_subregs): Call run_word_dce if df available.
3124         * Makefile.in (lower-subreg.o): Adjust dependencies.
3125         (df-byte-scan.o): Delete.
3126         * timevar.def (TV_DF_WORD_LR): Renamed from TV_DF_BYTE_LR.
3127
3128 2010-07-29  Richard Guenther  <rguenther@suse.de>
3129
3130         * tree.c (build_vector): Assert that the vector constant
3131         has enough elements.
3132         (build_vector_from_ctor): Pad with trailing zeros.
3133
3134 2010-07-29  Richard Guenther  <rguenther@suse.de>
3135
3136         PR tree-optimization/45120
3137         * tree-ssa-structalias.c (get_constraint_for_component_ref):
3138         Handle offset in DEREFs properly.
3139         (get_constraint_for_1): Handle MEM_REF offset properly.
3140
3141 2010-07-29  Richard Guenther  <rguenther@suse.de>
3142
3143         PR middle-end/45034
3144         * convert.c (convert_to_integer): Always use an unsigned
3145         type for narrowed negate and bitwise not.
3146
3147 2010-07-29  Ira Rosen  <irar@il.ibm.com>
3148
3149         * tree-vect-loop.c (vect_create_epilog_for_reduction): Switch
3150         to outer loop when creating reduction epilogue for double reduction,
3151         and switch back to the inner loop when updating the phi nodes.
3152         Update uses of outer loop exit phi nodes in double reduction (instead
3153         of uses of reduction).
3154
3155 2010-07-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
3156
3157         * config/rs6000/rs6000.c (rs6000_rtx_costs): Update costs for
3158         popcount on power7 and parity on power6 systems.
3159         (rs6000_emit_popcount): Rename gen_popcntwsi2 to gen_popcntddi2.
3160         (rs6000_emit_parity): Add support for power6 prtyd/prtyw
3161         instructions.
3162
3163         * config/rs6000/rs6000.md (UNSPEC_COPYSIGN): New unspec.
3164         (UNSPEC_PARITY): Ditto.
3165         (SFDF): New iterator for SF/DF.
3166         (rreg2): New mode attribute for floating register constraint.
3167         (TARGET_FLOAT): New mode attribute for whether single/double float
3168         is supported.
3169         (popcntd<mode>2): Combine popcntwsi2 and popcntddi2 into one
3170         pattern.
3171         (parity<mode>2_cmpb): New insn for parity on power6 and newer
3172         machines.
3173         (copysign<mode>3): Combine copysignsf3, copysigndf3 into one
3174         pattern.  Add support for fcpsgn instruction added in power6.
3175         (copysignsf3): Delete.
3176         (copysigndf3): Delete.
3177         (copysign<mode>3_fcpsgn): New insn to generate fcpsgn.  Use UNSPEC
3178         instead of if_then_else in RTL to avoid problems with -0.
3179
3180         * config/rs6000/vsx.md (vsx_copysign<mode>3): Use UNSPEC instead
3181         of if_then_else to mirror scalar code.
3182         (vsx_copysignsf3): Delete, use copysign<mode>3_fcpsgn in
3183         rs6000.md.
3184
3185         * config/rs6000/vector.md (vector_copysign<mode>3): Use UNSPEC
3186         instead of if_then_else.
3187
3188 2010-07-28  Xinliang David Li  <davidxl@google.com>
3189
3190         * tree-ssa-loop-ivopts.c (avg_loop_niter): New function.
3191         (dump_cand): Dump var_before/after.
3192         (htab_inv_expr_eq): New function.
3193         (htab_inv_expr_hash): New function.
3194         (tree_ssa_iv_optimize_init): Support pseudo invariants.
3195         (add_candidate_1): consider base type precision.
3196         (set_use_iv_cost): New parameter.
3197         (adjust_setup_cost): Use profile information.
3198         (get_address_cost): Do not hard code width in computing address
3199         offset limits.
3200         (compare_aff_trees): New function.
3201         (get_loop_invariant_expr_id): New function.
3202         (get_computation_cost_at): New parameter and use profile information.
3203         (get_computation_cost): New parameter.
3204         (determine_use_iv_cost_generic): Pass new parameter.
3205         (determine_use_iv_cost_address): Ditto.
3206         (determine_use_iv_cost_condition): Ditto.
3207         (autoinc_possible_for_pair): Ditto.
3208         (determine_use_iv_costs): More dumps.
3209         (iv_ca_get_num_inv_exprs): New function.
3210         (iv_ca_recount_cost): Consider loop invariants in register pressure
3211         cost.
3212         (iv_ca_add_use): New parameter.
3213         (iv_ca_dump): Better dumping.
3214         (iv_ca_extend): New parameter.
3215         (try_add_cand_for): Attempt to get better partial solution.
3216         (try_improve_iv_set): Pass new parameter to iv_ca_extend.
3217         (create_new-ivs): More dumps.
3218         (rewrite_use_compare): Ditto.
3219         (free_loop_data): More cleanup.
3220         (treee_ssa_iv_optimize_finalize): Ditto.
3221
3222 2010-07-28  Kai Tietz  <kai.tietz@onevision.com>
3223
3224         * config/i386/i386.h (MCOUNT_NAME_BEFORE_PROLOGUE): New.
3225         * config/i386/i386.c (ix86_profile_before_prologue): New.
3226         (override_options): Add special handling for -mfentry.
3227         (ix86_function_regparm): Likewise.
3228         (ix86_function_sseregparm): Likewise.
3229         (ix86_frame_pointer_required): Likewise.
3230         (ix86_expand_prologue): Check for ms_hook_prologue.
3231         (x86_function_profiler): Adjust mcount output.
3232         (TARGET_PROFILE_BEFORE_PROLOGUE): Define hook.
3233         * config/i386/i386.opt (mfentry): New.
3234         * doc/invoke.texi (mfentry): Add documentation.
3235         * doc/tm.texi: Regenerated..
3236         * doc/tm.texi.in (TARGET_PROFILE_BEFORE_PROLOGUE): New.
3237         * final.c (final_start_function): Replace macro
3238         PROFILE_BEFORE_PROLOGUE by target hook.
3239         * function.c (thread_prologue_and_epilogue_insns): Likewise.
3240         * target.def (profile_before_prologue): New hook.
3241         * targhooks.c (default_profile_before_prologue): New.
3242         * targhooks.h (default_profile_before_prologue): New.
3243
3244 2010-07-28  Jakub Jelinek  <jakub@redhat.com>
3245
3246         PR debug/45105
3247         * gcse.c (hoist_code): Use FOR_BB_INSNS macro.
3248
3249         PR debug/45103
3250         * dwarf2out.c (dwarf2out_var_location): Always consider
3251         NOTE_DURING_CALL_P notes, even when not followed by real instructions.
3252
3253 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
3254
3255         PR rtl-optimization/45107
3256         * gcse.c (hash_scan_set): Use max_distance for gcse-las.
3257
3258 2010-07-28  Richard Guenther  <rguenther@suse.de>
3259
3260         * tree-ssa-ccp.c: Remove comment regarding STORE-CCP.
3261         (set_lattice_value): Do not query an old default value.
3262         (get_value_for_expr): New function.  Properly canonicalize
3263         float values.
3264         (ccp_visit_phi_node): Use it.
3265
3266 2010-07-28  Chung-Lin Tang  <cltang@codesourcery.com>
3267
3268         * config/arm/arm.c (arm_pcs_default): Remove static.
3269         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_PCS or
3270         __ARM_PCS_VFP to indicate soft/hard-float calling convention.
3271         (arm_pcs_default): Declare.
3272
3273 2010-07-28  Iain Sandoe  <iains@gcc.gnu.org>
3274
3275         * config/rs6000/rs6000.c (rs6000_override_options):
3276         Use TARGET_MACHO inline, move darwin_one_byte_bool from here...
3277         ... to darwin_rs6000_override_options.
3278         (rs6000_return_in_memory): Update preceding comment for darwin
3279         64 bit ABI.  Use TARGET_MACHO inline.
3280         (rs6000_darwin64_struct_check_p): New.
3281         (function_arg_advance): Use rs6000_darwin64_struct_check_p.
3282         (function_arg): Likewise.
3283         (rs6000_arg_partial_bytes): Likewise.
3284         (rs6000_function_value): Likewise.
3285
3286 2010-07-28  Andi Kleen <ak@linux.intel.com>
3287
3288         * lto-opts.c (lto_file_read_options): Add loop over all inputs.
3289
3290 2010-07-28  Richard Guenther  <rguenther@suse.de>
3291
3292         PR middle-end/44903
3293         * builtins.c (fold_builtin_memory_op): On STRICT_ALIGNMENT
3294         targets try harder to not generate unaligned accesses.
3295
3296 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
3297
3298         PR rtl-optimization/45101
3299         * gcse.c (hash_scan_set): Fix argument ordering of insert_expr_in_table
3300         for gcse-las.
3301
3302 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
3303
3304         PR tree-optimization/44885
3305         * tree-sra.c (find_param_candidates): Skip pointer types to arrays
3306         with non-aliased component.
3307
3308 2010-07-28  Joseph Myers  <joseph@codesourcery.com>
3309
3310         * config/darwin-driver.c (SWITCH_TAKES_ARG,
3311         WORD_SWITCH_TAKES_ARG): Remove.
3312         * cppspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
3313         * defaults.h (DEFAULT_SWITCH_TAKES_ARG,
3314         DEFAULT_WORD_SWITCH_TAKES_ARG): Move from gcc.h.
3315         (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move default
3316         definitions from gcc.c.
3317         * gcc.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move to
3318         defaults.h.
3319         * gcc.h (DEFAULT_SWITCH_TAKES_ARG, DEFAULT_WORD_SWITCH_TAKES_ARG):
3320         Move to defaults.h.
3321         * opts-common.c: Include tm.h.
3322         (decode_cmdline_option): Use SWITCH_TAKES_ARG and
3323         WORD_SWITCH_TAKES_ARG to count arguments to unknown options.
3324         Handle more than one argument.  Set canonical_option_num_elements.
3325         (decode_cmdline_options_to_array): Set
3326         canonical_option_num_elements and trailing elements of
3327         canonical_option.
3328         * opts.h (struct cl_decoded_option): Allow four elements in
3329         canonical_option.  Add field canonical_option_num_elements.
3330         * Makefile.in (opts-common.o): Update dependencies.
3331
3332 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
3333
3334         PR middle-end/44790
3335         PR middle-end/44993
3336         * expr.c (expand_expr_real_1) <MEM_REF>: Revert latest change.  Make
3337         sure the base has address_mode before adding the offset.
3338
3339 2010-07-27  Xinliang David Li <davidxl@google.com>
3340
3341         * tree-flow.h (create_mem_ref): Add one new parameter.
3342         * tree-ssa-address.c (create_mem_ref): New parameter.
3343         (addr_to_parts): Ditto.
3344         (move_variant_to_index): New function.
3345         * tree-ssa-loop-ivopts.c (rewrite_use_address): Pass new argument.
3346
3347 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
3348
3349         * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, NOTE): Swap operands
3350         4 and 5.
3351         * rtl.h (PATTERN, INSN_LOCATOR, NOTE_DATA, NOTE_DELETED_LABEL_NAME,
3352         NOTE_BLOCK, NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION,
3353         NOTE_KIND, LABEL_NUSES, LABEL_REFS): Adjust accordingly.
3354         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of
3355         CODE_LABELs and NOTEs.
3356         * caller-save.c (init_caller_save): Fix up gen_rtx_INSN call.
3357         * combine.c (try_combine): Likewise.
3358         * ira.c (setup_prohibited_mode_move_regs): Likewise.
3359         * print-rtl.c (print_rtx): Start REG_NOTES on a new line.
3360
3361 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
3362
3363         * coretypes.h (struct cl_option_handlers): Declare.
3364         * hooks.c (hook_int_size_t_constcharptr_int_0): Remove.
3365         * hooks.h (hook_int_size_t_constcharptr_int_0): Remove.
3366         * langhooks-def.h (lhd_handle_option): Declare.
3367         (LANG_HOOKS_HANDLE_OPTION): Use lhd_handle_option.
3368         * langhooks.c (lhd_handle_option): New.
3369         * langhooks.h (struct lang_hooks): Update prototype and return
3370         value type of handle_option hook.
3371         * optc-gen.awk: Generate target_flags_explicit definition for the
3372         driver.
3373         * opts-common.c: Include diagnostic.h.
3374         (handle_option): Move from opts.c.  Update prototype and return
3375         value type.  Use handlers structure.
3376         (read_cmdline_option): Move from opts.c.  Update prototype.  Use
3377         handlers structure.
3378         (set_option): Move from opts.c.
3379         * opts.c (common_handle_option): Update prototype and return value
3380         type.  Update calls to handle_option and enable_warning_as_error.
3381         (unknown_option_callback, post_handling_callback,
3382         lang_handle_option, target_handle_option): New.
3383         (handle_option, read_cmdline_option): Move to opts-common.c.
3384         (read_cmdline_options): Update prototype.  Update call to
3385         read_cmdline_option.
3386         (decode_options): Initialize and use handlers structure.
3387         (set_option): Move to opts-common.c.
3388         (enable_warning_as_error): Update prototype.  Update call to
3389         handle_option.
3390         * opts.h (struct cl_option_handler_func, struct
3391         cl_option_handlers): New.
3392         (handle_option, enable_warning_as_error): Update prototypes.
3393         (read_cmdline_option): Declare.
3394         * Makefile.in (opts-common.o): Update dependencies.
3395
3396 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
3397
3398         * config/arm/arm.c (params.h): Include.
3399         (arm_override_options): Tune gcse-unrestricted-cost.
3400         * config/arm/t-arm (arm.o): Define dependencies.
3401
3402 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
3403
3404         PR target/42495
3405         PR middle-end/42574
3406         * basic-block.h (get_dominated_to_depth): Declare.
3407         * dominance.c (get_dominated_to_depth): New function, use
3408         get_all_dominated_blocks as a base.
3409         (get_all_dominated_blocks): Use get_dominated_to_depth.
3410
3411         * gcse.c (occr_t, VEC (occr_t, heap)): Define.
3412         (hoist_exprs): Remove.
3413         (alloc_code_hoist_mem, free_code_hoist_mem): Update.
3414         (compute_code_hoist_vbeinout): Add debug print outs.
3415         (hoist_code): Partially rewrite, simplify.  Use get_dominated_to_depth.
3416
3417         * params.def (PARAM_MAX_HOIST_DEPTH): New parameter to avoid
3418         quadratic behavior.
3419         * params.h (MAX_HOIST_DEPTH): New macro.
3420         * doc/invoke.texi (max-hoist-depth): Document.
3421
3422 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
3423
3424         PR rtl-optimization/40956
3425         * config/arm/arm.c (thumb1_size_rtx_costs): Fix cost of simple
3426         constants.
3427
3428 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
3429
3430         PR target/42495
3431         PR middle-end/42574
3432         * config/arm/arm.c (legitimize_pic_address): Use
3433         gen_calculate_pic_address pattern to emit calculation of PIC address.
3434         (will_be_in_index_register): New function.
3435         (arm_legitimate_address_outer_p, thumb2_legitimate_address_p,)
3436         (thumb1_legitimate_address_p): Use it provided !strict_p.
3437         * config/arm/arm.md (calculate_pic_address): New expand and split.
3438
3439 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
3440
3441         PR target/42495
3442         PR middle-end/42574
3443         * config/arm/arm.c (thumb1_size_rtx_costs): Add cost for "J" constants.
3444         * config/arm/arm.md (define_split "J", define_split "K"): Make
3445         IRA/reload friendly.
3446
3447 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
3448
3449         * gcse.c (insert_insn_end_basic_block): Update signature, remove
3450         unused checks.
3451         (pre_edge_insert, hoist_code): Update.
3452
3453 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
3454
3455         PR target/42495
3456         PR middle-end/42574
3457         * gcse.c (hoist_expr_reaches_here_p): Remove excessive check.
3458
3459 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
3460
3461         * gcse.c (hoist_code): Generate new pseudo for every new set insn.
3462
3463 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
3464
3465         PR rtl-optimization/40956
3466         PR target/42495
3467         PR middle-end/42574
3468         * gcse.c (compute_code_hoist_vbeinout): Consider more expressions
3469         for hoisting.
3470         (hoist_code): Count occurences in current block too.
3471
3472 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
3473
3474         * gcse.c (struct expr:max_distance): New field.
3475         (doing_code_hoisting_p): New static variable.
3476         (want_to_gcse_p): Change signature.  Allow constrained hoisting of
3477         simple expressions, don't change behavior for PRE.  Set max_distance.
3478         (insert_expr_in_table): Set new max_distance field.
3479         (hash_scan_set): Update.
3480         (hoist_expr_reaches_here_p): Stop search after max_distance
3481         instructions.
3482         (find_occr_in_bb): New static function.  Use it in ...
3483         (hoist_code): Calculate sizes of basic block before any changes are
3484         done.  Pass max_distance to hoist_expr_reaches_here_p.
3485         (one_code_hoisting_pass): Set doing_code_hoisting_p.
3486
3487         * params.def (PARAM_GCSE_COST_DISTANCE_RATIO,)
3488         (PARAM_GCSE_UNRESTRICTED_COST): New parameters.
3489         * params.h (GCSE_COST_DISTANCE_RATIO, GCSE_UNRESTRICTED_COST): New
3490         macros.
3491         * doc/invoke.texi (gcse-cost-distance-ratio, gcse-unrestricted-cost):
3492         Document.
3493
3494 2010-07-27  Jeff Law  <law@redhat.com>
3495             Maxim Kuvyrkov  <maxim@codesourcery.com>
3496
3497         * gcse.c (compute_transpout, transpout): Remove, move logic
3498         to prune_expressions.
3499         (compute_pre_data): Move pruning of trapping expressions ...
3500         (prune_expressions): ... here.  New static function.
3501         (compute_code_hoist_data): Use it.
3502         (alloc_code_hoist_mem, free_code_hoist_mem, hoist_code): Update.
3503
3504 2010-07-27  Xinliang David Li  <davidxl@google.com>
3505
3506         * tree-ssa-loop-ivopts.c (adjust_iv_update_pos): New function.
3507         (rewrite_use_address): Adjust iv update position when needed.
3508
3509 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
3510
3511         * dbgcnt.def (hoist_insn): New debug counter.
3512         * gcse.c (hoist_code): Use it.
3513
3514 2010-07-27  Xinliang David Li  <davidxl@google.com>
3515
3516         * tree-ssa-loop-ivopts.c (niter_for_exit): New parameter.
3517         (niter_for_single_dom_exit): Passes additional parameter.
3518         (iv_period): Fix comments.
3519         (may_eliminate_iv): Handles multiple exit loops properly.
3520         (free_tree_niter_desc): New function.
3521         (free_loop_data): Frees up loop iteration descriptors.
3522
3523 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
3524
3525         PR target/44542
3526         * cfgexpand.c (expand_one_stack_var_at): Limit align to maximum
3527         of max_used_stack_slot_alignment and PREFERRED_STACK_BOUNDARY
3528         instead of MAX_SUPPORTED_STACK_ALIGNMENT.
3529         (expand_one_var): Don't consider DECL_ALIGN for variables for
3530         which expand_one_stack_var_at has been already called.
3531
3532         PR testsuite/44701
3533         * doc/md.texi: Clarify m and es constraints on PowerPC and m and S
3534         constraints on IA-64.
3535
3536 2010-07-27  Jie Zhang  <jie@codesourcery.com>
3537
3538         PR target/44290
3539         Revert:
3540         2010-07-23  Jie Zhang  <jie@codesourcery.com>
3541
3542         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
3543         false if ! tree_versionable_function_p.
3544
3545 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
3546
3547         * dwarf2out.c (add_data_member_location_attribute): Use
3548         add_AT_unsigned instead of add_AT_int if offset is non-negative.
3549
3550 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
3551
3552         * postreload.c (try_replace_in_use): New static function.
3553         (reload_combine_recognize_const_pattern): Use it here.  Allow
3554         substituting into a final add insn, and substituting into a memory
3555         reference in an insn that sets the reg.
3556
3557 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
3558
3559         * common.opt (o): Add MissingArgError.
3560         * doc/options.texi (MissingArgError): Document.
3561         * hooks.c (hook_bool_constcharptr_size_t_false): Remove.
3562         * hooks.h (hook_bool_constcharptr_size_t_false): Remove.
3563         * langhooks-def.h (LANG_HOOKS_MISSING_ARGUMENT): Remove.
3564         (LANG_HOOKS_INITIALIZER): Remove missing_argument hook initializer.
3565         * langhooks.h (struct lang_hooks): Remove missing_argument.
3566         * optc-gen.awk: Handle MissingArgError and output new structure
3567         field initializers.
3568         * opts.c (read_cmdline_option): Use missing_argument_error field
3569         instead of missing_argument langhook.
3570         * opts.h (struct cl_option): Add missing_argument_error field.
3571         * system.h (LANG_HOOKS_MISSING_ARGUMENT): Poison.
3572
3573 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
3574
3575         PR target/29090
3576         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Special-case the
3577         Darwin64 ABI, for zero-sized objects.
3578
3579 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
3580
3581         PR target/35491
3582         PR target/29090
3583
3584         Merge from Apple local 4.2.1.
3585         2005-05-11  Stan Shebs  <shebs@apple.com>
3586         Fix 64-bit varargs for Darwin (Radar 4028089).
3587         * config/rs6000/rs6000.h (rs6000_args): New field floats_in_gpr.
3588         * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
3589         Add argument, add case for 8-byte register half-filled with a float.
3590         (rs6000_darwin64_record_arg_advance_recurse): Detect and handle
3591         single-precision floats specially.
3592
3593 2010-07-27  Ira Rosen  <irar@il.ibm.com>
3594
3595         PR tree-optimization/44152
3596         * tree-vect-slp.c (vect_build_slp_tree): Collect nodes with
3597         complex numbers for further check.
3598         (vect_supported_load_permutation_p): Check nodes with
3599         complex numbers.
3600
3601 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
3602
3603         * langhooks-def.h (lhd_init_options, LANG_HOOKS_OPTION_LANG_MASK,
3604         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): New.
3605         (LANG_HOOKS_INIT_OPTIONS): Update default definition.
3606         (LANG_HOOKS_INITIALIZER): Add new hooks.
3607         * langhooks.c (lhd_init_options, lhd_complain_wrong_lang_p): New.
3608         * langhooks.h (struct lang_hooks): Add new hooks option_lang_mask
3609         and complain_wrong_lang_p.  Update init_options prototype.
3610         * c-objc-common.c (c_initialize_diagnostics): First call
3611         c_common_initialize_diagnostics.
3612         * c-objc-common.h (LANG_HOOKS_OPTION_LANG_MASK,
3613         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): Define.
3614         * coretypes.h (struct cl_option, struct cl_decoded_option): Declare.
3615         * hooks.c (hook_uint_uint_constcharptrptr_0): Remove.
3616         (hook_uint_void_0): New.
3617         * hooks.h (hook_uint_uint_constcharptrptr_0): Remove.
3618         (hook_uint_void_0): New.
3619         * opts-common.c (decode_cmdline_option,
3620         decode_cmdline_options_to_array): Also fill in canonical_option field.
3621         * opts.c (complain_wrong_lang): Use langhook to determine whether
3622         to complain instead of special-casing LTO.
3623         (decode_options): Separate lang_mask determination with
3624         option_lang_mask hook from call of init_options hook.
3625         * opts.h (struct cl_decoded_option): Add canonical_option.
3626
3627 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
3628
3629         PR tree-optimization/45083
3630         * tree-inline.c (add_local_variables): Also remap DECL_DEBUG_EXPR.
3631
3632 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
3633
3634         * postreload.c (reload_combine_recognize_const_pattern): Move test
3635         for limiting the insn movement to the right scope.
3636
3637         PR rtl-optimization/45051
3638         * reload1.c (delete_output_reload): Use refers_to_regno_p rather
3639         than reg_mentioned_p.
3640
3641 2010-07-26  Richard Henderson  <rth@redhat.com>
3642
3643         PR target/44132
3644         * tree-emutls.c: New file.
3645         * Makefile.in (OBJS-common): Add it.
3646         * tree-pass.h (pass_ipa_lower_emutls): Declare.
3647         * passes.c (init_optimization_passes): Add it.
3648
3649         * dwarf2out.c (loc_list_from_tree): If emutls.debug_form_tls_address,
3650         pull the control variable from DECL_VALUE_EXPR, not emutls_decl.
3651         * expr.c (emutls_var_address): Delete.
3652         (expand_expr_addr_expr_1, expand_expr_real_1): Don't use it.
3653         * output.h (SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL): Delete.
3654         (emutls_finish): Delete.
3655         * toplev.c (compile_file): Don't call it.
3656         * tree.h (emutls_decl): Delete.
3657         * varasm.c (emutls_htab, DECL_EMUTLS_VAR_P): Delete.
3658         (emutls_finish, emutls_finalize_control_var): Delete.
3659         (emutls_object_type): Move to tree-emutls.c.
3660         (EMUTLS_SEPARATOR, prefix_name, get_emutls_object_name,
3661         default_emutls_var_fields, get_emutls_object_type,
3662         get_emutls_init_templ_addr, emutls_decl, emutls_common_1
3663         default_emutls_var_init): Likewise.
3664         (get_variable_section): Don't special case emutls.
3665         (assemble_variable, do_assemble_alias, categorize_decl_for_section,
3666         default_elf_select_section, default_unique_section,
3667         default_encode_section_info): Likewise.
3668         * varpool.c (decide_is_variable_needed): Likewise.
3669         * gimple-iterator.c (update_call_edge_frequencies): New
3670         (gsi_insert_on_edge_immediate): Use it.
3671         (gsi_insert_seq_on_edge_immediate): Likewise.
3672         (gsi_commit_one_edge_insert): Likewise.
3673
3674         * config/i386/i386.c (x86_64_elf_select_section): Don't handle
3675         SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL.
3676         (x86_64_elf_unique_section): Likewise.
3677
3678 2010-07-26  Jan Hubicka  <jh@suse.cz>
3679
3680         * lto-streamer.h (struct lto_file_decl_data): Mark resolutions with
3681         GTY((skip)).
3682
3683 2010-07-26  Anatoly Sokolov  <aesok@post.ru>
3684
3685         * target.def (output_source_filename): New hook.
3686         * doc/tm.texi.in (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Document.
3687         * doc/tm.texi: Regenerate.
3688         * toplev.c (output_file_directive) Remove function.
3689         * toplev.h (output_file_directive) Remove.
3690         * output.h (default_asm_output_source_filename,
3691         output_file_directive): Declare.
3692         * varasm.h (default_asm_output_source_filename,
3693         output_file_directive): New functions.
3694
3695         * config/mips/mips.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
3696         * config/mips/mips-protos.h (mips_output_filename): Remove.
3697         * config/mips/mips.c (mips_output_filename): Make Static.
3698         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
3699
3700 2010-07-26  Richard Guenther  <rguenther@suse.de>
3701
3702         PR tree-optimization/43784
3703         * tree-nrv.c (dest_safe_for_nrv_p): It's not safe to NRV
3704         if the destination is used by the call.
3705
3706 2010-07-26  Richard Guenther  <rguenther@suse.de>
3707
3708         PR middle-end/45073
3709         * gimple-fold.c (gimplify_and_update_call_from_tree): Conditionalize
3710         SSA updating on being in SSA form.
3711
3712 2010-07-26  Richard Guenther  <rguenther@suse.de>
3713
3714         PR middle-end/45056
3715         * gimple-fold.c (fold_stmt_1): Also fold references in debug stmts.
3716
3717 2010-07-26  Richard Guenther  <rguenther@suse.de>
3718
3719         PR tree-optimization/45071
3720         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Always
3721         adjust op->opcode.
3722
3723 2010-07-26  Naveen.H.S  <naveen.S@kpitcummins.com>
3724
3725         * config/v850/lib1funcs.asm (save_r2_r31, return_r2_r31,
3726         save_r20_r31, return_r20_r31, save_r21_r31, return_r21_r31,
3727         save_r22_r31, return_r22_r31, save_r23_r31, return_r23_r31,
3728         save_r24_r31, return_r24_r31, save_r25_r31, return_r25_r31,
3729         save_r26_r31, return_r26_r31, save_r27_r31, return_r27_r31,
3730         save_r28_r31, return_r28_r31, save_r29_r31, return_r29_r31,
3731         save_r31, return_r31, save_interrupt, return_interrupt,
3732         save_all_interrupt, return_all_interrupt, L_save_r2_r31,
3733         L_return_interrupt, callt_return_interrupt, L_restore_all_interrupt,
3734         L_save_##START##_r31c, L_callt_save_r31c): Updated as per the
3735         new ABI requirements.
3736         (save_r6_r9, L_callt_save_r6_r9): Remove.
3737         * config/v850/predicates.md (even_reg_operand, disp23_operand,
3738         const_float_1_operand const_float_0_operand): New Predicates.
3739         (pattern_is_ok_for_prepare, pattern_is_ok_for_prologue,
3740         pattern_is_ok_for_epilogue): Update as per the ABI requirements.
3741         * config/v850/t-v850: Update multilibs for new target variants.
3742         (save_varargs, callt_save_varargs, callt_save_r6_r9): Remove.
3743         * config/v850/t-v850e: Likewise.
3744         * config/v850/v850.c (v850_issue_rate): New.
3745         (v850_strict_argument_naming): New.
3746         (function_arg): Modify to generate a different ABI.
3747         (print_operand): Update case 'z' to support float modes.
3748         (output_move_single): Modify to generate appropriate and better
3749         assembly.
3750         (v850_float_z_comparison_operator, v850_select_cc_mode,
3751         v850_float_nz_comparison_operator,  v850_gen_float_compare,
3752         v850_gen_compare): New functions to support comparison of float values.
3753         (ep_memory_offset): Add support for V850E2 targets.
3754         (INTERRUPT_FIXED_NUM, INTERRUPT_ALL_SAVE_NUM): Update.
3755         (INTERRUPT_REGPARM_NUM): Remove.
3756         (compute_register_save_size): Add extra case to save/restore long call.
3757         (use_prolog_function): New function to support prologue.
3758         (expand_prologue): Add support for V850E2 targets and modified
3759         as per the current ABI requirements.
3760         (expand_epilogue): Likewise.
3761         (construct_restore_jr): Modify based on TARGET_LONG_CALLS.
3762         (construct_save_jarl): Likewise.
3763         (construct_dispose_instruction): Update as per the current ABI
3764         requirements.
3765         (construct_prepare_instruction): Likewise.
3766         * config/v850/v850.h (TARGET_CPU_DEFAULT): Add target predefines.
3767         (TARGET_CPU_v850e2, TARGET_CPU_v850e2v3): Define
3768         (CPP_SPEC): Updated to support v850e2 targets.
3769         (STRICT_ALIGNMENT): Modified.
3770         (FIRST_PSEUDO_REGISTER): Updated to add even registers.
3771         (FIXED_REGISTERS): Likewise.
3772         (CALL_USED_REGISTERS): Likewise.
3773         (CONDITIONAL_REGISTER_USAGE): Updated.
3774         (HARD_REGNO_MODE_OK): Updated.
3775         (reg_class): Updated to add even registers.
3776         (REG_CLASS_NAMES): Likewise.
3777         (REG_CLASS_CONTENTS): Likewise.
3778         (REGNO_REG_CLASS): Updated for CC registers.
3779         (REG_CLASS_FROM_LETTER): Added support for even registers.
3780         (REGNO_OK_FOR_BASE_P): Updated for CC registers.
3781         (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM, LINK_POINTER_REGNUM,
3782         ARG_POINTER_REGNUM): Updated.
3783         (FUNCTION_ARG_ADVANCE): Define.
3784         (REG_PARM_STACK_SPACE): Update as per the current ABI requirements.
3785         (OUTGOING_REG_PARM_STACK_SPACE): Remove.
3786         (EXTRA_CONSTRAINT): Add new constraint 'W' for 23-bit displacement.
3787         (GO_IF_LEGITIMATE_ADDRESS): Updated.
3788         (SELECT_CC_MODE): Define.
3789         (REGISTER_NAMES): Updated to add psw and fcc registers.
3790         (ADDITIONAL_REGISTER_NAMES): Updated.
3791         (ASM_OUTPUT_ADDR_DIFF_ELT): Updated to support new targets.
3792         (JUMP_TABLES_IN_TEXT_SECTION): Updated.
3793         * config/v850/v850.md (define_constants): Define new constants.
3794         (type): Update store,bit1,macc,div,fpu and single attributes.
3795         (cpu): New attribute.
3796         (cc): Add set_z attribute.
3797         (unsign23byte_load, sign23byte_load, unsign23hword_load,
3798         sign23hword_load, 23word_load, 23byte_store, 23hword_store,
3799         23word_store): New instructions for 23-bit displacement load and store.
3800         (movqi_internal, movhi_internal): Update the attributes.
3801         (movsi, movsi_internal_v850e): Updated to support v850e2 targets.
3802         (movsi_internal_v850e, movsi_internal, movsf_internal): Update
3803         the attributes.
3804         (v850_tst1): Modified using CC_REGNUM.
3805         (tstsi): Remove.
3806         (cmpsi): Modified as define_expand from define_insn.
3807         (cmpsi_insn, cmpsf, cmpdf): New instructions.
3808         (addsi3, subsi3, negsi2, divmodsi4, udivmodsi4, divmodhi4,
3809         udivmodhi4, v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3,
3810         v850_set1_1, v850_set1_3, iorsi3, v850_not1_1, v850_not1_3, xorsi3,
3811         one_cmplsi2): Clobber the CC_REGNUM register.
3812         (v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3, v850_set1_1,
3813         v850_set1_2, v850_set1_3, iorsi3, v850_not1_1, v850_not1_2,
3814         v850_not1_3, xorsi3, one_cmplsi2): Update the attributes accordingly.
3815         (setf_insn, set_z_insn, set_nz_insn): New instructions for
3816         v850e2v3 target.
3817         (movsicc_normal_cc, movsicc_reversed_cc): New instructions.
3818         (movsicc, movsicc_normal, movsicc_reversed): Add support for V850E2
3819         targets.
3820         (sasf_1, sasf_2): Remove.
3821         (sasf): New instruction.
3822         (rotlhi3, rotlhi3_8, rotlsi3, rotlsi3_16): Update to support V850E2
3823         targets. CC_REGNUM register is clobbered and attributes are
3824         updated.
3825         (branch_z_normal, branch_z_invert, branch_nz_normal,
3826         branch_nz_invert): New branch related instructions.
3827         (jump): Updated the attributes.
3828         (switch): Update to support new targets. CC_REGNUM register is
3829         clobbered and attributes are updated.
3830         (call_internal_short, call_internal_long, call_value_internal_short,
3831         call_value_internal_long): Updated the attributes.
3832         (zero_extendhisi2, zero_extendqisi2): CC_REGNUM register is
3833         clobbered and attributes are updated.
3834         (extendhisi_insn, extendhisi2, extendqisi_insn, extendqisi2):
3835         Update to support new targets. CC_REGNUM register is clobbered.
3836         (ashlsi3_v850e2, lshrsi3_v850e2, ashrsi3_v850e2): New shift
3837         instructions.
3838         (lshrsi3, ashrsi3): CC_REGNUM register is clobbered and attributes
3839         are updated.
3840         (ffssi2, addsf3, adddf3, subsf3, subdf3, mulsf3, muldf3, divsf3,
3841         divdf3, minsf3, mindf3, maxsf3, maxdf3, abssf2, absdf2, negsf2,
3842         negdf2, sqrtsf2, sqrtdf2, truncsfsi2, truncdfsi2, floatsisf2,
3843         floatsidf2, extendsfdf2, extenddfsf2, recipsf2, recipdf2,
3844         rsqrtsf2, rsqrtdf2, maddsf4, msubsf4, nmaddsf4, nmsubsf4,
3845         cmpsf_le_insn, cmpsf_lt_insn, cmpsf_ge_insn, cmpsf_gt_insn,
3846         cmpsf_eq_insn, cmpsf_ne_insn, cmpdf_le_insn, cmpdf_lt_insn,
3847         cmpdf_ge_insn, cmpdf_gt_insn, cmpdf_eq_insn, cmpdf_ne_insn, trfsr,
3848         movsfcc, movdfcc, movsfcc_z_insn, movsfcc_nz_insn, movdfcc_z_insn,
3849         movdfcc_nz_insn, movedfcc_z_zero, movedfcc_nz_zero): New floating
3850         point instructions defined for V850e2v3 target.
3851         (callt_save_interrupt, callt_return_interrupt, return_interrupt):
3852         Add support for V850E2 targets and CC_REGNUM register is clobbered.
3853         (callt_save_all_interrupt, callt_restore_all_interrupt): Add
3854         support for new targets.
3855         * config/v850/v850-modes.def: New file.
3856         * config/v850/v850.opt(mstrict-align): Remove.
3857         (mno-strict-align, mjump-tables-in-data-section, mv850e2,
3858         mv850e2v3): New command line options for V850.
3859         * config.gcc: Update the newly added files.
3860         * doc/invoke.texi: Update the newly added command line options for
3861         V850 target.
3862
3863 2010-07-26  Richard Guenther  <rguenther@suse.de>
3864
3865         PR tree-optimization/45052
3866         * ipa-pure-const.c (check_stmt): Check volatileness.
3867
3868 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
3869
3870         PR target/44707
3871         * config/sparc/sparc-protos.h (sparc_legitimize_reload_address): New.
3872         * config/sparc/sparc.c: Include reload.h.
3873         (legitimize_tls_address): Rename into...
3874         (sparc_legitimize_tls_address): ...this.
3875         (legitimize_pic_address): Rename into...
3876         (sparc_legitimize_pic_address): ...this.
3877         (sparc_expand_move): Adjust to above renaming.
3878         (sparc_tls_referenced_p): Likewise.
3879         (sparc_legitimize_tls_address): Likewise.
3880         (sparc_legitimize_pic_address): Likewise.
3881         (sparc_legitimize_address): Likewise.
3882         (sparc_output_mi_thunk): Likewise.
3883         (sparc_legitimize_reload_address): New global function.  Recognize
3884         (lo_sum (high ...) ...) patterns generated by earlier passes.
3885         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Use above function.
3886
3887 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
3888
3889         PR target/44484
3890         * config/sparc/predicates.md (memory_reg_operand): Delete.
3891         * config/sparc/sync.md (sync_compare_and_swap): Minor tweaks.
3892         (*sync_compare_and_swap): Encode the address form in the pattern.
3893         (*sync_compare_and_swapdi_v8plus): Likewise.
3894
3895 2010-07-24  Gerald Pfeifer  <gerald@pfeifer.com>
3896
3897         * doc/install.texi (Specific, *-*-freebsd*): Adjust to recent changes.
3898         Streamline paragraph on compatibility with the system compiler.
3899
3900 2010-07-24  Steven Bosscher  <steven@gcc.gnu.org>
3901
3902         PR middle-end/45035
3903         * alias.c (true_dependence_1): Fix thinko in merge of old
3904         true_dependence and canon_true_dependence.
3905
3906 2010-07-23  Jan Hubicka  <jh@suse.cz>
3907
3908         * lto-streamer-out.c (write_symbol): Fix visibilities of external
3909         references.
3910
3911 2010-07-23  Le-Chun Wu  <lcwu@google.com>
3912
3913         * omega.c (omega_eliminate_redundant): Remove a self-assign statement.
3914         * tree-ssa-ccp.c (ccp_lattice_meet): Remove a self-assign statement
3915         and an unnecessary assignment.
3916         * dbxout.c (DEBUGGER_ARG_OFFSET): Change OFFSET to OFFSET+0 to avoid
3917         self-assign warning.
3918         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Remove
3919         unnecessary self-init.
3920
3921 2010-07-23  Richard Guenther  <rguenther@suse.de>
3922
3923         PR lto/43071
3924         * gcc.c (LINK_COMMAND_SPEC): Filter out -fcompare-debug
3925         for -flto and -fwhopr.
3926
3927 2010-07-23  Kai Tietz  <kai.tietz@onevision.com>
3928
3929         PR target/41943
3930         * Makefile.in (USER_H_INC_NEXT_PRE, USER_H_INC_NEXT_POST): New.
3931         (stmp-int-hdrs): Prefix/postfix headers by include_next.
3932         * config.gcc (user_headers_inc_next_pre): New.
3933         (user_headers_inc_next_post): Likewise.
3934         (*-w64-mingw*): Use for float.h post-fixing, and for
3935         stddef.h/stdarg.h pre-fixing by include_next.
3936         * configure.ac (user_headers_inc_next_post): New.
3937         (user_headers_inc_next_pre): New.
3938         * configure: Regenerated.
3939
3940 2010-07-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3941
3942         * configure.ac: Don't disable TLS on Solaris 8/9 by default
3943         Set tga_func for Solaris 2/x86 resp. SPARC.
3944         Remove duplicate parts of sparc*-sun-solaris2.* TLS check.
3945         (LIB_THREAD_LDFLAGS_SPEC): Define.
3946         (LIB_TLS_SPEC): Define.  Check for required Sun ld version.
3947         * configure: Regenerate.
3948         * config.in: Regenerate.
3949         * config/sol2.h (LIB_SPEC): Use LIB_THREAD_LDFLAGS_SPEC with
3950         -pthread, -threads, LIB_TLS_SPEC with -pthread.
3951         * doc/install.texi (Specific, *-*-solaris2*): Document use of
3952         alternate thread libraries on Solaris 8.
3953         Document TLS patch requirements.
3954         * doc/sourcebuild.texi (Add Options): Sort alphabetically.
3955         Document tls.
3956
3957         PR target/18788
3958         * config/sol2.h (LIB_SPEC): Link with thread libraries even with
3959         -shared.
3960
3961 2010-07-23  Jakub Jelinek  <jakub@redhat.com>
3962
3963         * tree.h (struct tree_base): Add nameless_flag bitfield.
3964         (TYPE_NAMELESS, DECL_NAMELESS): Define.
3965         * omp-low.c (create_omp_child_function, scan_omp_parallel,
3966         scan_omp_task, lower_omp_taskreg): Set DECL_NAMELESS and/or
3967         DECL_ARTIFICIAL where needed.
3968         * dwarf2out.c (dwarf2_name): Return NULL if DECL_NAMELESS.
3969         (type_tag): Return NULL if TYPE_NAMELESS or if TYPE_DECL
3970         has DECL_NAMELESS set.
3971
3972 2010-07-23  Martin Jambor  <mjambor@suse.cz>
3973
3974         PR tree-optimization/44915
3975         * ipa-cp.c (cgraph_gate_cp): Also check that optimize is true.
3976         * ipa-inline.c (cgraph_mark_inline_edge): Likewise.
3977         (analyze_function): Likewise.
3978
3979 2010-07-23  Martin Jambor  <mjambor@suse.cz>
3980
3981         PR tree-optimization/44914
3982         * tree-sra.c (sra_modify_function_body): Return true if CFG was
3983         changed, add purging dead eh edges.
3984         (ipa_sra_modify_function_body): Return true if CFG was changed,
3985         simplify purging dead eh edges.
3986         (modify_function): Return true if CFG was changed.
3987         (perform_intra_sra): Add TODO_cleanup_cfg to the return value if CFG
3988         was changed.
3989         (ipa_early_sra): Likewise.
3990
3991 2010-07-23  Jie Zhang  <jie@codesourcery.com>
3992
3993         PR target/44290
3994         * attribs.c (decl_attributes): Insert "noinline" and "noclone"
3995         if "naked".
3996         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
3997         false if ! tree_versionable_function_p.
3998
3999 2010-07-23  Nathan Froyd  <froydnj@codesourcery.com>
4000
4001         * builtins.def (BUILT_IN_ARGS_INFO): Remove.
4002         * ipa-pure-const.c (special_builtlin_state): Remove
4003         BUILT_IN_ARGS_INFO case.
4004         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
4005         * builtins.c (expand_builtin): Likewise.
4006         (expand_builtin_args_info): Remove.
4007         * doc/tm.texi (__builtin_args_info): Remove.
4008         (__builtin_next_arg): Adjust to not refer to __builtin_args_info.
4009         * doc/tm.text.in: Likewise.
4010
4011 2010-07-23  Richard Guenther  <rguenther@suse.de>
4012
4013         * lto-symtab.c (lto_symtab_merge): Use gtc_mode enum values.
4014         (lto_symtab_merge_decls_2): Likewise.
4015         * tree-ssa.c (useless_type_conversion_p): Likewise.
4016         * lto-streamer-in.c (input_gimple_stmt): Likewise.
4017         * gimple.c (gtc_visited2, gtc_ob2): Remove.
4018         (struct type_pair_d): Make same_p an array indexed by mode.
4019         Update comment.
4020         (lookup_type_pair): Update initialization.
4021         (struct sccs): Adjust same_p type.
4022         (gimple_types_compatible_p_1, gtc_visit, gimple_types_compatible_p):
4023         Adjust.
4024         (print_gimple_types_stats): Likewise.
4025         * gimple.h (enum gtc_mode): New.
4026         (gimple_types_compatible_p): Adjust prototype.
4027
4028 2010-07-23  Daniel Jacobowitz  <dan@codesourcery.com>
4029
4030         * dwarf2out.c (dwarf2out_frame_debug): Check for queued saves
4031         again after processing insn.
4032
4033 2010-07-23  Jie Zhang  <jie@codesourcery.com>
4034
4035         * tree-sra.c (ipa_sra_preliminary_function_checks): Dump
4036         proper words when !tree_versionable_function_p.
4037
4038 2010-07-23  Richard Guenther  <rguenther@suse.de>
4039
4040         PR tree-optimization/45037
4041         * tree-ssa-loop-ivopts.c (copy_ref_info): Handle NULL base.
4042
4043 2010-07-23  Jie Zhang  <jie@codesourcery.com>
4044
4045         * doc/extend.texi: Remove IP2K from the description of naked attribute.
4046         Add MCORE instead.
4047
4048 2010-07-10  Andi Kleen  <ak@linux.intel.com>
4049
4050         PR lto/44992
4051         * lto-opts.c (lto_write_options): Add NULL file_data argument to
4052         lto_get_section_name.
4053         * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
4054         * lto-streamer-out.c (produce_asm): Likewise.
4055         (copy_function): Likewise.
4056         (produce_symtab): Likewise.
4057         (produce_asm_for_decls): Likewise.
4058         * lto-streamer.c (lto_get_section_name): Add file_data argument.
4059         Rewrite to add random postfix to LTO sections.
4060         * lto-streamer.h (lto_file_decl_data): Add next, id, resolutions.
4061         (lto_get_section_name): Add file_data argument to prototype.
4062
4063 2010-07-10  Andi Kleen  <ak@linux.intel.com>
4064
4065         * lto-section-in.c (lto_section_name): Synchronize names
4066         with lto_get_section_name.
4067
4068 2010-07-10  Andi Kleen  <ak@linux.intel.com>
4069
4070         * lto-opts.c (lto_read_file_options): Check for missing section.
4071
4072 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
4073
4074         * ira.c (check_allocation): Correctly handle the case where an allocno
4075         with two objects was allocated to a single reg.
4076
4077 2010-07-22  Richard Sandiford  <rdsandiford@googlemail.com>
4078
4079         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): New function.
4080         (is_widening_mult_p): Likewise.
4081         (convert_to_widen): Use them.
4082         (convert_plusminus_to_widen): Likewise.  Handle fixed-point types as
4083         well as integer ones.
4084
4085 2010-07-22  Steven Bosscher  <steven@gcc.gnu.org>
4086
4087         * alias.c (true_dependence_1): New function, merged version of
4088         true_dependence and canon_true_dependence.
4089         (true_dependence): Simplify.
4090         (canon_true_dependence): Simplify.
4091
4092 2010-07-22  Richard Henderson  <rth@redhat.com>
4093
4094         PR target/45027
4095         * config/i386/i386.c (setup_incoming_varargs_64): Force the use
4096         of V4SFmode for the SSE saves; increase stack alignment if needed.
4097         (ix86_gimplify_va_arg): Don't increase stack alignment here.
4098
4099 2010-07-22  Jakub Jelinek  <jakub@redhat.com>
4100
4101         PR bootstrap/45028
4102         * recgprop.c (copyprop_hardreg_forward_1): If changed is true,
4103         call cprop_find_used_regs again via note_uses.
4104
4105 2010-07-22  Eric Botcazou  <ebotcazou@adacore.com>
4106
4107         * alias.c (get_alias_set): Fix formatting issues.
4108
4109 2010-07-22  Steve Ellcey  <sje@cup.hp.com>
4110
4111         PR middle-end/44878
4112         * stmt.c (expand_value_return):  Call promote_function_mode with
4113         a for_return argument of 2 when returning by reference.
4114
4115 2010-07-22  Dodji Seketeli  <dodji@redhat.com>
4116
4117         PR debug/45024
4118         * dwarf2out.c (scope_die_for): Don't fall back to the compilation
4119         unit DIE if we can find the scope DIE.
4120
4121 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
4122
4123         * ira-build.c (ira_create_object): New arg SUBWORD; all callers
4124         changed.  Initialize OBJECT_SUBWORD.
4125         (ira_create_allocno): Clear ALLOCNO_NUM_OBJECTS.
4126         (ira_create_allocno_objects): Renamed from ira_create_allocno_object;
4127         all callers changed.
4128         (merge_hard_reg_conflicts): Iterate over allocno subobjects.
4129         (finish_allocno): Likewise.
4130         (move_allocno_live_ranges, copy_allocno_live_ranges): Likewise.
4131         (remove_low_level_allocnos): Likewise.
4132         (update_bad_spill_attribute): Likewise.
4133         (setup_min_max_allocno_live_range_point): Likewise.
4134         (sort_conflict_id_map): Likewise.
4135         (ira_flattening): Likewise.  Use ior_hard_reg_conflicts.
4136         (ior_hard_reg_conflicts): New function.
4137         (ior_allocate_object_conflicts): Renamed first argument to OBJ.
4138         (compress_conflict_vecs): Iterate over objects, not allocnos.
4139         (ira_add_live_range_to_object): New function.
4140         (object_range_compare_func): Renamed from allocno_range_compare_func.
4141         All callers changed.
4142         (setup_min_max_conflict_allocno_ids): For allocnos with multiple
4143         subobjects, widen the min/max range of the lowest-order object to
4144         potentially include all other such low-order objects.
4145         * ira.c (ira_bad_reload_regno_1): Iterate over allocno subobjects.
4146         (check_allocation): Likewise.  Use more fine-grained tests for register
4147         conflicts.
4148         * ira-color.c (allocnos_have_intersected_live_ranges_p): Iterate over
4149         allocno subobjects.
4150         (assign_hard_reg): Keep multiple sets of conflicts.  Make finer-grained
4151         choices about which bits to set in each set.  Don't use
4152         ira_hard_reg_not_in_set_p, perform a more elaborate test for conflicts
4153         using the multiple sets we computed.
4154         (push_allocno_to_stack): Iterate over allocno subobjects.
4155         (all_conflicting_hard_regs_coalesced): New static function.
4156         (setup_allocno_available_regs_num): Use it.
4157         (setup_allocno_left_conflicts_size): Likewise.  Iterate over allocno
4158         subobjects.
4159         (coalesced_allocno_conflict): Test subobject 0 in each allocno.
4160         (setup_allocno_priorities): Divide ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
4161         by ALLOCNO_NUM_OBJECTS.
4162         (calculate_spill_cost): Likewise.
4163         (color_pass): Express if statement in a more normal way.
4164         (ira_reassign_conflict_allocnos): Iterate over allocno subobjects.
4165         (slot_coalesced_allocno_live_ranges_intersect_p): Likewise.
4166         (setup_slot_coalesced_allocno_live_ranges): Likewise.
4167         (allocno_reload_assign): Likewise.
4168         (ira_reassign_pseudos): Likewise.
4169         (fast_allocation): Likewise.
4170         * ira-conflicts.c (build_conflict_bit_table): Likewise.
4171         (print_allocno_conflicts): Likewise.
4172         (ira_build_conflicts): Likewise.
4173         (allocnos_conflict_for_copy_p): Renamed from allocnos_conflict_p.  All
4174         callers changed.  Test subword 0 of each allocno for conflicts.
4175         (build_object_conflicts): Renamed from build_allocno_conflicts.  All
4176         callers changed.  Iterate over allocno subobjects.
4177         * ira-emit.c (modify_move_list): Iterate over allocno subobjects.
4178         * ira-int.h (struct ira_allocno): New member: num_objects.
4179         Rename object to objects and change it into an array.
4180         (ALLOCNO_OBJECT): Add new argument N.
4181         (ALLOCNO_NUM_OBJECTS, OBJECT_SUBWORD): New macros.
4182         (ira_create_allocno_objects): Renamed from ira_create_allocno_object.
4183         (ior_hard_reg_conflicts): Declare.
4184         (ira_add_live_range_to_object): Declare.
4185         (ira_allocno_object_iterator): New.
4186         (ira_allocno_object_iter_init, ira_allocno_object_iter_cond): New.
4187         (FOR_EACH_ALLOCNO_OBJECT): New macro.
4188         * ira-lives.c (objects_live): Renamed from allocnos_live; all
4189         uses changed.
4190         (allocnos_processed): New sparseset.
4191         (make_object_born): Renamed from make_allocno_born; take an
4192         ira_object_t argument.  All callers changed.
4193         (make_object_dead): Renamed from make_allocno_dead; take an
4194         ira_object_t argument.  All callers changed.
4195         (update_allocno_pressure_excess_length): Take an ira_obejct_t argument.
4196         All callers changed.
4197         (mark_pseudo_regno_live): Iterate over allocno subobjects.
4198         (mark_pseudo_regno_dead): Likewise.
4199         (mark_pseudo_regno_subword_live, mark_pseudo_regno_subword_dead): New
4200         functions.
4201         (mark_ref_live): Detect subword accesses and call
4202         mark_pseudo_regno_subword_live as appropriate.
4203         (mark_ref_dead): Likewise for mark_pseudo_regno_subword_dead.
4204         (process_bb_nodes_live): Deal with object-related updates first; set
4205         and test bits in allocnos_processed to avoid computing allocno
4206         statistics more than once.
4207         (create_start_finish_chains): Iterate over objects, not allocnos.
4208         (print_object_live_ranges): New function.
4209         (print_allocno_live_ranges): Use it.
4210         (ira_create_allocno_live_ranges): Allocate and free allocnos_processed
4211         and objects_live.
4212
4213 2010-07-22  Richard Guenther  <rguenther@suse.de>
4214
4215         PR lto/42451
4216         * gimple.c (gtc_next_dfs_num): New global.
4217         (struct sccs): Make value a union, add integer same_p member.
4218         (gtc_visit): New function.
4219         (gimple_types_compatible_p_1): New function, split out from ...
4220         (gimple_types_compatible_p): ... here.  Start a DFS walk here.
4221         (iterative_hash_gimple_type): Adjust for sccs change.
4222
4223 2010-07-22  Martin Jambor  <mjambor@suse.cz>
4224
4225         PR tree-optimization/44891
4226         * tree-sra.c: Include gimple-pretty-print.h.
4227         (replace_uses_with_default_def_ssa_name): Renamed to
4228         get_repl_default_def_ssa_name, return the new SSA name instead of
4229         replacing the old one.
4230         (sra_modify_assign): Dump a message when removing a load, if the LHS
4231         is an SSA_NAME, do not do any propagation, just set the RHS to a
4232         default definition SSA NAME, type convert if necessary.
4233         * Makefile.in (tree-sra.o): Add gimple-pretty-print.h to dependencies.
4234
4235 2010-07-22  Richard Guenther  <rguenther@suse.de>
4236
4237         PR tree-optimization/45017
4238         * tree-ssa-sccvn.c (vn_reference_eq): Make sure we honor
4239         TYPE_PRECISION of integral types in addition to size.
4240
4241 2010-07-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
4242
4243         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Default to GLIBC
4244         when no C library is specified.
4245
4246 2010-07-22  Martin Jambor  <mjambor@suse.cz>
4247
4248         * ipa-prop.h (struct ipa_node_params): Updated comment.
4249         (struct ipa_edge_args): Likewise.
4250         * Makefile.in (ipa-prop.o): Remove bogus $(GIMPLE_FOLD_H) dependency.
4251
4252 2010-07-22  Martin Jambor  <mjambor@suse.cz>
4253
4254         * cgraphunit.c (verify_edge_count_and_frequency): New function.
4255         (verify_cgraph_node): Verify frequencies of indirect edges.
4256         * tree-inline.c (tree_function_versioning): Update frequencies of
4257         indirect edges.
4258
4259 2010-07-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4260
4261         PR target/43698
4262         * config/arm/arm.md: Split arm_rev into *arm_rev and *thumb1_rev.
4263         Set *arm_rev to be predicable.
4264
4265 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
4266
4267         * config/darwin.h (LINK_COMMAND_SPEC): Split into...
4268         (LINK_COMMAND_SPEC_A): New.
4269         (DSYMUTIL): New.
4270         (DSYMUTIL_SPEC): New.
4271         * config/darwin9.h (LINK_COMMAND_SPEC): Remove.
4272         (DSYMUTIL_SPEC): Update for darwin >= 9 requirements.
4273
4274 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
4275
4276         * calls.c (load_register_parameters): Move check for zero
4277         sized items so that only the call to
4278         mem_overlaps_already_clobbered_arg_p () is protected.
4279
4280 2010-07-22  Jan Hubicka  <jh@suse.cz>
4281
4282         * ipa-pure-const.c (varying_state): Break out from ...
4283         (get_function_state): ... here; always return varying_state
4284         when state would be NULL otherwise.
4285         (remove_node_data): Do not free varying state.
4286
4287 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
4288
4289         PR bootstrap/44970
4290         PR middle-end/45009
4291         * postreload.c: Include "target.h".
4292         (reload_combine_closest_single_use): Don't take DEBUG_INSNs
4293         into account.
4294         (fixup_debug_insns): Don't copy the rtx.
4295         (reload_combine_recognize_const_pattern): DEBUG_INSNs can't have uses.
4296         Don't copy when replacing.  Call fixup_debug_insns in the case where
4297         we merged one add with another.
4298         (reload_combine_recognize_pattern): Fail if there aren't any uses.
4299         Try harder to determine whether we're picking a valid index register.
4300         Don't set store_ruid for an insn we're going to scan in the
4301         next iteration.
4302         (reload_combine): Remove unused code.
4303         (reload_combine_note_use): When updating use information for
4304         an old insn, ignore a use that occurs after store_ruid.
4305         * Makefile.in (postreload.o): Update dependencies.
4306
4307         * function.c (record_hard_reg_sets): Restrict the previous change
4308         to cases where the incoming nominal mode is the same as the
4309         incoming promoted mode and everything happens in MODE_INT.
4310
4311 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
4312
4313         PR debug/45015
4314         * var-tracking.c (adjust_mems): Ignore ASM_OPERANDS with non-zero
4315         ASM_OPERANDS_OUTPUT_IDX.
4316         (adjust_insn): For inline asm with multiple sets ensure first
4317         ASM_OPERANDS vectors are used by all following ASM_OPERANDS in
4318         the insn.
4319
4320 2010-07-21  Richard Henderson  <rth@redhat.com>
4321
4322         * config/i386/i386.c (setup_incoming_varargs_64): Emit a simple
4323         comparison for avoiding xmm register saves.  Emit the xmm register
4324         saves explicitly.
4325         * config/i386/i386.md (UNSPEC_SSE_PROLOGUE_SAVE): Remove.
4326         (UNSPEC_SSE_PROLOGUE_SAVE_LOW): Remove.
4327         (sse_prologue_save, sse_prologue_save_insn1, sse_prologue_save_insn):
4328         Remove patterns and the associated splitters.
4329
4330 2010-07-21  Changpeng Fang  <changpeng.fang@amd.com>
4331
4332         * tree-ssa-loop-prefetch.c (analyze_ref): Strip off the real
4333         and imagine parts of a complex, so that they can have the same
4334         base and fall into the same group.
4335
4336 2010-07-21  Richard Guenther  <rguenther@suse.de>
4337
4338         PR lto/45018
4339         * tree.c (find_decls_types_r): Do not follow TREE_CHAIN
4340         of TYPE_DECLs.  Do not follow TYPE_NEXT_VARIANT,
4341         TYPE_NEXT_PTR_TO, nor TYPE_NEXT_REF_TO or TYPE_CANONICAL.
4342
4343 2010-07-21  Martin Jambor  <mjambor@suse.cz>
4344
4345         PR tree-optimization/44900
4346         * tree-sra.c (load_assign_lhs_subreplacements): Updated comments.
4347         (sra_modify_assign): Move gsi to the next statmenent unconditionally.
4348
4349 2010-07-21  Bernd Schmidt  <bernds@codesourcery.com>
4350
4351         PR middle-end/44738
4352         * tree-ssa.c (warn_uninit): Avoid emitting an unnecessary message.
4353
4354 2010-07-21  Richard Guenther  <rguenther@suse.de>
4355
4356         PR middle-end/45013
4357         * tree-ssa.c (useless_type_conversion_p): Dispatch to
4358         gimple_types_compatible_p only when in lto.
4359         * gimple.c (gimple_types_compatible_p): Use canonical types
4360         to speed up comparison.
4361
4362 2010-07-21  Richard Guenther  <rguenther@suse.de>
4363
4364         * tree-flow.h (referenced_var): Move define ...
4365         * tree-flow-inline.h (referenced_var): ... here as an inline
4366         function.  Assert here ...
4367         * tree-dfa.c (referenced_var_lookup): ... instead of here.
4368         * tree-ssa.c (maybe_optimize_var): Check if the variable
4369         is in referenced vars.
4370         (execute_update_addresses_taken): Remove old broken check.
4371         * gimple-pretty-print.c (pp_points_to_solution): Use
4372         referenced_var_lookup.
4373         * tree-into-ssa.c (dump_decl_set): Likewise.
4374
4375 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
4376
4377         PR debug/45003
4378         * var-tracking.c (reverse_op): Also handle {SIGN,ZERO}_EXTEND of a MEM.
4379         * dwarf2out.c (loc_descriptor): Don't handle SIGN_EXTEND nor
4380         ZERO_EXTEND here.
4381
4382 2010-07-20  Richard Henderson  <rth@redhat.com>
4383
4384         * vxworks.c (vxworks_emutls_var_fields): Pass locus to build_decls.
4385
4386 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
4387
4388         * config/arm/arm.md (thumb1_addsi3): Add alternative and split for
4389         computing the sum of the stack pointer and a large constant.
4390         * config/arm/constraints.md (M): Remove superfluous parentheses.
4391         (Pc): New constraint.
4392
4393 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
4394
4395         PR debug/45006
4396         * cfgexpand.c (expand_debug_expr): Only look at TYPE_UNSIGNED of
4397         operand's type if exp is tcc_unary class tree.
4398
4399 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
4400
4401         * config/rs6000/rs6000.md (abs<mode>2_isel, nabs<mode>2_isel):
4402         Reverse sense of if_then_else condition.
4403
4404 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
4405
4406         * config/rs6000/rs6000.opt (mblock-move-inline-limit): New option.
4407         * config/rs6000/rs6000.c (rs6000_override_options): Set
4408         rs6000_block_move_inline_limit appropriately.
4409         (expand_block_move): Use rs6000_block_move_inline_limit.
4410         * doc/invoke.texi (mblock-move-inline-limit): Document.
4411
4412 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
4413
4414         * postreload.c (fixup_debug_insns): Remove arg REGNO.  New args
4415         FROM and TO.  All callers changed.  Don't look for tracked uses,
4416         just scan the RTL for DEBUG_INSNs and substitute.
4417         (reload_combine_recognize_pattern): Call fixup_debug_insns.
4418         (reload_combine): Ignore DEBUG_INSNs.
4419
4420 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
4421
4422         * var-tracking.c (vt_expand_loc, vt_expand_loc_dummy): Bump maximum
4423         depth to 8 from 5.
4424
4425         PR debug/45003
4426         * cfgexpand.c (expand_debug_expr) <case NOP_EXPR>: Use ZERO_EXTEND
4427         or SIGN_EXTEND depending on TYPE_UNSIGNED of the operand's type
4428         instead of the result's type.
4429
4430 2010-07-20  Richard Guenther  <rguenther@suse.de>
4431
4432         PR tree-optimization/44977
4433         * tree-ssa-dom.c (propagate_rhs_into_lhs): Do not create invalid
4434         SSA form.
4435
4436 2010-07-20  Richard Guenther  <rguenther@suse.de>
4437
4438         * lto-symtab.c (lto_symtab_merge): Use gimple_types_compatible_p.
4439         (lto_symtab_merge_decls_2): Likewise.
4440         * gimple.h (gimple_types_compatible_p): Declare.
4441         * gimple.c (gimple_queue_type_fixup): Remove.
4442         (gimple_fixup_complete_and_incomplete_subtype_p): Likewise.
4443         (gimple_compatible_complete_and_incomplete_type_p): New function.
4444         (gimple_types_compatible_p): Adjust.
4445         (gimple_register_type): Remove type fixup code.
4446         (print_gimple_types_stats): Adjust.
4447         (free_gimple_type_tables): Likewise.
4448         * lto-streamer-in.c (input_gimple_stmt): Use gimple_types_compatible_p.
4449         * tree-ssa.c (useless_type_conversion_p): Likewise.
4450
4451 2010-07-20  Richard Guenther  <rguenther@suse.de>
4452
4453         PR middle-end/44971
4454         PR middle-end/44988
4455         * tree-ssa.c (maybe_optimize_var): New function split out from ...
4456         (execute_update_addresses_taken): ... here.
4457         (non_rewritable_mem_ref_base): Likewise.
4458         (execute_update_addresses_taken): Do not iterate over all referenced
4459         vars but just all local decls and parms.
4460         Properly check call and asm arguments and rewrite call arguments.
4461
4462 2010-07-20  Maxim Kuvyrkov  <maxim@codesourcery.com>
4463
4464         * config.gcc (LIBC_GLIBC, LIBC_UCLIBC, LIBC_BIONIC): Move constants
4465         to top level.
4466         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Move Android-specific
4467         definitions ...
4468         * config/linux-android.h (ANDROID_TARGET_OS_CPP_BUILTINS): ... here.
4469         New macro.
4470         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Use it.
4471
4472 2010-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
4473
4474         * gengtype.c (start_root_entry): New function, split out from
4475         write_root.  Check whether V is null and raise an error if so.
4476         (write_field_root): Check for V being null.  Don't raise an error here;
4477         set V to null instead.
4478         (write_root): Update comment above function.  Use start_root_entry.
4479
4480 2010-07-19  Xinliang David Li  <davidxl@google.com>
4481
4482         PR testsuite/44932
4483         * tree-ssa-uninit.c (collect_phi_def_edges): Fix bug collecting
4484         def edges.
4485         (find_uninit_use): Add dump.
4486         (is_use_properly_guarded): Ditto.
4487         (warn_uninitialized_phi): Ditto.
4488         (execute_late_warn_uninitialized): Ditto.
4489
4490 2010-07-19  Richard Guenther  <rguenther@suse.de>
4491
4492         PR middle-end/44941
4493         * expr.c (emit_block_move_hints): Move zero size check first.
4494         Move asserts to more useful places.
4495         * calls.c (load_register_parameters): Check for zero size.
4496
4497 2010-07-19  Richard Henderson  <rth@redhat.com>
4498
4499         * tree-optimize.c (execute_all_early_local_passes): New.  Change
4500         cgraph_state here ...
4501         (execute_early_local_optimizations): ... not here.  Remove.
4502         (pass_early_local_passes, pass_all_early_optimizations): Update.
4503
4504 2010-07-19  Bernd Schmidt  <bernds@codesourcery.com>
4505
4506         * postreload.c (reload_combine_closest_single_use): Ignore the
4507         number of uses for DEBUG_INSNs.
4508         (fixup_debug_insns): New static function.
4509         (reload_combine_recognize_const_pattern): Use it.  Don't let the
4510         main loop be affected by DEBUG_INSNs.
4511         Really disallow moving adds past a jump insn.
4512         (reload_combine_recognize_pattern): Don't update use_ruid here.
4513         (reload_combine_note_use): Do it here.
4514         (reload_combine): Use control_flow_insn_p rather than JUMP_P.
4515
4516 2010-07-19  Bingfeng Mei  <bmei@broadcom.com>
4517
4518         * ddg.c (create_ddg): Exclude nodes of debug_insn in counting nodes
4519         of a loop.
4520         * loop-doloop.c (doloop_condition_get): Skip possible debug_insn.
4521
4522 2010-07-19  Iain Sandoe  <iains@gcc.gnu.org>
4523
4524         * config/i386/darwin.h: Define darwin_emit_branch_islands.
4525         (TARGET_MACHO_BRANCH_ISLANDS): New.
4526         (FUNCTION_PROFILER): Use TARGET_MACHO_BRANCH_ISLANDS.
4527         * config/i386/i386.h (TARGET_MACHO_BRANCH_ISLANDS): Define a
4528         default value.
4529         * config/i386/i386.c (output_pic_addr_const): Do not emit
4530         branch islands unless TARGET_MACHO_BRANCH_ISLANDS is set.
4531         (x86_output_mi_thunk): Adjust symbol creation.
4532         * config/rs6000/darwin.h: Define darwin_emit_branch_islands.
4533         Remove out of date comment.
4534         * config/rs6000/rs6000.c (print_operand): Adjust symbol.
4535         (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
4536         (DARWIN_GENERATE_ISLANDS): Ditto.
4537         (output_call):  Do not emit branch islands unless
4538         darwin_emit_branch_islands is set.
4539         * config/darwin.c: Declare darwin_emit_branch_islands.
4540         (machopic_indirect_data_reference): Do not emit unless
4541         darwin_emit_branch_islands is set.
4542         (darwin_override_options): Set darwin_emit_branch_islands
4543         where it is needed.
4544         * config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
4545
4546 2010-07-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4547
4548         * doc/sourcebuild.texi (Effective-Target Keywords): Document
4549         sse_runtime, sse2_runtime.
4550
4551 2010-07-18  Richard Sandiford  <rdsandiford@googlemail.com>
4552
4553         * config/mips/mips.c (mips16_build_call_stub): Zero-extend the
4554         low half of a single-register SCmode return value before ORing
4555         it with the high half.
4556         * config/mips/mips16.S (MERGE_GPRf): Likewise.
4557
4558 2010-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4559
4560         PR target/44805
4561         * config/pa/pa.h (CONSTANT_ALIGNMENT): Align strings to BITS_PER_WORD
4562         on all targets.
4563
4564 2010-07-17  Bernd Schmidt  <bernds@codesourcery.com>
4565
4566         PR target/42235
4567         * postreload.c (reload_cse_move2add): Return bool, true if anything.
4568         changed.  All callers changed.
4569         (move2add_use_add2_insn): Likewise.
4570         (move2add_use_add3_insn): Likewise.
4571         (reload_cse_regs): If reload_cse_move2add changed anything, rerun
4572         reload_combine.
4573         (RELOAD_COMBINE_MAX_USES): Bump to 16.
4574         (last_jump_ruid): New static variable.
4575         (struct reg_use): New members CONTAINING_MEM and RUID.
4576         (reg_state): New members ALL_OFFSETS_MATCH and REAL_STORE_RUID.
4577         (reload_combine_split_one_ruid, reload_combine_split_ruids,
4578         reload_combine_purge_insn_uses, reload_combine_closest_single_use
4579         reload_combine_purge_reg_uses_after_ruid,
4580         reload_combine_recognize_const_pattern): New static functions.
4581         (reload_combine_recognize_pattern): Verify that ALL_OFFSETS_MATCH
4582         is true for our reg and that we have available index regs.
4583         (reload_combine_note_use): New args RUID and CONTAINING_MEM.  All
4584         callers changed.  Use them to initialize fields in struct reg_use.
4585         (reload_combine): Initialize last_jump_ruid.  Be careful when to
4586         take PREV_INSN of the scanned insn.  Update REAL_STORE_RUID fields.
4587         Call reload_combine_recognize_const_pattern.
4588         (reload_combine_note_store): Update REAL_STORE_RUID field.
4589
4590 2010-07-16  Jason Merrill  <jason@redhat.com>
4591
4592         * Makefile.in (opts-common.o): Depend on options.h.
4593
4594 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
4595
4596         * tree.c (build_common_builtin_nodes): Use build_function_type_list
4597         instead of build_function_type.
4598         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
4599         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
4600
4601 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
4602
4603         * config/rs6000/rs6000.c (rs6000_emit_sISEL): Let rs6000_emit_int_cmove
4604         do all the work.
4605         (rs6000_emit_int_cmove): Use function pointers for insn generation.
4606         Don't force values into registers unnecessarily.
4607         (output_isel): Assert that we're not given conditions we can't handle.
4608         Delete corresponding code.
4609         * config/rs6000/rs6000.md (isel_signed_<mode>): Use
4610         scc_comparison_operator constraint.  Permit 0 for the consequent
4611         operand.  Permit any GPR for the alternative operand.
4612         (isel_unsigned_<mode>): Likewise.
4613
4614 2010-07-16  Jakub Jelinek  <jakub@redhat.com>
4615
4616         PR target/44942
4617         * config/i386/i386-protos.h (ix86_function_arg_boundary): Change second
4618         argument to const_tree.
4619         * config/i386/i386.c (function_arg_advance): If padding needs to be
4620         inserted before argument, increment cum->words by number of padding
4621         words as well.
4622         (contains_aligned_value_p): Change argument to const_tree.
4623         (ix86_function_arg_boundary): Change second argument to const_tree.
4624
4625 2010-07-16  Bernd Schmidt  <bernds@codesourcery.com>
4626
4627         PR target/42235
4628         * function.c (record_hard_reg_sets): New static function.
4629         (assign_parm_setup_reg): If an optab for extending exists and the
4630         generated code clobbbers no hard regs, emit the insn directly and
4631         create a REG_EQUIV note.
4632
4633 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
4634
4635         * c-decl.c (detect_field_duplicates): Use DECL_CHAIN insted of
4636         TREE_CHAIN.
4637         * c-typeck.c (push_init_level): Likewise.
4638         (process_init_element): Likewise.
4639
4640 2010-07-15  Anatoly Sokolov  <aesok@post.ru>
4641
4642         * tree.h (enum tree_index): Add TI_INTEGER_THREE.
4643         (integer_three_node): Add.
4644         * tree.c (build_common_tree_nodes_2): Use integer_type_node insead of
4645         NULL_TREE in build_int_cst calls. Initialize the integer_three_node.
4646         * builtins.c (expand_builtin_prefetch): Use common tree nodes instead
4647         of call build_int_cst.
4648         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ditto.
4649         * tree-ssa-loop-ivopts.c (idx_find_step): Ditto.
4650         (find_interesting_uses_address): Ditto.
4651         * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Ditto.
4652         * tree-eh.c (lower_eh_constructs_2): Ditto.
4653         * tree-vect-loop.c (get_initial_def_for_induction): Ditto.
4654         * c-typeck.c (really_start_incremental_init, push_init_level): Ditto.
4655         * expmed.c (expand_divmod): Ditto.
4656         * tree-mudflap.c (mx_register_decls): Ditto.
4657         * varasm.c (array_size_for_constructor): Ditto.
4658         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
4659         * c-parser.c (c_parser_postfix_expression): Ditto.
4660
4661 2010-07-15  Bernd Schmidt  <bernds@codesourcery.com>
4662
4663         * postreload.c (last_label_ruid, first_index_reg, last_index_reg):
4664         New static variables.
4665         (reload_combine_recognize_pattern): New static function, broken out
4666         of reload_combine.
4667         (reload_combine): Use it.  Only initialize first_index_reg and
4668         last_index_reg once.
4669
4670 2010-07-15  Richard Henderson  <rth@redhat.com>
4671
4672         * cgraphunit.c (cgraph_build_static_cdtor): Clear current_function_decl
4673         when done.
4674
4675 2010-07-15  Jan Hubicka  <jh@suse.cz>
4676
4677         * lto-symtab.c (lto_symtab_resolve_symbols): Remove hack handling
4678         comdats for broken gold.
4679         (lto_sy mtab_merge_decls_1): Set used_from_object_file correctly.
4680
4681 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
4682
4683         * tree.h (TREE_RTL_OPERAND_CHECK): Delete.
4684
4685 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
4686
4687         * tree.h (DECL_CHAIN): Define.
4688         * alias.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
4689         * c-decl.c: Likewise.
4690         * c-parser.c: Likewise.
4691         * c-typeck.c: Likewise.
4692         * cfgexpand.c: Likewise.
4693         * cgraph.c: Likewise.
4694         * cgraphunit.c: Likewise.
4695         * combine.c: Likewise.
4696         * config/alpha/alpha.c: Likewise.
4697         * config/arm/arm.c: Likewise.
4698         * config/frv/frv.c: Likewise.
4699         * config/i386/i386.c: Likewise.
4700         * config/i386/winnt-cxx.c: Likewise.
4701         * config/ia64/ia64.c: Likewise.
4702         * config/iq2000/iq2000.c: Likewise.
4703         * config/mep/mep.c: Likewise.
4704         * config/mips/mips.c: Likewise.
4705         * config/pa/som.h: Likewise.
4706         * config/rs6000/rs6000.c: Likewise.
4707         * config/s390/s390.c: Likewise.
4708         * config/sh/sh.c: Likewise.
4709         * config/sh/symbian-cxx.c: Likewise.
4710         * config/sparc/sparc.c: Likewise.
4711         * config/spu/spu.c: Likewise.
4712         * config/stormy16/stormy16.c: Likewise.
4713         * config/vxworks.c: Likewise.
4714         * config/xtensa/xtensa.c: Likewise.
4715         * coverage.c: Likewise.
4716         * dbxout.c: Likewise.
4717         * dwarf2out.c: Likewise.
4718         * emit-rtl.c: Likewise.
4719         * expr.c: Likewise.
4720         * function.c: Likewise.
4721         * gimple-low.c: Likewise.
4722         * gimple-pretty-print.c: Likewise.
4723         * gimplify.c: Likewise.
4724         * integrate.c: Likewise.
4725         * ipa-inline.c: Likewise.
4726         * ipa-prop.c: Likewise.
4727         * ipa-split.c: Likewise.
4728         * ipa-struct-reorg.c: Likewise.
4729         * ipa-type-escape.c: Likewise.
4730         * langhooks.c: Likewise.
4731         * lto-cgraph.c: Likewise.
4732         * omp-low.c: Likewise.
4733         * stor-layout.c: Likewise.
4734         * tree-cfg.c: Likewise.
4735         * tree-complex.c: Likewise.
4736         * tree-dfa.c: Likewise.
4737         * tree-dump.c: Likewise.
4738         * tree-inline.c: Likewise.
4739         * tree-mudflap.c: Likewise.
4740         * tree-nested.c: Likewise.
4741         * tree-object-size.c: Likewise.
4742         * tree-pretty-print.c: Likewise.
4743         * tree-sra.c: Likewise.
4744         * tree-ssa-live.c: Likewise.
4745         * tree-ssa-loop-niter.c: Likewise.
4746         * tree-ssa-math-opts.c: Likewise.
4747         * tree-ssa-reassoc.c: Likewise.
4748         * tree-ssa-sccvn.c: Likewise.
4749         * tree-ssa-structalias.c: Likewise.
4750         * tree-tailcall.c: Likewise.
4751         * tree-vrp.c: Likewise.
4752         * tree.c: Likewise.
4753         * var-tracking.c: Likewise.
4754         * varasm.c: Likewise.
4755
4756 2010-07-15  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4757
4758         PR target/44877
4759         * config/spu/spu.c (spu_expand_builtin_1): Allow references
4760         (as well as pointers) as argument to mask_for_load builtins.
4761
4762 2010-07-15  Richard Guenther  <rguenther@suse.de>
4763
4764         PR tree-optimization/44946
4765         * tree-ssa-structalias.c (get_constraint_for_component_ref): Deal
4766         with accessing only padding properly.
4767
4768 2010-07-15  Jan Hubicka  <jh@suse.cz>
4769
4770         * ipa.c (function_and_variable_visibility): Variables marked as used
4771         should not be localized.
4772
4773 2010-07-15  Jan Hubicka  <jh@suse.cz>
4774
4775         * cgraph.c: Include lto-streamer.h
4776         (change_decl_assembler_name): Work when assembler name hash is at place.
4777         (cgraph_make_decl_local): When localizing COMDAT symbol at WPA stage,
4778         be sure to rename it to avoid name clash.
4779         * ipa.c (cgraph_externally_visible_p, function_and_variable_visibility):
4780         Localize hidden symbols only when locally defined.
4781
4782 2010-07-15  Uros Bizjak  <ubizjak@gmail.com>
4783
4784         * config/i386/i386.h (SHIFT_COUNT_TRUNCATED): Expand comment.
4785
4786 2010-07-15  Magnus Granberg  <zorry@gentoo.org>
4787             Kevin F. Quinn  <kevquinn@gentoo.org>
4788
4789         * builtins.c (expand_builtin_init_trampoline): Warn for -Wtrampolines.
4790         * common.opt: Add -Wtrampolines.
4791         * doc/invoke.texi: Add -Wtrampolines.
4792
4793 2010-07-15  Jie Zhang  <jie@codesourcery.com>
4794
4795         * config/arm/cortex-a8.md (cortex_a8_load_store_2): Reserve
4796         cortex_a8_issue_ls.
4797
4798 2010-07-15  Dave Korn  <dave.korn.cygwin@gmail.com>
4799
4800         * config/i386/cygwin.h (LIBGCJ_SONAME): Update.
4801         * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.
4802
4803 2010-07-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4804
4805         * config/spu/spu.c (reg_names): Remove prototype.
4806         (call_used_regs): Likewise.
4807
4808 2010-07-14  Dave Korn  <dave.korn.cygwin@gmail.com>
4809
4810         * config/i386/cygming-crtend.c (__FRAME_END__): Replace attribute
4811         "unused" with attribute "used".
4812         (__JCR_END__): Likewise.
4813         * config/i386/cygming-crtbegin.c (__EH_FRAME_BEGIN__): Add missing
4814         "used" attribute.
4815         (__JCR_LIST__): Replace attribute "unused" with attribute "used".
4816
4817 2010-07-14  Richard Guenther  <rguenther@suse.de>
4818
4819         * lto-streamer-in.c (maybe_fixup_handled_component): Remove.
4820         (maybe_fixup_decls): Likewise.
4821         (input_gimple_stmt): Do not fixup anything.
4822         * lto-streamer-out.c (output_gimple_stmt): Make sure all
4823         non-automatic variable uses are wrapped inside a MEM_REF.
4824
4825 2010-07-14  Richard Henderson  <rth@redhat.com>
4826
4827         * passes.c (rest_of_decl_compilation): Do not call assemble_variable
4828         for functions.
4829         * varasm.c (assemble_variable): Remove early exit for functions;
4830         assert that we're given a variable.
4831
4832 2010-07-14  Jie Zhang  <jie@codesourcery.com>
4833
4834         * config/arm/cortex-a8.md (cortex_a8_alu): Don't use
4835         cortex_a8_default when neon_type is not none.
4836
4837 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
4838
4839         * lower-subreg.c (subreg_context): New static bitmap.
4840         (decompose_multiword_subregs): Allocate and free it.
4841         (find_decomposable_subregs): Set a bit in it for a register that
4842         occurs in a subreg that changes mode but not size.
4843         (can_decompose_p): Test it instead of non_decomposable_context.
4844
4845 2010-07-14  Richard Guenther  <rguenther@suse.de>
4846
4847         PR tree-optimization/44824
4848         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Use
4849         is_gimple_mem_ref_addr.
4850         (tree_ssa_forward_propagate_single_use_vars): Do not propagate
4851         non-decl_address_invariant_p addresses.
4852
4853 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
4854
4855         * reload.c (find_reloads): Revert code to penalize small register
4856         classes that was brought in with the IRA merge.
4857
4858 2010-07-14  Richard Guenther  <rguenther@suse.de>
4859
4860         * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle MEM_REF
4861         as base of ARRAY_REFs.
4862
4863 2010-07-14  Richard Guenther  <rguenther@suse.de>
4864
4865         PR middle-end/44930
4866         * tree-pretty-print.c (do_niy): Do not print a newline.
4867
4868 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
4869
4870         * ira-int.h (struct ira_object): New.
4871         (ira_object_t): New typedef.  Add DEF_VEC_P and DEF_VEC_ALLOC_P for it.
4872         (struct ira_allocno): Remove members min, max,
4873         conflict_allocno_array, conflict_id, conflict_allocno_array_size,
4874         conflict_allocnos_num and conflict_vec_p.  Add new member object.
4875         (OBJECT_CONFLICT_ARRAY, OBJECT_CONFLICT_VEC_P,
4876         OBJECT_NUM_CONFLICTS, OBJECT_CONFLICT_ARRAY_SIZE,
4877         OBJECT_CONFLICT_HARD_REGS, OBJECT_TOTAL_CONFLICT_HARD_REGS,
4878         OBJECT_MIN, OBJECT_MAX, OBJECT_CONFLICT_ID): Renamed from
4879         ALLOCNO_CONFLICT_ALLOCNO_ARRAY, ALLOCNO_CONFLICT_VEC_P,
4880         ALLOCNO_CONFLICT_ALLOCNOS_NUM, ALLOCNO_CONFLICT_ALLOCNO_ARRAY_SIZE,
4881         ALLOCNO_CONFLICT_HARD_REGS, ALLOCNO_TOTAL_CONFLICT_HARD_REGS)
4882         ALLOCNO_MIN, ALLOCNO_MAX, and ALLOCNO_CONFLICT_ID; now operate on
4883         an ira_object_t rather than ira_allocno_t.  All uses changed.
4884         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
4885         contains a vector of ira_object_t; all uses changed.
4886         (ira_objects_num): Declare variable.
4887         (ira_create_allocno_object): Declare function.
4888         (ira_conflict_vector_profitable_p): Adjust prototype.
4889         (ira_allocate_conflict_vec): Renamed from
4890         ira_allocate_allocno_conflict_vec; first arg now ira_object_t.
4891         (ira_allocate_object_conflicts): Renamed from
4892         ira_allocate_allocno_conflicts; first arg now ira_object_t.
4893         (struct ira_object_iterator): New.
4894         (ira_object_iter_init, ira_object_iter_cond, FOR_EACH_OBJECT): New.
4895         (ira_allocno_conflict_iterator): Renamed member allocno_conflict_vec_p
4896         to conflict_vec_p.  All uses changed.
4897         (ira_allocno_conflict_iter_init, ira_allocno_conflict_iter_cond):
4898         Changed to take into account that conflicts are now tracked for
4899         objects.
4900         * ira-conflicts.c (OBJECTS_CONFLICT_P): Renamed from CONFLICT_ALLOCNO_P.
4901         Args changed to accept ira_object_t.  All uses changed.
4902         (allocnos_conflict_p): New static function.
4903         (collected_conflict_objects): Renamed from collected_allocno_objects;
4904         now a vector of ira_object_t.  All uses changed.
4905         (build_conflict_bit_table): Changed to take into account that
4906         conflicts are now tracked for objects.
4907         (process_regs_for_copy, propagate_copies, build_allocno_conflicts)
4908         (print_allocno_conflicts, ira_build_conflicts): Likewise.
4909         * ira-color.c (assign_hard_reg, setup_allocno_available_regs_num)
4910         setup_allocno_left_conflicts_size, allocno_reload_assign,
4911         fast_allocation): Likewise.
4912         * ira-lives.c (make_hard_regno_born, make_allocno_born)
4913         process_single_reg_class_operands, process_bb_node_lives): Likewise.
4914         * ira-emit.c (modify_move_list, add_range_and_copies_from_move_list):
4915         Likewise.
4916         * ira-build.c (ira_objects_num): New variable.
4917         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
4918         contains a vector of ira_object_t; all uses changed.
4919         (ira_object_id_map_vec): Corresponding change.
4920         (object_pool): New static variable.
4921         (initiate_allocnos): Initialize it.
4922         (finish_allocnos): Free it.
4923         (ira_create_object, ira_create_allocno_object, create_allocno_objects):
4924         New functions.
4925         (ira_create_allocno): Don't set members that were removed.
4926         (ira_set_allocno_cover_class): Don't change conflict hard regs.
4927         (merge_hard_reg_conflicts): Changed to take into account that
4928         conflicts are now tracked for objects.
4929         (ira_conflict_vector_profitable_p, ira_allocate_conflict_vec,
4930         allocate_conflict_bit_vec, ira_allocate_object_conflicts,
4931         compress_conflict_vecs, remove_low_level_allocnos, ira_flattening,
4932         setup_min_max_allocno_live_range_point, allocno_range_compare_func,
4933         setup_min_max_conflict_allocno_ids, ):  Likewise.
4934         (add_to_conflicts): Renamed from add_to_allocno_conflicts, args changed
4935         to ira_object_t; all callers changed.
4936         (ira_add_conflict): Renamed from ira_add_allocno_conflict, args changed
4937         to ira_object_t, all callers changed.
4938         (clear_conflicts): Renamed from clear_allocno_conflicts, arg changed
4939         to ira_object_t, all callers changed.
4940         (conflict_check, curr_conflict_check_tick): Renamed from
4941         allocno_conflict_check and curr_allocno_conflict_check_tick; all uses
4942         changed.
4943         (compress_conflict_vec): Renamed from compress_allocno_conflict_vec,
4944         arg changed to ira_object_t, all callers changed.
4945         (create_cap_allocno): Call ira_create_allocno_object.
4946         (finish_allocno): Free the corresponding object.
4947         (sort_conflict_id_map): Renamed from sort_conflict_id_allocno_map; all
4948         callers changed.  Adjusted for dealing with objects.
4949         (ira_build): Call create_allocno_objects after ira_costs.  Adjusted for
4950         dealing with objects.
4951         * ira.c (ira_bad_reload_regno_1): Adjusted for dealing with objects.
4952
4953         * ira-int.h (struct live_range): Rename allocno member to object
4954         and change type to ira_object_t.
4955         (struct ira_object): New member live_ranges.
4956         (struct ira_allocno): Remove member live_ranges.
4957         (ALLOCNO_LIVE_RANGES): Remove.
4958         (OBJECT_LIVE_RANGES): New macro.
4959         (ira_create_live_range, ira_copy_live_range_list,
4960         ira_merge_live_range_list, ira_live_ranges_intersect_p,
4961         ira_finish_live_range, ira_finish_live_range_list): Adjust declarations.
4962         * ira-build.c (ira_create_object): Initialize live ranges here.
4963         (ira_create_allocno): Not here.
4964         (ira_create_live_range): Rename from ira_create_allocno_live_range, arg
4965         changed to ira_object_t, all callers changed.
4966         (copy_live_range): Rename from copy_allocno_live_range, all callers
4967         changed.
4968         (ira_copy_live_range_list): Rename from
4969         ira_copy_allocno_live_range_list, all callers changed.
4970         (ira_merge_live_ranges): Rename from ira_merge_allocno_live_range_list,
4971         all callers changed.
4972         (ira_live_ranges_intersect_p): Rename from
4973         ira_allocno_live_ranges_intersect_p, all callers changed.
4974         (ira_finish_live_range): Rename from ira_finish_allocno_live_range, all
4975         callers changed.
4976         (ira_finish_live_range_list): Rename from
4977         ira_finish_allocno_live_range_list, all callers changed.
4978         (change_object_in_range_list): Rename from change_allocno_in_range_list,
4979         last arg changed to ira_object_t, all callers changed.
4980         (finish_allocno): Changed to expect live ranges in the allocno's object.
4981         (move_allocno_live_ranges, copy_allocno_live_ranges,
4982         update_bad_spill_attribute, setup_min_max_allocno_live_range_point,
4983         ira_flattening, ira_build): Likewise.
4984         * ira-color.c (allocnos_have_intersected_live_ranges_p,
4985         slot_coalesced_allocno_live_ranges_intersect,
4986         setup_slot_coalesced_allocno_live_ranges, fast_allocation): Likewise.
4987         * ira-conflicts.c (build_conflict_bit_table): Likewise.
4988         * ira-emit.c (add_range_and_copies_from_move_list): Likewise.
4989         * ira-lives.c (make_allocno_born, update_allocno_pressure_excess_length,
4990         make_allocno_dead, create_start_finish_chains,
4991         remove_some_program_points_and_update_live_ranges,
4992         ira_debug_live_range_list): Likewise.
4993
4994         * ira-int.h (ira_object_conflict_iterator): Rename from
4995         ira_allocno_conflict_iterator.
4996         (ira_object_conflict_iter_init): Rename from
4997         ira_allocno_conflict_iter_init, second arg changed to
4998         * ira.c (check_allocation): Use FOR_EACH_OBJECT_CONFLICT rather than
4999         FOR_EACH_ALLOCNO_CONFLICT.
5000         * ira-color.c (assign_hard_reg, push_allocno_to_stack)
5001         setup_allocno_left_conflicts_size, coalesced_allocno_conflict_p,
5002         ira_reassign_conflict_allocnos, ira_reassign_pseudos): Likewise.
5003         * ira-conflicts.c (print_allocno_conflicts): Likewise.
5004
5005 2010-07-13  Joern Rennecke  <joern.rennecke@embecosm.com>
5006
5007         PR other/44874
5008         * tree-dump.c (dump_options): Add enumerate_locals entry.
5009         Add TDF_NOID exclusion to all entry.
5010         * tree-dump.h (dump_enumerated_decls): Declare.
5011         * tree-pretty-print.c (dump_generic_node): For TDF_NOID,
5012         Don't display type uid.
5013         (print_declaration): Don't crash on TREE_TYPE (t) == 0.
5014         * tree-pass.h (TDF_ENUMERATE_LOCALS): Define.
5015         * tree-ssa-live.c: Include gimple.h.
5016         (numbered_tree_d): New struct.
5017         (numbered_tree): New typedef.
5018         (DEF_VEC_O (numbered_tree): New.
5019         (DEF_VEC_ALLOC_O (numbered_tree, heap)): Likewise.
5020         (compare_decls_by_uid, dump_enumerated_decls_push): New functions.
5021         (dump_enumerated_decls): Likewise.
5022         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): If comparing
5023         debug info and flag_dump_final_insns, call dump_enumerated_decls.
5024         * tree-cfg.c (dump_function_to_file): Call dump_enumerated_decls.
5025         * Makefile.in (tree-ssa-live.o): Depend on $(GIMPLE_H).
5026
5027 2010-07-13  Richard Sandiford  <rdsandiford@googlemail.com>
5028
5029         * expmed.h (MAX_BITS_PER_WORD): Move to...
5030         * defaults.h (MAX_BITS_PER_WORD): ...here.
5031
5032 2010-07-13  DJ Delorie  <dj@redhat.com>
5033
5034         * config/h8300/h8300.c (h8300_init_once): Default to
5035         -fstrict_volatile_bitfields.
5036
5037         * config/sh/sh.c (sh_override_options): Default to
5038         -fstrict_volatile_bitfields.
5039
5040         * config/rx/rx.c (rx_option_override): New.
5041
5042         * config/m32c/m32c.c (m32c_override_options): Default to
5043         -fstrict_volatile_bitfields.
5044
5045 2010-07-13  Nathan Froyd  <froydnj@codesourcery.com>
5046
5047         * tree.h (build_function_call_expr): Delete.
5048         (build_call_expr_loc_array): New function.
5049         (build_call_expr_loc_vec): New function.
5050         * tree-flow.h (struct omp_region): Change type of ws_args field
5051         to a VEC.
5052         * builtins.c (build_function_call_expr): Delete.
5053         (build_call_expr_loc_array): New function.
5054         (build_call_expr_loc): Call it.  Use XALLOCAVEC.
5055         (build_call_expr): Likewise.
5056         (build_call_expr_loc_vec): New function.
5057         * cgraphunit.c (build_cdtor): Call build_call_expr instead of
5058         build_function_call_expr.
5059         * expr.c (emutls_var_address): Likewise.
5060         * varasm.c (emutls_common_1): Likewise.
5061         * omp-low.c (expand_omp_atomic_mutex): Likewise.
5062         (expand_omp_taskreg): Adjust for new type of region->ws_args.
5063         (get_ws_args_for): Return a VEC instead of a tree.
5064         (expand_parallel_call): Call build_call_expr_loc_vec instead of
5065         build_function_call_expr.
5066         * stor-layout.c (self_referential_size): Likewise.
5067
5068 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
5069
5070         PR testsuite/44701
5071         * recog.c (constrain_operands): Allow side-effects in memory
5072         operands if either < or > constraint is used, rather than if
5073         both < and > is used.
5074
5075 2010-07-13  Richard Guenther  <rguenther@suse.de>
5076
5077         PR middle-end/44911
5078         * tree-pretty-print.c (dump_generic_node): Use TDF_SLIM for
5079         MEM_REF pointer type dumping.  Avoid recursing for TYPE_DECLs
5080         without name.
5081
5082 2010-07-13  Kaz Kojima  <kkojima@gcc.gnu.org>
5083
5084         PR target/44761
5085         * mode-switching.c (optimize_mode_switching): Add ATTRIBUTE_UNUSED
5086         to variable emited.
5087         * config/sh/sh.c (sh_expand_epilogue): Remove unused variable.
5088         * config/sh/sh.md (symGOT_load): Likewise.
5089         (symDTPOFF2reg): Likewise.
5090         (symTPOFF2reg): Likewise.
5091
5092 2010-07-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5093
5094         * expmed.c (MAX_BITS_PER_WORD): Moved to expmed.h.
5095         * expmed.h (MAX_BITS_PER_WORD): Moved from expmed.c.
5096
5097 2010-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5098
5099         * config/i386/sol2-unwind.h (x86_64_fallback_frame_state): Correct
5100         explanation.
5101         Find ucontext_t * on Solaris 11.
5102         (x86_fallback_frame_state): Handle Solaris 9 multi-threaded pattern.
5103         Handle new Solaris 11 __sighndlr patterns.
5104
5105 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
5106
5107         PR debug/44901
5108         * vec.h (VEC_block_remove): Fix comment.
5109         * tree-ssa-live.c (remove_unused_locals): Don't use
5110         VEC_unordered_remove on local_decls, instead replace a single
5111         vector element in each iteration if at least one element had
5112         to be removed and VEC_truncate at the end.
5113         * omp-low.c (expand_omp_taskreg): Likewise.
5114
5115 2010-07-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5116
5117         * c-decl.c (finish_function): Fix typo in comment.
5118
5119 2010-07-12  H.J. Lu  <hongjiu.lu@intel.com>
5120
5121         PR bootstrap/44921
5122         * postreload.c (move2add_use_add3_insn): Silence gcc warning
5123         on min_regno.
5124
5125 2010-07-12  Jakub Jelinek  <jakub@redhat.com>
5126
5127         * tree-vrp.c (simplify_bit_ops_using_ranges): New function.
5128         (simplify_stmt_using_ranges): Use it.
5129
5130 2010-07-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5131
5132         * config/spu/spu.h (struct spu_builtin_description): Remove FNDECL
5133         member.  Do not mark as GTY(()).
5134         * config/spu/spu.c (spu_builtins): Remove FNDECL initializer elements.
5135         (spu_builtin_decls): New static variable.
5136         (spu_builtin_decl): Use it instead of spu_builtins[].fndecl.
5137         (spu_init_builtins): Likewise.
5138         (spu_builtin_mul_widen_even): Likewise.
5139         (spu_builtin_mul_widen_odd): Likewise.
5140         (spu_builtin_mask_for_load): Likewise.
5141         (spu_builtin_vec_perm): Likewise.
5142         * config/spu/spu-c.c: Include "target.h".
5143         (spu_resolve_overloaded_builtin): Call targetm.builtin_decl instead
5144         of using spu_builtins[].fndecl.
5145
5146 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
5147
5148         * config/mips/mips.c (mips_override_options): Make -mflip-mips16
5149         imply -minterlink-mips16.
5150
5151 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
5152
5153         * config/mips/mips.h (mips16_globals): Declare.
5154         (SWITCHABLE_TARGET): Define.
5155         * config/mips/mips.c: Include target-globals.h.
5156         (mips16_globals): New variable.
5157         (mips_set_mips16_mode): Use save_target_globals and
5158         restore_target_globals instead of target_reinit.
5159
5160 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
5161
5162         * reginfo.c (init_reg_sets): Don't zero globals here.  Update comment
5163         to say that the function can be called more than once.
5164         * target-globals.c (save_target_globals): Call init_reg_sets.
5165
5166 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
5167
5168         * Makefile.in (bb-reorder.o, target-globals.o): Depend on bb-reorder.h
5169         * bb-reorder.h: New file.
5170         * bb-reorder.c (default_target_bb_reorder): New variable.
5171         (this_target_bb_reorder): New conditional variable.
5172         (uncond_jump_length): Redefine as a macro.
5173         * target-globals.h (this_target_bb_reorder): Declare.
5174         (target_globals): Add a bb_reorder field.
5175         (restore_target_globals): Copy the bb_reorder field to
5176         this_target_bb-reorder.
5177         * target-globals.c: Include bb-reorder.h.
5178         (default_target_globals): Initialize the bb_reorder field.
5179         (save_target_globals): Likewise.
5180
5181 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
5182
5183         * Makefile.in (gcse.o, target-globals.o): Depend on gcse.h..
5184         * gcse.h: New file.
5185         * gcse.c: Include gcse.h.
5186         (default_target_gcse): New variable.
5187         (this_target_gcse): New conditional variable.
5188         (can_copy): Redefine as a macro.
5189         (can_copy_init_p): New macro.
5190         (can_copy_p): Remove can_copy_init_p.
5191         * target-globals.h (this_target_gcse): Declare.
5192         (target_globals): Add a gcse field.
5193         (restore_target_globals): Copy the gcse field to this_target_gcse.
5194         * target-globals.c: Include gcse.h.
5195         (default_target_globals): Initialize the gcse field.
5196         (save_target_globals): Likewise.
5197
5198 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
5199
5200         * ira-int.h (target_ira_int): Add x_ira_prohibited_mode_move_regs
5201         and x_ira_prohibited_mode_move_regs_initialized_p.
5202         (ira_prohibited_mode_move_regs): Redefine as a macro.
5203         * ira.c (ira_prohibited_mode_move_regs): Delete.
5204         (ira_prohibited_mode_move_regs_initialized_p): Redefine as a macro.
5205
5206 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
5207
5208         * reload.h (target_reload): Add x_cached_reg_save_code and
5209         x_cached_reg_restore_code.
5210         * caller-save.c (cached_reg_save_code, cached_reg_restore_code):
5211         Redefine as macros.
5212
5213 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
5214
5215         * Makefile.in (target-globals.o): Depend on builtins.h.
5216         * builtins.h: New file.
5217         * builtins.c: Include builtins.h.
5218         (default_target_builtins): New variable.
5219         (this_target_builtins): New conditional variable.
5220         (apply_args_mode, apply_result_mode): Redefine as macros.
5221         * target-globals.h (this_target_builtins): Declare.
5222         (target_globals): Add a builtins field.
5223         (restore_target_globals): Copy the builtins field to
5224         this_target_builtins.
5225         * target-globals.c: Include builtins.h.
5226         (default_target_globals): Initialize the builtins field.
5227         (save_target_globals): Likewise.
5228
5229 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
5230
5231         * expmed.h (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST)
5232         (algorithm, alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved
5233         from expmed.c.
5234         (target_expmed): Add x_alg_hash and x_alg_hash_used_p.
5235         (alg_hash, alg_hash_used_p): New macros.
5236         * expmed.c (init_expmed): Clear alg_hash if reinitializing.
5237         (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST, algorithm)
5238         (alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved to expmed.h.
5239
5240 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
5241
5242         * ira-int.h (target_ira_int): Add x_max_struct_costs_size, x_init_cost,
5243         x_temp_costs, x_op_costs, x_this_op_costs and x_cost_classes.
5244         * ira-costs.c (max_struct_costs_size, init_cost, temp_costs, op_costs)
5245         (this_op_costs, costs_classes): Redefine as macros.
5246         (record_reg_classes): Don't take op_costs as a parameter.
5247         (record_operand_costs): Likewise.  Update calls to record_reg_classes.
5248         (scan_one_insn): Update call to record_operand_costs.
5249
5250 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
5251
5252         * Makefile.in (target-globals.o): Depend on $(IRA_INT_H).
5253         * ira-int.h (ira_max_nregs, ira_important_class_nums): Delete.
5254         (target_ira_int): New structure.
5255         (default_target_ira_int): Declare.
5256         (this_target_ira_int): Declare as a variable or define as a macro.
5257         (ira_reg_mode_hard_regset, ira_register_move_cost)
5258         (ira_may_move_in_cost, ira_may_move_out_cost, ira_class_subset_p)
5259         (ira_non_ordered_class_hard_regs, ira_class_hard_reg_index)
5260         (prohibited_class_mode_regs, ira_important_classes_num)
5261         (ira_important_classes, ira_reg_class_intersect)
5262         (ira_reg_classes_intersect_p, ira_reg_class_super_classes)
5263         (ira_reg_class_union): Redefine as macros.
5264         * ira.h (target_ira): New structure.
5265         (default_target_ira): Declare.
5266         (this_target_ira): Declare as a variable or define as a macro.
5267         (ira_available_class_regs, ira_hard_regno_cover_class)
5268         (ira_reg_class_cover_size, ira_reg_class_cover, ira_class_translate)
5269         (ira_reg_class_nregs, ira_memory_move_cost, ira_class_hard_regs)
5270         (ira_class_hard_regs_num): Redefine as macros.
5271         * ira.c (default_target_ira, default_target_ira_int): New variables.
5272         (this_target_ira, this_target_ira_int): New conditional variables.
5273         (ira_reg_mode_hard_regset, ira_memory_move_cost)
5274         (ira_register_move_cost, ira_may_move_in_cost, ira_may_move_out_cost)
5275         (ira_class_subset_p): Delete.
5276         (no_unit_alloc_regs): Redefine as a macro.
5277         (ira_class_hard_regs, ira_non_ordered_class_hard_regs)
5278         (ira_class_hard_regs_num, ira_class_hard_reg_index)
5279         (ira_available_class_regs): Delete.
5280         (alloc_reg_class_subclasses): Redefine as a macro.
5281         (ira_reg_class_cover_size, ira_reg_class_cover)
5282         (ira_important_classes_num, ira_important_classes)
5283         (ira_important_class_nums, ira_class_translate): Delete.
5284         (cover_class_order): Document the variable's lifetime.
5285         (reorder_important_classes): Don't set ira_important_class_nums.
5286         (ira_reg_class_intersect, ira_reg_classes_intersect_p)
5287         (ira_reg_class_super_classes, ira_reg_class_union)
5288         (ira_hard_regno_cover_class, ira_reg_class_nregs, ira_max_nregs):
5289         Delete.
5290         (setup_reg_class_nregs): Don't set ira_max_regs.
5291         (prohibited_class_mode_regs): Delete.
5292         * target-globals.h (this_target_ira, this_target_ira_int): Declare.
5293         (target_globals): Add ira and ira_int fields.
5294         (restore_target_globals): Copy the ira field to this_target_ira
5295         and the ira_int field to this_target_ira_int.
5296         * target-globals.c: Include ira-int.h.
5297         (default_target_globals): Initialize the ira and ira_int fields.
5298         (save_target_globals): Likewise.
5299
5300 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
5301
5302         * Makefile.in (target-globals.o): Depend on $(CFGLOOP_H).
5303         * cfgloop.h (target_cfgloop): New structure.
5304         (default_target_cfgloop): Declare.
5305         (this_target_cfgloop): Declare as a variable or define as a macro.
5306         (target_avail_regs, target_clobbered_regs, target_res_regs)
5307         (target_reg_cost, target_spill_cost): Redefine as macros.
5308         * cfgloopanal.c (default_target_cfgloop): New variable.
5309         (this_target_cfgloop): New conditional variable.
5310         (target_avail_regs, target_clobbered_regs, target_res_regs)
5311         (target_reg_cost, target_spill_cost): Delete.
5312         * target-globals.h (this_target_cfgloop): Declare.
5313         (target_globals): Add a cfgloop field.
5314         (restore_target_globals): Copy the cfgloop field to
5315         this_target_cfgloop.
5316         * target-globals.c: Include cfgloop.h.
5317         (default_target_globals): Initialize the cfgloop field.
5318         (save_target_globals): Likewise.
5319
5320 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
5321
5322         * regs.h (target_regs): Add x_direct_load, x_direct_store and
5323         x_float_extend_from_mem.
5324         (direct_load, direct_store, float_extend_from_mem): New macros.
5325         * expr.c (direct_load, direct_store, float_extend_from_mem): Delete.
5326
5327 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
5328
5329         * Makefile.in (LIBFUNCS_H): Add $(HASHTAB_H).
5330         (target-globals.o): Depend on $(LIBFUNCS_H).
5331         * libfuncs.h: Include hashtab.h.
5332         (libfunc_entry): Moved from optabs.c.
5333         (target_libfuncs): New structure.
5334         (default_target_libfuncs): Declare.
5335         (this_target_libfuncs): Declare as a variable or define as a macro.
5336         (libfunc_table): Redefine as a macro.
5337         * optabs.c (default_target_libfuncs): New variable.
5338         (this_target_libfuncs): New conditional variable.
5339         (libfunc_table): Delete.
5340         (libfunc_entry): Moved to optabs.h.
5341         (libfunc_hash): Redefine as a macro.
5342         (hash_libfunc, eq_libfunc): Fix comments.
5343         (init_optabs): Use libfunc_hash to detect cases where the function
5344         has already been called.  Clear the hash table instead of
5345         recreating it.
5346         * target-globals.h (this_target_libfuncs): Declare.
5347         (target_globals): Add a libfuncs field.
5348         (restore_target_globals): Copy the libfuncs field to
5349         this_target_libfuncs.
5350         * target-globals.c: Include libfuncs.h.
5351         (default_target_globals): Initialize the libfuncs field.
5352         (save_target_globals): Likewise.
5353
5354 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
5355
5356         * Makefile.in (LIBFUNCS_H): New variable.  Use instead of libfuncs.h
5357         in all dependency lists.
5358
5359 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
5360
5361         * Makefile.in (target-globals.o): Depend on $(EXPR_H) and $(OPTABS_H).
5362         * optabs.h (target_optabs): New structure.
5363         (default_target_optabs): Declare.
5364         (this_target_optabs): Declare as a variable or define as a macro.
5365         (optab_table, convert_optab_table, direct_optab_table): Redefine
5366         as macros.
5367         * optabs.c (default_target_optabs): New variable.
5368         (this_target_optabs): New conditional variable.
5369         (optab_table, convert_optab_table, direct_optab_table): Delete.
5370         * target-globals.h (this_target_optabs): Declare.
5371         (target_globals): Add a optabs field.
5372         (restore_target_globals): Copy the optabs field to
5373         this_target_optabs.
5374         * target-globals.c: Include expr.h and optabs.h.
5375         (default_target_globals): Initialize the optabs field.
5376         (save_target_globals): Likewise.
5377
5378 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
5379
5380         * flags.h (target_flagstate): Add x_flag_excess_precision.
5381         (flag_excess_precision): Redefine as a macro.
5382         * toplev.c (flag_excess_precision): Delete.
5383
5384 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
5385
5386         * defaults.h (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Define if not defined.
5387         * libgcc2.c (MIN_UNITS_PER_WORD): Delete.
5388         * hard-reg-set.h (target_hard_regs): Add x_no_caller_save_reg_set.
5389         (no_caller_save_reg_set): Redefine as a macro.
5390         * reload.h (target_reload): Add x_caller_save_initialized_p and
5391         x_regno_save_mode.
5392         (caller_save_initialized_p): Redefine as a macro.
5393         * caller-save.c (caller_save_initialized_p, no_caller_save_reg_set)
5394         (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Delete.
5395         (regno_save_mode): Redefine as a macro.
5396
5397 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
5398
5399         * Makefile.in (expmed.o, target-globals.o): Depend on expmed.h.
5400         * expmed.h: New file.
5401         * expmed.c (default_target_costs): New variable.
5402         (this_target_costs): New conditional variable.
5403         (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost, neg_cost)
5404         (shift_cost, shiftadd_cost, shiftsub0_cost, shiftsub1_cost, mul_cost)
5405         (sdiv_cost, udiv_cost, mul_widen_cost, mul_highpart_cost): Delete.
5406         * target-globals.h (this_target_expmed): Declare.
5407         (target_globals): Add a expmed field.
5408         (restore_target_globals): Copy the expmed field to
5409         this_target_expmed.
5410         * target-globals.c: Include expmed.h.
5411         (default_target_globals): Initialize the expmed field.
5412         (save_target_globals): Likewise.
5413
5414 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
5415
5416         * Makefile.in (target-globals.o): Depend on reload.h.
5417         * reload.h (target_reload): New structure.
5418         (default_target_reload): Declare.
5419         (this_target_reload): Declare as a variable or define as a macro.
5420         (indirect_symref_ok, double_reg_address_ok): Redefine as macros.
5421         * reload1.c (default_target_reload): New variable
5422         (this_target_reload): New conditional variable.
5423         (indirect_symref_ok, double_reg_address_ok): Delete.
5424         (spill_indirect_levels): Redefine as a macro.
5425         * target-globals.h (this_target_reload): Declare.
5426         (target_globals): Add a reload field.
5427         (restore_target_globals): Copy the reload field to
5428         this_target_reload.
5429         * target-globals.c: Include hard-reg-set.h.
5430         (default_target_globals): Initialize the reload field.
5431         (save_target_globals): Likewise.
5432
5433 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
5434
5435         * rtl.h (target_rtl): Add x_static_reg_base_value.
5436         * alias.c (static_reg_base_value): Redefine as a macro.
5437
5438 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
5439
5440         * Makefile.in (reginfo.o): Don't depend on $(GGC_H) or gt-reginfo.h.
5441         (GTFILES): Remove reginfo.c.
5442         * rtl.h (target_rtl): Add x_top_of_stack.
5443         (top_of_stack): New macro.
5444         * reginfo.c: Don't include ggc.h or gt-reginfo.h.
5445         (top_of_stack): Delete.
5446
5447 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
5448
5449         * regs.h (target_regs): Add x_hard_regs_of_mode,
5450         x_contains_reg_of_mode, x_move_cost, x_may_move_in_cost,
5451         x_may_move_out_cost and x_last_mode_for_init_move_cost.
5452         (have_regs_of_mode, contains_reg_of_mode, move_cost)
5453         (may_move_in_cost, may_move_out_cost): Redefine as macros.
5454         * reginfo.c (have_regs_of_mode, contains_reg_of_mode, move_cost)
5455         (may_move_in_cost, may_move_out_cost): Delete.
5456         (last_mode_for_init_move_cost): Redefine as a macro.
5457
5458 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
5459
5460         * hard-reg-set.h (target_hard_regs): New structure.
5461         (default_target_hard_regs): Declare.
5462         (this_target_hard_regs): Declare as a variable or define as a macro.
5463         (fixed_regs, fixed_reg_set, call_used_regs, call_really_used_regs)
5464         (call_used_reg_set, call_fixed_reg_set, regs_invalidated_by_call)
5465         (reg_alloc_order, inv_reg_alloc_order, reg_class_contents)
5466         (reg_class_size, reg_class_subclasses, reg_class_subunion)
5467         (reg_class_superunion, reg_names): Redefine as macros.
5468         * reginfo.c (fixed_regs, fixed_reg_set, call_used_regs)
5469         (call_used_reg_set, call_really_used_regs, call_fixed_reg_set)
5470         (regs_invalidated_by_call, reg_alloc_order, inv_reg_alloc_order)
5471         (reg_class_contents, reg_class_size, reg_class_subclasses)
5472         (reg_class_subunion, reg_class_superunion, reg_names): Delete.
5473         (default_target_hard_regs): New variable
5474         (this_target_hard_regs, initial_call_really_used_regs)
5475         (initial_reg_alloc_order): New conditional variables.
5476         (initial_reg_names): New variable.
5477         (init_reg_sets): Assert that initial_call_really_used_regs,
5478         initial_reg_alloc_order and initial_reg_names
5479         are all the same size as their variable counterparts.  Use them to
5480         initialize those counterparts.
5481         * target-globals.h (this_target_hard_regs): Declare.
5482         (target_globals): Add a hard_regs field.
5483         (restore_target_globals): Copy the hard_regs field to
5484         this_target_hard_regs.
5485         * target-globals.c: Include hard-reg-set.h.
5486         (default_target_globals): Initialize the hard_regs field.
5487         (save_target_globals): Likewise.
5488
5489 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
5490
5491         * Makefile.in (target-globals.o): Depend on $(RTL_H).
5492         * rtl.h (target_rtl): New structure.
5493         (default_target_rtl): Declare.
5494         (this_target_rtl): Declare as a variable or define as a macro.
5495         (global_rtl, pic_offset_table_rtx, return_address_pointer_rtx):
5496         Redefine as macros.
5497         * emit-rtl.c (default_target_rtl): New variable.
5498         (this_target_rtl): New conditional variable.
5499         (global_rtl, static_regno_reg_rtx, pic_offset_table_rtx)
5500         (return_address_pointer_rtx): Delete.
5501         (initial_regno_reg_rtx): New macro.
5502         (init_emit): Use initial_regno_reg_rtx instead of static_regno_reg_rtx.
5503         (init_emit_regs): Likewise.
5504         * target-globals.h (this_target_rtl): Declare.
5505         (target_globals): Add a rtl field.
5506         (restore_target_globals): Copy the rtl field to this_target_rtl.
5507         * target-globals.c: Include rtl.h.
5508         (default_target_globals): Initialize the rtl field.
5509         (save_target_globals): Likewise.
5510
5511 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
5512
5513         * Makefile.in (target-globals.o): Depend on $(REGS_H).
5514         * regs.h (target_reg_modes): New structure.
5515         (default_target_reg_modes): Declare.
5516         (this_target_reg_modes): Declare as a variable or define as a macro.
5517         (hard_regno_nregs, reg_raw_mode): Redefine as macros.
5518         * reginfo.c (default_target_reg_modes): New variable.
5519         (this_target_reg_modes): New conditional variable.
5520         (hard_regno_nregs, reg_raw_mode): Delete.
5521         * target-globals.h (this_target_regs): Declare.
5522         (target_globals): Add a regs field.
5523         (restore_target_globals): Copy the regs field to this_target_regs.
5524         * target-globals.c: Include regs.h.
5525         (default_target_globals): Initialize the regs field.
5526         (save_target_globals): Likewise.
5527
5528 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
5529
5530         * doc/tm.texi.in (SWITCHABLE_TARGET): Document.
5531         * doc/tm.texi: Regenerate.
5532         * Makefile.in (OBJS-common): Add target-globals.o.
5533         (gtype-desc.o): Depend on $(IPA_PROP_H), $(LTO_STREAMER_H)
5534         and target-globals.h.
5535         (target-globals.o): New rule.
5536         (GTFILES): Include $(srcdir)/target-globals.h.
5537         * defaults.h (SWITCHABLE_TARGET): Define.
5538         * gengtype.c (open_base_files): Add target-globals.h to the
5539         list of includes.
5540         * target-globals.h: New file.
5541         * target-globals.c: Likewise.
5542
5543         * Makefile.in (target-globals.o): Depend on $(FLAGS_H).
5544         * flags.h (target_flag_state): New structure.
5545         (default_target_flag_state): Declare.
5546         (this_target_flag_state): Declare as a variable or define as a macro.
5547         (align_loops_log): Redefine as a macro.
5548         (align_loops_max_skip, align_jumps_log): Likewise.
5549         (align_jumps_max_skip, align_labels_log): Likewise.
5550         (align_labels_max_skip, align_functions_log): Likewise.
5551         * toplev.c (default_target_flag_state): New variable.
5552         (this_target_flag_state): New conditional variable.
5553         (align_loops_log): Delete.
5554         (align_loops_max_skip, align_jumps_log): Likewise.
5555         (align_jumps_max_skip, align_labels_log): Likewise.
5556         (align_labels_max_skip, align_functions_log): Likewise.
5557         * target-globals.h (this_target_flag_state): Declare.
5558         (target_globals): Add a flag_state field.
5559         (restore_target_globals): Copy the flag_state field to
5560         this_target_flag_state.
5561         * target-globals.c: Include flags.h.
5562         (default_target_globals): Initialize the flag_state field.
5563         (save_target_globals): Likewise.
5564
5565 2010-07-12  Jie Zhang  <jie@codesourcery.com>
5566
5567         * postreload.c (reg_symbol_ref[]): New.
5568         (move2add_use_add2_insn): New.
5569         (move2add_use_add3_insn): New.
5570         (reload_cse_move2add): Handle SYMBOL + OFFSET case.
5571         (move2add_note_store): Likewise.
5572
5573 2010-07-12  Joern Rennecke  <joern.rennecke@embecosm.com>
5574
5575         PR rtl-optimization/44752
5576         * genautomata.c (main): Don't emit an empty file even if there
5577         is no automaton.
5578
5579 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5580
5581         * config/i386/i386.c (ix86_sol10_return_in_memory): Rename to
5582         ix86_solaris_return_in_memory.
5583         * config/i386-protos.h: Reflect this.
5584         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
5585         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
5586         Move ...
5587         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): ... here.
5588
5589 2010-07-12  Jie Zhang  <jie@codesourcery.com>
5590
5591         * config/arm/arm.c (arm_get_frame_offsets): Don't use r3 to
5592         align the stack when it's going to be saved.
5593
5594 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5595
5596         PR pch/14940
5597         * config/host-solaris.c (mmap_fixed): New function.
5598         (sol_gt_pch_get_address): Use it.
5599         (sol_gt_pch_use_address): Likewise.
5600
5601 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5602
5603         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
5604         pentiumpro on Solaris 8 and 9/x86.
5605         * doc/install.texi (Specific, i?86-*-solaris2.[89]): Recommend GNU as.
5606         Document SSE/SSE2 support.
5607         * doc/sourcebuild.texi (Effective-Target Keywords): Document sse.
5608
5609 2010-07-12  Andi Kleen  <ak@linux.intel.com>
5610
5611         * lto-symtab.c (lto_symtab_merge_decls_1): Use fatal_error
5612         instead of gcc_assert to print better error message for multiple
5613         prevailing defs.
5614
5615 2010-07-12  Uros Bizjak  <ubizjak@gmail.com>
5616
5617         * config/i386/i386.c (ix86_asm_output_function_label): Change format
5618         string placeholder from 0x%x to %#x.
5619         (ix86_code_end): Use putc to output '\n'.
5620         (ix86_print_operand) <case ';'>: Use putc to output ';'.
5621
5622 2010-07-11  Kai Tietz  <kai.tietz@onevision.com>
5623
5624         * config/i386/winnt.c (i386_pe_file_end): Quote symbol name
5625         in directive -export.
5626
5627 2010-07-10  Anatoly Sokolov  <aesok@post.ru>
5628
5629         * reginfo.h (reg_classes_intersect_p): Change arguments type to
5630         reg_class_t.
5631         * rtl.h (reg_classes_intersect_p): Adjust prototype.
5632
5633         * config/rs6000/rs6000.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
5634         Remove macros.
5635         * config/rs6000/rs6000-protos.h (rs6000_register_move_cost,
5636         rs6000_memory_move_cost): Remove
5637         * config/rs6000/rs6000.c (TARGET_REGISTER_MOVE_COST,
5638         TARGET_MEMORY_MOVE_COST): Define.
5639         (rs6000_register_move_cost): Make static. Change arguments type from
5640         enum reg_class to reg_class_t. Adjust rs6000_memory_move_cost calls.
5641         (rs6000_memory_move_cost): Make static. Change arguments type from
5642         'enum reg_class' to reg_class_t.
5643
5644 2010-07-10  Sandra Loosemore  <sandra@codesourcery.com>
5645
5646         PR middle-end/42505
5647         * tree-inline.c (estimate_num_insns): Refactor builtin complexity
5648         lookup code into....
5649         * builtins.c (is_simple_builtin, is_inexpensive_builtin): ...these
5650         new functions.
5651         * tree.h (is_simple_builtin, is_inexpensive_builtin): Declare.
5652         * cfgloopanal.c (target_clobbered_regs): Define.
5653         (init_set_costs): Initialize target_clobbered_regs.
5654         (estimate_reg_pressure_cost): Add call_p argument.  When true,
5655         adjust the number of available registers to exclude the
5656         call-clobbered registers.
5657         * cfgloop.h (target_clobbered_regs): Declare.
5658         (estimate_reg_pressure_cost): Adjust declaration.
5659         * tree-ssa-loop-ivopts.c (struct ivopts_data): Add body_includes_call.
5660         (ivopts_global_cost_for_size): Pass it to estimate_reg_pressure_cost.
5661         (determine_set_costs): Dump target_clobbered_regs.
5662         (loop_body_includes_call): New function.
5663         (tree_ssa_iv_optimize_loop): Use it to initialize new field.
5664         * loop-invariant.c (gain_for_invariant): Adjust arguments to pass
5665         call_p flag through.
5666         (best_gain_for_invariant): Likewise.
5667         (find_invariants_to_move): Likewise.
5668         (move_single_loop_invariants): Likewise, using already-computed
5669         has_call field.
5670
5671 2010-07-10  Richard Guenther  <rguenther@suse.de>
5672             Joern Rennecke  <joern.rennecke@embecosm.com>
5673
5674         PR debug/44832
5675         * tree-ssa-live.c (mark_all_vars_used_1): Set TREE_USED for LABEL_DECL.
5676         (remove_unused_scope_block_p): Don't drop TREE_USED LABEL_DECLs
5677         unless they have DECL_IGNORED_P set.
5678
5679 2010-07-10  Richard Guenther  <rguenther@suse.de>
5680
5681         PR lto/44889
5682         * gimple.c (gimple_fixup_complete_and_incomplete_subtype_p): New
5683         helper function.
5684         (gimple_types_compatible_p): Similar to pointed-to
5685         types allow and merge a mix of complete and incomplete aggregate.
5686         Use gimple_fixup_complete_and_incomplete_subtype_p for that.
5687         (iterative_hash_gimple_type): Adjust for that.
5688
5689 2010-07-10  Richard Sandiford  <r.sandiford@uk.ibm.com>
5690
5691         * tree.h (DECL_REPLACEABLE_P): Strengthen check for weak symbols.
5692
5693 2010-07-10  Iain Sandoe  <iains@gcc.gnu.org>
5694
5695         PR objc/44140
5696         * config/darwin.c (output_objc_section_asm_op): Save and restore
5697         section when outputting ObjC section list.
5698
5699 2010-07-09  Jan Hubicka  <jh@suse.cz>
5700
5701         * lto-streamer-out.c (produce_symtab): Do not write alias
5702         cgraph/varpool nodes.
5703
5704 2010-07-09  Jan Hubicka  <jh@suse.cz>
5705
5706         * tree-inline.c (declare_return_variable): Fix ICE while
5707         inlining DECL_BY_VALUE function not in SSA form
5708
5709 2010-07-09  Changpeng Fang  <changpeng.fang@amd.com>
5710
5711         PR tree-optimization/44576
5712         * tree-ssa-loop-prefetch.c (trip_count_to_ahead_ratio_too_small_p):
5713         New.  Pull out from is_loop_prefetching_profitable to implement
5714         the trip count to ahead ratio heuristic.
5715         (mem_ref_count_reasonable_p): New.  Pull out from
5716         is_loop_prefetching_profitable to implement the instruction to
5717         memory reference ratio heuristic.  Also consider not reasonable if
5718         the memory reference count is above a threshold (to avoid
5719         explosive compilation time.
5720         (insn_to_prefetch_ratio_too_small_p): New.  Pull out from
5721         is_loop_prefetching_profitable to implement the instruction to
5722         prefetch ratio heuristic.
5723         (is_loop_prefetching_profitable): Removed.
5724         (loop_prefetch_arrays): Distribute the cost analysis across the
5725         function to allow early exit of the prefetch analysis.
5726         is_loop_prefetching_profitable is splitted into three functions,
5727         with each one called as early as possible.
5728         (PREFETCH_MAX_MEM_REFS_PER_LOOP): New.  Threshold above which the
5729         number of memory references in a loop is considered too many.
5730
5731 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
5732
5733         * reload.c (find_reloads): Don't clear badop if we have a winreg
5734         alternative, but not win, and the class only has fixed regs.
5735         * hard-reg-set.h (class_only_fixed_regs): Declare.
5736         * reginfo.c (class_only_fixed_regs): New array.
5737         (init_reg_sets_1): Initialize it.
5738         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn): Don't
5739         discourage alternatives using the stack pointer.
5740
5741         * config/arm/arm.md (addsi3_cbranch): Switch alternatives 0 and 1.
5742
5743         * config/arm/arm.md (Thumb-1 ldrsb peephole): New.
5744
5745         * config/arm/arm.md (cbranchqi4): Fix array size.
5746         (addsi3_cbranch): Also andle alternative 2 like alternative 3 when
5747         calculating length.
5748
5749 2010-07-09  Richard Guenther  <rguenther@suse.de>
5750
5751         * gimple.c (struct type_fixup_s): New struct and VEC type.
5752         (gimple_register_type_fixups): New static global.
5753         (gimple_queue_type_fixup): New function.
5754         (gimple_types_compatible_p): Queue type fixups instead of
5755         applying them here.
5756         (gimple_register_type): Apply queued fixups for the
5757         canonical type.  Empty the type fixup queue.
5758
5759 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
5760
5761         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Fix test.
5762         * configure: Regenerate.
5763         * config.in: Ditto.
5764
5765 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
5766             Denys Vlasenko  <dvlasenk@redhat.com>
5767             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
5768
5769         PR tree-optimization/28632
5770         * tree-vrp.c (zero_nonzero_bits_from_vr): New function.
5771         (extract_range_from_binary_expr): Further optimize
5772         BIT_AND_EXPR and BIT_IOR_EXPR.
5773
5774 2010-07-09  Sebastian Pop  <sebastian.pop@amd.com>
5775
5776         * tree-if-conv.c (fold_or_predicates): New.
5777         (add_to_predicate_list): Call it.
5778
5779 2010-07-09  Richard Guenther  <rguenther@suse.de>
5780
5781         PR middle-end/44890
5782         * tree-ssa-address.c (create_mem_ref_raw): Only build a MEM_REF
5783         if base is a pointer.
5784         * tree-cfg.c (verify_expr): Update MEM_REF checking.
5785
5786 2010-07-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
5787
5788         PR target/44877
5789         * config/rs6000/rs6000.c (rs6000_expand_builtin): Use
5790         POINTER_TYPE_P instead of checking only for POINTER_TYPE for the
5791         builtin mask for load/store builtins.
5792
5793 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
5794
5795         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Also check
5796         for "lock addl".
5797         * configure: Regenerate.
5798         * config/i386/i386.c (ix86_print_operand) <case ';'>:
5799         Remove TARGET_MACHO.
5800
5801 2010-07-09  Peter Bergner  <bergner@vnet.ibm.com>
5802
5803         * config/rs6000/rs6000.c (rs6000_override_options): Fix setting of
5804         default ISA flags.
5805         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mvsx.
5806
5807 2010-07-09  Tom de Vries  <tjvries@xs4all.nl>
5808
5809         * tree.c (type_hash_if_marked_p): Removed non-ggc_marked_p clause.
5810
5811 2010-07-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
5812
5813         * config/picochip/picochip.md (commsTestPort): Emit more
5814         efficient sequence for tstport instruction.
5815
5816 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
5817
5818         * config/i386/i386.c (ix86_veclib_handler): Make static.
5819
5820 2010-07-09  Richard Guenther  <rguenther@suse.de>
5821
5822         PR tree-optimization/44852
5823         * tree-ssa-alias.c: Include toplev.h for exact_log2.
5824         (indirect_ref_may_alias_decl_p): Properly handle negative offsets
5825         in MEM_REF.
5826         (indirect_refs_may_alias_p): Likewise.
5827         * Makefile.in (tree-ssa-alias.o): Add $(TOPLEV_H).
5828
5829 2010-07-09  Richard Guenther  <rguenther@suse.de>
5830
5831         PR tree-optimization/44882
5832         * tree-vect-stmts.c (vectorizable_store): Do not assert alias
5833         sets do conflict.
5834         (vectorizable_load): Likewise.
5835
5836 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
5837
5838         PR target/40657
5839         * config/arm/arm.c (thumb1_extra_regs_pushed): New arg FOR_PROLOGUE.
5840         All callers changed.
5841         Handle the case when we're called for the epilogue.
5842         (thumb_unexpanded_epilogue): Use it.
5843         (thumb1_expand_epilogue): Likewise.
5844
5845 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
5846
5847         * tree-vrp.c (extract_range_from_binary_expr) <BIT_AND_EXPR>: If
5848         both ranges are range_int_cst_p with non-negative minimum,
5849         try harder to derive smaller range.
5850
5851 2010-07-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5852
5853         * genrecog.c: Include diagnostic-core.h before toplev.h.
5854         * genoutput.c: Likewise.
5855         * genextract.c: Likewise.
5856         * genautomata.c: Likewise.
5857         * genemit.c: Likewise.
5858         * genpeep.c: Likewise.
5859         * genattrtab.c: Likewise.
5860         * genconditions.c: Likewise.
5861         * genpreds.c: Likewise.
5862
5863 2010-07-08  Andi Kleen  <ak@linux.intel.com>
5864
5865         * lto-section-in.c (lto_section_name): Add missing comma.
5866
5867 2010-07-08  Anatoly Sokolov  <aesok@post.ru>
5868
5869         * config/ia64/ia64.h (OVERRIDE_OPTIONS): Remove macros.
5870         * config/ia64/ia64-protos.h (ia64_override_options): Remove.
5871         * config/ia64/ia64.c (TARGET_OPTION_OVERRIDE): Define.
5872         (ia64_override_options): Rename to...
5873         (ia64_option_override): ... this one. Make static.
5874
5875 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
5876
5877         PR middle-end/44843
5878         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not rely on the
5879         pointed-to type of the offset in a MEM_REF to compute the alignment.
5880
5881 2010-07-08  Kai Tietz  <kai.tietz@onevision.com>
5882
5883         * final.c (final_scan_insn): Replace
5884         TARGET_UNWIND_INFO macro check by unwind_emit
5885         hook NULL check.
5886         * targhooks.c (default_unwind_emit): Removed.
5887         * targhooks.h (default_unwind_emit): Likewise.
5888         * target.def (unwind_emit): Set default value to NULL.
5889
5890         * config/i386/i386-protos.h (ix86_asm_output_function_label):
5891         New prototype.
5892         * config/i386/i386.c (ix86_function_ms_hook_prologue): Check
5893         for NULL fntype argument and allow 64-bit targets.
5894         (ix86_asm_output_function_label): New function.
5895         (ix86_expand_prologue): Handle 64-bit ms hook prologue.
5896         (ix86_handle_fndecl_attribute): Likewise.
5897         * doc/extend.texi (ms_hook_prologue): Adjust documentation.
5898         * doc/doc/tm.texi: Regenerated.
5899         * doc/doc/doc/tm.texi.in (ASM_OUTPUT_FUNCTION_LABEL): New.
5900         (ASM_DECLARE_FUNCTION_NAME): Adjust documentation.
5901         * defaults.h (ASM_OUTPUT_FUNCTION_LABEL): New macro.
5902         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use
5903         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
5904         * config/elfos.h: Likewise.
5905         * config/i386/cygming.h: Likewise.
5906         * config/netbsd-aout.h: Likewise.
5907         * config/openbsd.h: Likewise.
5908         * config/i386/i386.h (ASM_OUTPUT_FUNCTION_LABEL): Override
5909         by ix86_asm_output_function_label function call.
5910         * varasm.c (assemble_start_function): Use
5911         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
5912
5913 2010-07-08  Jan Hubicka  <jh@suse.cz>
5914
5915         * cgraph.c (cgraph_will_be_removed_from_program_if_no_direct_calls):
5916         New function.
5917         * cgraph.h (cgraph_will_be_removed_from_program_if_no_direct_calls):
5918         Declare.
5919         * ipa-cp.c (ipcp_estimate_growth): Use it.
5920         * ipa-inline.c (cgraph_estimate_growth, cgraph_decide_inlining):
5921         Likewise.
5922
5923 2010-07-08  Jan Hubicka  <jh@suse.cz>
5924
5925         * tree-inline.c (declare_return_variable): Allocate annotation for new
5926         temporary.
5927
5928 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
5929
5930         PR tree-optimization/44710
5931         * tree-if-conv.c (parse_predicate): New.
5932         (add_to_predicate_list): Call it, call maybe_fold_or_comparisons.
5933         Make sure that the predicates are either SSA_NAMEs or gimple_condexpr.
5934
5935 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
5936
5937         * common.opt (ftree-loop-if-convert): New flag.
5938         * doc/invoke.texi (ftree-loop-if-convert): Documented.
5939         * tree-if-conv.c (gate_tree_if_conversion): Enable if-conversion
5940         when flag_tree_loop_if_convert is set.
5941
5942 2010-07-08  Uros Bizjak  <ubizjak@gmail.com>
5943
5944         * config/i386/i386.c: Use short syntax for function calls
5945         through function pointers.
5946         * config/i386/i386.md: Ditto.
5947
5948 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
5949
5950         * emit-rtl.c (set_mem_attributes_minus_bitpos): Fix formatting issues.
5951
5952 2010-07-08  Richard Guenther  <rguenther@suse.de>
5953
5954         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Fix
5955         stmt check for POINTER_PLUS_EXPRs, fix the pointer assignment.
5956
5957 2010-07-08  Jakub Jelinek  <jakub@redhat.com>
5958
5959         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_const[48]u
5960         instead of DW_OP_addr for DW_OP_GNU_push_tls_address operand.
5961         (loc_list_from_tree): Likewise.
5962         (output_loc_operands): Handle outputting DW_OP_const[48]u
5963         with loc->dtprel set.
5964         (resolve_addr_in_expr): Handle loc->dtprel like DW_OP_addr.
5965
5966 2010-07-08  Jan Hubicka  <jh@suse.cz>
5967
5968         * ipa.c: Include pointer-set.h
5969         (cgraph_externally_visible_p): New attribute ALIASED;
5970         when in LTO, hidden symbols are local unless they are aliased.
5971         (function_and_variable_visibility): Compute aliased nodes;
5972         handle LTO and hidden symbol on functions and vars.
5973         * cgraph.c (cgraph_make_decl_local): Clear NAMED_SECTION
5974         for COMDAT symbols; handle COMDAT_GROUPS also at vars.
5975
5976 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
5977
5978         * config/i386/cygming.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
5979         * config/i386/freebsd.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
5980         * config/i386/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
5981         * config/i386/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
5982         * config/i386/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
5983         * config/i386/i386.c (ix86_gen_adjust_stack_and_probe): New variable.
5984         (ix86_gen_probe_stack_range): Likewise.
5985         (override_options): Set them.
5986         (ix86_target_stack_probe): New function.
5987         (ix86_compute_frame_layout): Force use of push instructions to
5988         save registers if stack checking with probes is enabled.
5989         (get_scratch_register_on_entry): New function.
5990         (release_scratch_register_on_entry): Likewise.
5991         (ix86_adjust_stack_and_probe): Likewise.
5992         (output_adjust_stack_and_probe): Likewise.
5993         (ix86_emit_probe_stack_range): Likewise.
5994         (output_probe_stack_range): Likewise.
5995         (ix86_expand_prologue): Emit stack checking code if static built-in
5996         stack checking is enabled.
5997         Test ix86_target_stack_probe instead of TARGET_STACK_PROBE.
5998         * config/i386/i386-protos.h (ix86_target_stack_probe): Declare.
5999         (output_adjust_stack_and_probe): Likewise.
6000         (output_probe_stack_range): Likewise.
6001         * config/i386/i386.md (UNSPECV_PROBE_STACK_RANGE): New constant.
6002         (allocate_stack_worker_32): Test ix86_target_stack_probe instead of
6003         TARGET_STACK_PROBE.
6004         (allocate_stack_worker_64): Likewise.
6005         (allocate_stack): Likewise.
6006         (adjust_stack_and_probe): New insn.
6007         (probe_stack_range): Likewise.
6008
6009 2010-07-08  Richard Guenther  <rguenther@suse.de>
6010
6011         PR tree-optimization/44831
6012         * tree-ssa-phiprop.c (phiprop_insert_phi): Properly build
6013         a MEM_REF preserving TBAA info of the original dereference.
6014         Dereference the original pointer if the address is not invariant.
6015         (propagate_with_phi): Fixup type checks wrt MEM_REFs.  Require
6016         at least one invariant address that we are going to dereference.
6017
6018 2010-07-08  Richard Guenther  <rguenther@suse.de>
6019
6020         PR tree-optimization/44861
6021         * tree-vect-stmts.c (vectorizable_store): Preserve TBAA
6022         information when building MEM_REFs.
6023         (vectorizable_load): Likewise.
6024         * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
6025
6026 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
6027
6028         * config/sol2-c.c: Do not include diagnostic-core.h.
6029
6030 2010-07-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6031
6032         PR bootstrap/44768
6033         * cfgexpand.c (estimated_stack_frame_size): Make self-contained
6034         with respect to current_function_decl. Pass decl of the function.
6035         * tree-inline.h (estimated_stack_frame_size): Adjust prototype.
6036         * ipa-inline.c (compute_inline_parameters): Pass decl to
6037         estimated_stack_frame_size.
6038
6039 2010-07-08  Richard Guenther  <rguenther@suse.de>
6040
6041         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
6042         New function.
6043         (valueize_refs): Call it.
6044
6045 2010-07-08  Richard Guenther  <rguenther@suse.de>
6046
6047         PR rtl-optimization/44838
6048         * tree-ssa-alias.c (indirect_refs_may_alias_p): When not in
6049         SSA form do not use pointer equivalence.
6050
6051 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
6052
6053         * dwarf2out.c (AT_linkage_name): Delete.
6054         (add_linkage_attr): New function.
6055         (add_linkage_name): Call it to emit the linkage attribute.
6056         (dwarf2out_finish): Likewise.
6057         (move_linkage_attr): Explicitly accept both attribute variants.
6058
6059 2010-07-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6060
6061         * toplev.h: Do not include diagnostic-core.h.
6062         Include diagnostic-core.h in every file that includes toplev.h.
6063         * c-tree.h: Do not include toplev.h.
6064         * pretty-print.h: Update comment.
6065         * Makefile.in: Update dependencies.
6066         * alias.c: Include diagnostic-core.h in every file that includes
6067         toplev.h.
6068         * attribs.c: Likewise.
6069         * auto-inc-dec.c: Likewise.
6070         * bb-reorder.c: Likewise.
6071         * bt-load.c: Likewise.
6072         * caller-save.c: Likewise.
6073         * calls.c: Likewise.
6074         * cfg.c: Likewise.
6075         * cfganal.c: Likewise.
6076         * cfgbuild.c: Likewise.
6077         * cfgcleanup.c: Likewise.
6078         * cfghooks.c: Likewise.
6079         * cfgloop.c: Likewise.
6080         * combine.c: Likewise.
6081         * config/alpha/alpha.c: Likewise.
6082         * config/arc/arc.c: Likewise.
6083         * config/arm/arm.c: Likewise.
6084         * config/arm/pe.c: Likewise.
6085         * config/avr/avr.c: Likewise.
6086         * config/bfin/bfin.c: Likewise.
6087         * config/cris/cris.c: Likewise.
6088         * config/crx/crx.c: Likewise.
6089         * config/darwin-c.c: Likewise.
6090         * config/darwin.c: Likewise.
6091         * config/fr30/fr30.c: Likewise.
6092         * config/frv/frv.c: Likewise.
6093         * config/h8300/h8300.c: Likewise.
6094         * config/host-darwin.c: Likewise.
6095         * config/i386/i386.c: Likewise.
6096         * config/i386/netware.c: Likewise.
6097         * config/i386/nwld.c: Likewise.
6098         * config/i386/winnt-cxx.c: Likewise.
6099         * config/i386/winnt-stubs.c: Likewise.
6100         * config/i386/winnt.c: Likewise.
6101         * config/ia64/ia64-c.c: Likewise.
6102         * config/ia64/ia64.c: Likewise.
6103         * config/iq2000/iq2000.c: Likewise.
6104         * config/lm32/lm32.c: Likewise.
6105         * config/m32c/m32c-pragma.c: Likewise.
6106         * config/m32c/m32c.c: Likewise.
6107         * config/m32r/m32r.c: Likewise.
6108         * config/m68hc11/m68hc11.c: Likewise.
6109         * config/m68k/m68k.c: Likewise.
6110         * config/mcore/mcore.c: Likewise.
6111         * config/mep/mep-pragma.c: Likewise.
6112         * config/mep/mep.c: Likewise.
6113         * config/mmix/mmix.c: Likewise.
6114         * config/mn10300/mn10300.c: Likewise.
6115         * config/moxie/moxie.c: Likewise.
6116         * config/pa/pa.c: Likewise.
6117         * config/pdp11/pdp11.c: Likewise.
6118         * config/picochip/picochip.c: Likewise.
6119         * config/rs6000/rs6000-c.c: Likewise.
6120         * config/rs6000/rs6000.c: Likewise.
6121         * config/rx/rx.c: Likewise.
6122         * config/s390/s390.c: Likewise.
6123         * config/score/score.c: Likewise.
6124         * config/score/score3.c: Likewise.
6125         * config/score/score7.c: Likewise.
6126         * config/sh/sh.c: Likewise.
6127         * config/sh/symbian-base.c: Likewise.
6128         * config/sh/symbian-c.c: Likewise.
6129         * config/sh/symbian-cxx.c: Likewise.
6130         * config/sol2-c.c: Likewise.
6131         * config/sol2.c: Likewise.
6132         * config/sparc/sparc.c: Likewise.
6133         * config/spu/spu.c: Likewise.
6134         * config/stormy16/stormy16.c: Likewise.
6135         * config/v850/v850-c.c: Likewise.
6136         * config/v850/v850.c: Likewise.
6137         * config/vax/vax.c: Likewise.
6138         * config/vxworks.c: Likewise.
6139         * config/xtensa/xtensa.c: Likewise.
6140         * convert.c: Likewise.
6141         * cse.c: Likewise.
6142         * cselib.c: Likewise.
6143         * dbgcnt.c: Likewise.
6144         * dbxout.c: Likewise.
6145         * ddg.c: Likewise.
6146         * dominance.c: Likewise.
6147         * emit-rtl.c: Likewise.
6148         * explow.c: Likewise.
6149         * expmed.c: Likewise.
6150         * fixed-value.c: Likewise.
6151         * fold-const.c: Likewise.
6152         * fwprop.c: Likewise.
6153         * gcse.c: Likewise.
6154         * ggc-common.c: Likewise.
6155         * ggc-page.c: Likewise.
6156         * ggc-zone.c: Likewise.
6157         * gimple-low.c: Likewise.
6158         * gimplify.c: Likewise.
6159         * graph.c: Likewise.
6160         * haifa-sched.c: Likewise.
6161         * ifcvt.c: Likewise.
6162         * implicit-zee.c: Likewise.
6163         * integrate.c: Likewise.
6164         * ira-build.c: Likewise.
6165         * ira-color.c: Likewise.
6166         * ira-conflicts.c: Likewise.
6167         * ira-costs.c: Likewise.
6168         * ira-lives.c: Likewise.
6169         * ira.c: Likewise.
6170         * lists.c: Likewise.
6171         * loop-doloop.c: Likewise.
6172         * loop-iv.c: Likewise.
6173         * lto-opts.c: Likewise.
6174         * lto-symtab.c: Likewise.
6175         * main.c: Likewise.
6176         * modulo-sched.c: Likewise.
6177         * optabs.c: Likewise.
6178         * params.c: Likewise.
6179         * plugin.c: Likewise.
6180         * postreload-gcse.c: Likewise.
6181         * postreload.c: Likewise.
6182         * predict.c: Likewise.
6183         * profile.c: Likewise.
6184         * real.c: Likewise.
6185         * regcprop.c: Likewise.
6186         * reginfo.c: Likewise.
6187         * regmove.c: Likewise.
6188         * reorg.c: Likewise.
6189         * resource.c: Likewise.
6190         * rtl.c: Likewise.
6191         * rtlanal.c: Likewise.
6192         * sched-deps.c: Likewise.
6193         * sched-ebb.c: Likewise.
6194         * sched-rgn.c: Likewise.
6195         * sdbout.c: Likewise.
6196         * sel-sched-dump.c: Likewise.
6197         * sel-sched-ir.c: Likewise.
6198         * simplify-rtx.c: Likewise.
6199         * stmt.c: Likewise.
6200         * stor-layout.c: Likewise.
6201         * store-motion.c: Likewise.
6202         * targhooks.c: Likewise.
6203         * tree-cfg.c: Likewise.
6204         * tree-cfgcleanup.c: Likewise.
6205         * tree-dump.c: Likewise.
6206         * tree-eh.c: Likewise.
6207         * tree-inline.c: Likewise.
6208         * tree-nomudflap.c: Likewise.
6209         * tree-object-size.c: Likewise.
6210         * tree-optimize.c: Likewise.
6211         * tree-outof-ssa.c: Likewise.
6212         * tree-phinodes.c: Likewise.
6213         * tree-profile.c: Likewise.
6214         * tree-ssa-ccp.c: Likewise.
6215         * tree-ssa-coalesce.c: Likewise.
6216         * tree-ssa-live.c: Likewise.
6217         * tree-ssa-loop-niter.c: Likewise.
6218         * tree-ssa-loop-prefetch.c: Likewise.
6219         * tree-ssa-loop.c: Likewise.
6220         * tree-ssa-structalias.c: Likewise.
6221         * tree-ssa-uninit.c: Likewise.
6222         * tree-ssa.c: Likewise.
6223         * tree-vect-data-refs.c: Likewise.
6224         * tree-vect-loop-manip.c: Likewise.
6225         * tree-vect-loop.c: Likewise.
6226         * tree-vect-patterns.c: Likewise.
6227         * tree-vect-stmts.c: Likewise.
6228         * tree-vrp.c: Likewise.
6229         * varasm.c: Likewise.
6230         * vec.c: Likewise.
6231         * web.c: Likewise.
6232         * xcoffout.c: Likewise.
6233
6234 2010-07-07  Richard Sandiford  <rdsandiford@googlemail.com>
6235
6236         * gengtype.c (write_field_root): New function.
6237         (write_root): Use it.
6238
6239 2010-07-07  Wei Guozhi  <carrot@google.com>
6240
6241         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
6242         of lowest bits to lshift/compare): Add a missing line.
6243
6244 2010-07-07  Wei Guozhi  <carrot@google.com>
6245
6246         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
6247         of lowest bits to lshift/compare): New.
6248
6249 2010-07-07  Tom Tromey  <tromey@redhat.com>
6250
6251         * doc/tm.texi: Update.
6252         * doc/tm.texi.in (SDB and DWARF) <TARGET_WANT_DEBUG_PUB_SECTIONS>:
6253         Add @hook.
6254         * target.def (want_debug_pub_sections): New hook.
6255         * config/darwin.h (TARGET_WANT_DEBUG_PUB_SECTIONS): Define.
6256         * dwarf2out.c (add_pubname_string): Check
6257         targetm.want_debug_pub_sections.
6258         (add_pubname): Likewise.
6259         (add_pubtype): Likewise.
6260
6261 2010-07-07  Jie Zhang  <jie@codesourcery.com>
6262
6263         * genautomata.c (output_automata_list_min_issue_delay_code):
6264         Correctly decompress min_issue_delay.
6265
6266 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
6267
6268         PR rtl-optimization/44404
6269         * auto-inc-dec.c (find_inc): Avoid calling count_occurrences if
6270         possible, use reg_overlap_mentioned_p instead.
6271
6272 2010-07-07  Duncan Sands  <baldrick@free.fr>
6273
6274         PR middle-end/41355
6275         * tree.c (build_function_type_skip_args): Copy the original type using
6276         build_distinct_type_copy rather than copy_node.
6277
6278 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
6279
6280         PR target/44850
6281         * config/i386/i386.c (ix86_function_ms_hook_prologue): Revert
6282         revision 161876.
6283         (ix86_expand_prologue): Likewise.
6284         (ix86_handle_fndecl_attribute): Likewise.
6285         (ix86_asm_declare_function_name): Likewise.
6286         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
6287         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
6288         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): Likewise.
6289         * config/i386/i386-protos.h (ix86_asm_declare_function_name): Likewise.
6290         * doc/extend.texi: Likewise.
6291
6292 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
6293
6294         PR target/44844
6295         * config/i386/i386.md (rdrand<mode>): Changed to expand to
6296         retry if the carry flag isn't valid.
6297         (rdrand<mode>_1): New.
6298
6299 2010-07-07  Richard Guenther  <rguenther@suse.de>
6300
6301         PR middle-end/44790
6302         * expr.c (expand_expr_real_1): Go the POINTER_PLUS_EXPR path
6303         for expanding the constant offset for MEM_REFs.
6304
6305 2010-07-07  Richard Guenther  <rguenther@suse.de>
6306
6307         * tree-ssa-propagate.h (valid_gimple_call_p): Remove.
6308         * tree-ssa-propagate.c (valid_gimple_call_p): Make static.  Fix.
6309         * gimple.h (is_gimple_operand): Remove.
6310         * gimple.c (is_gimple_operand): Likewise.
6311         (walk_gimple_op): Fix wi->val_only setting for calls.
6312         * tree-cfg.c (verify_gimple_call): Fix argument validation.
6313         * tree-profile.c (tree_gen_ic_func_profiler): Do not create
6314         invalid gimple calls.
6315
6316 2010-07-06  Jan Hubicka  <jh@suse.cz>
6317
6318         * lto-cgraph.c (output_cgraph): Add missing declaration.
6319
6320 2010-07-06  Jan Hubicka  <jh@suse.cz>
6321
6322         * lto-cgraph.c (output_cgraph): Output toplevel asms only into first
6323         partition.
6324
6325 2010-07-06  Alexandre Oliva  <aoliva@redhat.com>
6326
6327         * doc/gimple.texi (GIMPLE_DEBUG): Document.
6328         * doc/rtl.texi (Debug Information): New node.
6329         (NOTE_INSN_VAR_LOCATION): Document.
6330         (debug_insn): Likewise.
6331         * doc/generic.texi (DEBUG_EXPR_DECL): Document.
6332
6333 2010-07-07  Jan Hubicka  <jh@suse.cz>
6334
6335         With parts by Richard Guenther.
6336
6337         PR middle-end/44813
6338         * tree-ssa-uninit.c (ssa_undefined_value_p): Result decl is defined
6339         for functions passed by reference.
6340         * tree.c (needs_to_live_in_memory): RESULT_DECL don't need to live
6341         in memory when passed by reference.
6342         * tree-ssa-ccp.c (get_default_value): Only VAR_DECL is undefined at
6343         beggining.
6344         * ipa-split.c (split_function): Cleanup way return value is passed;
6345         handle SSA DECL_BY_REFERENCE retvals.
6346         * tree-ssa.c (verify_def): Verify that RESULT_DECL is read only when
6347         DECL_BY_REFERENCE is set.
6348         * tree-ssa-structalias.c (get_constraint_for_ssa_var, get_fi_for_callee,
6349         find_what_p_points_to): Handle RESULT_DECL.
6350         * tree-inline.c (declare_return_variable): Get new entry_block argument;
6351         when passing by reference ensure that RESULT_DECL is gimple_val.
6352         (remap_gimple_op_r): Remap RESULT_DECL ssa name.
6353         (remap_gimple_stmt): Handle SSA DECL_BY_REFERENCE returns.
6354
6355 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
6356
6357         PR rtl-optimization/44787
6358         * config/arm/arm.md (arith_shiftsi): Allow stack pointer in operand 2.
6359         * config/arm/thumb2.md (thumb2_arith_shiftsi): Likewise.
6360
6361 2010-07-06  Jan Hubicka  <jh@suse.cz>
6362
6363         * lto-symtab.c (lto_cgraph_replace_node): Handle aliases.
6364         (lto_symtab_resolve_can_prevail_p): Also alias of cgraph node
6365         with body can prevail.
6366         (lto_symtab_resolve_symbols): Use cgraph_get_node_or_alias.
6367         (lto_symtab_merge_cgraph_nodes_1): Do not remove nodes from aliases.
6368         * cgraph.c (cgraph_get_node_or_alias): New function.
6369         * cgraph.h (cgraph_get_node_or_alias): Declare.
6370
6371 2010-07-06  Kai Tietz  <kai.tietz@onevision.com>
6372
6373         * config/i386/i386.c (ix86_function_ms_hook_prologue): Enable x64
6374         support.
6375         (ix86_expand_prologue): Likewise.
6376         (ix86_handle_fndecl_attribute): Likewise.
6377         (ix86_asm_declare_function_name): New function for
6378         ASM_DECLARE_FUNCTION_NAME.
6379         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): New macro.
6380         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Removed.
6381         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): New macro.
6382         * config/i386/i386-protos.h (ix86_asm_declare_function_name): New.
6383         * doc/extend.texi: Adjust documentation about ms_hook_prologue
6384         attribute.
6385
6386 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
6387
6388         * config/i386/i386.md (immediate_operand): New mode attribute.
6389
6390         (pro_epilogue_adjust_stack_<mode>_1): Macroize insn from
6391         pro_epilogue_adjust_stack  and pro_epilogue_adjust_stack_rex64
6392         using P mode iterator.
6393         (pro_epilogue_adjust_stack_di_2): Rename from
6394         pro_epilogue_adjust_stack_rex64_2.
6395
6396         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for rename.
6397
6398 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
6399
6400         * config/i386/i386.md (insv): Call gen_movdi_insv1 or gen_movsi_insv1
6401         through gen_mov_insv_1 function pointer.
6402         (fmod<mode>3): Call gen_truncxf<mode>2_i387_noop_unspec or
6403         gen_truncxf<mode>2 through gen_truncxf function pointer.
6404         (remainder<mode>3): Ditto.
6405         (cmpstrnsi): Rename cmp_insn function pointer to gen_cmp.
6406         (allocate_stack): Call gen_allocate_stack_worker_64 or
6407         gen_allocate_stack_worker_32 through gen_allocate_stack_worker
6408         function pointer.
6409         (probe_stack): Call gen_iordi3 or gen_iorsi3 through gen_ior3
6410         function pointer.
6411
6412 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
6413
6414         * config/i386/i386.md (*add<mode>3_cconly_overflow): Use <g>
6415         operand constraint instead of <r><i>m.
6416
6417 2010-07-06  Richard Guenther  <rguenther@suse.de>
6418
6419         PR middle-end/44828
6420         * convert.c (convert_to_integer): Watch out for overflowing
6421         MULT_EXPR as well.
6422
6423 2010-07-05  Jan Hubicka  <jh@suse.cz>
6424
6425         * lto-streamer.c (write_symbol_vec): Rename to ...
6426         (write_symbol) ... this one; write only symbol given and when
6427         present in cache. Sanity check that what is defined is present
6428         in cgraph/varpool with body/finalized decl.
6429         (write_symbols_of_kind): Remove.
6430         (produce_symtab): Take outputblock and sets; use cgraph/varpool/alias
6431         pairs to produce symtab.
6432         (produce_asm_for_decls): Update call of produce_symtab; don't do so
6433         when doing WPA streaming.
6434
6435 2010-07-05  Jan Hubicka  <jh@suse.cz>
6436
6437         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Check that
6438         function is still available to fold into.
6439
6440 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
6441
6442         * vec.h (FOR_EACH_VEC_ELT_REVERSE): New macro.
6443         * function.h (struct_function): Change type of local_decls field
6444         to a VEC.
6445         (add_local_decl): New function.
6446         (FOR_EACH_LOCAL_DECL): New macro.
6447         * cfgexpand.c (init_vars_expansion): Adjust for new type of
6448         cfun->local_decls.
6449         (estimated_stack_frame_size): Likewise.
6450         (expand_used_vars): Likewise.
6451         * cgraphbuild.c (build_cgraph_edges): Likewise.
6452         * function.c (instantiate_decls_1): Likewise.
6453         * ipa-struct-reorg.c (build_data_structure): Likewise.
6454         * ipa-type-escape.c (analyze_function): Likewise.
6455         * lto-streamer-in.c (input_function): Likewise.
6456         * lto-streamer-out.c (output_function): Likewise.
6457         * tree-ssa-live.c (remove_unused_locals): Likewise.
6458         * tree.c (free_lang_data_in_decl): Likewise.
6459         (find_decls_types_in_node): Likewise.
6460         * omp-low.c (remove_exit_barrier): Likewise.
6461         (expand_omp_taskreg): Likewise.
6462         (list2chain): Rename to...
6463         (vec2chain): ...this.  Adjust.
6464         * cgraphunit.c (assemble_thunk): Call add_local_decl.
6465         * tree-cfg.c (replace_by_duplicate_decl): Likewise.
6466         * gimple-low.c (record_vars_into): Likewise.
6467         * tree-inline.c (remap_decls): Likewise.
6468         (declare_return_variable): Likewise.
6469         (declare_inline_vars): Likewise.
6470         (copy_forbidden): Adjust for new type of cfun->local_decls.
6471         (add_local_variables): New function.
6472         (expand_call_inline): Call it.
6473         (tree_function_versioning): Likewise.
6474
6475 2010-07-05  H.J. Lu  <hongjiu.lu@intel.com>
6476
6477         AVX Programming Reference (June, 2010)
6478         * config/i386/cpuid.h (bit_F16C): New.
6479         (bit_RDRND): Likewise.
6480         (bit_FSGSBASE): Likewise.
6481
6482         * config/i386/i386-builtin-types.def: Add
6483         "DEF_FUNCTION_TYPE (UINT16)", function types for
6484         float16 <-> float conversions and
6485         "DEF_FUNCTION_TYPE (VOID, UINT64)".
6486
6487         * config/i386/i386-c.c (ix86_target_macros_internal): Support
6488         OPTION_MASK_ISA_FSGSBASE, OPTION_MASK_ISA_RDRND and
6489         OPTION_MASK_ISA_F16C.
6490
6491         * config/i386/i386.c (OPTION_MASK_ISA_FSGSBASE_SET): New.
6492         (OPTION_MASK_ISA_RDRND_SET): Likewise.
6493         (OPTION_MASK_ISA_F16C_SET): Likewise.
6494         (OPTION_MASK_ISA_FSGSBASE_UNSET): Likewise.
6495         (OPTION_MASK_ISA_RDRND_UNSET): Likewise.
6496         (OPTION_MASK_ISA_F16C_UNSET): Likewise.
6497         (OPTION_MASK_ISA_AVX_UNSET): Add OPTION_MASK_ISA_F16C_UNSET.
6498         (ix86_handle_option): Handle OPT_mfsgsbase, OPT_mrdrnd and OPT_mf16c.
6499         (ix86_target_string): Support -mfsgsbase, -mrdrnd and -mf16c.
6500         (pta_flags): Add PTA_FSGSBASE, PTA_RDRND and PTA_F16C.
6501         (override_options): Handle them.
6502         (ix86_valid_target_attribute_inner_p): Handle fsgsbase, rdrnd and f16c.
6503         (ix86_builtins): Add IX86_BUILTIN_RDFSBASE32,
6504         IX86_BUILTIN_RDFSBASE64, IX86_BUILTIN_RDGSBASE32,
6505         IX86_BUILTIN_RDGSBASE64, IX86_BUILTIN_WRFSBASE32,
6506         IX86_BUILTIN_WRFSBASE64, IX86_BUILTIN_WRGSBASE32,
6507         IX86_BUILTIN_WRGSBASE64, IX86_BUILTIN_RDRAND16,
6508         IX86_BUILTIN_RDRAND32, IX86_BUILTIN_RDRAND64,
6509         IX86_BUILTIN_CVTPH2PS, IX86_BUILTIN_CVTPH2PS256,
6510         IX86_BUILTIN_CVTPS2PH and IX86_BUILTIN_CVTPS2PH256.
6511         (bdesc_args): Likewise.
6512         (ix86_expand_args_builtin): Handle V8SF_FTYPE_V8HI,
6513         V4SF_FTYPE_V8HI, V8HI_FTYPE_V8SF_INT and V8HI_FTYPE_V4SF_INT.
6514         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_UINT64,
6515         VOID_FTYPE_UNSIGNED, UNSIGNED_FTYPE_VOID and UINT16_FTYPE_VOID.
6516         Handle non-memory store.
6517
6518         * config/i386/i386.h (TARGET_FSGSBASE): New.
6519         (TARGET_RDRND): Likewise.
6520         (TARGET_F12C): Likewise.
6521
6522         * config/i386/i386.md (UNSPEC_VCVTPH2PS): New.
6523         (UNSPEC_VCVTPS2PH): Likewise.
6524         (UNSPECV_RDFSBASE): Likewise.
6525         (UNSPECV_RDGSBASE): Likewise.
6526         (UNSPECV_WRFSBASE): Likewise.
6527         (UNSPECV_WRGSBASE): Likewise.
6528         (UNSPECV_RDRAND): Likewise.
6529         (rdfsbase<mode>): Likewise.
6530         (rdgsbase<mode>): Likewise.
6531         (wrfsbase<mode>): Likewise.
6532         (wrgsbase<mode>): Likewise.
6533         (rdrand<mode>): Likewise.
6534
6535         * config/i386/i386.opt: Add -mfsgsbase, -mrdrnd and -mf16c.
6536
6537         * config/i386/immintrin.h (_rdrand_u16): New.
6538         (_rdrand_u32): Likewise.
6539         (_readfsbase_u32): Likewise.
6540         (_readfsbase_u64): Likewise.
6541         (_readgsbase_u32): Likewise.
6542         (_readgsbase_u64): Likewise.
6543         (_writefsbase_u32): Likewise.
6544         (_writefsbase_u64): Likewise.
6545         (_writegsbase_u32): Likewise.
6546         (_writegsbase_u64): Likewise.
6547         (_rdrand_u64): Likewise.
6548         (_cvtsh_ss): Likewise.
6549         (_mm_cvtph_ps): Likewise.
6550         (_mm256_cvtph_ps): Likewise.
6551         (_cvtss_sh): Likewise.
6552         (_mm_cvtps_ph): Likewise.
6553         (_mm256_cvtps_ph): Likewise.
6554
6555         * config/i386/sse.md (vcvtph2ps): New.
6556         (*vcvtph2ps_load): Likewise.
6557         (vcvtph2ps256): Likewise.
6558         (vcvtps2ph): Likewise.
6559         (*vcvtps2ph): Likewise.
6560         (*vcvtps2ph_store): Likewise.
6561         (vcvtps2ph256): Likewise.
6562
6563         * doc/extend.texi: Document FSGSBASE and RDRND built-in functions.
6564
6565         * doc/invoke.texi: Document -mfsgsbase, -mrdrnd and -mf16c.
6566
6567 2010-07-05  Joern Rennecke  <joern.rennecke@embecosm.com>
6568
6569         PR bootstrap/44512
6570         * genenums.c (main): Output include of insn-constants.h
6571         * Makefile.in (insn-enums.o): Depend on insn-constants.h.
6572
6573 2010-07-05  Uros Bizjak  <ubizjak@gmail.com>
6574
6575         * config/i386/i386.c (ix86_gen_allocate_stack_worker): New.
6576         (override_options): Initialize it.
6577         (ix86_expand_prologue): Use it.
6578
6579 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
6580
6581         * tree-nrv.c (tree_nrv): Set DECL_VALUE_EXPR on found to result.
6582
6583 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
6584
6585         * double-int.h (fit_double_type): Remove declaration.
6586         * double-int.c (fit_double_type): Remove function.
6587         * tree.h (int_fits_type_p): Adjust prototype.
6588         * tree.c (int_fits_type_p): Return bool. Use double_int_fits_to_tree_p
6589         instead of fit_double_type.
6590         (build_int_cst_type): Use double_int_to_tree and shwi_to_double_int
6591         instead of fit_double_type and build_int_cst_wide.
6592         * builtins.c (): Use double_int_fits_to_tree_p and double_int_to_tree
6593         instead of fit_double_type and build_int_cst_wide.
6594         (fold_builtin_object_size): Use double_int_fits_to_tree_p instead
6595         of fit_double_type.
6596
6597 2010-07-05  Jan Hubicka  <jh@suse.cz>
6598
6599         * cgraph.h (cgraph_node, cgraph_varpool_node): Update docmentation of
6600         in_other_partition.
6601         * lto-cgraph.c (referenced_from_other_partition_p,
6602         reachable_from_other_partition_p): Use in_other_partition flags.
6603         (output_node, output_varpool_node): COMDAT nodes always have private
6604         copies and thus are never used from other partition.
6605
6606 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
6607
6608         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
6609         * config/ia64/t-ia64 (ia64.o): Depend on reload.h.
6610         * config/ia64/ia64.c Include reload.h.
6611         (ia64_memory_move_cost): New function.
6612         (TARGET_MEMORY_MOVE_COST): Define.
6613         (ia64_register_move_cost): Replace MEMORY_MOVE_COST with
6614         memory_move_cost.
6615
6616 2010-07-05  Sandra Loosemore  <sandra@codesourcery.com>
6617
6618         PR middle-end/42505
6619         * tree-ssa-loop-ivopts.c (determine_set_costs): Delete obsolete
6620         comments about cost model.
6621         (try_add_cand_for):  Add second strategy for choosing initial set
6622         based on original IVs, controlled by ORIGINALP argument.
6623         (get_initial_solution): Add ORIGINALP argument.
6624         (find_optimal_iv_set_1): New function, split from find_optimal_iv_set.
6625         (find_optimal_iv_set): Try two different strategies for choosing
6626         the IV set, and return the one with lower cost.
6627
6628 2010-07-05  Richard Guenther  <rguenther@suse.de>
6629
6630         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Copy alias info.
6631
6632 2010-07-05  Richard Guenther  <rguenther@suse.de>
6633
6634         * tree.c (reference_alias_ptr_type): New function.
6635         * tree.h (reference_alias_ptr_type): Declare.
6636         * tree-ssa-loop-ivopts.c (copy_ref_info): Restructure to
6637         allow non-TARGET_MEM_REF new refs.
6638         (rewrite_use_address): Pass old alias pointer type to create_mem_ref.
6639         * tree-ssa-address.c (create_mem_ref_raw): Get alias pointer type.
6640         Build a MEM_REF instead of a TARGET_MEM_REF if possible.
6641         (create_mem_ref): Get alias pointer type.  Adjust calls to
6642         create_mem_ref_raw.
6643         (maybe_fold_tmr): Likewise.
6644         * tree-flow.h (create_mem_ref): Adjust prototype.
6645
6646 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
6647
6648         PR c++/44808
6649         * gimplify.c (gimplify_modify_expr): Only SET_DECL_DEBUG_EXPR if
6650         *from_p is VAR_DECL.
6651
6652 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
6653
6654         * tree.h (build_call_list): Remove.
6655         * tree.c (build_call_list): Remove.
6656
6657 2010-07-05  Richard Guenther  <rguenther@suse.de>
6658
6659         * double-int.h (double_int_sub): Declare.
6660         * double-int.c (double_int_sub): New function.
6661         * dwarf2out.c (field_byte_offset): Use it.
6662         * fixed-value.c (do_fixed_add): Likewise.
6663         (do_fixed_multiply): Likewise.
6664         (do_fixed_divide): Likewise.
6665         * tree-predcom.c (add_ref_to_chain): Likewise.
6666         (determine_roots_comp): Likewise.
6667         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
6668
6669 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
6670
6671         * vec.h (VEC_splice, VEC_safe_splice): New macros.  Add function
6672         implementations.
6673
6674 2010-07-05  Bernd Schmidt  <bernds@codesourcery.com>
6675
6676         * config/arm/arm.c (get_arm_condition_code): Remove CC_NOTBmode case.
6677         * arm-modes.def (CC_NOTB): Don't define.
6678         * config/arm/arm.md (arm_adddi3): Generate canonical RTL.
6679         (adddi_sesidi_di, adddi_zesidi_di): Likewise.
6680         (LTUGEU): New code_iterator.
6681         (cnb, optab): New corresponding code_attrs.
6682         (addsi3_carryin_<optab>): Renamed from addsi3_carryin.  Change pattern
6683         to canonical form.  Operands 1 and 2 are commutative.  Parametrize
6684         using LTUGEU.
6685         (addsi3_carryin_shift_<optab>): Likewise.
6686         (addsi3_carryin_alt2_<optab>): Renamed from addsi3_carryin_alt2.
6687         Operands 1 and 2 are commutative.  Parametrize using LTUGEU.
6688         (addsi3_carryin_alt1, addsi3_carryin_alt3): Remove.
6689         (subsi3_compare): Renamed from subsi3_compare0_c.
6690         Change CC_NOTB to CC.
6691         (arm_subsi3_insn): Allow constants for operand 0.
6692         (compare_scc peephole for eq case): New.
6693         (compare_scc splitters): Change CC_NOTB to CC.
6694
6695 2010-07-05  Richard Guenther  <rguenther@suse.de>
6696
6697         * tree-ssa-loop-im.c (for_each_index): Do not handle
6698         ALIGN_INDIRECT_REF.
6699         (gen_lsm_tmp_name): Likewise.
6700         * tree-dump.c (dequeue_and_dump): Likewise.
6701         * tree-pretty-print.c (dump_generic_node): Likewise.
6702         (op_code_prio): Likewise.
6703         (op_symbol_code): Likewise.
6704         * tree.c (staticp): Likewise.
6705         (build1_stat): Likewise.
6706         * tree.h (INDIRECT_REF_P): Likewise.
6707         * fold-const.c (maybe_lvalue_p): Likewise.
6708         (operand_equal_p): Likewise.
6709         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
6710         (ao_ref_init_from_vn_reference): Likewise.
6711         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
6712         (find_interesting_uses_address): Likewise.
6713         * dwarf2out.c (loc_list_from_tree): Likewise.
6714         * gimplify.c (gimplify_expr): Likewise.
6715         * tree-eh.c (tree_could_trap_p): Likewise.
6716         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
6717         * cfgexpand.c (expand_debug_expr): Likewise.
6718         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
6719         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
6720         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
6721         * config/rs6000/rs6000 (rs6000_check_sdmode): Likewise.
6722         * tree-ssa-operands.c (get_expr_operands): Likewise.
6723         * expr.c (safe_from_p): Likewise.
6724         (expand_expr_real_1): Likewise.  TER BIT_AND_EXPRs into MEM_REFs.
6725         * tree-vect-data-refs.c (vect_setup_realignment): Build
6726         BIT_AND_EXPR and MEM_REF instead of ALIGN_INDIRECT_REF.
6727         * tree-vect-stmts.c (vectorizable_load): Likewise.
6728         * tree.def (ALIGN_INDIRECT_REF): Remove.
6729
6730 2010-07-05  Richard Guenther  <rguenther@suse.de>
6731
6732         PR tree-optimization/44784
6733         * tree-ssa-pre.c (bitmap_find_leader): Fix dominance check
6734         for inserted stmts.
6735         (find_or_generate_expression): Fix SCCVN insertion check.
6736
6737 2010-07-05  Nathan Sidwell  <nathan@codesourcery.com>
6738
6739         * config/rs6000/e500crtsavg64gprctr.asm: Correct done label name.
6740         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
6741         * config/rs6000/e500crtres64gprctr.asm: Likewise. Add FUNC_END
6742         directives.
6743
6744 2010-07-05  Ira Rosen  <irar@il.ibm.com>
6745
6746         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Skip
6747         statements that are not vectorized.
6748         * tree-vect-stmts.c (vect_get_load_cost): Update the value stored
6749         in INSIDE_COST.
6750
6751 2010-07-05  Mikael Pettersson  <mikpe@it.uu.se>
6752
6753         PR bootstrap/44820
6754         * config/arm/arm.c (arm_attr_length_move_neon): Delete regno.
6755
6756 2010-07-05  Richard Guenther  <rguenther@suse.de>
6757
6758         * tree-cfg.c (verify_gimple_return): Handle DECL_BY_REFERENCE
6759         RESULT_DECLs properly.
6760
6761 2010-07-04  H.J. Lu  <hongjiu.lu@intel.com>
6762
6763         PR rtl-optimization/44695
6764         * config/i386/i386.md (extract_code): Removed.
6765         (<u>divmodqi4): Likewise.
6766         (divmodqi4): New.
6767         (udivmodqi4): Likewise.
6768         (divmodhiqi3): Change div/mod to HImode and extend operand 2 to HImode.
6769         (udivmodhiqi3): Likewise.
6770
6771 2010-07-04  Jan Hubicka  <jh@suse.cz>
6772
6773         * lto-cgraph.c (input_edge): Do not care about resolution decisions.
6774
6775 2010-07-04  Jan Hubicka  <jh@suse.cz>
6776
6777         * cgraphunit.c (init_cgraph): Only initialize dump file if it
6778         is not already initialized.
6779
6780 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
6781
6782         * optabs.h (reload_in_optab, reload_out_optab, code_to_optab)
6783         (vcond_gen_code, vcondu_gen_code, movmem_optab, setmem_optab)
6784         (cmpstr_optab, cmpstrn_optab, cmpmem_optab, sync_add_optab)
6785         (sync_sub_optab, sync_ior_optab, sync_and_optab, sync_xor_optab)
6786         (sync_nand_optab, sync_old_add_optab, sync_old_sub_optab)
6787         (sync_old_ior_optab, sync_old_and_optab, sync_old_xor_optab)
6788         (sync_old_nand_optab, sync_new_add_optab, sync_new_sub_optab)
6789         (sync_new_ior_optab, sync_new_and_optab, sync_new_xor_optab)
6790         (sync_new_nand_optab): Redefine as macros.
6791         (sync_compare_and_swap, sync_lock_test_and_set, sync_lock_release):
6792         Delete.
6793         (direct_optab_index): New enum.
6794         (direct_optab_d): New structure.
6795         (direct_optab): New typedef.
6796         (direct_optab_table): Declare.
6797         (direct_optab_handler, set_direct_optab_handler): New functions.
6798         (sync_compare_and_swap_optab, sync_lock_test_and_set_optab)
6799         (sync_lock_release_optab): New macros.
6800         * optabs.c (direct_optab_table): New variable.
6801         (movcc_gen_code, vcond_gen_code, vcondu_gen_code): Delete.
6802         (prepare_cmp_insn): Use direct_optab_handler for cmpmem_optab,
6803         cmpstr_optab and cmpstrn_optab.
6804         (emit_conditional_move): Likewise for movcc_optab.
6805         (can_conditionally_move_p): Likewise for movcc_gen_code.
6806         (init_insn_codes): Clear direct_optab_table.
6807         (init_optabs): Don't initialize the new "direct optabs" here.
6808         (get_vcond_icode): Use direct_optab_handler for vcondu_gen_code and
6809         vcond_gen_code.
6810         (expand_val_compare_and_swap): Likewise sync_compare_and_swap_optab.
6811         (expand_bool_compare_and_swap): Likewise sync_compare_and_swap_optab.
6812         (expand_compare_and_swap_loop): Likewise sync_compare_and_swap_optab.
6813         (expand_sync_operation): Likewise other sync_*_optabs.
6814         (expand_sync_fetch_operation): Likewise.  Rename sync_compare_and_swap
6815         to sync_compare_and_swap_optab.
6816         (expand_sync_lock_test_and_set): Use direct_optab_handler for
6817         sync_lock_test_and_set and sync_compare_and_swap, adding "_optab"
6818         to the names of both.
6819         * builtins.c (expand_builtin_strcmp): Use direct_optab_handler for
6820         cmpstr_optab and cmpstrn_optab.
6821         (expand_builtin_lock_release): Likewise sync_lock_release.
6822         * expr.c (movmem_optab, setmem_optab, cmpstr_optab, cmpstrn_optab)
6823         (cmpmem_optab, sync_add_optab, sync_sub_optab, sync_ior_optab)
6824         (sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab)
6825         (sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab)
6826         (sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab)
6827         (sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab)
6828         (sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap)
6829         (sync_lock_test_and_set, sync_lock_release): Delete.
6830         (emit_block_move_via_movmem): Use direct_optab_handler for movmem_optab.
6831         (emit_block_move_via_setmem): Use direct_optab_handler for setmem_optab.
6832         * genopinit.c (optabs): Use set_direct_optab_handler for the new
6833         macro optabs.
6834         * omp-low.c (expand_omp_atomic_fetch_op): Update the type of
6835         the "optab" local variable.  Use direct_optab_handler for optab and
6836         sync_compare_and_swap_optab.
6837         * reload1.c (reload_in_optab, reload_out_optab): Delete.
6838         * targhooks.c (default_secondary_reload): Use direct_optab_handler for
6839         reload_in_optab and reload_out_optab.
6840         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
6841         * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
6842         * config/pa/pa.c (pa_secondary_reload): Likewise.
6843         * java/builtins.c (compareAndSwapInt_builtin): Use direct_optab_handler
6844         for sync_compare_and_swap, renaming it to sync_compare_and_swap_optab.
6845         (compareAndSwapLong_builtin, compareAndSwapObject_builtin): Likewise.
6846         (VMSupportsCS8_builtin): Likewise.
6847
6848 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
6849
6850         * optabs.h (optab_handlers): Change type of insn_code to int.
6851         (optab_handler, set_optab_handler, convert_optab_handler)
6852         (set_convert_optab_handler): Treat the insn_code field as "insn_code -
6853         CODE_FOR_nothing".
6854         * optabs.c (optab_table, convert_optab_table): Always zero-initialize.
6855         (init_insn_codes): Zero both the above arrays.
6856         (init_optabs): Never call init_insn_codes first time around.
6857
6858 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
6859
6860         * optabs.h (optab_handler, convert_optab_handler): Turn into
6861         inline functions that return an insn code.
6862         (set_optab_handler, set_convert_optab_handler): New functions.
6863         * builtins.c: Replace optab_handler(X)->insn_code with
6864         optab_handler or set_optab_handler thoughout.  Likewise
6865         convert_optab_handler(X)->insn_code with convert_optab_handler
6866         and set_convert_optab_handler.
6867         * expmed.c, expr.c, genopinit.c, ifcvt.c, optabs.c, reload.c,
6868         reload1.c, stmt.c, targhooks.c, tree-ssa-loop-prefetch.c,
6869         tree-ssa-math-opts.c, tree-vect-data-refs.c, tree-vect-generic.c,
6870         tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
6871         tree-vect-stmts.c, config/m32c/m32c.c, config/rs6000/rs6000.c,
6872         config/spu/spu.c: Likewise.
6873
6874 2010-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
6875
6876         PR target/44531
6877         * config.gcc (sh*-*-*): Use regular expressions instead of
6878         the 'i' modifier for sed substitutions.
6879
6880 2010-07-04  Jeremie Salvucci  <jeremie.salvucci@free.fr>
6881
6882         * gimple.c (gimple_body): Comments added.
6883
6884 2010-07-04  Richard Guenther  <rguenther@suse.de>
6885
6886         PR middle-end/44809
6887         * gimplify.c (gimplify_expr): Properly build a MEM_REF instead
6888         of an INDIRECT_REF.
6889
6890 2010-07-04  Richard Guenther  <rguenther@suse.de>
6891
6892         PR tree-optimization/44479
6893         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid
6894         extra SSA name copy statements which preserves points-to
6895         information.
6896         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
6897         Copy points-to information for all pointers.  Properly handle
6898         MEM_REFs.
6899         (vect_create_data_ref_ptr): Likewise.  Avoid extra SSA name
6900         copy statements.
6901         * Makefile.in (tree-ssa-loop-ivopts.o): Add tree-ssa-propagate.h
6902         dependency.
6903
6904 2010-07-04  Richard Guenther  <rguenther@suse.de>
6905
6906         PR middle-end/44785
6907         * tree-inline.c (initialize_inlined_parameters): Do not
6908         re-use pointer-map slot over remap_type call.
6909
6910 2010-07-04  Richard Guenther  <rguenther@suse.de>
6911
6912         * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix last commit.
6913
6914 2010-07-04  Richard Guenther  <rguenther@suse.de>
6915
6916         PR tree-optimization/44656
6917         * tree-ssa-sccvn.c (vn_reference_lookup_3): Try disambiguation
6918         again after value-replacing in the defintions lhs.
6919
6920 2010-07-04  Ira Rosen  <irar@il.ibm.com>
6921             Revital Eres  <eres@il.ibm.com>
6922
6923         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST):
6924         Document new arguments.
6925         * doc/tm.texi: Regenerate.
6926         * targhooks.c (default_builtin_vectorization_cost): Add new arguments.
6927         Handle unaligned store.
6928         * targhooks.h (default_builtin_vectorization_cost): Add new arguments.
6929         * target.def (builtin_vectorization_cost): Add new arguments.
6930         * target.h (enum vect_cost_for_stmt): Add unaligned_store.
6931         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Take number
6932         of iterations of prolog loop directly from LOOP_PEELING_FOR_ALIGNMENT.
6933         (vect_vfa_segment_size): Fix indentation.
6934         * tree-vectorizer.h (struct _vect_peel_info): New.
6935         (struct _vect_peel_extended_info): New.
6936         (struct _loop_vec_info): Add new field for peeling hash table and a
6937         macro for its access.
6938         (VECT_MAX_COST): Define.
6939         (vect_get_load_cost): Declare.
6940         (vect_get_store_cost, vect_get_known_peeling_cost,
6941         vect_get_single_scalar_iteraion_cost): Likewise.
6942         (vect_supportable_dr_alignment): Add new argument.
6943         * tree-vect-loop.c (new_loop_vec_info): Initialize peeling hash table
6944         field.
6945         (destroy_loop_vec_info): Free peeling hash table.
6946         (vect_analyze_loop_form): Update call to builtin_vectorization_cost.
6947         (vect_analyze_loop): Move vect_enhance_data_refs_alignment before
6948         vect_analyze_slp. Fix indentation.
6949         (vect_get_single_scalar_iteraion_cost): New function.
6950         (vect_get_known_peeling_cost): Likewise.
6951         (vect_estimate_min_profitable_iters): Rename byte_misalign to npeel.
6952         Call vect_get_single_scalar_iteraion_cost instead of cost_for_stmt per
6953         statement. Move outside cost calculation inside unknown peeling case.
6954         Call vect_get_known_peeling_cost for known amount of peeling.
6955         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Add data
6956         reference to the print message of forced alignment.
6957         (vect_verify_datarefs_alignment): Update call to
6958         vect_supportable_dr_alignment.
6959         (vect_get_data_access_cost): New function.
6960         (vect_peeling_hash, vect_peeling_hash_eq, vect_peeling_hash_insert,
6961         vect_peeling_hash_get_most_frequent, vect_peeling_hash_get_lowest_cost,
6962         vect_peeling_hash_choose_best_peeling): Likewise.
6963         (vect_enhance_data_refs_alignment): Fix documentation. Use hash table
6964         to store all the accesses in the loop and find best possible access to
6965         align using peeling for known alignment case. For unknown alignment
6966         check if stores are preferred or if peeling is worthy.
6967         (vect_find_same_alignment_drs): Analyze pairs of loads too.
6968         (vect_supportable_dr_alignment): Add new argument and check aligned
6969         accesses according to it.
6970         * tree-vect-stmts.c (vect_get_stmt_cost): New function.
6971         (cost_for_stmt): Call vect_get_stmt_cost.
6972         (vect_model_simple_cost): Likewise.
6973         (vect_model_store_cost): Call vect_get_stmt_cost. Call
6974         vect_get_store_cost to calculate the cost of the statement.
6975         (vect_get_store_cost): New function.
6976         (vect_model_load_cost): Call vect_get_stmt_cost. Call
6977         vect_get_load_cost to calculate the cost of the statement.
6978         (vect_get_load_cost): New function.
6979         (vectorizable_store): Update call to vect_supportable_dr_alignment.
6980         (vectorizable_load): Likewise.
6981         * config/spu/spu.c (spu_builtin_vectorization_cost): Add new arguments.
6982         * config/i386/i386.c (ix86_builtin_vectorization_cost): Add new
6983         arguments. Handle unaligned store.
6984         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): New.
6985         (rs6000_builtin_support_vector_misalignment): Return true for word and
6986         double word alignments for VSX.
6987         * tree-vect-slp.c (vect_build_slp_tree): Update calls to
6988         vect_supportable_dr_alignment and builtin_vectorization_cost.
6989
6990 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6991
6992         PR target/44597
6993         * config/pa/predicates.md (prefetch_cc_operand): Remove.
6994         (prefetch_nocc_operand): Likewise.
6995         * config/pa/pa.md (prefetch): Revise expander to use prefetch_20.
6996         (prefetch_20): New insn.
6997         (prefetch_cc): Remove.
6998         (prefetch_nocc): Likewise.
6999
7000 2010-07-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7001
7002         * expr.c (vector_mode_valid_p): Move to c-common.c.
7003         * expr.h (vector_mode_valid_p): Do not declare here.
7004         * system.h: Poison GCC_EXPR_H in front-ends.
7005         * Makefile.in: Update dependencies.
7006
7007 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7008
7009         PR target/44705
7010         * config/pa/pa.h (GO_IF_LEGITIMATE_ADDRESS): Reject LABEL_REF.
7011
7012 2010-07-03  Jan Hubicka  <jh@suse.cz>
7013
7014         * timevar.def (TV_OUT_OF_SSA, TV_VAR_EXPAND, TV_POST_EXPAND,
7015         TV_VAR_TRACKING_DATAFLOW, TV_VAR_TRACKING_EMIT): New timevars.
7016         * cfgexpand.c (gimple_expand_cfg): Use new timevars.
7017         * var-tracking.c (vt_find_locations, variable_tracking_main_1):
7018         Likewise.
7019
7020         * lto-stramer-out.c (pass_ipa_lto_gimple_out, pass_ipa_lto_finish_out):
7021         Update timevars.V
7022         * timevar.def (TV_IPA_LTO_GIMPLE_IO, TV_IPA_LTO_DECL_IO): Remove.
7023         (TV_IPA_LTO_GIMPLE_IN, TV_IPA_LTO_GIMPLE_OUT, TV_IPA_LTO_DECL_IN,
7024         TV_IPA_LTO_DECL_OUT): New.
7025         * lto.c (read_cgraph_and_symbols, materialize_cgraph): Update timevars.
7026
7027 2010-07-03  Jan Hubicka  <jh@suse.cz>
7028
7029         * ipa-inline.c (update_edge_key): Break out from ...
7030         update_callers_keys): ... here;
7031         (update_callee_keys): Update only the edges from caller to callee.
7032         (update_all_calle_keys): Do what update_calle_keys did.
7033         (decide_inlining_of_small_functions): Avoid recomputing of all
7034         callees when badness increase.
7035
7036 2010-07-03  Jie Zhang  <jie@codesourcery.com>
7037
7038         * config/arm/arm.c (arm_attr_length_move_neon): New.
7039         * config/arm/arm-protos.h (arm_attr_length_move_neon): Declare.
7040         * config/arm/neon.md (define_mode_attr V_slen): Remove.
7041         (neon_mov<mode> for VSTRUCT): Use arm_attr_length_move_neon
7042         to compute length attribute.
7043
7044 2010-07-03  Jie Zhang  <jie@codesourcery.com>
7045
7046         * config/arm/vfp.md (*push_multi_vfp): Use vfp_register_operand
7047         as predicate for operand 1 and remove its constraint.
7048         * config/arm/predicates.md (vfp_register_operand): New.
7049         * config/arm/arm.md (*push_multi): Remove the constraint of operand 1.
7050         (*push_fp_multi): Likewise.
7051
7052 2010-07-03  Eric Botcazou  <ebotcazou@adacore.com>
7053
7054         * gimplify.c (mostly_copy_tree_r): Deal with BIND_EXPR.
7055
7056 2010-07-03  Jan Hubicka  <jh@suse.cz>
7057
7058         * config/i386/i386.c (override_options): Revert accidental commit.
7059
7060 2010-07-02  Le-Chun Wu  <lcwu@google.com>
7061
7062         PR c++/44128
7063         * doc/invoke.texi: Update documentation of -Wshadow.
7064
7065 2010-07-02  Daniel Jacobowitz  <dan@codesourcery.com>
7066             Julian Brown  <julian@codesourcery.com>
7067             Sandra Loosemore <sandra@codesourcery.com>
7068
7069         * config/arm/arm.c (arm_canonicalize_comparison): Canonicalize DImode
7070         comparisons.  Adjust to take both operands.
7071         (arm_select_cc_mode): Handle DImode comparisons.
7072         (arm_gen_compare_reg): Generate a scratch register for DImode
7073         comparisons which require one.  Use xor for Thumb equality checks.
7074         (arm_const_double_by_immediates): New.
7075         (arm_print_operand): Allow 'Q' and 'R' for constants.
7076         (get_arm_condition_code): Handle new CC_CZmode and CC_NCVmode.
7077         * config/arm/arm.h (CANONICALIZE_COMPARISON): Always use
7078         arm_canonicalize_comparison.
7079         * config/arm/arm-modes.def: Add CC_CZmode and CC_NCVmode.
7080         * config/arm/arm-protos.h (arm_canonicalize_comparison): Update
7081         prototype.
7082         (arm_const_double_by_immediates): Declare.
7083         * config/arm/constraints.md (Di): New constraint.
7084         * config/arm/predicates.md (arm_immediate_di_operand)
7085         (arm_di_operand, cmpdi_operand): New.
7086         * config/arm/arm.md (cbranchdi4): Handle non-Cirrus also.
7087         (*arm_cmpdi_insn, *arm_cmpdi_unsigned)
7088         (*arm_cmpdi_zero, *thumb_cmpdi_zero): New insns.
7089         (cstoredi4): Handle non-Cirrus also.
7090
7091 2010-07-02  Julian Brown  <julian@codesourcery.com>
7092             Sandra Loosemore <sandra@codesourcery.com>
7093
7094         PR target/43703
7095         * config/arm/vec-common.md (add<mode>3, sub<mode>3, smin<mode>3)
7096         (smax<mode>3): Disable for NEON float modes when
7097         flag_unsafe_math_optimizations is false.
7098         * config/arm/neon.md (*add<mode>3_neon, *sub<mode>3_neon)
7099         (*mul<mode>3_neon)
7100         (mul<mode>3add<mode>_neon, mul<mode>3neg<mode>add<mode>_neon)
7101         (reduc_splus_<mode>, reduc_smin_<mode>, reduc_smax_<mode>): Disable
7102         for NEON float modes when flag_unsafe_math_optimizations is false.
7103         (quad_halves_<code>v4sf): Only enable if
7104         flag_unsafe_math_optimizations is true.
7105         * doc/invoke.texi (ARM Options): Add note about floating point
7106         vectorization requiring -funsafe-math-optimizations.
7107
7108 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
7109             Julian Brown  <julian@codesourcery.com>
7110
7111         * config/arm/neon.md (UNSPEC_VABA): Delete.
7112         (UNSPEC_VABAL): Delete.
7113         (UNSPEC_VABS): Delete.
7114         (UNSPEC_VMUL_N): Delete.
7115         (adddi3_neon): New.
7116         (subdi3_neon): New.
7117         (mul<mode>3add<mode>_neon): Make the pattern named.
7118         (mul<mode>3neg<mode>add<mode>_neon): Likewise.
7119         (neon_vadd<mode>): Replace with define_expand, and move the remaining
7120         unspec parts...
7121         (neon_vadd<mode>_unspec): ...to this.
7122         (neon_vmla<mode>, neon_vmla<mode>_unspec): Likewise.
7123         (neon_vlms<mode>, neon_vmls<mode>_unspec): Likewise.
7124         (neon_vsub<mode>, neon_vsub<mode>_unspec): Likewise.
7125         (neon_vaba<mode>): Rewrite in terms of vabd.
7126         (neon_vabal<mode>): Rewrite in terms of vabdl.
7127         (neon_vabs<mode>): Rewrite without unspec.
7128         * config/arm/arm.md (*arm_adddi3): Disable for TARGET_NEON.
7129         (*arm_subdi3): Likewise.
7130         * config/arm/neon.ml (Vadd, Vsub): Split out 64-bit variants and add
7131         No_op attribute to disable assembly output checks.
7132         * config/arm/arm_neon.h: Regenerated.
7133         * doc/arm-neon-intrinsics.texi: Regenerated.
7134
7135 2010-07-02  Jan Hubicka  <jh@suse.cz>
7136
7137         * ipa-split.c (split_function): For aggregate values, set the return
7138         slot optimization bit.  When passing DECL_BY_REFERENCE, produce
7139         *<retval> = fncall.part ().
7140         (execute_split_functions): Do not care about DECL_BY_REFERENCE.
7141
7142 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
7143
7144         * config/arm/neon.md (UNSPEC_VAND): Delete.
7145         (UNSPEC_VBIC): Delete.
7146         (UNSPEC_VCLZ): Delete.
7147         (UNSPEC_VCNT): Delete.
7148         (UNSPEC_VEOR): Delete.
7149         (UNSPEC_VORN): Delete.
7150         (UNSPEC_VORR): Delete.
7151         (iordi3_neon): Rewrite RTL without unspec.  Add alternatives to handle
7152         core registers too.
7153         (anddi3_neon): Likewise.
7154         (orndi3_neon): Likewise.
7155         (bicdi3_neon): Likewise.
7156         (xordi3_neon): Likewise.
7157         (neon_vclz<mode>): Rewrite as define_expand and clz<mode>2 to get
7158         rid of unspec and handle unused operand.
7159         (neon_vcnt<mode>): Similarly, with popcount<mode>2.
7160         * config/arm/predicates.md (imm_for_neon_logic_operand):
7161         Require TARGET_NEON.
7162         (imm_for_neon_inv_logic_operand): Likewise.
7163         * config/arm/arm.md (define_split for logical_binary_operator):
7164         Disable for NEON registers.
7165         (anddi3): Add new define_expand, and rename the insn.  Disable
7166         this insn for NEON, where anddi3_neon now applies.
7167         (*anddi_notdi_di): Disable for TARGET_NEON, where bicdi3_neon applies.
7168         (iordi3): As for anddi3.
7169         (xordi3): Likewise.
7170         * config/arm/neon.ml (Vand): Split DImode variants and mark them
7171         as No_op to disable testing for exact instruction match.
7172         (Vorr): Likewise.
7173         (Veor): Likewise.
7174         (Vbic): Likewise.
7175         (Vorn): Likewise.
7176         * config/arm/arm_neon.h: Regenerated.
7177         * doc/arm-neon-intrinsics.texi: Regenerated.
7178
7179 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
7180
7181         * expr.h (emit_stack_probe): Declare.
7182         * explow.c (emit_stack_probe): Make global.
7183         (anti_adjust_stack_and_probe): Fix comments.
7184         * config/sparc/linux.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
7185         * config/sparc/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
7186         * config/sparc/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
7187         * config/sparc/sparc.c: Include except.h.
7188         (sparc_emit_probe_stack_range): New function.
7189         (output_probe_stack_range): Likewise.
7190         (sparc_expand_prologue): Invoke sparc_emit_probe_stack_range if static
7191         built-in stack checking is enabled.
7192         * config/sparc/sparc-protos.h (output_probe_stack_range): Declare.
7193         * config/sparc/sparc.md (UNSPECV_PROBE_STACK_RANGE): New constant.
7194         (probe_stack_range): New insn.
7195
7196 2010-07-02  Richard Guenther  <rguenther@suse.de>
7197
7198         PR target/43958
7199         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Use pointer arithmetic
7200         for argument alignment.
7201
7202 2010-07-02  Jan Hubicka  <jh@suse.cz>
7203
7204         * ipa-split.c (verify_non_ssa_vars): Break out from ...; perform DFS
7205         walk backwards from entry_bb to check only those basic block of header
7206         that might lead to execution of split part.
7207         (consider_split) ... here.
7208         (find_return_bb): Allow assignment in return BB.
7209         (find_retval): New.
7210         (split_function): Fix name of cloned function; take care of updating
7211         return value in return_bb containing move.
7212
7213 2010-07-02  Andreas Schwab  <schwab@linux-m68k.org>
7214
7215         PR target/44771
7216         * config/m68k/m68k.c (m68k_expand_prologue): Remove set but not
7217         used variable insn.
7218
7219 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
7220
7221         * implicit-zee.c (combine_reaching_defs): Fix long lines.
7222         (is_set_with_extension_DI): Delete.
7223         (struct zero_extend_info): New structure.
7224         (add_removable_zero_extend): New function.
7225         (find_removable_zero_extends): Use note_stores to find SETs.
7226         (find_and_remove_ze): Fix long line, remove superfluous parentheses.
7227
7228 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
7229
7230         * tree-ssa-loop-prefetch.c (compute_miss_rate): Rename to
7231         is_miss_rate_acceptable. Pull total_positions computation
7232         out of the loops.  Early return if miss_positions exceeds
7233         the acceptable threshold.
7234         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Call
7235         is_miss_rate_acceptable after renaming of compute_miss_rate.
7236
7237 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
7238
7239         PR middle-end/44576
7240         * tree-ssa-loop-prefetch.c (compute_miss_rate): Return 1000 (out
7241         of 1000) for miss rate if the address diference is greater than or
7242         equal to the cache line size (the two reference will never hit the
7243         same cache line).
7244
7245 2010-07-02  Bernd Schmidt  <bernds@codesourcery.com>
7246
7247         PR target/42835
7248         * config/arm/arm-modes.def (CC_NOTB): New mode.
7249         * config/arm/arm.c (get_arm_condition_code): Handle it.
7250         * config/arm/thumb2.md (thumb2_compare_scc): Delete pattern.
7251         * config/arm/arm.md (subsi3_compare0_c): New pattern.
7252         (compare_scc): Now a define_and_split.  Add a number of extra
7253         splitters before it.
7254
7255         PR target/42172
7256         * config/arm/arm.c (thumb1_rtx_costs): Improve support for SIGN_EXTEND
7257         and ZERO_EXTEND.
7258         (arm_rtx_costs_1): Likewise.
7259         (arm_size_rtx_costs): Use arm_rtx_costs_1 for these codes.
7260         * config/arm/arm.md (is_arch6): New attribute.
7261         (zero_extendhisi2, zero_extendqisi2, extendhisi2,
7262         extendqisi2): Tighten the code somewhat, avoiding invalid
7263         RTL to occur in the expander patterns.
7264         (thumb1_zero_extendhisi2): Merge with thumb1_zero_extendhisi2_v6.
7265         (thumb1_zero_extendhisi2_v6): Delete.
7266         (thumb1_extendhisi2): Merge with thumb1_extendhisi2_v6.
7267         (thumb1_extendhisi2_v6): Delete.
7268         (thumb1_extendqisi2): Merge with thumb1_extendhisi2_v6.
7269         (thumb1_extendqisi2_v6): Delete.
7270         (zero_extendhisi2 for register input splitter): New.
7271         (zero_extendqisi2 for register input splitter): New.
7272         (thumb1_extendhisi2 for register input splitter): New.
7273         (extendhisi2 for register input splitter): New.
7274         (extendqisi2 for register input splitter): New.
7275         (TARGET_THUMB1 extendqisi2 for memory input splitter): New.
7276         (arm_zero_extendhisi2): Allow nonimmediate_operand for operand 1,
7277         and add support for a register alternative requiring a split.
7278         (thumb1_zero_extendqisi2): Likewise.
7279         (arm_zero_extendqisi2): Likewise.
7280         (arm_extendhisi2): Likewise.
7281         (arm_extendqisi2): Likewise.
7282
7283 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
7284
7285         * config/arm/arm.c (neon_vdup_constant): Expand into canonical RTL
7286         instead of an unspec.
7287         (neon_expand_vector_init): Likewise.
7288         * config/arm/neon.md (UNSPEC_VCOMBINE): Delete.
7289         (UNSPEC_VDUP_LANE): Delete.
7290         (UNSPEC VDUP_N): Delete.
7291         (UNSPEC_VGET_HIGH): Delete.
7292         (UNSPEC_VGET_LANE): Delete.
7293         (UNSPEC_VGET_LOW): Delete.
7294         (UNSPEC_VMVN): Delete.
7295         (UNSPEC_VSET_LANE): Delete.
7296         (V_double_vector_mode): New.
7297         (vec_set<mode>_internal): Make code emitted match that for the
7298         corresponding intrinsics.
7299         (vec_setv2di_internal): Likewise.
7300         (neon_vget_lanedi): Rewrite to expand into emit_move_insn.
7301         (neon_vget_lanev2di): Rewrite to expand into vec_extractv2di.
7302         (neon_vset_lane<mode>): Combine double and quad patterns and
7303         expand into vec_set<mode>_internal instead of UNSPEC_VSET_LANE.
7304         (neon_vset_lanedi): Rewrite to expand into emit_move_insn.
7305         (neon_vdup_n<mode>): Rewrite RTL without unspec.
7306         (neon_vdup_ndi): Rewrite as define_expand and use emit_move_insn.
7307         (neon_vdup_nv2di): Rewrite RTL without unspec and merge with
7308         with neon_vdup_lanev2di, adjusting the pattern from the latter
7309         to be predicable for consistency.
7310         (neon_vdup_lane<mode>_internal): New.
7311         (neon_vdup_lane<mode>): Turn into a define_expand and rewrite
7312         to avoid using an unspec.
7313         (neon_vdup_lanedi): Rewrite RTL pattern to avoid unspec.
7314         (neon_vdup_lanev2di): Turn into a define_expand.
7315         (neon_vcombine): Rewrite pattern to eliminate UNPSEC_VCOMBINE.
7316         (neon_vget_high<mode>): Replace with....
7317         (neon_vget_highv16qi): New pattern using canonical RTL.
7318         (neon_vget_highv8hi): Likewise.
7319         (neon_vget_highv4si): Likewise.
7320         (neon_vget_highv4sf): Likewise.
7321         (neon_vget_highv2di): Likewise.
7322         (neon_vget_low<mode>): Replace with....
7323         (neon_vget_lowv16qi): New pattern using canonical RTL.
7324         (neon_vget_lowv8hi): Likewise.
7325         (neon_vget_lowv4si): Likewise.
7326         (neon_vget_lowv4sf): Likewise.
7327         (neon_vget_lowv2di): Likewise.
7328
7329         * config/arm/neon.ml (Vget_lane): Add No_op attribute to suppress
7330         test for this emitting vmov.
7331         (Vset_lane): Likewise.
7332         (Vdup_n): Likewise.
7333         (Vmov_n): Likewise.
7334
7335         * doc/arm-neon-intrinsics.texi: Regenerated.
7336
7337 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
7338
7339         * config/arm/neon.md (vec_extractv2di): Correct error in register
7340         numbering to reconcile with neon_vget_lanev2di.
7341
7342 2010-07-02  Richard Guenther  <rguenther@suse.de>
7343
7344         * tree-ssa-structalias.c (pt_solution_set_var): New function.
7345         * tree-ssa-alias.h (pt_solution_set_var): Declare.
7346         * tree-ssa-loop-ivopts.c (copy_ref_info): Also copy or create
7347         points-to information.
7348
7349 2010-07-02  Christian Borntraeger  <borntraeger@de.ibm.com>
7350
7351         * config/s390/s390.c (override_options): Adopt prefetching
7352         at -O3 to handle flag_prefetch_loop_arrays as a tristate.
7353
7354 2010-07-02  Jan Hubicka  <jh@suse.cz>
7355
7356         * df-problems.c (df_kill_notes): Do not collect dead  notes.
7357         (df_set_note): Just call add_reg_note.
7358         (df_set_unused_notes_for_mw, df_set_dead_notes_for_mw,
7359         df_create_unused_note): Do not deal with lists of old notes.
7360         (df_note_bb_compute): Likewise.
7361
7362 2010-07-02  Richard Guenther  <rguenther@suse.de>
7363
7364         * tree-ssa-structalias.c (find_func_aliases): Handle
7365         pointer alignment via BIT_AND_EXPR.
7366         * tree-vrp.c (extract_range_from_binary_expr): Likewise.
7367
7368 2010-07-02  Richard Guenther  <rguenther@suse.de>
7369
7370         * tree-data-ref.c (initialize_data_dependence_relation): Handle
7371         mismatching number of dimensions properly.
7372
7373 2010-07-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7374
7375         PR target/44707
7376         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Recognize
7377         (lo_sum (high ...) ...) patterns generated by earlier passes.
7378
7379 2010-07-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7380
7381         * doc/install.texi (Prerequisites): Document Perl requirement on
7382         Solaris 2.
7383         (Specific, *-*-solaris2*): Document GNU c++filt requirement.
7384
7385 2010-07-02  Richard Guenther  <rguenther@suse.de>
7386
7387         PR middle-end/44777
7388         * tree-cfg.c (gimple_block_ends_with_call_p): Handle empty BBs.
7389
7390 2010-07-02  Jan Hubicka  <jh@suse.cz>
7391
7392         PR middle-end/44706
7393         * predict.c (predict_paths_for_bb): Handle case when control dependence
7394         BB has only abnormal edges.
7395
7396 2010-07-02  Richard Guenther  <rguenther@suse.de>
7397
7398         PR tree-optimization/44748
7399         * tree-ssa-ccp.c (fold_const_aggregate_ref): Properly handle
7400         the embedded conversion in MEM_REFs.
7401
7402 2010-07-01  López-Ibáñez  <manu@gcc.gnu.org>
7403
7404         * reload.c: Include toplev.h.
7405         * recog.c:  Likewise.
7406         * Makefile.in: Adjust dependencies.
7407
7408 2010-07-01  Jakub Jelinek  <jakub@redhat.com>
7409
7410         PR debug/44694
7411         * dwarf2out.c (reg_loc_descriptor): For eliminated arg_pointer_rtx
7412         or frame_pointer_rtx use DW_OP_fbreg offset DW_OP_stack_value.
7413
7414 2010-07-01  Richard Guenther  <rguenther@suse.de>
7415
7416         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use unsigned
7417         types for offsets.
7418
7419 2010-07-01  Joern Rennecke  <joern.rennecke@embecosm.com>
7420
7421         PR target/44732
7422         * config/ia64/ia64.c (ia64_register_move_cost): Remove stray '{'.
7423         Fix argument types.
7424
7425 2010-07-01  Bernd Schmidt  <bernds@codesourcery.com>
7426
7427         PR target/44727
7428         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
7429         Make sure operand 0 dies.
7430
7431 2010-07-01  Richard Guenther  <rguenther@suse.de>
7432
7433         PR middle-end/42834
7434         PR middle-end/44468
7435         * doc/gimple.texi (is_gimple_mem_ref_addr): Document.
7436         * doc/generic.texi (References to storage): Document MEM_REF.
7437         * tree-pretty-print.c (dump_generic_node): Handle MEM_REF.
7438         (print_call_name): Likewise.
7439         * tree.c (recompute_tree_invariant_for_addr_expr): Handle MEM_REF.
7440         (build_simple_mem_ref_loc): New function.
7441         (mem_ref_offset): Likewise.
7442         * tree.h (build_simple_mem_ref_loc): Declare.
7443         (build_simple_mem_ref): Define.
7444         (mem_ref_offset): Declare.
7445         * fold-const.c: Include tree-flow.h.
7446         (operand_equal_p): Handle MEM_REF.
7447         (build_fold_addr_expr_with_type_loc): Likewise.
7448         (fold_comparison): Likewise.
7449         (fold_unary_loc): Fold
7450         VIEW_CONVERT_EXPR <T1, MEM_REF <T2, ...>> to MEM_REF <T1, ...>.
7451         (fold_binary_loc): Fold MEM[&MEM[p, CST1], CST2] to MEM[p, CST1 + CST2],
7452         fold MEM[&a.b, CST2] to MEM[&a, offsetof (a, b) + CST2].
7453         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle MEM_REF.
7454         (ptr_deref_may_alias_ref_p_1): Likewise.
7455         (ao_ref_base_alias_set): Properly differentiate base object for
7456         offset and TBAA.
7457         (ao_ref_init_from_ptr_and_size): Use MEM_REF.
7458         (indirect_ref_may_alias_decl_p): Handle MEM_REFs properly.
7459         (indirect_refs_may_alias_p): Likewise.
7460         (refs_may_alias_p_1): Likewise.  Remove pointer SSA name def
7461         chasing code.
7462         (ref_maybe_used_by_call_p_1): Handle MEM_REF.
7463         (call_may_clobber_ref_p_1): Likewise.
7464         * dwarf2out.c (loc_list_from_tree): Handle MEM_REF.
7465         * expr.c (expand_assignment): Handle MEM_REF.
7466         (store_expr): Handle MEM_REFs from STRING_CSTs.
7467         (store_field): If expanding a MEM_REF of a non-addressable
7468         decl use bitfield operations.
7469         (get_inner_reference): Handle MEM_REF.
7470         (expand_expr_addr_expr_1): Likewise.
7471         (expand_expr_real_1): Likewise.
7472         * tree-eh.c (tree_could_trap_p): Handle MEM_REF.
7473         * alias.c (ao_ref_from_mem): Handle MEM_REF.
7474         (get_alias_set): Likewise.  Properly handle VIEW_CONVERT_EXPRs.
7475         * tree-data-ref.c (dr_analyze_innermost): Handle MEM_REF.
7476         (dr_analyze_indices): Likewise.
7477         (dr_analyze_alias): Likewise.
7478         (object_address_invariant_in_loop_p): Likewise.
7479         * gimplify.c (mark_addressable): Handle MEM_REF.
7480         (gimplify_cond_expr): Build MEM_REFs.
7481         (gimplify_modify_expr_to_memcpy): Likewise.
7482         (gimplify_init_ctor_preeval_1): Handle MEM_REF.
7483         (gimple_fold_indirect_ref): Adjust.
7484         (gimplify_expr): Handle MEM_REF.  Gimplify INDIRECT_REF to MEM_REF.
7485         * tree.def (MEM_REF): New tree code.
7486         * tree-dfa.c: Include toplev.h.
7487         (get_ref_base_and_extent): Handle MEM_REF.
7488         (get_addr_base_and_unit_offset): New function.
7489         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle MEM_REF.
7490         * gimple-fold.c (may_propagate_address_into_dereference): Handle
7491         MEM_REF.
7492         (maybe_fold_offset_to_array_ref): Allow possibly out-of bounds
7493         accesses if the array has just one dimension.  Remove always true
7494         parameter.  Do not require type compatibility here.
7495         (maybe_fold_offset_to_component_ref): Remove.
7496         (maybe_fold_stmt_indirect): Remove.
7497         (maybe_fold_reference): Remove INDIRECT_REF handling.
7498         Fold back to non-MEM_REF.
7499         (maybe_fold_offset_to_address): Simplify.  Deal with type
7500         mismatches here.
7501         (maybe_fold_reference): Likewise.
7502         (maybe_fold_stmt_addition): Likewise.  Also handle
7503         &ARRAY + I in addition to &ARRAY[0] + I.
7504         (fold_gimple_assign): Handle ADDR_EXPR of MEM_REFs.
7505         (gimple_get_relevant_ref_binfo): Handle MEM_REF.
7506         * cfgexpand.c (expand_debug_expr): Handle MEM_REF.
7507         * tree-ssa.c (useless_type_conversion_p): Make most pointer
7508         conversions useless.
7509         (warn_uninitialized_var): Handle MEM_REF.
7510         (maybe_rewrite_mem_ref_base): New function.
7511         (execute_update_addresses_taken): Implement re-writing of MEM_REFs
7512         to SSA form.
7513         * tree-inline.c (remap_gimple_op_r): Handle MEM_REF, remove
7514         INDIRECT_REF handling.
7515         (copy_tree_body_r): Handle MEM_REF.
7516         * gimple.c (is_gimple_addressable): Adjust.
7517         (is_gimple_address): Likewise.
7518         (is_gimple_invariant_address): ADDR_EXPRs of MEM_REFs with
7519         invariant base are invariant.
7520         (is_gimple_min_lval): Adjust.
7521         (is_gimple_mem_ref_addr): New function.
7522         (get_base_address): Handle MEM_REF.
7523         (count_ptr_derefs): Likewise.
7524         (get_base_loadstore): Likewise.
7525         * gimple.h (is_gimple_mem_ref_addr): Declare.
7526         (gimple_call_fndecl): Handle invariant MEM_REF addresses.
7527         * tree-cfg.c (verify_address): New function, split out from ...
7528         (verify_expr): ... here.  Use for verifying ADDR_EXPRs and
7529         the address operand of MEM_REFs.  Verify MEM_REFs.  Reject
7530         INDIRECT_REFs.
7531         (verify_types_in_gimple_min_lval): Handle MEM_REF.  Disallow
7532         INDIRECT_REF.  Allow conversions.
7533         (verify_types_in_gimple_reference): Verify VIEW_CONVERT_EXPR of
7534         a register does not change its size.
7535         (verify_types_in_gimple_reference): Verify MEM_REF.
7536         (verify_gimple_assign_single): Disallow INDIRECT_REF.
7537         Handle MEM_REF.
7538         * tree-ssa-operands.c (opf_non_addressable, opf_not_non_addressable):
7539         New.
7540         (mark_address_taken): Handle MEM_REF.
7541         (get_indirect_ref_operands): Pass through opf_not_non_addressable.
7542         (get_asm_expr_operands): Pass opf_not_non_addressable.
7543         (get_expr_operands): Handle opf_[not_]non_addressable.
7544         Handle MEM_REF.  Remove INDIRECT_REF handling.
7545         * tree-vrp.c (check_array_ref): Handle MEM_REF.
7546         (search_for_addr_array): Likewise.
7547         (check_array_bounds): Likewise.
7548         (vrp_stmt_computes_nonzero): Adjust for MEM_REF.
7549         * tree-ssa-loop-im.c (for_each_index): Handle MEM_REF.
7550         (ref_always_accessed_p): Likewise.
7551         (gen_lsm_tmp_name): Likewise.  Handle ADDR_EXPR.
7552         * tree-complex.c (extract_component): Do not handle INDIRECT_REF.
7553         Handle MEM_REF.
7554         * cgraphbuild.c (mark_load): Properly check for NULL result
7555         from get_base_address.
7556         (mark_store): Likewise.
7557         * tree-ssa-loop-niter.c (array_at_struct_end_p): Handle MEM_REF.
7558         * tree-loop-distribution.c (generate_builtin): Exchange INDIRECT_REF
7559         handling for MEM_REF.
7560         * tree-scalar-evolution.c (follow_ssa_edge_expr): Handle
7561         &MEM[ptr + CST] similar to POINTER_PLUS_EXPR.
7562         * builtins.c (stabilize_va_list_loc): Use the function ABI
7563         valist type if we couldn't canonicalize the argument type.
7564         Always dereference with the canonical va-list type.
7565         (maybe_emit_free_warning): Handle MEM_REF.
7566         (fold_builtin_memory_op): Simplify and handle MEM_REFs in folding
7567         memmove to memcpy.
7568         * builtins.c (fold_builtin_memory_op): Use ref-all types
7569         for all memcpy foldings.
7570         * omp-low.c (build_receiver_ref): Adjust for MEM_REF.
7571         (build_outer_var_ref): Likewise.
7572         (scan_omp_1_op): Likewise.
7573         (lower_rec_input_clauses): Likewise.
7574         (lower_lastprivate_clauses): Likewise.
7575         (lower_reduction_clauses): Likewise.
7576         (lower_copyprivate_clauses): Likewise.
7577         (expand_omp_atomic_pipeline): Likewise.
7578         (expand_omp_atomic_mutex): Likewise.
7579         (create_task_copyfn): Likewise.
7580         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MEM_REF.
7581         Remove old union trick.  Initialize constant offsets.
7582         (ao_ref_init_from_vn_reference): Likewise.  Do not handle
7583         INDIRECT_REF.  Init base_alias_set properly.
7584         (vn_reference_lookup_3): Replace INDIRECT_REF handling with MEM_REF.
7585         (vn_reference_fold_indirect): Adjust for MEM_REFs.
7586         (valueize_refs): Fold MEM_REFs.  Re-evaluate constant offset
7587         for ARRAY_REFs.
7588         (may_insert): Remove.
7589         (visit_reference_op_load): Do not test may_insert.
7590         (run_scc_vn): Remove parameter, do not fiddle with may_insert.
7591         * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
7592         a field to store the constant offset this op applies.
7593         (run_scc_vn): Adjust prototype.
7594         * cgraphunit.c (thunk_adjust): Adjust for MEM_REF.
7595         * tree-ssa-ccp.c (ccp_fold): Replace INDIRECT_REF folding with
7596         MEM_REF.  Propagate &foo + CST as &MEM[&foo, CST].  Do not
7597         bother about volatile qualifiers on pointers.
7598         (fold_const_aggregate_ref): Handle MEM_REF, do not handle INDIRECT_REF.
7599         * tree-ssa-loop-ivopts.c
7600         * tree-ssa-loop-ivopts.c (determine_base_object): Adjust for MEM_REF.
7601         (strip_offset_1): Likewise.
7602         (find_interesting_uses_address): Replace INDIRECT_REF handling with
7603         MEM_REF handling.
7604         (get_computation_cost_at): Likewise.
7605         * ipa-pure-const.c (check_op): Handle MEM_REF.
7606         * tree-stdarg.c (check_all_va_list_escapes): Adjust for MEM_REF.
7607         * tree-ssa-sink.c (is_hidden_global_store): Handle MEM_REF
7608         and constants.
7609         * ipa-inline.c (likely_eliminated_by_inlining_p): Handle MEM_REF.
7610         * tree-parloops.c (take_address_of): Adjust for MEM_REF.
7611         (eliminate_local_variables_1): Likewise.
7612         (create_call_for_reduction_1): Likewise.
7613         (create_loads_for_reductions): Likewise.
7614         (create_loads_and_stores_for_name): Likewise.
7615         * matrix-reorg.c (may_flatten_matrices_1): Sanitize.
7616         (ssa_accessed_in_tree): Handle MEM_REF.
7617         (ssa_accessed_in_assign_rhs): Likewise.
7618         (update_type_size): Likewise.
7619         (analyze_accesses_for_call_stmt): Likewise.
7620         (analyze_accesses_for_assign_stmt): Likewise.
7621         (transform_access_sites): Likewise.
7622         (transform_allocation_sites): Likewise.
7623         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF.
7624         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
7625         not handle INDIRECT_REF.
7626         * tree-ssa-phiopt.c (add_or_mark_expr): Handle MEM_REF.
7627         (cond_store_replacement): Likewise.
7628         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
7629         MEM_REF, no not handle INDIRECT_REFs.
7630         (insert_into_preds_of_block): Properly initialize avail.
7631         (phi_translate_1): Fold MEM_REFs.  Re-evaluate constant offset
7632         for ARRAY_REFs.  Properly handle reference lookups that
7633         require a bit re-interpretation.
7634         (can_PRE_operation): Do not handle INDIRECT_REF.  Handle MEM_REF.
7635         * tree-sra.c (build_access_from_expr_1): Handle MEM_REF.
7636         (build_ref_for_offset_1): Remove.
7637         (build_ref_for_offset): Build MEM_REFs.
7638         (gate_intra_sra): Disable for now.
7639         (sra_ipa_modify_expr): Handle MEM_REF.
7640         (ipa_early_sra_gate): Disable for now.
7641         * tree-sra.c (create_access): Swap INDIRECT_REF handling for
7642         MEM_REF handling.
7643         (disqualify_base_of_expr): Likewise.
7644         (ptr_parm_has_direct_uses): Swap INDIRECT_REF handling for
7645         MEM_REF handling.
7646         (sra_ipa_modify_expr): Remove INDIRECT_REF handling.
7647         Use mem_ref_offset.  Remove bogus folding.
7648         (build_access_from_expr_1): Properly handle MEM_REF for non IPA-SRA.
7649         (make_fancy_name_1): Add support for MEM_REF.
7650         * tree-predcom.c (ref_at_iteration): Handle MEM_REFs.
7651         * tree-mudflap.c (mf_xform_derefs_1): Adjust for MEM_REF.
7652         * ipa-prop.c (compute_complex_assign_jump_func): Handle MEM_REF.
7653         (compute_complex_ancestor_jump_func): Likewise.
7654         (ipa_analyze_virtual_call_uses): Likewise.
7655         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Replace
7656         INDIRECT_REF folding with more generalized MEM_REF folding.
7657         (tree_ssa_forward_propagate_single_use_vars): Adjust accordingly.
7658         (forward_propagate_addr_into_variable_array_index): Also handle
7659         &ARRAY + I in addition to &ARRAY[0] + I.
7660         * tree-ssa-dce.c (ref_may_be_aliased): Handle MEM_REF.
7661         * tree-ssa-ter.c (find_replaceable_in_bb): Avoid TER if that
7662         creates assignments with overlap.
7663         * tree-nested.c (get_static_chain): Adjust for MEM_REF.
7664         (get_frame_field): Likewise.
7665         (get_nonlocal_debug_decl): Likewise.
7666         (convert_nonlocal_reference_op): Likewise.
7667         (struct nesting_info): Add mem_refs pointer-set.
7668         (create_nesting_tree): Allocate it.
7669         (convert_local_reference_op): Insert to be folded mem-refs.
7670         (fold_mem_refs): New function.
7671         (finalize_nesting_tree_1): Perform defered folding of mem-refs
7672         (free_nesting_tree): Free the pointer-set.
7673         * tree-vect-stmts.c (vectorizable_store): Adjust for MEM_REF.
7674         (vectorizable_load): Likewise.
7675         * tree-ssa-phiprop.c (phiprop_insert_phi): Adjust for MEM_REF.
7676         (propagate_with_phi): Likewise.
7677         * tree-object-size.c (addr_object_size): Handle MEM_REFs
7678         instead of INDIRECT_REFs.
7679         (compute_object_offset): Handle MEM_REF.
7680         (plus_stmt_object_size): Handle MEM_REF.
7681         (collect_object_sizes_for): Dispatch to plus_stmt_object_size
7682         for &MEM_REF.
7683         * tree-flow.h (get_addr_base_and_unit_offset): Declare.
7684         (symbol_marked_for_renaming): Likewise.
7685         * Makefile.in (tree-dfa.o): Add $(TOPLEV_H).
7686         (fold-const.o): Add $(TREE_FLOW_H).
7687         * tree-ssa-structalias.c (get_constraint_for_1): Handle MEM_REF.
7688         (find_func_clobbers): Likewise.
7689         * ipa-struct-reorg.c (decompose_indirect_ref_acc): Handle MEM_REF.
7690         (decompose_access): Likewise.
7691         (replace_field_acc): Likewise.
7692         (replace_field_access_stmt): Likewise.
7693         (insert_new_var_in_stmt): Likewise.
7694         (get_stmt_accesses): Likewise.
7695         (reorg_structs_drive): Disable.
7696         * config/i386/i386.c (ix86_va_start): Adjust for MEM_REF.
7697         (ix86_canonical_va_list_type): Likewise.
7698
7699 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
7700
7701         PR other/44566
7702         * coretypes.h [!USED_FOR_TARGET] (reg_class_t): Define.
7703         * target.def (struct gcc_target): Replace enum reg_class with
7704         reg_class_t in hook argument / return types.
7705         * doc/tm.texi.in (TARGET_SECONDARY_RELOAD): Likewise.
7706         (TARGET_IRA_COVER_CLASSES, TARGET_MEMORY_MOVE_COST): Likewise.
7707         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise.
7708         * targhooks.h (default_branch_target_register_class): Likewise.
7709         (default_ira_cover_classes, default_secondary_reload): Likewise.
7710         (default_memory_move_cost, default_register_move_cost): Likewise.
7711         * targhooks.c (default_branch_target_register_class): Likewise.
7712         (default_ira_cover_classes, default_secondary_reload): Likewise.
7713         (default_memory_move_cost, default_register_move_cost): Likewise.
7714         * reload.c (push_secondary_reload, secondary_reload_class): Likewise.
7715         * bt-load.c (branch_target_load_optimize): Likewise.
7716         * ira.c (setup_cover_and_important_classes): Likewise.
7717         * ira-costs.c (copy_cost): Likewise.
7718         * reload1.c (emit_input_reload_insns): Likewise.
7719         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
7720         * config/frv/frv.c (frv_secondary_reload): Likewise.
7721         * config/s390/s390.c (s390_secondary_reload): Likewise.
7722         * config/i386/i386.c (i386_ira_cover_classes): Likewise.
7723         (ix86_secondary_reload, ix86_memory_move_cost): Likewise.
7724         (ix86_register_move_cost): Likewise.
7725         * config/sh/sh-protos.h (sh_secondary_reload): Likewise.
7726         * config/sh/sh.c (sh_target_reg_class, sh_secondary_reload): Likewise.
7727         * config/xtensa/xtensa.c (xtensa_secondary_reload): Likewise.
7728         * config/xtensa/xtensa-protos.h (xtensa_secondary_reload): Likewise.
7729         * config/rs6000/rs6000.c (rs6000_secondary_reload): Likewise.
7730         (rs6000_ira_cover_classes): Likewise.
7731         * config/picochip/picochip.c (picochip_secondary_reload): Likewise.
7732         * config/picochip/picochip-protos.h (picochip_secondary_reload):
7733         Likewise.
7734         * config/pa/pa.c (pa_secondary_reload): Likewise.
7735         * config/mips/mips.c (mips_ira_cover_classes): Likewise.
7736         * config/bfin/bfin.c (bfin_secondary_reload): Likewise.
7737         * config/ia64/ia64.c (ia64_register_move_cost): Likewise.
7738         * doc/tm.texi: Regenerate.
7739
7740 2010-06-30  Sebastian Pop  <sebastian.pop@amd.com>
7741
7742         PR bootstrrap/44726
7743         * graphite-sese-to-poly.c (build_poly_dr): Avoid uninitialized
7744         use.
7745         (build_alias_set_optimal_p): Likewise.
7746         (build_base_obj_set_for_drs): Likewise.
7747
7748 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
7749
7750         * target.def: Remove comment about licensing problems of function
7751         declarations.
7752
7753         * target.def (declare_constant_name): Change exp to expr.  Use DEFHOOK.
7754         * doc/tm.texi.in (TARGET_ASM_DECLARE_CONSTANT_NAME): Use @hook.
7755         * doc/tm.texi: Regenerate.
7756
7757         * target.def (builtin_reciprocal): Change tm_fn to md_fn.  Use DEFHOOK.
7758         * doc/tm.texi.in (TARGET_BUILTIN_RECIPROCAL): Use @hook.
7759
7760         * target.def (enum_va_list_p): Use DEFHOOK.
7761         * doc/tm.texi.in (TARGET_ENUM_VA_LIST_P): Use @hook.
7762         Rename ptype to ptree.
7763         * doc/tm.texi: Regenerate.
7764
7765         * target.def (fold_builtin): Rename nargs to n_args.  Use DEFHOOK.
7766         * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Use @hook.
7767         * doc/tm.texi: Regenerate.
7768
7769         * target.def (memory_move_cost): Use DEFHOOK.
7770         * doc/tm.texi.in (TARGET_MEMORY_MOVE_COST): Use @hook.
7771         Rename regclass AKA class to rclass.
7772         * doc/tm.texi: Regenerate.
7773
7774         * target.def (pragma_parse): Use DEFHOOK.
7775         * doc/tm.texi.in (TARGET_OPTION_PRAGMA_PARSE): Use @hook.
7776         s/TARGET_VALID_OPTION_ATTRIBUTE_P/TARGET_OPTION_VALID_ATRIBUTE_P/ .
7777         * doc/tm.texi: Regenerate.
7778
7779         * target.def (pass_by_reference): Use DEFHOOK.
7780         * doc/tm.texi.in (TARGET_PASS_BY_REFERENCE): Use @hook.
7781         * doc/tm.texi: Regenerate.
7782
7783         * target.def (resolve_overloaded_builtin): Rename params to arglist.
7784         Use DEFHOOK.
7785         * doc/tm.texi.in (TARGET_RESOLVE_OVERLOADED_BUILTIN): Use @hook.
7786         * doc/tm.texi: Regenerate.
7787
7788         * target.def (return_pops_args): Use DEFHOOK.
7789         * doc/tm.texi.in (TARGET_RETURN_POPS_ARGS): Use @hook.
7790         Rename stack-size to size.
7791         * doc/tm.texi: Regenerate.
7792
7793         * target.def (dfa_new_cycle): Use DEFHOOK.  Rename dump_file to dump,
7794         last-sched_cycle to last_clock, cur_cycle to clock.
7795         * doc/tm.texi.in: Use @hook.
7796         * doc/tm.texi: Regenerate.
7797
7798         * target.def (print_operand, print_operand_address): Update comment.
7799         (print_operand_punct_valid_p): Likewise.
7800
7801 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7802
7803         * toplev.h (_fatal_insn_not_found, _fatal_insn): Move declarations
7804         to rtl.h.
7805         (error_for_asm, warning_for_asm): Move declarations to rtl-error.h.
7806         * rtl.h (_fatal_insn_not_found, _fatal_insn): Move declarations here.
7807         * rtl-error.h: New.
7808         * regrename.c: Do not include toplev.h. Include rtl-error.h.
7809         * rtl-error.c: Likewise.
7810         * reload.c: Likewise.
7811         * recog.c:  Likewise.
7812         * sel-sched.c: Likewise.
7813         * function.c: Likewise.
7814         * reg-stack.c: Likewise.
7815         * cfgrtl.c: Likewise.
7816         * reload1.c: Likewise.
7817         * final.c: Include rtl-error.
7818         * Makefile.in: Adjust dependencies.
7819
7820 2010-06-30  Jan Hubicka  <jh@suse.cz>
7821
7822         PR middle-end/PR44706
7823         * ipa-split (split_function): Refine conditions when to use DECL_RESULT
7824         to return the value.
7825
7826 2010-06-30  Michael Matz  <matz@suse.de>
7827
7828         PR bootstrap/44699
7829         * tree-vrp.c (vrp_finalize): Deal with changing num_ssa_names.
7830         * gimple-fold.c (gimplify_and_update_call_from_tree): If LHS is
7831         a gimple reg, attach the original VDEF to the last store in the
7832         sequence.
7833
7834 2010-06-30  Iain Sandoe  <iains@gcc.gnu.org>
7835
7836         PR other/44034
7837         * config/darwin.c (darwin_override_options): Use renamed
7838         targetm.asm_out.emit_unwind_label.
7839
7840 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
7841
7842         PR tree-optimization/39799
7843         * tree-inline.c (remap_ssa_name): Initialize variable only if
7844         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
7845
7846 2010-06-30  Nathan Froyd  <froydnj@codesourcery.com>
7847
7848         * c-parser.c (c_parser_omp_for_loop): Use a VEC for for_block.
7849
7850 2010-06-30  Richard Guenther  <rguenther@suse.de>
7851
7852         PR target/44722
7853         * config/i386/i386.md (peephole2 for fix:SSEMODEI24): Guard
7854         against oscillation with reverse peephole2.
7855
7856 2010-06-30  H.J. Lu  <hongjiu.lu@intel.com>
7857
7858         PR target/44721
7859         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
7860         Fix last commit.
7861
7862 2010-06-30  Nick Clifton  <nickc@redhat.com>
7863
7864         * config/rx/rx-modes.def: New file.
7865         * config/rx/rx.h (FIRST_PSEUDO_REGISTER): Increase to 17.
7866         (CC_REGNUM): Define.
7867         (FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add cc
7868         register.
7869         (CC_NO_CARRY, NOTICE_UPDATE_CC): Delete.
7870         (SELECT_CC_MODE): Define.
7871         * config/rx/rx.md (CC_REG): Define.  Update all patterns to use
7872         (reg:CC CC_REG) instead of (cc0).
7873         (attr "cc"): Delete.
7874         (cbranchsi4): Do not split compare and branch here. Instead move
7875         it to...
7876         (cbranchsi4_<code>): ... here.  New patterns.
7877         (cmpsi): Call rx-compare_redundant to find out if it is necessary
7878         to emit the compare instruction.
7879         * config/rx/rx.c (rx_gen-cond_branch_template): Remove tests of
7880         cc_status flags.
7881         (rx_get_stack_layout): Iterate up to before CC_REGNUM not
7882         FIRST_PSEUDO_REGNUM.
7883         (rx_expand_prologue, rx_expand_epilogue): Likewise.
7884         (rx_notice_update_cc): Delete.
7885         (rx_cc_modes_compatible): New function.
7886         (flags_needed_for_conditional): New function.
7887         (flags_from_mode): New function.
7888         (rx_compare_redundant): New function - scans backwards through
7889         insn list to find out if condition flags are already set correctly.
7890         (TARGET_CC_MODES_COMPATIBLE): Define.
7891         * config/rx/rx-protos.h (rx_compare_redundant): Prototype.
7892
7893         * config/rx/rx.h (BRANCH_COST): Define.
7894         (REGISTER_MOVE_COST): Define.
7895         * config/rx/predicates (rx_source_operand): Allow all constant types.
7896         * config/rx/rx.md (addsi3): Add alternative for swapped operands.
7897         (tstsi4): New pattern.
7898         * config/rx/rx.c (rx_memory_move_cost): Define.
7899         (TARGET_MEMORY_MOVE_COST): Define.
7900
7901 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7902
7903         * tree.h (block_may_fallthru): Declare here.
7904         * tree-flow.h (block_may_fallthru): Do not declare here.
7905         * c-typeck.c: Do not include tree-flow.h. Include gimple.h and
7906         bitmap.h
7907         * Makefile.in (c-typeck.o): Update dependencies.
7908
7909 2010-06-30  Jakub Jelinek  <jakub@redhat.com>
7910
7911         PR debug/44694
7912         * cselib.h (cselib_preserve_cfa_base_value): Add regno argument.
7913         * cselib.c (cfa_base_preserved_regno): New static variable.
7914         (cselib_reset_table): Don't reset cfa_base_preserved_regno instead
7915         of REGNO (cfa_base_preserved_val->locs->loc).
7916         (cselib_preserve_cfa_base_value): Add regno argument, set
7917         cfa_base_preserved_regno to it.
7918         (cselib_invalidate_regno): Allow removal of registers other than
7919         cfa_base_preserved_regno from cfa_base_preserved_val.
7920         (cselib_finish): Set cfa_base_preserved_regno to INVALID_REGNUM.
7921         * var-tracking.c (adjust_mems): Replace sp or hfp even outside
7922         of MEM addresses, if not on LHS.
7923         (reverse_op): Don't add reverse ops for cfa_base_rtx.
7924         (vt_init_cfa_base): Adjust cselib_preserve_cfa_base_value caller.
7925
7926 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
7927
7928         * recog.c (peep2_do_rebuild_jump_labels, peep2_do_cleanup_cfg): New
7929         static variables.
7930         (peep2_buf_position): New static function.
7931         (peep2_regno_dead_p, peep2_reg_dead_p, peep2_find_free_register,
7932         peephole2_optimize): Use it.
7933         (peep2_attempt, peep2_update_life): New static functions, broken out
7934         of peephole2_optimize.
7935         (peep2_fill_buffer): New static function.
7936         (peephole2_optimize): Change the main loop to try to fill the buffer
7937         with the maximum number of insns before matching them against
7938         peepholes.  Use a forward scan.  Remove special case for targets with
7939         conditional execution.
7940         * genrecog.c (change_state): Delete dead code.
7941         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
7942         Rewrite so as not to expect the second insn to have had a peephole
7943         applied yet.
7944
7945 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
7946
7947         * genhooks.c (emit_findices): Cast field precision to int.
7948         (emit_documentation): Likewise.
7949
7950 2010-06-29  Jakub Jelinek  <jakub@redhat.com>
7951
7952         PR tree-optimization/43801
7953         * cgraph.c (cgraph_create_virtual_clone): Clear DECL_SECTION_NAME
7954         if old_decl was DECL_ONE_ONLY.
7955
7956         PR debug/44668
7957         * dwarf2out.c (add_accessibility_attribute): New function.
7958         (gen_subprogram_die, gen_variable_die, gen_field_die): Use it
7959         instead of adding DW_AT_accessibility manually.
7960         (gen_enumeration_type_die, gen_struct_or_union_type_die,
7961         gen_typedef_die): Use it.
7962
7963 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
7964
7965         * vmsdbgout.c (full_name): Just output the file name if not native.
7966
7967 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
7968
7969         * vmsdbgout.c (func_table): Replace with VEC func{nam,num}_tables.
7970         (funcnam_table): New static table.
7971         (funcnum_table): New static table.
7972         (write_rtnbeg): Write value saved in funcnum_table.
7973         (write_rtnend): Write value saved in funcnum_table.
7974         (vmsdbgout_begin_function): Save current function info in
7975         (vmsdbgout_init): Initialize func{nam,num}_tables. Minor reformatting.
7976         (vmsdbgout_finish): Iterate over funcnum_table.
7977
7978 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
7979
7980         * vmsdbgout.c (vmsdbgout_begin_epilogue): Declare
7981         (vmsdbgout_type_decl): Declare
7982         (vmsdbg_debug_hooks): Add entry for type_decl and begin_epilogue.
7983         (FUNC_EPILOGUE_LABEL): New macro
7984         (vmsdbgout_begin_epilogue): New function.
7985         (vmsdbgout_type_decl): New function.
7986
7987 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
7988
7989         * vmsdbg.h: Update copyright.
7990
7991 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
7992
7993         * vmsdbg.h (DST_K_TBG): New DST constant.
7994         * vmsdbgout.c (addr_const_to_string): Removed, not referenced.
7995         (write_modbeg): Cast module_language to avoid warning.
7996         (write_rtnbeg): Use DST_K_TBG vice magic mystery number.
7997
7998 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
7999
8000         PR other/44034
8001         * target.def, doc/tm.texi.in, genhooks.c: New files.
8002         * target.h: Instead of defining individual hook members,
8003         define DEFHOOKPOD / DEFHOOK / DEFHOOK_UNDOC / HOOKSTRUCT and
8004         include target.def.
8005         * target-def.h: Instead of defining individual hook initializers,
8006         include target-hooks-def.h.
8007         * df-scan.c, haifa-sched.c, sel-sched.c: Rename targetm members:
8008         targetm.live_on_entry -> targetm.extra_live_on_entry
8009         targetm.sched.md_finish ->targetm.sched.finish
8010         targetm.sched.md_init -> targetm.sched.init
8011         targetm.sched.md_init_global -> targetm.sched.init_global
8012         targetm.asm_out.unwind_label -> targetm.asm_out.emit_unwind_label
8013         targetm.asm_out.except_table_label ->
8014           targetm.asm_out.emit_except_table_label
8015         targetm.asm_out.visibility -> targetm.asm_out.assemble_visibility
8016         targetm.target_help -> targetm.help
8017         targetm.vectorize.builtin_support_vector_misalignment ->
8018           targetm.vectorize.support_vector_misalignment
8019         targetm.file_start_app_off -> targetm.asm_file_start_app_off
8020         targetm.file_start_file_directive ->
8021          targetm.asm_file_start_file_directive
8022         * dwarf2out.c, opts.c, tree-vect-data-refs.c, except.c: Likewise.
8023         * varasm.c, config/alpha/alpha.c, config/cris/cris.c: Likewise.
8024         * gcc/config/spu/spu.c, config/ia64/ia64.c: Rename target macros:
8025         TARGET_VECTOR_ALIGNMENT_REACHABLE ->
8026           TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE
8027         TARGET_SUPPORT_VECTOR_MISALIGNMENT ->
8028           TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT
8029         TARGET_UNWIND_EMIT -> TARGET_ASM_UNWIND_EMIT
8030         * config/rs6000/rs6000.c, config/arm/arm.c: Likewise.
8031         * Makefile.in (TARGET_H): Depend on target.def.
8032         (TARGET_DEF_H): Depend on target-hooks-def.h.
8033         (target-hooks-def.h, tm.texi, s-target-hooks-def-h): New rules.
8034         (s-tm-texi, build/genhooks.o, build/genhooks): Likewise.
8035         * doc/tm.texi: Regenerate.
8036
8037         * Makefile.in (s-tm-texi): Remove stray tab / rule.
8038
8039         * config/m68k/m68k.c (targetm.sched.init_global): Update comment.
8040         (targetm.sched.init): Likewise.
8041
8042 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
8043
8044         PR bootstrap/44713
8045         * config/i386/i386.c (type_natural_mode): Const-ify CUM parameter.
8046         (function_arg_advance_32): Const-ify TYPE parameter.
8047         (function_arg_advance_64): Likewise.  Change type of NAMED to bool.
8048         (ix86_function_arg_advance): Change type of NAMED to bool.
8049         (function_arg_32): Const-ify CUM and TYPE parameters.
8050         (function_arg_64): Likewise.  Change type of NAMED to bool.
8051         (function_arg_ms_64): Const-ify CUM parameter. Change type of NAMED
8052         to bool.
8053         (ix86_function_arg): Change type of NAMED to bool.
8054         (ix86_setup_incoming_varargs): Call ix86_function_arg_advance.  Pass
8055         last argument as a bool.
8056
8057 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
8058
8059         * doc/tm.texi (TARGET_OPTION_OVERRIDE): Document.
8060         (OVERRIDE_OPTIONS): Add note of obsolescence.
8061         Replace references with references to TARGET_OPTION_OVERRIDE.
8062         (Except for C_COMMON_OVERRIDE_OPTIONS, which remains similar to
8063          the macro).
8064         * targhooks.c (default_target_option_override): New function.
8065         * targhooks.h (default_target_option_override): Declare.
8066         * target.h (struct gcc_target): Add override member to
8067         target_option member.
8068         * toplev.c (process_options): Replace OVERRIDE_OPTIONS use with
8069         targetm.target_option.override call.
8070         * target-def.h (TARGET_OPTION_OVERRIDE): Define.
8071         (TARGET_OPTION_HOOKS): Add TARGET_OPTION_OVERRIDE.
8072
8073 2010-06-29  Jan Hubicka  <jh@suse.cz>
8074
8075         * tree-inline.c: Replace incomming by incomin and clonning by cloning.
8076
8077 2010-06-29  Jan Hubicka  <jh@suse.cz>
8078
8079         * predict.c (propagate_freq): Clear EXIT_BLOCK_PTR frequency if it is
8080         unreachable.
8081         (rebuild_frequencies): New function.
8082         * predict.h (rebuild_frequencies): Declare.
8083         * tree-inline.c (copy_cfg_body): Compute properly count & frequency of
8084         entry block and edge reaching new_entry.
8085         (tree_function_versioning): When doing partial cloning, rebuild
8086         frequencies when done.
8087         * passes.c (execute_function_todo): Use rebild_frequencies.
8088
8089 2010-06-29  Richard Guenther  <rguenther@suse.de>
8090
8091         * tree-dfa.c (dump_variable): Remove noalias_state dumping.
8092         * tree-flow.h (enum noalias_state): Remove.
8093         (struct var_ann_d): Remove noalias_state member.
8094
8095 2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
8096
8097         PR target/43902
8098         * config/arm/arm.md (maddsidi4, umaddsidi4): New expanders.
8099         (maddhisi4): Renamed from mulhisi3addsi.  Operands renumbered.
8100         (maddhidi4): Likewise.
8101
8102         Revert parts of the change for PR25130.
8103         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
8104         MEM_ALIAS_SET.
8105
8106 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
8107
8108         * calls.c, dse.c, expr.c, function.c: Call targetm.calls.function_arg,
8109         targetm.calls.function_incoming_arg, and
8110         targetm.calls.function_arg_advance instead of FUNCTION_ARG,
8111         FUNCTION_INCOMING_ARG, and FUNCTION_ARG_ADVANCE, respectively.
8112         * target.h (struct gcc_target): Add function_arg_advance,
8113         function_arg, and function_incoming_arg fields.
8114         * target-def.h (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG):
8115         (TARGET_FUNCTION_INCOMING_ARG): Define.
8116         (TARGET_CALLS): Add TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG,
8117         and TARGET_FUNCTION_INCOMING_ARG.
8118         * targhooks.h (default_function_arg_advance): Declare.
8119         (default_function_arg, default_function_incoming_arg): Declare.
8120         * targhooks.c (default_function_arg_advance): New function.
8121         (default_function_arg, default_function_incoming_arg): New function.
8122         * config/i386/i386.c (function_arg_advance): Rename to...
8123         (ix86_function_arg_advance): ...this.  Make static.
8124         (function_arg): Rename to...
8125         (ix86_function_arg): ...this.  Make static.
8126         (TARGET_FUNCTION_ARG_ADVANCE): Define.
8127         (TARGET_FUNCTION_ARG): Define.
8128         * config/i386/i386.h (FUNCTION_ARG_ADVANCE): Delete.
8129         (FUNCTION_ARG): Delete.
8130         * config/i386/i386-protos.h (function_arg_advance): Delete prototype.
8131         (function_arg): Delete prototype.
8132
8133 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
8134
8135         * reginfo.c (init_reg_sets_1): Adjust comments.
8136         * combine-stack-adj.c (rest_of_handle_stack_adjustments): Likewise.
8137         * calls.c (prepare_call_address): Likewise.
8138         (emit_call_1): Use targetm.calls.return_pops_args.
8139         (expand_call): Likewise.
8140         * function.c (assign_parms): Likewise.
8141         * system.h (RETURN_POPS_ARGS): Add to #pragma poison list.
8142         * target.h (struct gcc_target) [struct calls]: Add
8143         return_pops_args field.
8144         * targhooks.h (default_return_pops_args): Declare.
8145         * targhooks.c (default_return_pops_args): Define.
8146         * target-def.h (TARGET_RETURN_POPS_ARGS): Define.
8147         (TARGET_CALLS): Add TARGET_RETURN_POPS_ARGS.
8148         * doc/tm.texi (RETURN_POPS_ARGS): Rename to...
8149         (TARGET_RETURN_POPS_ARGS): ...this.  Use deftypefn.  Adjust
8150         documentation.
8151         * config/alpha/alpha.h (RETURN_POPS_ARGS): Delete.
8152         * config/arc/arc.h (RETURN_POPS_ARGS): Likewise.
8153         * config/arm/arm.h (RETURN_POPS_ARGS): Likewise.
8154         * config/avr/avr.h (RETURN_POPS_ARGS): Likewise.
8155         * config/bfin/bfin.h (RETURN_POPS_ARGS): Likewise.
8156         * config/cris/cris.h (RETURN_POPS_ARGS): Likewise.
8157         * config/crx/crx.h (RETURN_POPS_ARGS): Likewise.
8158         * config/fr30/fr30.h (RETURN_POPS_ARGS): Likewise.
8159         * config/frv/frv.h (RETURN_POPS_ARGS): Likewise.
8160         * config/h8300/h8300.h (RETURN_POPS_ARGS): Likewise.
8161         * config/ia64/ia64.h (RETURN_POPS_ARGS): Likewise.
8162         * config/iq2000/iq2000.h (RETURN_POPS_ARGS): Likewise.
8163         * config/lm32/lm32.h (RETURN_POPS_ARGS): Likewise.
8164         * config/m32c/m32c.h (RETURN_POPS_ARGS): Likewise.
8165         * config/m32r/m32r.h (RETURN_POPS_ARGS): Likewise.
8166         * config/m68hc11/m68hc11.h (RETURN_POPS_ARGS): Likewise.
8167         * config/mcore/mcore.h (RETURN_POPS_ARGS): Likewise.
8168         * config/mep/mep.h (RETURN_POPS_ARGS): Likewise.
8169         * config/mips/mips.h (RETURN_POPS_ARGS): Likewise.
8170         * config/mmix/mmix.h (RETURN_POPS_ARGS): Likewise.
8171         * config/mn10300/mn10300.h (RETURN_POPS_ARGS): Likewise.
8172         * config/moxie/moxie.h (RETURN_POPS_ARGS): Likewise.
8173         * config/pa/pa.h (RETURN_POPS_ARGS): Likewise.
8174         * config/pdp11/pdp11.h (RETURN_POPS_ARGS): Likewise.
8175         * config/picochip/picochip.h (RETURN_POPS_ARGS): Likewise.
8176         * config/rs6000/rs6000.h (RETURN_POPS_ARGS): Likewise.
8177         * config/rx/rx.h (RETURN_POPS_ARGS): Likewise.
8178         * config/s390/s390.h (RETURN_POPS_ARGS): Likewise.
8179         * config/score/score.h (RETURN_POPS_ARGS): Likewise.
8180         * config/sh/sh.h (RETURN_POPS_ARGS): Likewise.
8181         * config/sparc/sparc.h (RETURN_POPS_ARGS): Likewise.
8182         * config/spu/spu.h (RETURN_POPS_ARGS): Likewise.
8183         * config/stormy16/stormy16.h (RETURN_POPS_ARGS): Likewise.
8184         * config/v850/v850.h (RETURN_POPS_ARGS): Likewise.
8185         * config/xtensa/xtensa.h (RETURN_POPS_ARGS): Likewise.
8186         * config/i386/i386-protos.h (ix86_return_pops_args): Delete.
8187         * config/i386/i386.h (RETURN_POPS_ARGS): Delete.
8188         * config/i386/i386.c (ix86_return_pops_args): Make static.
8189         Constify arguments.
8190         (TARGET_RETURN_POPS_ARGS): Define.
8191         * config/m68k/m68k.h (RETURN_POPS_ARGS): Move to...
8192         * config/m68k/m68k.c (m68k_return_pops_args): ...here.  New function.
8193         (TARGET_RETURN_POPS_ARGS): Define.
8194         * config/vax/vax.h (RETURN_POPS_ARGS): Move to...
8195         * config/vax/vax.c (vax_return_pops_args): ...here.  New function.
8196         (TARGET_RETURN_POPS_ARGS): Define.
8197
8198 2010-06-29  Richard Guenther  <rguenther@suse.de>
8199
8200         PR middle-end/44667
8201         * tree-inline.c (initialize_inlined_parameters): Make sure
8202         to remap the inlined parameter variable substitutions types.
8203
8204 2010-06-29  Eric Botcazou  <ebotcazou@adacore.com>
8205
8206         PR rtl-optimization/44659
8207         * combine.c (make_compound_operation) <SUBREG>: Do not return the
8208         result of force_to_mode if it partially re-expanded the compound.
8209
8210 2010-06-28  Jan Hubicka  <jh@suse.cz>
8211
8212         PR middle-end/44671
8213         * ipa-split.c (test_nonssa_use, mark_nonssa_use): Check also uses of
8214         RESULT_DECL.
8215
8216 2010-06-28  Anatoly Sokolov  <aesok@post.ru>
8217
8218         * double-int.h (force_fit_type_double): Remove declaration.
8219         * double-int.c (force_fit_type_double): Move to tree.c.
8220         * tree.h (force_fit_type_double): Declare.
8221         * tree.h (force_fit_type_double): Moved from double-int.c. Use
8222         double_int type for 'cst' argument. Use double_int_fits_to_tree_p and
8223         double_int_to_tree instead of fit_double_type and build_int_cst_wide.
8224         * convert.c (convert_to_pointer): Adjust call to
8225         force_fit_type_double.
8226         * tree-vrp.c (extract_range_from_assert,
8227         extract_range_from_unary_expr): Adjust call to force_fit_type_double.
8228         * fold-const.c: Update comment.
8229         (int_const_binop, fold_convert_const_int_from_int,
8230         fold_convert_const_int_from_real, fold_convert_const_int_from_fixed,
8231         extract_muldiv_1, fold_div_compare, fold_sign_changed_comparison,
8232         fold_unary_loc, fold_negate_const, fold_abs_const, fold_not_const,
8233         round_up_loc): Adjust call to force_fit_type_double.
8234
8235 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
8236
8237         * config/rs6000/rs6000.h (PROCESSOR_TITAN): Declare.
8238
8239 2010-06-28  Martin Jambor  <mjambor@suse.cz>
8240
8241         * tree-sra.c (convert_callers): New parameter, change fndecls of
8242         recursive calls.
8243         (modify_function): Pass the old decl to convert_callers.
8244
8245 2010-06-28  Martin Jambor  <mjambor@suse.cz>
8246
8247         * ipa-cp.c (ipcp_init_cloned_node): Replace calls to
8248         ipa_check_create_node_params and ipa_initialize_node_params with
8249         checking asserts they are not necessary.
8250
8251 2010-06-28  Jan Hubicka  <jh@suse.cz>
8252
8253         PR tree-optimization/44687
8254         * ipa-split.c (split_function): Use DECL_RESULT to store return value.
8255
8256 2010-06-28  Martin Jambor  <mjambor@suse.cz>
8257
8258         PR c++/44535
8259         * gimple-fold.c (get_first_base_binfo_with_virtuals): New function.
8260         (gimple_get_relevant_ref_binfo): Use get_first_base_binfo_with_virtuals
8261         instead of BINFO_BASE_BINFO.
8262
8263 2010-06-28  Michael Matz  <matz@suse.de>
8264
8265         PR middle-end/44592
8266         * gimple-fold.c (gimplify_and_update_call_from_tree): Maintain
8267         proper VDEF chain for intermediate stores in the sequence.
8268
8269 2010-06-28  Jan Hubicka  <jh@suse.cz>
8270
8271         PR tree-optimization/44357
8272         * ipa-inline.c (add_new_edges_to_heap): Do not add edges to
8273         uninlinable functions.
8274
8275 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
8276
8277         * config.gcc (powerpc*-*-*): Handle titan.
8278         * config/rs6000/rs6000.c (titan_cost): New costs.
8279         (rs6000_override_options): Add "titan" to processor_target_table.
8280         Add Titan to branch alignment logic.
8281         Correctly set rs6000_cost for titan.
8282         * config/rs6000/rs6000.md (cpu): Add titan.  Include "titan.md".
8283         * config/rs6000/titan.md: New file.
8284         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=titan.
8285
8286 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
8287
8288         * tree-browser.c (TB_history_stack): Convert to a VEC.
8289         (TB_SET_HEAD): Adjust for new type of TB_history_stack.
8290         (TB_history_prev): Likewise.
8291
8292 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
8293
8294         * vec.h (vec_heap_free): Add parentheses around free.
8295
8296 2010-06-28  Steven Bosscher  <steven@gcc.gnu.org>
8297
8298         * system.h: Poison GCC_EXCEPT_H for front-end files.
8299
8300         * langhooks.h (struct lang_hooks): Add eh_protect_cleanup_actions
8301         langhook.
8302         * langhooks-def.h (LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS) New.
8303         Define to NULL by default.
8304         * except.h: Define GCC_EXCEPT_H.
8305         (doing_eh): Remove prototype.
8306         (init_eh, init_eh_for_function): Move prototypes to toplev.h.
8307         (lang_protect_cleanup_actions): Remove.
8308         * except.c (lang_protect_cleanup_actions): Remove.
8309         (doing_eh): Remove.
8310         (gen_eh_region): Don't check doing_eh here.
8311         * toplev.h (init_eh, init_eh_for_function_): Moved from except.h.
8312         * tree-eh.c (honor_protect_cleanup_actions): Use new langhook
8313         instead of lang_protect_cleanup_actions.
8314         * omp-low.c (maybe_catch_exception): Likewise.
8315         * Makefile.in: Update dependencies.
8316
8317 2010-06-28  Bingfeng Mei  <bmei@broadcom.com>
8318
8319         * cgraph.h (struct varpool_node): new used_from_object_file flag.
8320         (struct cgraph_local_info): new used_from_object_file flag.
8321         * cgraph.c (dump_cgraph_node): dump used_from_object_file flag.
8322         (cgraph_clone_node): initialize used_from_object_file.
8323         (cgraph_create_virtual_clone): initialize used_from_object_file.
8324         * lto-symbtab.c (lto_symtab_merge_decls_1): Set
8325         used_from_object_file flags for symbols of LDPR_PREVAILING_DEF
8326         when compiling with -fwhole-program.
8327         (lto_symtab_resolve_symbols) Use LDPR_PREVAILING_DEF_IRONLY for
8328         internal resolver.
8329         * ipa.c (function_and_variable_visibility): Set externally_visible
8330         flag of varpool_node if used_from_object_file flag is set.
8331         (cgraph_externally_visible_p): check used_from_object_file flag.
8332         * doc/invoke.texi (-fwhole-program option): Change description of
8333         externally_visible attribute accordingly.
8334         * doc/extend.texi (externally_visible): Ditto.
8335
8336 2010-06-27  Jan Hubicka  <jh@suse.cz>
8337
8338         * params.def (max-inline-insns-auto): Default to 40.
8339         * doc/invoke.texi (max-inline-insns-auto): Document the change.
8340
8341 2010-06-27  Jan Hubicka  <jh@suse.cz>
8342
8343         PR middle-end/44671
8344         PR middle-end/44686
8345         * tree.c (build_function_decl_skip_args): Clear DECL_BUILT_IN on
8346         signature change.
8347         * ipa-split.c (split_function): Always clear DECL_BUILT_IN.
8348         * ipa-prop.c (ipa_modify_formal_parameters): Likewise.
8349
8350 2010-06-27  Anatoly Sokolov  <aesok@post.ru>
8351
8352         * target.h (struct gcc_target): Add register_move_cost field.
8353         * target-def.h (TARGET_REGISTER_MOVE_COST): New.
8354         (TARGET_INITIALIZER): Use TARGET_REGISTER_MOVE_COST.
8355         * targhooks.c (default_register_move_cost): New function.
8356         * targhooks.h (default_register_move_cost): Declare function.
8357         * defaults.h (REGISTER_MOVE_COST): Delete.
8358         * ira-int.h (ira_register_move_cost): Update comment.
8359         * ira.c (ira_register_move_cost): Update comment.
8360         * reload.h (register_move_cost): Declare.
8361         * reginfo.c (register_move_cost): New function.
8362         (move_cost): Update comment.
8363         (init_move_cost, memory_move_secondary_cost): Replace
8364         REGISTER_MOVE_COST with register_move_cost.
8365         * postreload.c (reload_cse_simplify_set): (Ditto.).
8366         * reload.c (find_valid_class, find_reloads): (Ditto.).
8367         * reload1.c (choose_reload_regs): (Ditto.).
8368         * doc/tm.texi (TARGET_REGISTER_MOVE_COST): New.
8369         (REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Update documentation.
8370         * doc/md.texi (can_create_pseudo_p): Update documentation.
8371
8372         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
8373         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
8374         * config/i386/i386.h (ix86_memory_move_cost): Make static.
8375         (TARGET_MEMORY_MOVE_COST): Define.
8376
8377         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
8378         * config/ia64/ia64-protos.h (int ia64_memory_move_cost): Remove.
8379         * config/ia64/ia64.h (ia64_memory_move_cost): Make static.
8380         (TARGET_MEMORY_MOVE_COST): Define.
8381
8382 2010-06-27  Richard Guenther  <rguenther@suse.de>
8383
8384         PR tree-optimization/44683
8385         * tree-ssa-dom.c (record_edge_info): Record equivalences for the
8386         false edge from the inverted condition.
8387
8388 2010-06-27  Richard Guenther  <rguenther@suse.de>
8389
8390         PR middle-end/44684
8391         * tree-ssa-alias.c (refs_may_alias_p_1): Allow SSA name refs.
8392         (stmt_may_clobber_ref_p_1): Do not bother to call the oracle
8393         for register LHS.  Or non-store assignments.
8394
8395 2010-06-26  Eric Botcazou  <ebotcazou@adacore.com>
8396
8397         * config/sparc/sparc.c (sparc_emit_set_const32): Make static.
8398         (sparc_emit_set_const64): Likewise.  Remove disabled code.
8399         * config/sparc/sparc-protos.h (sparc_emit_set_const32): Delete.
8400         (sparc_emit_set_const64): Likewise.
8401
8402 2010-06-26  Catherine Moore  <clm@codesourcery.com>
8403
8404         * config/mips/mips.md (alu_type): New attribute.
8405         (type): Infer type from alu_type.
8406         (*add<mode>3, *add<mode>3_mips16, *addsi3_extended,
8407         *baddu_si_eb, *baddu_si_el, *baddu_di, sub<mode>3,
8408         *subsi3_extended, negsi2, negdi2, *low<mode>,
8409         *low<mode>_mips16, *ior<mode>3, *ior<mode>3_mips16,
8410         xor<mode>3, *nor<mode>3,
8411         *zero_extend<GPR:mode>_trunc<SHORT:mode>,
8412         *zero_extendhi_truncqi):  Set alu_type instead of type.
8413
8414 2010-06-26  Douglas B Rupp  <rupp@gnat.com>
8415
8416         * config/alpha/alpha.c (alpha_need_linkage): Adjust
8417         splay_tree_new_ggc call.
8418         (alpha_use_linkage): Likewise.
8419
8420 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
8421
8422         * collect2.c (main): Remove SWITCHES_NEED_SPACES conditional.
8423         * doc/tm.texi (SWITCHES_NEED_SPACES): Don't document.
8424         * gcc.c (SWITCHES_NEED_SPACES, switches_need_spaces): Remove.
8425         (static_specs): Remove switches_need_spaces.
8426         (process_command, do_self_spec): Hardcode handling "-o" instead of
8427         checking switches_need_spaces.
8428         * system.h (SWITCHES_NEED_SPACES): Poison.
8429
8430 2010-06-26  Richard Guenther  <rguenther@suse.de>
8431
8432         PR tree-optimization/44393
8433         * tree-loop-distribution.c (generate_loops_for_partition): Fix
8434         stmt removal and VOP renaming.
8435         (generate_memset_zero): Remove redundant stmt updating.
8436         * tree-flow.h (mark_virtual_ops_in_bb): Remove.
8437         * tree-cfg.c (mark_virtual_ops_in_bb): Likewise.
8438
8439 2010-06-26  Jan Hubicka  <jh@suse.cz>
8440
8441         * ipa-split.c (consider_split): PHI in entry block is OK as long as all
8442         edges comming from header are equivalent.
8443         (visit_bb): Handle PHIs correctly.
8444         * tree-inline.c (copy_phis_for_bb): Be able to copy
8445         PHI from entry edge.
8446         (copy_cfg_body): Produce edge from entry BB before copying PHIs.
8447
8448 2010-06-26  Richard Guenther  <rguenther@suse.de>
8449
8450         PR middle-end/44674
8451         * tree-ssa-alias.c (refs_may_alias_p_1): Allow all kind of
8452         decls.  Handle LABEL_DECLs like FUNCTION_DECLs.
8453
8454 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
8455
8456         * gcc.c (n_switches_alloc, n_infiles_alloc, alloc_infile,
8457         add_infile, alloc_switch): New.
8458         (process_command): Remove variable lang_n_infiles.  Process
8459         options in a single pass.  Use new functions for allocating
8460         infiles and switches arrays.  Properly skip operands of
8461         -Xpreprocessor and -Xassembler.
8462
8463 2010-06-26  Jan Hubicka  <jh@suse.cz>
8464
8465         PR middle-end/44671
8466         * cgraphunit.c (cgraph_function_versioning): Remove wrong
8467         cgraph_make_decl_local call; fix typo copying RTL data.
8468
8469 2010-06-25  DJ Delorie  <dj@redhat.com>
8470
8471         * config/m32c/m32c-protos.h (m32c_note_pragma_address): Declare.
8472         (m32c_output_aligned_common): Likewise.
8473         * config/m32c/m32c.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
8474         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
8475         * config/m32c/m32c-pragma.c (m32c_pragma_address): New.
8476         (m32c_register_pragmas): Register it.
8477         * config/m32c/m32c.c (m32c_get_pragma_address): New.
8478         (m32c_insert_attributes): Set #pragma address decls volatile.
8479         (pragma_entry_eq): New.
8480         (pragma_entry_hash): New.
8481         (m32c_note_pragma_address): New.
8482         (m32c_get_pragma_address): New.
8483         (m32c_output_aligned_common): New.
8484         * doc/extend.texi: Document the new pragma.
8485
8486         * config/m32c/m32c.c (m32c_illegal_subreg_p): Reject illegal MEMs
8487         also.
8488         * config/m32c/predicates.md (m32c_any_operand): Check the code
8489         instead of memory_operand so as to allow matching volatile MEMs.
8490         (m32c_nonimmediate_operand): Likewise.
8491         (mra_operand): Allow volatiles.
8492
8493 2010-06-25  Alexandre Oliva  <aoliva@redhat.com>
8494
8495         PR debug/44610
8496         * simplify-rtx.c (delegitimize_mem_from_attrs): Don't use a base
8497         address if the offset is unknown.
8498
8499 2010-06-25  Douglas B Rupp  <rupp@gnat.com>
8500
8501         * dwarf2out.c (dwarf2out_vms_debug_main_pointer): New function.
8502         * dwarf2out.h (dwarf2out_vms_debug_main_pointer): Declare new function.
8503         * config/ia64/ia64-protos.h (ia64_start_function): Declare.
8504         * config/ia64/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Move contents
8505         to ia64_start_function. Invoke it.
8506         * config/ia64/ia64.c (ia64_start_function): Call new function
8507         dwarf2out_vms_debug_main_pointer.
8508
8509 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
8510
8511         * tree-if-conv.c (insert_gimplified_predicates): Do not insert
8512         statements computing the true predicate.
8513
8514 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
8515
8516         * tree-if-conv.c (init_bb_predicate): Initialize the predicate
8517         to boolean_true_node.
8518         (reset_bb_predicate): New.
8519         (predicate_bbs): Call reset_bb_predicate.
8520
8521 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
8522
8523         * tree-if-conv.c (combine_blocks): Remove FIXME comment.
8524         (tree_if_conversion): Returns true when something has been changed.
8525         (main_tree_if_conversion): Return TODO_cleanup_cfg when if-conversion
8526         changed something.
8527
8528 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
8529
8530         * Makefile.in (tree-if-conv.o): Depends on DBGCNT_H.
8531         * dbgcnt.def (if_conversion_tree): New DEBUG_COUNTER.
8532         * tree-if-conv.c: Include dbgcnt.h.
8533         (tree_if_conversion): Use if_conversion_tree to count the number of
8534         if-convertible loops.
8535
8536 2010-06-25  Changpeng Fang  <changpeng.fang@amd.com>
8537
8538         * common.opt (fprefetch-loop-arrays): Re-define
8539         -fprefetch-loop-arrays as a tri-state option with the initial
8540         value of -1.
8541         * tree-ssa-loop.c (gate_tree_ssa_loop_prefetch): Invoke prefetch
8542         pass only when flag_prefetch_loop_arrays > 0.
8543         * toplev.c (process_options): Note that, with tri-states,
8544         flag_prefetch_loop_arrays>0 means prefetching is enabled.
8545         * config/i386/i386.c (override_options): Enable prefetching at -O3
8546         for a set of CPUs that sw prefetching is helpful.
8547         (software_prefetching_beneficial_p): New.  Return TRUE if software
8548         prefetching is beneficial for the given CPU.
8549
8550 2010-06-25  H.J. Lu  <hongjiu.lu@intel.com>
8551
8552         PR rtl-optimization/44326
8553         * implicit-zee.c (find_removable_zero_extends): Replace
8554         INSN_P with NONDEBUG_INSN_P.
8555
8556 2010-06-25  Martin Jambor  <mjambor@suse.cz>
8557
8558         * ipa-prop.h (struct ipa_param_descriptor): Removed the modified flag.
8559         (struct ipa_node_params): Removed the modification_analysis_done flag.
8560         (ipa_is_param_modified): Removed.
8561         (ipa_analyze_node): Declare.
8562         (ipa_compute_jump_functions): Remove declaration.
8563         (ipa_count_arguments): Likewise.
8564         (ipa_detect_param_modifications): Likewise.
8565         (ipa_analyze_params_uses): Likewise.
8566         * ipa-prop.c (struct param_analysis_info): New type.
8567         (visit_store_addr_for_mod_analysis): Removed.
8568         (visit_load_for_mod_analysis): Renamed to visit_ref_for_mod_analysis,
8569         moved down in the file.
8570         (ipa_detect_param_modifications): Merged into ipa_analyze_params_uses.
8571         (ipa_count_arguments): Made static.
8572         (mark_modified): New function.
8573         (is_parm_modified_before_call): New function.
8574         (compute_pass_through_member_ptrs): New parameter parms_info, call
8575         is_parm_modified_before_call instead of ipa_is_param_modified.
8576         (ipa_compute_jump_functions_for_edge): New parameter parms_info, pass
8577         it to compute_pass_through_member_ptrs.
8578         (ipa_compute_jump_functions): New parameter parms_info, pass it to
8579         ipa_compute_jump_functions_for_edge.  Call ipa_initialize_node_params
8580         on the callee if it is analyzed.  Made static.
8581         (ipa_analyze_indirect_call_uses): New parameter parms_info, call
8582         is_parm_modified_before_call instead of ipa_is_param_modified.
8583         (ipa_analyze_call_uses): New parameter parms_info, pass it to
8584         ipa_analyze_indirect_call_uses.
8585         (ipa_analyze_stmt_uses): New parameter parms_info, pass it to
8586         ipa_analyze_call_uses.
8587         (ipa_analyze_params_uses): New parameter parms_info, pass it to
8588         ipa_analyze_stmt_uses.  Also perform the used analysis.  Made static.
8589         (ipa_analyze_node): New function.
8590         (ipa_print_node_params): Do not dump the modified flag.
8591         (ipa_write_node_info): Assert uses_analysis_done rather than streaming
8592         it.  Do not stream the modified parameter flag.
8593         (ipa_read_node_info): Set uses_analysis_done to 1 instead of streaming
8594         it.  Do not stream the modified parameter flag.
8595         * ipa-cp.c (ipcp_analyze_node): Removed.
8596         (ipcp_init_stage): Iterate only once over the nodes, analyze each one
8597         with only a call to ipa_analyze_node.
8598         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Analyze the
8599         node with only a call to ipa_analyze_node.
8600
8601 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8602
8603         * doc/invoke.texi (-Wsuggest-attribute): Add item for noreturn.
8604
8605 2010-06-25  Jan Hubicka  <jh@suse.cz>
8606
8607         * tree-pass.h (pass_split_functions): Declare.
8608         * opts.c (decode_options): Enable function splitting at -O2
8609         * timevar.def (TV_IPA_FNSPLIT): New macro.
8610         * ipa-split.c: New file.
8611         * common.opt (-fpartial-inlining): New flag.
8612         * Makefile.in (ipa-split.o): New object file.
8613         * passes.c (init_optimization_passes): Add ipa-split.
8614         * params.def (partial-inlining-entry-probability): New parameters.
8615         * doc/invoke.texi (-fpartial-inlining): New.
8616
8617 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8618
8619         PR 44665
8620         * tree-inline.c (gimple_expand_calls_inline): Fix typo in comment.
8621         * gimplify.c (is_gimple_reg_rhs_or_call): Likewise.
8622         (gimplify_expr): Likewise.
8623
8624 2010-06-25  Martin Jambor  <mjambor@suse.cz>
8625
8626         * ipa-prop.c (determine_cst_member_ptr): Ignore non-clobbering
8627         statements instead of bailing out on them.
8628         (ipa_analyze_indirect_call_uses): Do not require that loads from the
8629         parameter are in the same BB as the condition.  Update comments.
8630
8631 2010-06-25  Jakub Jelinek  <jakub@redhat.com>
8632
8633         PR middle-end/43866
8634         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): If stmt is always
8635         true or always false, return NULL_TREE.
8636         (tree_unswitch_single_loop): Optimize conditions even when reaching
8637         max-unswitch-level parameter.  If num > 0, optimize first all conditions
8638         using entry checks, then do still reachable block discovery and consider
8639         only conditions in still reachable basic blocks in the loop.
8640
8641         PR tree-optimization/44539
8642         * tree-cfgcleanup.c (fixup_noreturn_call): Call update_stmt even when
8643         the call doesn't have LHS, but has VDEF.
8644
8645 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
8646
8647         * config/pa/pa.h (MODIFY_TARGET_NAME): Remove.
8648         * doc/tm.texi (MODIFY_TARGET_NAME): Don't document.
8649         * gcc.c (enum add_del, struct modify_target, modify_target): Remove.
8650         (process_command): Remove code conditional on MODIFY_TARGET_NAME.
8651         * system.h (MODIFY_TARGET_NAME): Poison.
8652
8653 2010-06-25  Alan Modra  <amodra@gmail.com>
8654
8655         * doc/invoke.texi: Delete mcmodel=medium from powerpc options.
8656         * config/rs6000/rs6000.h (enum rs6000_cmodel): Delete CMODEL_MEDIUM.
8657         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
8658         CMODEL_LARGE as default.
8659         * config/rs6000/rs6000.c (rs6000_handle_option): Remove mcmodel=medium.
8660         (offsettable_ok_by_alignment): Delete.
8661         (rs6000_emit_move): Remove mcmodel=medium optimization.
8662
8663 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
8664
8665         With large parts from Jim Wilson:
8666         PR target/43902
8667         * tree-pretty-print.c (dump_generic_node, op_code_prio): Add
8668         WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
8669         * optabs.c (optab_for_tree_code): Likewise.
8670         (expand_widen_pattern_expr): Likewise.
8671         * tree-ssa-math-opts.c (convert_mult_to_widen): New function, broken
8672         out of execute_optimize_widening_mul.
8673         (convert_plusminus_to_widen): New function.
8674         (execute_optimize_widening_mul): Use the two new functions.
8675         * expr.c (expand_expr_real_2): Add support for GIMPLE_TERNARY_RHS.
8676         Remove code to generate widening multiply-accumulate.  Add support
8677         for WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
8678         * gimple-pretty-print.c (dump_ternary_rhs): New function.
8679         (dump_gimple_assign): Call it when appropriate.
8680         * tree.def (WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR): New codes.
8681         * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
8682         (expand_gimple_stmt_1): Likewise.
8683         (expand_debug_expr): Support WIDEN_MULT_PLUS_EXPR and
8684         WIDEN_MULT_MINUS_EXPR.
8685         * tree-ssa-operands.c (get_expr_operands): Likewise.
8686         * tree-inline.c (estimate_operator_cost): Likewise.
8687         * gimple.c (extract_ops_from_tree_1): Renamed from
8688         extract_ops_from_tree.  Add new arg for a third operand; fill it.
8689         (gimple_build_assign_stat): Support operations with three operands.
8690         (gimple_build_assign_with_ops_stat): Likewise.
8691         (gimple_assign_set_rhs_from_tree): Likewise.
8692         (gimple_assign_set_rhs_with_ops_1): Renamed from
8693         gimple_assign_set_rhs_with_ops.  Add new arg for a third operand.
8694         (get_gimple_rhs_num_ops): Support GIMPLE_TERNARY_RHS.
8695         (get_gimple_rhs_num_ops): Handle WIDEN_MULT_PLUS_EXPR and
8696         WIDEN_MULT_MINUS_EXPR.
8697         * gimple.h (enum gimple_rhs_class): Add GIMPLE_TERNARY_RHS.
8698         (extract_ops_from_tree_1): Adjust declaration.
8699         (gimple_assign_set_rhs_with_ops_1): Likewise.
8700         (gimple_build_assign_with_ops): Pass NULL for last operand.
8701         (gimple_build_assign_with_ops3): New macro.
8702         (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3,
8703         gimple_assign_set_rhs_with_ops, extract_ops_from_tree): New inline
8704         functions.
8705         * tree-cfg.c (verify_gimple_assign_ternary): New static function.
8706         (verify_gimple_assign): Call it.
8707         * doc/gimple.texi (Manipulating operands): Document GIMPLE_TERNARY_RHS.
8708         (Tuple specific accessors, subsection GIMPLE_ASSIGN): Document new
8709         functions for dealing with three-operand statements.
8710         * tree.c (commutative_ternary_tree_code): New function.
8711         * tree.h (commutative_ternary_tree_code): Declare it.
8712         * tree-vrp.c (gimple_assign_nonnegative_warnv_p): Return false for
8713         ternary statements.
8714         (gimple_assign_nonzero_warnv_p): Likewise.
8715         * tree-ssa-sccvn.c (stmt_has_constants): Handle GIMPLE_TERNARY_RHS.
8716         * tree-ssa-ccp.c (get_rhs_assign_op_for_ccp): New static function.
8717         (ccp_fold): Use it.  Handle GIMPLE_TERNARY_RHS.
8718         * tree-ssa-dom.c (enum expr_kind): Add EXPR_TERNARY.
8719         (struct hashtable_expr): New member ternary in the union.
8720         (initialize_hash_element): Handle GIMPLE_TERNARY_RHS.
8721         (hashable_expr_equal_p): Fix indentation.  Handle EXPR_TERNARY.
8722         (iterative_hash_hashable_expr): Likewise.
8723         (print_expr_hash_elt): Handle EXPR_TERNARY.
8724         * gimple-fold.c (fold_gimple_assign): Handle GIMPLE_TERNARY_RHS.
8725         * tree-ssa-threadedge.c (fold_assignment_stmt): Remove useless break
8726         statements.  Handle GIMPLE_TERNARY_RHS.
8727
8728 2010-06-25  Jan Hubicka  <jh@suse.cz>
8729
8730         * doc/invoke.texi (-Wsuggest-attribute): Add noreturn.
8731
8732 2010-06-25  Shujing Zhao  <pearly.zhao@oracle.com>
8733
8734         PR c/44517
8735         * c-parser.c (c_parser_parms_list_declarator): Return NULL if one of
8736         parameters are not good.
8737         (c_parser_parameter_declaration): Error unknown type name if the type
8738         name can't start declaration specifiers.
8739
8740 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
8741
8742         * gcc.c (translate_options): Don't mention +e in comment.
8743         (process_command): Don't handle +e specially.
8744
8745 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
8746
8747         * ira.c (allocno_pool, copy_pool, allocno_live_range_pool): Delete.
8748
8749         * ira-build.c (merge_hard_reg_conflicts): New function.
8750         (create_cap_allocno, copy_info_to_removed_store_destinations,
8751         propagate_some_info_from_allocno, propagate_allocno_info): Use it.
8752         (move_allocno_live_ranges, copy_allocno_live_ranges): New functions.
8753         (remove_unnecessary_allocnos, remove_low_level_allocnos)
8754         copy_nifo_to_removed_store_destination): Use them.
8755         * ira-lives.c (make_hard_regno_born): New function, split out of
8756         make_regno_born.
8757         (make_allocno_born): Likewise.
8758         (make_hard_regno_dead): New function, split out of make_regno_dead.
8759         (make_allocno_dead): Likewise.
8760         (inc_register_pressure): New function, split out of set_allocno_live.
8761         (dec_register_pressure): New function, split out of clear_allocno_live.
8762         (mark_pseudo_regno_live): New function, split out of mark_reg_live.
8763         (mark_hard_reg_live): Likewise.  Use inc_register_pressure.
8764         (mark_pseudo_regno_dead): New function, split out of mark_reg_dead.
8765         (mark_hard_reg_dead): Likewise.  Use dec_register_pressure.
8766         (make_pseudo_conflict): Use mark_pseudo_regno_dead and
8767         mark_pseudo_regno_live.
8768         (process_bb_node_lives): Use mark_pseudo_regno_live,
8769         make_hard_regno_born and make_allocno_dead.
8770         (make_regno_born, make_regno_dead, mark_reg_live, mark_reg_dead,
8771         set_allocno_live, clear_allocno_live): Delete functions.
8772
8773         * ira-int.h (ira_parent_allocno, ira_parent_or_cap_allocno): Declare.
8774         * ira-build.c (ira_parent_allocno, ira_parent_or_cap_allocno): New
8775         functions.
8776         (ira_flattening): Use ira_parent_allocno.
8777         * ira-conflicts.c (process_regs_for_copy, propagate_copies)
8778         build_allocno_conflicts): Use ira_parent_or_cap_allocno.
8779
8780         * ira-color.c (assign_hard_reg): Improve formatting of multi-line for
8781         statement.
8782
8783         * ira-int.h (SET_MINMAX_SET_BIT, CLEAR_MINMAX_SET_BIT,
8784         TEST_MINMAX_SET_BIT, minmax_set_iterator, minmax_set_iter_init,
8785         minmax_set_iter_cond, minmax_set_iter_next,
8786         FOR_EACH_BIT_IN_MINMAX_SET): Renamed from SET_ALLOCNO_SET_BIT,
8787         CLEAR_ALLOCNO_SET_BIT, TEST_ALLOCNO_SET_BIT, ira_allocno_set_iterator,
8788         ira_allocno_set_iter_init, ira_allocno_set_iter_cond,
8789         ira_allocno_set_iter_Next and FOR_EACH_ALLOCNO_IN_ALLOCNO_SET.  All
8790         uses changed.
8791
8792         * ira-int.h (struct live_range, live_range_t): Renamed from struct
8793         ira_allocno_live_range and allocno_live_range_t; all uses changed.
8794         * ira-build.c (live_range_pool): Renamed from allocno_live_range_pool.
8795         All uses changed.
8796
8797 2010-06-24  Richard Earnshaw  <rearnsha@arm.com>
8798
8799         * thumb2.md (thumb2_tlobits_cbranch): Delete.
8800         (peephole2 to convert zero_extract/compare of single bit to
8801          lshift/compare): New.
8802
8803 2010-06-24  Anatoly Sokolov  <aesok@post.ru>
8804
8805         * fold-const.c (const_binop): Remove 'notrunc' argement. Adjust
8806         recursive call and call to 'int_const_binop'.
8807         (build_range_check, fold_cond_expr_with_comparison, unextend,
8808         fold_truthop, extract_muldiv_1, fold_comparison, fold_binary_loc,
8809         multiple_of_p): Adjust call to const_binop.
8810
8811 2010-06-24  Uros Bizjak  <ubizjak@gmail.com>
8812
8813         * config/i386/i386.md (XFmode push splitter): Use GET_MODE_SIZE to
8814         determine size of XFmode operand.
8815         (XFmode extended DFmode push splitter): Ditto.
8816         (XFmode extended SFmode push splitter): Ditto.
8817
8818 2010-06-24  H.J. Lu  <hongjiu.lu@intel.com>
8819
8820         PR target/44588
8821         * config/i386/i386.md (extract_code): New.
8822         (<u>divmodqi4): Likewise.
8823         (divmodhiqi3): Likewise.
8824         (udivmodhiqi3): Likewise.
8825         (<u>divqi3): Remvoved.
8826
8827 2010-06-24  Jakub Jelinek  <jakub@redhat.com>
8828
8829         PR middle-end/44492
8830         * recog.h (struct recog_data): Add is_asm field.
8831         * recog.c (asm_operand_ok, constrain_operands): If neither < nor > is
8832         present in constraints of inline-asm operand and memory operand
8833         contains {PRE,POST}_{INC,DEC,MODIFY}, return 0.
8834         (extract_insn): Initialize recog_data.is_asm.
8835         * doc/md.texi (Constraints): Document operand side-effect rules.
8836
8837 2010-06-24  Andi Kleen  <ak@linux.intel.com>
8838
8839         * c-parser.c (c_parser_conditional_expression): Call
8840         warn_for_omitted_condop.
8841         * doc/invoke.texi: Document omitted condop warning.
8842
8843 2010-06-24  Nick Clifton<nickc@redhat.com>
8844
8845         * loop-unswitch.c (compare_and_jump_seq): Assert that the last
8846         insn in the sequence is a jump insn before setting its label.
8847
8848 2010-06-24  Alan Modra  <amodra@gmail.com>
8849
8850         * collect2.c (main): Match exactly --version and --help.
8851
8852 2010-06-24  DJ Delorie  <dj@redhat.com>
8853
8854         * config/m32c/m32c-pragma.c: Don't include rtl.h.
8855
8856 2010-06-23  Uros Bizjak  <ubizjak@gmail.com>
8857
8858         * config/i386/i386.md (mov<mode>): Macroize expander from mov{sf,df,xf}
8859         using X87MODEF mode iterator.
8860         (pushsf splitter): Macroize splitter using P mode iterator.
8861         (*swap<mode>): Macroize insn from *swap{sf,df} using MODEF
8862         mode iterator.
8863
8864         (*movxf_internal): Rename from *movxf_integer.
8865         (*movxf_internal_nointeger): Rename from *movxf_nointeger.
8866         (*movdf_internal_rex64): Rename from *movdf_integer_rex64.
8867         (*movdf_internal): Rename from *movdf_integer.
8868         (*movdf_internal_nointeger): Rename from *movdf_nointeger.
8869         (*movsf_internal): Rename from *movdf_1.
8870
8871 2010-06-23  Basile Starynkevitch  <basile@starynkevitch.net>
8872
8873         * coretypes.h (gimple_seq_node_d, gimple_seq_node)
8874         (const_gimple_seq_node): Removed typedefs.
8875
8876         * gimple.h (gimple_seq_node_d, gimple_seq_node)
8877         (const_gimple_seq_node): Added typedefs moved from coretypes.h.
8878
8879 2010-06-23  H.J. Lu  <hongjiu.lu@intel.com>
8880
8881         * config/i386/i386.c (bdesc_args): Replace CODE_FOR_avx_si_si256,
8882         CODE_FOR_avx_ps_ps256 and CODE_FOR_avx_pd_pd256 with
8883         CODE_FOR_vec_extract_lo_v8si, CODE_FOR_vec_extract_lo_v8sf
8884         and CODE_FOR_vec_extract_lo_v4df.
8885
8886         * config/i386/sse.md (vec_extract_lo_<AVX256MODE4P:mode>):
8887         Changed to define_insn_and_split.
8888         (vec_extract_lo_<AVX256MODE8P:mode>): Likewise.
8889         (vec_extract_lo_v16hi): Likewise.
8890         (vec_extract_lo_v32qi): Likewise.
8891         (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
8892         (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Removed.
8893
8894 2010-06-23  Joern Rennecke  <joern.rennecke@embecosm.com>
8895
8896         PR target/44640
8897         * config/spu/spu-protos.h (spu_expand_epilogue) Use bool.
8898         * config/spu/spu.c (spu_scalar_mode_supported_p): Declare with bool.
8899         (spu_vector_mode_supported_p, spu_handle_fndecl_attribute): Likewise.
8900         (spu_handle_vector_attribute, spu_pass_by_reference): Likewise.
8901         (spu_rtx_costs, spu_function_ok_for_sibcall): Likewise.
8902
8903         PR target/44640
8904         * config/spu/spu.c (ea_load_store_inline): Use add_reg_note.
8905
8906         PR other/44644
8907         * df-core.c (struct df): Rename to df_d.
8908         * df.h (struct df): Likewise.
8909         * dse.h (struct df): Remove forward declaration.
8910         * recog.h (struct insn_data): Rename to:
8911         (struct_insn_data_d).  Adjusted all users.
8912
8913 2010-06-23  Arnaud Charlet  <charlet@adacore.com
8914
8915         PR ada/22220
8916         * doc/install.texi: Update requirements to build GNAT.
8917
8918 2010-06-22  Andreas Schwab  <schwab@linux-m68k.org>
8919
8920         * config/m68k/m68k.c (m68k_output_addr_const_extra): Add cast to
8921         enum type.
8922         (m68k_sched_attr_opx_type): Remove unreachable return.
8923         (m68k_sched_attr_opy_type): Likewise.
8924         (m68k_sched_attr_size): Likewise.
8925         (sched_get_opxy_mem_type): Likewise.
8926         (m68k_sched_attr_op_mem): Likewise.
8927
8928 2010-06-22  Eric Botcazou  <ebotcazou@adacore.com>
8929
8930         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Chain the
8931         new statement and adjust VDEF only if necessary.  Remove superfluous
8932         call to maybe_clean_or_replace_eh_stmt.
8933         * gimple.c (gimple_call_copy_skip_args): Use gimple_call_copy_flags to
8934         copy the flags.
8935         * gimple-iterator.c (gsi_replace): Clear BB of old statement here...
8936         * tree-inline.c (copy_bb): ...and not there.
8937
8938 2010-06-22  Cary Coutant  <ccoutant@google.com>
8939
8940         * dwarf2out.c (is_nested_in_subprogram): New function.
8941         (should_move_die_to_comdat): Use it.
8942         (copy_ancestor_tree): Don't mark DIEs here.
8943         (copy_decls_walk): Start walk from root of newly-added tree;
8944         mark DIEs here instead.
8945
8946 2010-06-22  H.J. Lu  <hongjiu.lu@intel.com>
8947
8948         * config/i386/i386.md (unit): Also check sseishft1.
8949
8950 2010-06-22  Jan Hubicka  <jh@suse.cz>
8951
8952         * gimple.h (gimple_expr_code): Do checking on when gimple checking is
8953         enabled.
8954
8955 2010-06-22  Jan Hubicka  <jh@suse.cz>
8956
8957         * df-problems.c (df_rd_confluence_n, df_lr_confluence_n,
8958         df_live_confluence_n, df_byte_lr_confluence_n, df_md_confluence_n):
8959         Return true if something changed.
8960         * df.h (df_confluence_function_n): Return bool.
8961         * df-core.c (df_worklist_propagate_forward,
8962         df_worklist_propagate_backward): Track changes and ages.
8963         (df_worklist_dataflow_doublequeue): Use bitmap iterator for main walk;
8964         track ages.
8965         * dse.c (dse_confluence_n): Return always true.
8966
8967 2010-06-22  Jan Hubicka  <jh@suse.cz>
8968
8969         * bitmap.c (bitmap_clear_bit): Micro optimize.
8970
8971 2010-06-22  Uros Bizjak  <ubizjak@gmail.com>
8972
8973         * config/i386/i386.md (SWI1248x): New mode iterator.
8974         (SWI48x): Ditto.
8975         (SWI12): Ditto.
8976         (SWI24): Ditto.
8977
8978         (mov<mode>): Macroize expander from mov{qi,hi,si,di} using
8979         SWI1248x mode iterator.
8980         (*push<mode>2_rex64): Macroize insn from *push{qi,hi,si}_rex64
8981         using SWI124 mode iterator.
8982         (*push<mode>2): Macroize insn from *push{qi,hi} using SWI12
8983         mode iterator.
8984         (*push<mode>2_prologue): Macroize insn from  *pushsi2_prologue and
8985         *pushdi2_prologue_rex64 using P mode iterator.
8986         (*mov<mode>_xor): Macroize insn from *movsi_xor and *movdi_xor_rex64
8987         using SWI48 mode iterator.
8988         (*mov<mode>_or): Ditto from *movsi_or and *movdi_or_rex64.
8989         (*movabs<mode>_1): Macroize insn from *movabs{qi,hi,si,di}_1_rex64
8990         using SWI1248x mode iterator.
8991         (*movabs<mode>_2): Ditto from *movabs{qi,hi,si,di}_1_rex64.
8992         (*swap<mode>): Macroize insn from *swapsi and *swapdi_rex64 using
8993         SWI48 mode iterator.
8994         (*swap<mode>_1): Macroize insn from *swap{qi,hi}_1 using SWI12 mode
8995         iterator.
8996         (*swap<mode>_2): Ditto from *swap{qi,hi}_2.
8997         (movstrict<mode>): Macroize expander from movstrict{qi,hi} using
8998         SWI12 mode iterator.
8999         (*movstrict<mode>_1): Macroize insn from *movstrict{qi,hi}_1 using
9000         SWI12 mode iterator.
9001         (*movstrict<mode>_xor): Ditto from *movstrict{qi,hi}_xor.
9002         (*mov<mode>_extv_1): Macroize insn from *mov{hi,si}_extv_1 using
9003         SWI24 mode iterator.
9004         (*mov<mode>_extzv_1): Macroize insn from *mov{si,di}_extzv_1 using
9005         SWI48 mode iterator.
9006         (mov<mode>_insn_1): New expander.
9007         (*mov<mode>_insv_1_rex64): Macroize insn from *mov{si,di}_insv_1_rex64
9008         using SWI48x mode iterator.
9009
9010         (*movoi_internal_avx): Rename from *movoi_internal.
9011         (*movti_internal_rex64): Rename from *movti_rex64.
9012         (*movti_internal_sse): Rename from *movti_sse.
9013         (*movdi_internal_rex64): Rename from *movdi_1_rex64.
9014         (*movdi_internal): Rename from *movdi_2.
9015         (*movsi_internal): Rename from *movsi_1.
9016         (*movhi_internal): Rename from *movhi_1.
9017         (*movqi_internal): Rename from *movqi_1.
9018
9019         (insv): Update the call to gen_movsi_insv_1 for rename.
9020         * config/i386/i386.c (promote_duplicated_reg): Ditto.
9021
9022 2010-06-22  Jan Hubicka  <jh@suse.cz>
9023
9024         * passes.c (execute_function_todo): Move call of statistics_fini_pass
9025         to ...
9026         (execute_todo) ... this one.
9027
9028 2010-06-22  Alan Modra  <amodra@gmail.com>
9029
9030         PR target/44364
9031         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
9032         * caller-save.c (insert_restore, insert_save): Use non-validate
9033         form of adjust_address.
9034
9035 2010-06-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9036
9037         PR target/39690
9038         * config/pa/pa.c (override_options): Disable
9039         -freorder-blocks-and-partition.
9040
9041 2010-06-21  H.J. Lu  <hongjiu.lu@intel.com>
9042
9043         PR target/44615
9044         * config/i386/atom.md (atom_sseishft_2): Also check sseishft1.
9045
9046         * config/i386/i386.md (type): Add sseishft1
9047
9048         * config/i386/ppro_insn (ppro_insn): Also check sseishft1.
9049         (ppro_insn_load): Likewise.
9050         (ppro_insn_store): Likewise.
9051         (ppro_insn_both): Likewise.
9052
9053         * config/i386/sse.md (sse2_lshrv1ti3): Add atom_unit.
9054         (*vec_extractv2di_1_rex64_avx): Replace sseishft with sseishft1
9055         for type.
9056         (*vec_extractv2di_1_avx): Likewise.
9057         (*vec_extractv2di_1_rex64): Replace sseishft with sseishft1 for
9058         type.  Remove atom_unit.
9059         (*vec_extractv2di_1_sse2): Likewise.
9060
9061 2010-06-21  DJ Delorie  <dj@redhat.com>
9062
9063         * diagnostic.h (diagnostic_classification_change_t): New.
9064         (diagnostic_context): Add history and push/pop list.
9065         (diagnostic_push_diagnostics): Declare.
9066         (diagnostic_pop_diagnostics): Declare.
9067         * diagnostic.c (diagnostic_classify_diagnostic): Store changes
9068         from pragmas in a history chain instead of the global table.
9069         (diagnostic_push_diagnostics): New.
9070         (diagnostic_pop_diagnostics): New.
9071         (diagnostic_report_diagnostic): Scan history chain to find state
9072         of diagnostics as of the diagnostic location.
9073         * opts.c (set_option): Pass UNKNOWN_LOCATION to
9074         diagnostic_classify_diagnostic.
9075         (enable_warning_as_error): Likewise.
9076         * diagnostic-core.h (DK_POP): Add after "real" diagnostics, for
9077         use in the history chain.
9078         * doc/extend.texi: Document pragma GCC diagnostic changes.
9079
9080 2010-06-21  Jakub Jelinek  <jakub@redhat.com>
9081
9082         * dwarf2out.c (add_linkage_name): New function.  Don't add
9083         anything to DW_TAG_member DIEs.
9084         (add_name_and_src_coords_attributes): Use it.
9085         (gen_variable_die): Call it for C++ static data members if
9086         specification is DW_TAG_member.
9087
9088         * dwarf2out.c (base_type_die): Use DW_ATE_UTF for
9089         C++ char16_t and char32_t.
9090
9091         * Makefile.in (build/genattrtab.o): Depend on vecprim.h.
9092         * genattrtab.c: Include vecprim.h.
9093         (cached_attrs, cached_attr_count, attrs_seen_once,
9094         attrs_seen_more_than_once, attrs_to_cache, attrs_cached_inside,
9095         attrs_cached_after): New variables.
9096         (find_attrs_to_cache): New function.
9097         (FLG_BITWISE, FLG_AFTER, FLG_INSIDE, FLG_OUTSIDE_AND): Define.
9098         (write_test_expr): Add attrs_cached argument, return it too,
9099         attempt to cache non-const attributes used more than once in
9100         a single case handling.
9101         (write_attr_get): Use find_attrs_to_cache, for caching candidates
9102         emit cached_* variables.  Adjust write_attr_set callers.
9103         (write_attr_set): Add attrs_cached attribute, use find_attrs_to_cache
9104         to find attributes that should be cached in this block.  Adjust
9105         write_test_expr callers.
9106         (write_attr_case): Clear attrs_to_cache.  Adjust write_attr_set
9107         callers.
9108         (make_automaton_attrs): Adjust write_test_expr caller.
9109
9110         * Makefile.in (cfgexpand.o): Depend on $(INSN_ATTR_H).
9111         * genattrtab.c (check_tune_attr, find_tune_attr): New functions.
9112         (make_automaton_attrs): If find_tune_attr returns non-NULL,
9113         write separate internal_dfa_insn_code_* and insn_default_latency_*
9114         functions for each attribute's value and emit init_sched_attrs
9115         function and function pointers.
9116         * genattr.c (const_attrs, reservations): New variables.
9117         (gen_attr): Add const attributes to const_attrs vector.
9118         (check_tune_attr, find_tune_attr): New functions.
9119         (main): Add reservations to reservations vector.  If find_tune_attr
9120         returns true, add prototype for init_sched_attrs and make
9121         internal_dfa_insn_code and insn_default_latency function pointers,
9122         otherwise define init_sched_attrs as dummy macro.
9123         * cfgexpand.c: Include insn-attr.h.
9124         (gimple_expand_cfg): Call init_sched_attrs.
9125
9126         * stmt.c (resolve_asm_operand_names): Fix handling of %%.
9127
9128         PR target/44575
9129         * config/i386/i386.c (ix86_gimplify_va_arg): When copying
9130         va_arg from a set of register save slots into a temporary,
9131         if the container is bigger than type size, do the copying
9132         using smaller mode or using memcpy.
9133
9134         PR bootstrap/44426
9135         * sel-sched-dump.h (sel_prepare_string_for_dot_label): Remove
9136         prototype.
9137         (sel_print_to_dot): Remove macro.
9138         (sel_print): Likewise.  New prototype.
9139         * sel-sched-dump.c (sel_prepare_string_for_dot_label): Make static.
9140         (sel_print): New function.
9141
9142 2010-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9143
9144         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define
9145         __STDC_VERSION__=199901L, _XOPEN_SOURCE=600 for C++.
9146
9147 2010-06-21  Nick Clifton  <nickc@redhat.com>
9148
9149         * config/rx/rx.h (PTRDIFF_TYPE): Define.
9150         (SMALL_REGISTER_CLASS): Define (to zero).
9151         (PRINT_OPERAND): Delete.
9152         (PRINT_OPERAND_ADDRESS): Delete.
9153         * config/rx/rx-protos.h (rx_print_operand): Delete prototype.
9154         (rx_print_operand_address): Delete prototype.
9155         * config/rx/rx.c (rx_print_operand): Make static.
9156         Allow %H and %L to handle CONST_DOUBLEs.
9157         (rx_print_operand_address): Make static.
9158         (rx_gen_move_template): Rename local variable 'template' to
9159         out_template.
9160         (rx_function_arg): Do not pass unknown sized objects in registers.
9161         (TARGET_PRINT_OPERAND): Define.
9162         (TARGET_PRINT_OPERAND_ADDRESS): Define.
9163
9164 2010-06-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
9165
9166         * Makefile.in (POD2MAN): Provide --date from $(DATESTAMP).
9167
9168 2010-06-21  Kai Tietz  <kai.tietz@onevision.com>
9169
9170         * config/i386/i386.c (ix86_compute_frame_layout): Avoid
9171         stack-alignment for simple leaf-functions.
9172
9173 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
9174
9175         * doc/install.texi: Document bootstrap-lto.
9176
9177 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
9178
9179         PR debug/44248
9180         * lto-streamer-in.c (input_bb): Leave debug stmts alone.
9181         (input_function): Drop them here, if VTA is disabled.
9182
9183 2010-06-20  Uros Bizjak  <ubizjak@gmail.com>
9184
9185         PR target/44546
9186         * config/i386/predicates.md (ix86_swapped_fp_comparsion_operator):
9187         New predicate.
9188         * config/i386/i386.md (*fp_jcc_8<mode>_387 and splitters): Use
9189         ix86_swapped_fp_comparsion_operator instead of
9190         ix86_fp_comparison_operator.
9191
9192         (*fp_jcc_1_387): Rename from *fp_jcc_3_387.
9193         (*fp_jcc_1r_387): Rename from *fp_jcc_4_387.
9194         (*fp_jcc_2_387): Rename from *fp_jcc_5_387.
9195         (*fp_jcc_2r_387): Rename from *fp_jcc_6_387.
9196         (*fp_jcc_3_387): Rename from *fp_jcc_7_387.
9197         (*fp_jcc_4_<mode>_387): Rename from *fp_jcc_8<mode>_387.
9198
9199 2010-06-20  Joseph Myers  <joseph@codesourcery.com>
9200
9201         PR other/32998
9202         * opth-gen.awk: Generate definitions of OPT_SPECIAL_unknown,
9203         OPT_SPECIAL_program_name and OPT_SPECIAL_input_file.
9204         * opts-common.c (find_opt): Return OPT_SPECIAL_unknown on failure.
9205         (decode_cmdline_option): Update for this return value.  Set
9206         orig_option_with_args_text field.  Set arg field for unknown
9207         options.  Make static.
9208         (decode_cmdline_options_to_array): New.
9209         (prune_options): Update handling of find_opt return value.
9210         * opts.c (read_cmdline_option): Take decoded option.  Return void.
9211         (read_cmdline_options): Take decoded options.
9212         (decode_options): Add parameters for decoded options.  Use
9213         decode_cmdline_options_to_array.  Use decoded options for -O
9214         scan.  Use integral_argument for -O parameters.  Update call to
9215         read_cmdline_options.
9216         (enable_warning_as_error): Update handling of find_opt return value.
9217         * opts.h: Update comment on unknown options.
9218         (struct cl_decoded_option): Update comments on opt_index and arg.
9219         Add orig_option_with_args_text.
9220         (decode_cmdline_option): Remove.
9221         (decode_cmdline_options_to_array): Declare.
9222         (decode_options): Update prototype.
9223         * toplev.c (save_argv): Remove.
9224         (save_decoded_options, save_decoded_options_count): New.
9225         (read_integral_parameter): Remove.
9226         (print_switch_values): Use decoded options.
9227         (toplev_main): Don't set save_argv.  Update call to decode_options.
9228         * toplev.h (read_integral_parameter): Remove.
9229         * varasm.c (elf_record_gcc_switches): Don't handle holding back names.
9230
9231 2010-06-19  Richard Earnshaw  <rearnsha@arm.com>
9232
9233         PR target/44072
9234         * arm.md (cmpsi2_addneg): Prefer emitting adds to subs with a negative
9235         immediate.
9236         * constraints.md (Pw, Px): New constraints.
9237         * thumb2.md (cmpsi2_addneg peephole2): New peepholes.
9238
9239 2010-06-19  H.J. Lu  <hongjiu.lu@intel.com>
9240
9241         * config/i386/sse.md (fma4modesuffixf4): Removed.
9242         (ssemodesuffixf2s): Likewise.
9243         (ssemodesuffixf4): Likewise.
9244         (ssemodesuffixf2c): Likewise.
9245         (ssescalarmodesuffix2s): Likewise.
9246         (avxmodesuffixf2c): Likewise.
9247         (ssemodesuffix): New.
9248         (ssescalarmodesuffix): Likewise.
9249         Update patterns with ssemodesuffix and ssescalarmodesuffix.
9250
9251 2010-06-19  Philip Herron  <herron.philip@googlemail.com>
9252
9253         * c-decl.c (c_write_global_declarations): Don't check flag_syntax_only.
9254
9255 2010-06-18  H.J. Lu  <hongjiu.lu@intel.com>
9256
9257         * stor-layout.c (debug_rli): Remove unused local variables.
9258
9259 2010-06-18  Eric Botcazou  <ebotcazou@adacore.com>
9260
9261         PR rtl-optimization/40900
9262         * expr.c (expand_expr_real_1) <SSA_NAME>: Fix long line.  Save the
9263         original expression for later reuse.
9264         <expand_decl_rtl>: Use promote_function_mode to compute the signedness
9265         of the promoted RTL for a SSA_NAME on the LHS of a call statement.
9266
9267 2010-06-18  Anatoly Sokolov  <aesok@post.ru>
9268
9269         * double-int.h (double_int_to_shwi, double_int_to_uhwi,
9270         double_int_fits_in_uhwi_p): Implement as static inline.
9271         (double_int_xor): New inline function.
9272         (double_int_lrotate, double_int_rrotate, double_int_max,
9273         double_int_umax, double_int_smax, double_int_min, double_int_umin,
9274         double_int_smin): Declare.
9275         (lrotate_double, rrotate_double): Remove declaration.
9276         * double-int.c (double_int_fits_in_uhwi_p, double_int_to_shwi,
9277         double_int_to_uhwi, lrotate_double, rrotate_double): Remove function.
9278         (double_int_lrotate, double_int_rrotate, double_int_max,
9279         double_int_umax, double_int_smax, double_int_min, double_int_umin,
9280         double_int_smin): New function.
9281         * fold-const.c (int_const_binop): Clean up, use double_int_*
9282         functions.
9283         * simplify-rtx.c (simplify_const_binary_operation): Clean up, use
9284         double_int_* and immed_double_int_const functions.
9285
9286 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
9287
9288         * function.h (types_used_by_cur_var_decl): Change type to a VEC.
9289         * function.c (types_used_by_cur_var_decl): Likewise.
9290         (used_types_insert): Adjust for new type of types_used_by_cur_var_decl.
9291
9292 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
9293
9294         * tree.h (record_layout_info): Change type of pending_statics field
9295         to a VEC.
9296         * stor-layout.c (start_record_layout): Store NULL into
9297         pending_statics.
9298         (debug_rli): Call debug_vec_tree instead of debug_tree.
9299         (place_field): Likewise.
9300         (finish_record_layout): Likewise.
9301
9302 2010-06-18  Alan Modra  <amodra@gmail.com>
9303
9304         * config/rs6000/linux64.h (SET_CMODEL): Don't expand to empty.
9305
9306 2010-06-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9307
9308         PR target/43740
9309         * config/pa/pa.c (emit_move_sequence): Don't infer REG_POINTER flag
9310         for SET source operand from SET destination operand.
9311
9312 2010-06-17  Bernd Schmidt  <bernds@codesourcery.com>
9313
9314         PR rtl-optimization/39871
9315         * reload1.c (init_eliminable_invariants): For flag_pic, disable
9316         equivalences only for constants that aren't LEGITIMATE_PIC_OPERAND_P.
9317         (function_invariant_p): Rule out a plus of frame or arg pointer with
9318         a SYMBOL_REF.
9319         * ira.c (find_reg_equiv_invariant_const): Likewise.
9320
9321 2010-06-17  Gunther Nikl  <gnikl@users.sourceforge.net>
9322
9323         * config/rs6000/rs6000.c (print_operand) <'K'>: Also use
9324         print_operand_address and puts to output the operand for CONST.
9325
9326 2010-06-17  Jakub Jelinek  <jakub@redhat.com>
9327
9328         PR debug/44572
9329         * dwarf2out.c (dwarf2out_debug_hooks): Add entry for begin_epilogue
9330         hook.
9331
9332 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
9333
9334         * v850-protos.h (print_operand): Delete.
9335         (print_operand_address): Delete.
9336         * v850.h (PRINT_OPERAND): Delete.
9337         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
9338         (PRINT_OPERAND_ADDRESS): Delete.
9339         * v850.c (print_operand_address): Rename to...
9340         (v850_print_operand_address): ...this.  Make static. Call
9341         v850_print_operand.
9342         (print_operand): Rename to...
9343         (v850_print_operand): ...this.  Make static.  Call
9344         v850_print_operand_address.
9345         (v850_print_operand_punct_valid_p): New function.
9346         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
9347         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
9348
9349 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
9350
9351         * config/sh/sh-protos.h (print_operand): Delete.
9352         (print_operand_address): Delete.
9353         * config/sh/sh.h (PRINT_OPERAND): Delete.
9354         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
9355         (PRINT_OPERAND_ADDRESS): Delete.
9356         * config/sh/sh.c (sh_print_operand_address): Make static.
9357         (sh_print_operand): Make static.  Call sh_print_operand_address
9358         and sh_print_operand.
9359         (sh_print_operand_punct_valid_p): New function.
9360         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
9361         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
9362
9363 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
9364
9365         * config/mcore/mcore-protos.h (mcore_print_operand): Delete.
9366         (mcore_print_operand_address): Delete.
9367         * config/mcore/mcore.h (PRINT_OPERAND): Delete.
9368         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
9369         (PRINT_OPERAND_ADDRESS): Delete.
9370         * config/mcore/mcore.c (mcore_print_operand_address): Make static.
9371         (mcore_print_operand): Make static.
9372         (mcore_print_operand_punct_valid_p): New function.
9373         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define
9374         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
9375
9376 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
9377
9378         * config/m68hc11/m68hc11-protos.h (print_operand): Delete.
9379         (print_operand_address): Delete.
9380         * config/m68hc11/m68hc11.h (PRINT_OPERAND): Delete.
9381         (PRINT_OPERAND_ADDRESS): Delete.
9382         * config/m68hc11/m68hc11.c (m68hc11_print_operand_address): Make
9383         static.
9384         (m68hc11_print_operand): Make static.
9385         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
9386
9387 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
9388
9389         * config/m32r/m32r-protos.h (m32r_print_operand): Delete.
9390         (m32r_print_operand_address): Delete.
9391         * config/m32r/m32r.h (m32r_punct_chars): Delete.
9392         (PRINT_OPERAND): Delete.
9393         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
9394         (PRINT_OPERAND_ADDRESS): Delete.
9395         * config/m32r/m32r.c (m32r_punct_chars): Make static.
9396         (m32r_print_operand_address): Make static.
9397         (m32r_print_operand): Make static.
9398         (m32r_print_operand_punct_valid_p): New function.
9399         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
9400         (TARGET_PRINT_OPERAND_ADDRESS): Define.
9401
9402 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
9403
9404         * config/iq2000/iq2000-protos.h (print_operand): Delete.
9405         (print_operand_address): Delete.
9406         * config/iq2000/iq2000.h (PRINT_OPERAND): Delete.
9407         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
9408         (PRINT_OPERAND_ADDRESS): Delete.
9409         (iq2000_print_operand_punct): Delete.
9410         * config/iq2000/iq2000.c (iq2000_print_operand_punct): Make static.
9411         (iq2000_print_operand_address): Make static.
9412         (iq2000_print_operand): Make static.
9413         (iq2000_print_operand_punct_valid_p): New function.
9414         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
9415         (TARGET_PRINT_OPERAND_ADDRESS): Define.
9416
9417 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
9418
9419         * config/frv/frv-protos.h (frv_print_operand): Delete.
9420         (frv_print_operand_address): Delete.
9421         * config/frv/frv.h (PRINT_OPERAND): Delete.
9422         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
9423         (PRINT_OPERAND_ADDRESS): Delete.
9424         * config/frv/frv.c (frv_print_operand_address): Make static.
9425         (frv_print_operand): Make static.
9426         (frv_print_operand_punct_valid_p): New function.
9427         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
9428         (TARGET_PRINT_OPERAND_ADDRESS): Define.
9429
9430 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
9431
9432         * tree.h (vec_member): Declare.
9433         * tree.c (vec_member): Define.
9434
9435 2010-06-17  Richard Guenther  <rguenther@suse.de>
9436
9437         * tree-flow-inline.h (array_ref_contains_indirect_ref): Remove.
9438         * tree-flow.h (array_ref_contains_indirect_ref): Likewise.
9439
9440 2010-06-17  Richard Guenther  <rguenther@suse.de>
9441
9442         * tree-inline.c (declare_return_variable): Remove bogus code.
9443
9444 2010-06-17  Richard Guenther  <rguenther@suse.de>
9445
9446         * gimplify.c (gimplify_bind_expr): Always promote complex
9447         and vector variables to registers if possible.
9448
9449 2010-06-17  Richard Guenther  <rguenther@suse.de>
9450
9451         * expr.c (get_inner_reference): Use double_int for bit_offset
9452         calculation.
9453
9454 2010-06-16  DJ Delorie  <dj@redhat.com>
9455
9456         * common.opt (-fstrict-volatile-bitfields): new.
9457         * doc/invoke.texi: Document it.
9458         * fold-const.c (optimize_bit_field_compare): For volatile
9459         bitfields, use the field's type to determine the mode, not the
9460         field's size.
9461         * expr.c (expand_assignment): Likewise.
9462         (get_inner_reference): Likewise.
9463         (expand_expr_real_1): Likewise.
9464         * expmed.c (store_fixed_bit_field): Likewise.
9465         (extract_bit_field_1): Likewise.
9466         (extract_fixed_bit_field): Likewise.
9467
9468 2010-06-16  Richard Guenther  <rguenther@suse.de>
9469
9470         * tree-inline.c (remap_gimple_op_r): Recurse using remap_gimple_op_r.
9471
9472 2010-06-16  Douglas B Rupp  <rupp@gnat.com>
9473
9474         * config/ia64/vms.h (ASM_OUTPUT_DWARF_DELTA_UNITS): Remove.
9475         (ASM_OUTPUT_DWARF_VMS_DELTA: Define new macro.
9476         * dbxout.c (gcc_debug_hooks): New entry begin_epilogue.
9477         * debug.c: Likewise.
9478         * sdbout.c: Likewise.
9479         * vmsdbgout.c: Likewise.
9480         * debug.h: Likewise. (dwarf2out_vms_{begin,end}_prologue): Declare.
9481         * doc/tm.texi (ASM_OUTPUT_DWARF_VMS_DELTA): Document.
9482         * dwarf2asm.c (dw2_asm_output_vms_delta): New function.
9483         (ASM_OUTPUT_DWARF_VMS_DELTA): Call it.
9484         * dwarf2asm.h (dw2_asm_output_vms_delta): Declare.
9485         * dwarf2out.c (dw_fde_struct): New fields
9486         dw_fde_vms_{end,begin}_prologue.
9487         (PROLOGUE_END_LABEL, EPILOGUE_BEGIN_LABEL): New macros.
9488         (dwarf2out_begin_prologue): Set dw_fde_struct defaults for above.
9489         (dwarf2out_vms_end_prologue): New function.
9490         (dwarf2out_vms_begin_epilogue): New function.
9491         (dw_val_struct): New value dw_val_class_vms_delta.
9492         (gcc_debug_hooks): New entry begin_epilogue. Set end_prologue,
9493         begin_epilogue for VMS.
9494         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): Declare
9495         new static functions.
9496         (dwarf_attr_name): New cases DW_AT_HP_{prologue,epilogue}.
9497         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): New
9498         static functions.
9499         (print_die): New case dw_val_class_vms_delta.
9500         (attr_checksum): Likewise.
9501         (same_dw_val_p: Likewise.
9502         (size_of_die): Likewise.
9503         (value_format): Likewise.
9504         (output_die): Likewise.
9505         (gen_subprogram_die): Call add_AT_vms_delta on VMS.
9506         (dwarf2out_begin_epilogue): Rename to dwarf2out_cfi_begin_epilogue
9507         * dwarf2out.h (dwarf2out_begin_epilogue): Rename to
9508         dwarf2out_cfi_begin_epilogue
9509         * final.c (final_scan_insn): Likewise. Call begin_epilogue.
9510
9511 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
9512
9513         * config/cris/cris-protos.h (cris_print_operand): Delete.
9514         (cris_print_operand_address): Delete.
9515         * config/cris/cris.h (PRINT_OPERAND): Delete.
9516         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
9517         (PRINT_OPERAND_ADDRESS): Delete.
9518         * config/cris/cris.c (cris_print_operand_address): Make static.
9519         (cris_print_operand): Make static.
9520         (cris_print_operand_punct_valid_p): New function.
9521         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
9522         (TARGET_PRINT_OPERAND_ADDRESS): Define.
9523
9524 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
9525
9526         * config/arm/arm-protos.h (arm_print_operand): Delete.
9527         (arm_print_operand_address): Delete.
9528         * config/arm/arm.h (PRINT_OPERAND): Delete.
9529         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
9530         (PRINT_OPERAND_ADDRESS, ARM_PRINT_OPERAND_ADDRESS):
9531         (THUMB_PRINT_OPERAND_ADDRESS): Delete and move code to...
9532         * config/arm/arm.c (arm_print_operand_address): ...here.  New function.
9533         (arm_print_operand): Make static.
9534         (arm_print_operand_punct_valid_p): New function.
9535         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
9536         (TARGET_PRINT_OPERAND_ADDRESS): Define.
9537
9538 2010-06-16  Nick Clifton  <nickc@redhat.com>
9539
9540         * config/rx/constraints.md (NEGint4): New constraint.
9541         * config/rx/rx.md (attr cc): Add set_zsc.
9542         (cbranchsf4): Only test for -fnon-call-exceptions if cfun has been
9543         initialised.
9544         (cmpsf): Likewise.
9545         (call_internal): Clobber the cc0 register.
9546         (call_value_internal): Likewise.
9547         (cstoresi4): Likewise.
9548         (movsieq): Likewise.
9549         (movsine): Likewise.
9550         (addsi3): Add alternative to handle small negative constants.
9551         (sunsi3): Likewise.
9552         (addsi3): Do not set the O bit in the cc0 register.
9553         (adddi3): Likewise.
9554         (subsi3): Likewise.
9555         (subdi3): Likewise.
9556         (andsi3): Reorder alternatives to prefer shorter forms.
9557         (mulsi3): Likewise.
9558         (iorsi3): Likewise.
9559         (negsi2): Note that the cc0 flags are set.
9560         (rotlsi3): Note that only the Z and S bits are set in cc0.
9561         (lshrsi3): Likewise.
9562         (ashlsi3): Likewise.
9563         (subsf3): Use %Q for the MEM operand.
9564         (fix_truncsfsi2): Likewise.
9565         (floatsisf2): Likewise.
9566         (bitset): Remove early clobber from destination.
9567         (bitset_in_memory): Likewise.
9568         (lrintsf2): Clobber the cc0 register.
9569         * config/rx/rx.c (rx_notice_update_cc): Handle CC_SET_ZSC.
9570         (rx_print_operand): Handle %N.
9571
9572 2010-06-16  Jan Hubicka  <jh@suse.cz>
9573
9574         * df-core.c (df_compact_blocks): Free problem_temps vector.
9575
9576 2010-06-16  Martin Jambor  <mjambor@suse.cz>
9577
9578         PR tree-optimization/43905
9579         * tree-sra.c: Include tree-inline.h.
9580         (create_abstract_origin): Removed.
9581         (modify_function): Version the call graph node instead of creating
9582         abstract origins and dealing with same_body aliases.
9583         * tree-sra.c (ipa_sra_preliminary_function_checks): Check whether the
9584         function is versionable.
9585         * Makefile.in (tree-sra.o): Add TREE_INLINE_H to dependencies.
9586
9587 2010-06-16  Maxim Kuvyrkov  <maxim@codesourcery.com>
9588
9589         * config/mips/linux64.h (BIONIC_DYNAMIC_LINKERN32): Define.
9590         (CHOOSE_DYNAMIC_LINKER): Update.
9591
9592 2010-06-15  Uros Bizjak  <ubizjak@gmail.com>
9593
9594         * config/i386/i386.c (*prefetch_sse_<mode>):  Macroize insn from
9595         *prefetch_sse and *prefetch_sse_rex using P mode iterator.
9596         (*prefetch_3dnow_<mode>): Ditto from *prefetch_3dnow and
9597         *prefetch_3dnow_rex.
9598
9599 2010-06-15  Anatoly Sokolov  <aesok@post.ru>
9600
9601         * target.h (struct asm_out):Add declare_constant_name field.
9602         * target-def.h (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
9603         (TARGET_INITIALIZER): Use TARGET_ASM_DECLARE_CONSTANT_NAME.
9604         * output.h (default_asm_declare_constant_name): Declare.
9605         (assemble_label): Update prototype.
9606         * varasm.c (assemble_constant_contents): Use
9607         targetm.asm_out.declare_constant_name target hook.
9608         (assemble_label): Add 'file' argument.
9609         (default_asm_declare_constant_name): New function.
9610         * system.h (ASM_DECLARE_CONSTANT_NAME): Poison.
9611         * doc/tm.texi (ASM_DECLARE_CONSTANT_NAME): Remove.
9612         (TARGET_ASM_DECLARE_CONSTANT_NAME): Document it.
9613
9614         * config/darwin-protos.h (darwin_asm_declare_constant_name): Declare.
9615         * config/darwin.c (darwin_asm_declare_constant_name): New function.
9616         (machopic_output_indirection): Update assemble_label argument list.
9617         * config/darwin.h (ASM_DECLARE_CONSTANT_NAME): Remove.
9618         (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
9619
9620 2010-06-15  Sebastian Pop  <sebastian.pop@amd.com>
9621
9622         PR middle-end/44391
9623         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
9624         size_one_node for pointer types.  Do not call gmp_cst_to_tree.
9625
9626 2010-06-15  Richard Guenther  <rguenther@suse.de>
9627
9628         * tree-ssa-pre.c (eliminate): Handle PHI elimination to constants.
9629
9630 2010-06-15  Paul Brook  <paul@codesourcery.com>
9631
9632         * config/arm/arm.c (use_vfp_abi): Add sorry() for Thumb-1
9633         hard-float ABI.
9634
9635 2010-06-15  Alexandre Oliva  <aoliva@redhat.com>
9636
9637         * tree-vect-patterns.c (vect_pattern_recog_1): Bail out if we
9638         don't get a vector type for output.
9639
9640 2010-06-15  Jakub Jelinek  <jakub@redhat.com>
9641
9642         PR fortran/44536
9643         * langhooks.h (struct lang_hooks_for_decls): Add omp_report_decl.
9644         * langhooks-def.h (LANG_HOOKS_OMP_REPORT_DECL): Define.
9645         (LANG_HOOKS_DECLS): Add it.
9646         * gimplify.c (omp_notice_variable): Call
9647         lang_hooks.decls.omp_report_decl.
9648
9649 2010-06-15  Martin Jambor  <mjambor@suse.cz>
9650
9651         PR lto/44464
9652         * tree-sra.c (replace_removed_params_ssa_names): Call release_ssa_name
9653         on the newly dead SSA name.
9654
9655 2010-06-15  Alan Modra  <amodra@gmail.com>
9656
9657         * doc/invoke.texi: Add mcmodel to powerpc options.
9658         * configure.ac: Add HAVE_LD_LARGE_TOC test.
9659         * configure: Regenerate.
9660         * config.in: Regenerate.
9661         * config/rs6000/linux64.opt (mcmodel): New.
9662         * config/rs6000/linux64.h (TARGET_USES_LINUX64_OPT): Define.
9663         (TARGET_CMODEL, SET_CMODEL): Define.
9664         (SUBSUBTARGET_OVERRIDE_OPTIONS): Check user -mcmodel choice,
9665         select CMODEL_MEDIUM default.
9666         * config/rs6000/rs6000.h (enum rs6000_cmodel): New.
9667         (TARGET_CMODEL): Define default.
9668         * config/rs6000/rs6000.c (cmodel): New variable.
9669         (rs6000_explicit_options): Add cmodel field.
9670         (rs6000_handle_option): Handle -mcmodel.
9671         (create_TOC_reference): Add largetoc_reg param.  Generate high,
9672         lo_sum rtl for CMODEL_MEDIUM and CMODEL_LARGE.  Update all callers.
9673         (rs6000_delegitimize_address): Recognise new toc reference rtl
9674         and minimal-toc rtl.
9675         (rs6000_legitimize_reload_address): Handle new toc references.
9676         (print_operand_address): Handle legitimate_constant_pool_address_p
9677         match before lo_sum.
9678         (rs6000_eliminate_indexed_memrefs): Tidy.
9679         (rs6000_emit_move): Tweak threshold for inlining constants.
9680         Keep rs6000_emit_allocate_stack large stack frame offsets
9681         loaded into r0 inline.
9682         (rs6000_generate_compare <cmptf_internal2>): One more clobber.
9683         (tocrel_base, tocrel_offset): New variables.
9684         (toc_relative_expr_p): Set them here.
9685         (print_operand_address): Skip over any offset on constant pool address.
9686         (rs6000_output_addr_const_extra): Print tocrel_offset before @toc.
9687         (rs6000_mode_dependent_address <LO_SUM>): False for new toc refs.
9688         (offsettable_ok_by_alignment): New function.
9689         (rs6000_emit_move): Address suitably aligned local symbol_refs
9690         relative to the toc pointer for -mcmodel=medium.
9691         (legitimate_constant_pool_address_p): Make param const_rtx.  Add
9692         strict param.  Allow lo_sum version of addressing.  Verify reg
9693         used for -mminimal-toc and -mcmodel != small.  Update all callers.
9694         * config/rs6000/constraints.md: Update for above change.
9695         * config/rs6000/predicates.md: Likewise.
9696         * config/rs6000/rs6000.md (tls_gd_aix): Generate -mcmodel=medium/large
9697         code.
9698         (tls_gd): Split for -mcmodel=medium/large.
9699         (tls_gd_high, tls_gd_low): New.
9700         (tls_ld_aix, tls_ld, tls_ld_high, tls_ld_low): Similarly.
9701         (tls_got_dtprel, tls_got_dtprel_high, tls_got_dtprel_low): Similarly.
9702         (tls_got_tprel, tls_got_tprel_high, tls_got_tprel_low): Similarly.
9703         (largetoc_high, largetoc_low): New.
9704         (cmptf_internal2): Add clobber.
9705         * config/rs6000/rs6000-protos.h: Update.
9706
9707 2010-06-14  Changpeng Fang  <changpeng.fang@amd.com>
9708
9709         * tree-ssa-loop-prefetch.c (nothing_to_prefetch_p): New.  Return
9710         true if no prefetch is going to be generated for a given group.
9711         (estimate_prefetch_count): Use prefetch_mod and unroll_factor to
9712         estimate the prefetch_count.
9713         (loop_prefetch_arrays): Call nothing_to_prefetch_p; estimate the
9714         prefetch count by considering the unroll_factor and prefetch_mod
9715         for is_loop_prefetching_profitable.
9716
9717 2010-06-14  Andreas Schwab  <schwab@linux-m68k.org>
9718
9719         * config/m68k/m68k.c (m68k_delegitimize_address): Don't do
9720         anything if the argument is not a MEM.
9721
9722 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
9723
9724         PR debug/43650
9725         PR debug/44181
9726         PR debug/44247
9727         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Skip
9728         debug stmts.
9729         (canonicalize_loop_ivs): Likewise.
9730
9731 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
9732
9733         PR debug/43656
9734         * haifa-sched.c (setup_insn_reg_pressure_info,
9735         update_register_pressure): Reject debug insns.
9736         (ready_sort): Don't setup reg pressure for debug insns.
9737         (schedule_insn): Don't update reg pressure for debug insns.
9738
9739 2010-06-14  Richard Guenther  <rguenther@suse.de>
9740
9741         * lto-streamer.c (cached_bp): Remove.
9742         (bitpack_delete): Likewise.
9743         (bitpack_create): Likewise.
9744         (bp_get_next_word): Likewise.
9745         (bp_pack_value, bp_unpack_value): Move ...
9746         * lto-streamer.h (bp_pack_value, bp_unpack_value): ... here.
9747         Re-implement.
9748         (struct bitpack_d): Likewise.
9749         (bitpack_create, lto_output_bitpack, lto_input_bitpack):
9750         New inline functions.
9751         * lto-streamer-out.c (lto_output_bitpack): Remove.
9752         (pack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
9753         (pack_value_fields): Adjust.
9754         (lto_write_tree): Likewise.
9755         (output_gimple_stmt): Likewise.
9756         (output_function): Likewise.
9757         * lto-streamer-in.c (input_gimple_stmt): Adjust.
9758         (input_function): Likewise.
9759         (unpack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
9760         (lto_input_bitpack): Remove.
9761         (lto_materialize_tree): Adjust.
9762         * Makefile.in (ipa-prop.o): Add $(LTO_STREAMER_H) dependency.
9763         * lto-cgraph.c (lto_output_edge): Adjust.
9764         (lto_output_node): Likewise.
9765         (lto_output_varpool_node): Likewise.
9766         (lto_output_ref): Likewise.
9767         (input_node): Likewise.
9768         (input_varpool_node): Likewise.
9769         (input_ref): Likewise.
9770         (input_edge): Likewise.
9771         (output_node_opt_summary): Likewise.
9772         (input_node_opt_summary): Likewise.
9773         * ipa-pure-const.c (pure_const_write_summary): Likewise.
9774         (pure_const_read_summary): Likewise.
9775         * ipa-prop.c (ipa_write_indirect_edge_info): Likewise.
9776         (ipa_read_indirect_edge_info): Likewise.
9777         (ipa_write_node_info): Likewise.
9778         (ipa_read_node_info): Likewise.
9779
9780 2010-06-14  H.J. Lu  <hongjiu.lu@intel.com>
9781
9782         PR target/44534
9783         * config/i386/sse.md (vec_extract_lo_<mode>): Replace 0x1 with 0x0.
9784         (vec_extract_lo_v16hi): Likewise.
9785         (vec_extract_lo_v32qi): Likewise.
9786
9787 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
9788
9789         PR bootstrap/44426
9790         * tree.h (build_call_expr): Don't define as vararg macro, instead
9791         add a prototype.
9792         * builtins.c (build_call_nofold): Remove.
9793         (expand_builtin_int_roundingfn, expand_builtin_pow,
9794         expand_builtin_mempcpy_args, expand_builtin_stpcpy,
9795         expand_builtin_memset_args, expand_builtin_strcmp,
9796         expand_builtin_strncmp, expand_builtin_memory_chk): Use
9797         build_call_nofold_loc instead of build_call_nofold.
9798         (build_call_expr): New function.
9799
9800         PR tree-optimization/44508
9801         * tree-ssa-propagate.h (substitute_and_fold): Add DO_DCE argument.
9802         * tree-ssa-propagate.c (substitute_and_fold): If !DO_DCE,
9803         don't eliminate trivially dead stmts.
9804         * tree-vrp.c (vrp_finalize): Pass false as last argument
9805         to substitute_and_fold.
9806         * tree-ssa-copy.c (fini_copy_prop): Pass true as last argument
9807         to substitute_and_fold.
9808         * tree-ssa-ccp.c (ccp_finalize): Likewise.
9809
9810         PR bootstrap/44509
9811         * c-config-lang.in (gtfiles): Add c-family/c-cppbuiltin.c.
9812
9813 2010-06-14  Ira Rosen  <irar@il.ibm.com>
9814
9815         PR tree-optimization/44507
9816         * tree-vect-loop.c (get_initial_def_for_reduction): Use -1
9817         to build initial vector for BIT_AND_EXPR.
9818         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
9819
9820 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
9821
9822         * config/s390/s390.md (*mov<mode>_64 DD_DF, mov<mode>): Properly
9823         adjust z10prop set_attr.
9824
9825 2010-06-13  Jan Hubicka  <jh@suse.cz>
9826
9827         * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
9828         bitmap_and_compl_into, bitmap_compl_and_into, bitmap_ior,
9829         bitmap_ior_into, bitmap_xor, bitmap_xor_into,
9830         bitmap_ior_and_compl, bitmap_ior_and_compl): Turn internal
9831         datastructure checks into checking asserts.
9832         * rtlanal.c (find_reg_note): Use gcc_checking_assert.
9833         * tree-ssa-sccvn.c (VN_INFO): Likewise.
9834         * df-scan.c (df_reorganize_refs_by_reg_by_reg, df_install_ref,
9835         df_ref_create_structure): Likewise.
9836         * alloc-pool.c (create_alloc_pool, empty_alloc_pool, pool_alloc,
9837         pool_free): Use gcc_checking_assert.
9838         * alias.c (get_alias_set): Likewise.
9839         * var-tracking.c (variable_htab_free, shared_hash_copy,
9840         canonicalize_values_mark, variable_merge_over_cur): Likewise.
9841         * lto-streamer.c (bp_unpack_value): Likewise.
9842
9843 2010-06-13  Richard Guenther  <rguenther@suse.de>
9844
9845         * lto-streamer-in.c (lto_input_ts_type_tree_pointers):
9846         Do not stream but initialize TYPE_CANONICAL to NULL.
9847         (lto_output_ts_type_tree_pointers): Do not stream TYPE_CANONICAL.
9848         * gimple.c (gimple_types_compatible_p): Disregard
9849         TYPE_STRUCTURAL_EQUALITY_P.
9850         (gimple_register_type): Use TYPE_CANONICAL as cache.
9851         * lto-streamer.c (lto_record_common_node): Zero TYPE_CANONICAL
9852         before registering common types.
9853         * config/i386/i386.c (ix86_function_arg_boundary): Do not
9854         use TYPE_CANONICAL, instead use TYPE_MAIN_VARIANT.
9855         * tree.h (TYPE_CANONICAL): Clarify documentation.
9856
9857 2010-06-13  Anatoly Sokolov  <aesok@post.ru>
9858
9859         * config/ia64/ia64.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
9860         LIBCALL_VALUE): Remove macros.
9861         * config/ia64/ia64-protos.h (ia64_function_value): Remove.
9862         * config/ia64/ia64.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
9863         TARGET_FUNCTION_VALUE_REGNO_P): Define.
9864         (ia64_libcall_value, ia64_function_value_regno_p): New functions.
9865         (ia64_function_value): Make static. Handle receiving the function
9866         type in 'fn_decl_or_type' argunent. Add 'outgoing' argument.
9867
9868 2010-06-12  Jan Hubicka  <jh@suse.cz>
9869
9870         * cse.c (cse_extended_basic_block): Move optimize_bb_for_speed_p
9871         at correct place.
9872
9873 2010-06-12  Bernd Schmidt  <bernds@codesourcery.com>
9874
9875         * config/arm/arm.c (thumb2_reorg): Fix errors in previous change.
9876
9877 2010-06-12  Jan Hubicka  <jh@suse.cz>
9878
9879         * df-core.c (df_clear_bb_info): New function.
9880         (df_set_blocks): bb_info is always allocated.
9881         (df_get_bb_info): Use block_info_elt_size.
9882         (df_set_bb_info): Likewise.
9883         (df_compact_blocks): Update for new block_info.
9884         (grow_bb_info): New function.
9885         * df-problems.c (df_grow_bb_info): Move to df-core.c
9886         (df_rd_set_bb_info): Remove.
9887         (df_rd_free_bb_info): Do not free block pool.
9888         (df_rd_alloc): Do not create pool, use check for
9889         obstack presence instead of NULL pointer for new blocks.
9890         (df_rd_free): DO not free alloc pool; clear block_info.
9891         (problem_RD): Add size of block info structure.
9892         (df_lr_set_bb_info): Remove.
9893         (df_lr_free_bb_info): Do not free block pool.
9894         (df_lr_alloc): Do not create pool, use check for
9895         obstack presence instead of NULL pointer for new blocks.
9896         (df_lr_free): DO not free alloc pool; clear block_info.
9897         (problem_LR): Add size of block info structure.
9898         (df_live_set_bb_info): Remove.
9899         (df_live_free_bb_info): Do not free block pool.
9900         (df_live_alloc): Do not create pool, use check for
9901         obstack presence instead of NULL pointer for new blocks.
9902         (df_live_free): DO not free alloc pool; clear block_info.
9903         (problem_LIVE): Add size of block info structure.
9904         (problem_CHAIN): Add size of block info structure.
9905         (df_byte_lr_set_bb_info): Remove.
9906         (df_byte_lr_free_bb_info): Do not free block pool.
9907         (df_byte_lr_alloc): Do not create pool, use check for
9908         obstack presence instead of NULL pointer for new blocks.
9909         (df_byte_lr_free): DO not free alloc pool; clear block_info.
9910         (problem_BYTE_LR): Add size of block info structure.
9911         (problem_NOTE): Add size of block info structure.
9912         (df_byte_MD_set_bb_info): Remove.
9913         (df_byte_MD_free_bb_info): Do not free block pool.
9914         (df_byte_MD_alloc): Do not create pool, use check for
9915         obstack presence instead of NULL pointer for new blocks.
9916         (df_byte_MD_free): DO not free alloc pool; clear block_info.
9917         (problem_BD): Add size of block info structure.
9918         * df-scan.c (df_scan_free_internal): Free block pool.
9919         (df_scan_set_bb_info): Remove.
9920         (df_scan_free_bb_info): Check for artificial_defs instead
9921         of bb_info being non-NULL.
9922         (df_scan_alloc): DO not create df_scan_block pool.
9923         (problem_SCAN): Set size of block info.
9924         (df_bb_refs_record): Do not allocate bb_info.
9925         * df.h (df_problem): Add block_info_elt_size.
9926         (struct dataflow): Change block_info to void *.
9927         (df_scan_get_bb_info, df_rd_get_bb_info, df_lr_get_bb_info,
9928         df_md_get_bb_info, df_live_get_bb_info, df_byte_lr_get_bb_info): Return
9929         in-line structures.
9930
9931 2010-06-12  Jan Hubicka  <jh@suse.cz>
9932
9933         PR tree-optimize/44485
9934         * tree-cfgcleanup.c (fixup_noreturn_call): Remove basic blocks
9935         containing use of return value of noreturn function.
9936
9937 2010-06-12  Anatoly Sokolov  <aesok@post.ru>
9938
9939         * targhooks.c (default_function_value): Don't use
9940         FUNCTION_OUTGOING_VALUE.
9941         * system.h (FUNCTION_OUTGOING_VALUE): Poison.
9942         * doc/tm.texi (FUNCTION_OUTGOING_VALUE): Removed.
9943
9944 2010-06-12  Kazu Hirata  <kazu@codesourcery.com>
9945
9946         * config.gcc (mips64*-*-linux*, mipsisa64*-*-linux*, mips*-*-linux*):
9947         Add crtfastmath.o to extra_parts.
9948         * config/mips/crtfastmath.c: New.
9949         * config/mips/linux.h (ENDFILE_SPEC): New.
9950
9951 2010-06-12  Sebastian Pop  <sebastian.pop@amd.com>
9952
9953         * graphite-clast-to-gimple.c (gcc_type_for_interval): Do not pass
9954         old_type in parameter.
9955         (gcc_type_for_value): Update call to gcc_type_for_interval.
9956         (compute_type_for_level_1): Renamed compute_type_for_level.
9957         Update call to gcc_type_for_interval.
9958
9959 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
9960
9961         * common.opt (Wstrict-aliasing=, Wstrict-overflow=, fabi-version=,
9962         flto-compression-level=, ftree-parallelize-loops=): Add RejectNegative.
9963
9964 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
9965
9966         * opts-common.c: Include options.h.
9967         (integral_argument): Move from opts.c.
9968         (decode_cmdline_option): New.  Based on read_cmdline_option.
9969         * opts.c (integral_argument): Move to opts-common.c.
9970         (read_cmdline_option): Move most contents to
9971         decode_cmdline_option.  Use %qs in diagnostics.
9972         * opts.h (CL_ERR_DISABLED, CL_ERR_MISSING_ARG, CL_ERR_WRONG_LANG,
9973         CL_ERR_UINT_ARG, struct cl_decoded_option, integral_argument,
9974         decode_cmdline_option): New.
9975
9976 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
9977
9978         PR target/44481
9979         * config/i386/i386.md (UNSPEC_PARITY): New unspec.
9980         (paritydi2_cmp): Use UNSPEC_PARITY unspec instead of parity RTX.
9981         (partiysi2_cmp): Ditto.
9982         (*partiyhi2_cmp): Ditto.
9983         (*parityqi2_cmp): Remove.
9984
9985 2010-06-11  Jan Hubicka  <jh@suse.cz>
9986
9987         * bitmap.h (bmp_iter_next_bit): New.
9988         (bmp_iter_set, bmp_iter_and, bmp_iter_and_compl): Use it.
9989
9990 2010-06-11  Sandra Loosemore  <sandra@codesourcery.com>
9991             Eric Botcazou  <ebotcazou@adacore.com>
9992
9993         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Return again the
9994         computed cost.
9995
9996 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
9997
9998         * config/i386/i386.md (unspec): New define_c_enum.
9999         (unspecv): Ditto.
10000
10001 2010-06-10  Jakub Jelinek  <jakub@redhat.com>
10002
10003         * Makefile.in (c-family/c-cppbuiltin.o): Depend on $(CPP_ID_DATA_H).
10004
10005 2010-06-11  Sebastian Pop  <sebastian.pop@amd.com>
10006
10007         PR middle-end/44483
10008         * tree-if-conv.c (bb_predicate_s): New struct.
10009         (bb_predicate_p): New.
10010         (bb_has_predicate): New.
10011         (bb_predicate): New.
10012         (set_bb_predicate): New.
10013         (bb_predicate_gimplified_stmts): New.
10014         (set_bb_predicate_gimplified_stmts): New.
10015         (add_bb_predicate_gimplified_stmts): New.
10016         (init_bb_predicate): New.
10017         (free_bb_predicate): New.
10018         (is_predicated): Use bb_predicate.
10019         (add_to_predicate_list): Use bb_predicate and set_bb_predicate.
10020         (predicate_bbs): Same.  Gimplify the condition of the basic blocks
10021         before processing their successors.
10022         (clean_predicate_lists): Removed.
10023         (find_phi_replacement_condition): Use bb_predicate.
10024         (process_phi_nodes): Renamed ifconvert_phi_nodes.  Avoid useless
10025         computations.
10026         (insert_gimplified_predicates): New.
10027         (combine_blocks): Call insert_gimplified_predicates.
10028         (tree_if_conversion): Call free_bb_predicate instead of
10029         clean_predicate_lists.
10030
10031 2010-10-11  Paul Brook  <paul@codesourcery.com>
10032
10033         * doc/invoke.texi: Document ARM -mcpu=cortex-m4.
10034         * config/arm/arm.c (all_architectures): Change v7e-m default to
10035         cortexm4.
10036         * config/arm/arm-cores.def: Add cortex-m4.
10037         * config/arm/arm-tune.md: Regenerate.
10038
10039 2010-06-11  Jan Hubicka  <jh@suse.cz>
10040
10041         * ipa-pure-const.c (special_builtlin_state): New function.
10042         (check_call): Use it instead of special casign BUILT_IN_RETURN.
10043         (propagate_pure_const): Use it.
10044
10045 2010-06-11  Jan Hubicka  <jh@suse.cz>
10046
10047         * df-problems.c (df_live_scratch): Convert to bitmap_head.
10048         (df_live_alloc): Initialize df_live_scratch when initializing
10049         problem_data.
10050         (df_live_transfer_function): Update uses of df_live_scratch.
10051         (df_live_free): Free problem_data; clear df_live_scratch before
10052         releasing the obstack.
10053         (df_md_free): Free problem data.
10054
10055 2010-06-11  Jan Hubicka  <jh@suse.cz>
10056
10057         * doc/invoke.texi (Wsuggest-attribute): Document.
10058         (Wmissing-noreturn): Remove.
10059         * ipa-pure-const.c (warn_function_noreturn): New function.
10060         * opts.c (decode_options): Set warn_suggest_attribute_noreturn on
10061         warn_missing_noreturn.
10062         * common.opt (Wsuggest-attribute=noreturn): New.
10063         * tree-flow.h (warn_function_noreturn): Declare.
10064         * tree-cfg.c (execute_warn_function_noreturn): Use
10065         warn_function_noreturn.
10066         (gate_warn_function_noreturn): New.
10067         (pass_warn_function_noreturn): Update.
10068
10069 2010-06-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10070
10071         * c-typeck.c (handle_warn_cast_qual): Add loc
10072         parameter. Improve warning message.
10073         (build_c_cast): Pass location to handle_warn_cast_qual.
10074
10075 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
10076
10077         * config/i386/i386.md (pro_epilogue_adjust_stack_1) <TYPE_ALU>: Assert
10078         that operand 0 == operand 1.  Use x86_maybe_negate_const_int to output
10079         insn mnemonic.
10080         (pro_epilogue_adjust_stack_rex64) <TYPE_ALU>: Ditto.
10081
10082 2010-06-10  Dodji Seketeli  <dodji@redhat.com>
10083
10084         Fix bootstap on mips
10085         * dwarf2out.c (is_naming_typedef_dec): Built-in TYPE_DECLs cannot
10086         be naming typedefs.
10087
10088 2010-06-11  Kai Tietz  <kai.tietz@onevision.com>
10089
10090         * system.h (helper_const_non_const_cast): New inline for
10091         gcc version <= 4.0.
10092         (CONST_CAST2): For gcc version <= 4.0 use
10093         new helper to do const/non-const casting.
10094
10095 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
10096
10097         * doc/md.texi: Document the "unspec" and "unspecv" enum names.
10098         * Makefile.in (OBJS-common): Include insn-enums.o.
10099         (insn-enums.o): New rule.
10100         (simple_generated_c): Add insn-enums.c.
10101         (build/genenums.o): New rule.
10102         (genprogmd): Add "enums".
10103         * genconstants.c (print_enum_type): Declare a C string array
10104         for each enum.
10105         * genenums.c: New file.
10106         * print-rtl.c (print_rtx): If defined, use the "unspecv" enum
10107         for UNSPEC_VOLATILE.  If defined, use the "unspec" enum for both
10108         UNSPEC and (as a fallback) for UNSPEC_VOLATILE.
10109
10110 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
10111
10112         * doc/md.texi (define_enum_attr): Document.
10113         * rtl.def (DEFINE_ENUM_ATTR): New rtx.
10114         * read-md.h (lookup_enum_type): Declare.
10115         * read-md.c (lookup_enum_type): New function.
10116         * genattr.c (gen_attr, main): Handle DEFINE_ENUM_ATTR.
10117         * genattrtab.c (attr_desc): Add an enum_name field.
10118         (evaluate_eq_attr): Take the associated attribute as argument.
10119         Get the enum prefix from the enum_name field, if defined.
10120         Use ACONCAT rather than a fixed-length buffer.  Update recursive calls.
10121         (simplify_test_exp): Pass attr to evaluate_eq_attr.
10122         (add_attr_value): New function, split out from...
10123         (gen_attr): ...here.  Handle DEFINE_ENUM_ATTR.
10124         (write_test_expr): Pass attr to evaluate_eq_attr.
10125         (write_attr_get): Use the enum_name as the enum tag, if defined.
10126         (write_attr_valueq): Use the enum_name as a prefix, if defined.
10127         (find_attr): Initialize enum_name.
10128         (main): Handle DEFINE_ENUM_ATTR.
10129         * gensupport.c (process_rtx): Likewise.
10130         * config/mips/mips.h (mips_tune_attr): Delete.
10131         * config/mips/mips.md (cpu): Use define_attr_enum.
10132
10133 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
10134
10135         * doc/md.texi (define_c_enum, define_enum): Document.
10136         * read-md.h (md_constant): Add a parent_enum field.
10137         (enum_value, enum_type): New structures.
10138         (upcase_string, traverse_enum_types): Declare.
10139         * read-md.c (enum_types): New variable.
10140         (upcase_string, add_constant): New functions.
10141         (handle_constants): Don't create the hash table here.
10142         Use add_constant.
10143         (traverse_md_constants): Don't check for a null md_constants.
10144         (decimal_string, handle_enum, traverse_enum_types): New functions.
10145         (read_md_files): Initialize md_constants and md_enums.
10146         * genconstants.c (print_md_constant): Ignore info argument.
10147         Only print constants that belong to no enum.
10148         (print_enum_type): New function.
10149         (main): Don't pass stdout to print_md_constant.  Call print_enum_type
10150         for each defined enum type.
10151         * config/mips/mips.md (processor): New define_enum.
10152         (unspec): New define_c_enum.
10153         (UNSPEC_COMPARE_AND_SWAP, UNSPEC_COMPARE_AND_SWAP_12)
10154         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_NEW_OP_12)
10155         (UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE, UNSPEC_SYNC_EXCHANGE_12)
10156         (UNSPEC_MEMORY_BARRIER): Moved to sync.md.
10157         (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
10158         (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
10159         (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
10160         (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
10161         (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
10162         (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
10163         (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
10164         (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
10165         (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
10166         (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
10167         (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
10168         (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
10169         (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
10170         (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
10171         (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
10172         (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
10173         (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
10174         (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
10175         (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
10176         (UNSPEC_RDDSP): Move to mips-dsp.md.
10177         (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH, UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB)
10178         (UNSPEC_ADDUH_R_QB, UNSPEC_APPEND, UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB)
10179         (UNSPEC_CMPGDU_LT_QB, UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH)
10180         (UNSPEC_DPS_W_PH, UNSPEC_MADD, UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU)
10181         (UNSPEC_MUL_PH, UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH)
10182         (UNSPEC_MULQ_S_W, UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU)
10183         (UNSPEC_PRECR_QB_PH, UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W)
10184         (UNSPEC_PREPEND, UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH)
10185         (UNSPEC_SUBU_PH, UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB)
10186         (UNSPEC_ADDQH_PH, UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W)
10187         (UNSPEC_SUBQH_PH, UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W)
10188         (UNSPEC_DPAX_W_PH, UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH)
10189         (UNSPEC_DPAQX_SA_W_PH, UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH):
10190         Moved to mips-dspr2.md.
10191         (UNSPEC_MOVE_TF_PS, UNSPEC_C, UNSPEC_ALNV_PS, UNSPEC_CABS)
10192         (UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS, UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS)
10193         (UNSPEC_ABS_PS, UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1)
10194         (UNSPEC_RECIP2, UNSPEC_SINGLE_CC, UNSPEC_SCC): Move from mips-ps-3d.md.
10195         (UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ, UNSPEC_LOONGSON_PCMPGT)
10196         (UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
10197         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
10198         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
10199         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
10200         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
10201         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
10202         UNSPEC_LOONGSON_PSADBH)
10203         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
10204         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
10205         (UNSPEC_LOONGSON_PSUBD): Move to mips-loongson.md.
10206         (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
10207         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
10208         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
10209         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Move to mips-loongson2ef.md.
10210         (cpu): Update comment.
10211         * config/mips/sync.md (UNSPEC_COMPARE_AND_SWAP)
10212         (UNSPEC_COMPARE_AND_SWAP_12, UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP)
10213         (UNSPEC_SYNC_NEW_OP_12, UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE)
10214         (UNSPEC_SYNC_EXCHANGE_12, UNSPEC_MEMORY_BARRIER): Moved from mips.md.
10215         * config/mips/loongson.md (UNSPEC_LOONGSON_PAVG,
10216         UNSPEC_LOONGSON_PCMPEQ)
10217         (UNSPEC_LOONGSON_PCMPGT, UNSPEC_LOONGSON_PEXTR,
10218         UNSPEC_LOONGSON_PINSR_0)
10219         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
10220         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
10221         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
10222         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
10223         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
10224         UNSPEC_LOONGSON_PSADBH)
10225         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
10226         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
10227         (UNSPEC_LOONGSON_PSUBD): Moved from mips.md
10228         * config/mips/loongson2ef.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
10229         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
10230         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
10231         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved from mips.md
10232         * config/mips/mips-dsp.md (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ)
10233         (UNSPEC_SUBQ_S, UNSPEC_ADDSC, UNSPEC_ADDWC, UNSPEC_MODSUB)
10234         (UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S, UNSPEC_PRECRQ_QB_PH)
10235         (UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W, UNSPEC_PRECRQU_S_QB_PH)
10236         (UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR, UNSPEC_PRECEQU_PH_QBL)
10237         (UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA, UNSPEC_PRECEQU_PH_QBRA)
10238         (UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR, UNSPEC_PRECEU_PH_QBLA)
10239         (UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL, UNSPEC_SHLL_S, UNSPEC_SHRL_QB)
10240         (UNSPEC_SHRA_PH, UNSPEC_SHRA_R, UNSPEC_MULEU_S_PH_QBL)
10241         (UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH, UNSPEC_MULEQ_S_W_PHL)
10242         (UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL, UNSPEC_DPAU_H_QBR)
10243         (UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR, UNSPEC_DPAQ_S_W_PH)
10244         (UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH, UNSPEC_DPAQ_SA_L_W)
10245         (UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL, UNSPEC_MAQ_S_W_PHR)
10246         (UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR, UNSPEC_BITREV, UNSPEC_INSV)
10247         (UNSPEC_REPL_QB, UNSPEC_REPL_PH, UNSPEC_CMP_EQ, UNSPEC_CMP_LT)
10248         (UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB, UNSPEC_CMPGU_LT_QB)
10249         (UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH, UNSPEC_EXTR_W)
10250         (UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H, UNSPEC_EXTP)
10251         (UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
10252         (UNSPEC_RDDSP): Moved from mips.md.
10253         * config/mips/mips-dspr2.md (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH)
10254         (UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB, UNSPEC_ADDUH_R_QB, UNSPEC_APPEND)
10255         (UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB, UNSPEC_CMPGDU_LT_QB)
10256         (UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH, UNSPEC_DPS_W_PH, UNSPEC_MADD)
10257         (UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU, UNSPEC_MUL_PH)
10258         (UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH, UNSPEC_MULQ_S_W)
10259         (UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU, UNSPEC_PRECR_QB_PH)
10260         (UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W, UNSPEC_PREPEND)
10261         (UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH, UNSPEC_SUBU_PH)
10262         (UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB, UNSPEC_ADDQH_PH)
10263         (UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W, UNSPEC_SUBQH_PH)
10264         (UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W, UNSPEC_DPAX_W_PH)
10265         (UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH, UNSPEC_DPAQX_SA_W_PH)
10266         (UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH): Moved from mips.md.
10267         * config/mips/mips-ps-3d.md (UNSPEC_MOVE_TF_PS, UNSPEC_C)
10268         (UNSPEC_ALNV_PS, UNSPEC_CABS, UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS)
10269         (UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS, UNSPEC_ABS_PS, UNSPEC_RSQRT1)
10270         (UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2, UNSPEC_SINGLE_CC)
10271         (UNSPEC_SCC): Moved from mips.md.
10272         * config/mips/mips.c (mips_arch, mips_tune): Change enum from
10273         "processor_type" to "processor".
10274         (mips_rtx_cost_data): Replace PROCESSOR_MAX with NUM_PROCESSOR_VALUES.
10275         * config/mips/mips.h (processor_type): Delete.
10276         (mips_cpu_info.cpu, mips_arch, mips_tune): Change enum from
10277         "processor_type" to "processor".
10278
10279 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
10280
10281         * configure.ac (tm_include_list): Add insn-constants.h.
10282         * configure: Regenerate.
10283         * Makefile.in (GTM_H): Move insn-constants.h here from...
10284         (TM_H): ...here.
10285         * mkconfig.sh: Remove special handling for insn-constants.h.
10286
10287 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
10288
10289         * Makefile.in (BUILD_RTL): Move build/read-md.o to...
10290         (BUILD_MD): ...this new variable.
10291         (simple_generated_rtl_h, simple_generated_rtl_c): New variables
10292         that include the old contents of simple_generated_h and
10293         simple_generated_c.
10294         (simple_generated_h, simple_generated_c): Include them.  Add
10295         insn-constants.h.
10296         (s-%): Make simple_generated_{h,c} stamps depend on $(MD_DEPS)
10297         and simple_generated_rtl_{h,c} stamps depend on insn-conditions.md.
10298         Remove these dependencies from the main rule and include
10299         insn-conditions.md in the command line only if it appears
10300         in the dependency list.
10301         (insn-constants.h, s-constants): Delete.
10302         (build/genconstants.o): Don't depend on $(RTL_BASE_H), $(GTM_H)
10303         or gensupport.h.
10304         (build/genmddeps.o): Likewise.
10305         (genprogrtl): New variable that contains everything from genprogmd
10306         except mddeps and constants.
10307         (genprogmd): Redefine in terms of genprogrtl.  Make these programs
10308         depend on $(BUILD_MD)
10309         (genprog): New variable.  Make these programs depend on
10310         $(BUILD_ERRORS).
10311         * genmddeps.c: Don't include tm.h, rtl.h or gensupport.h.
10312         (main): Use read_md_files instead of init_rtx_reader_args.
10313         * genconstants.c: As for genmddeps.c.
10314         * read-md.h (read_skip_construct): Declare.
10315         * read-md.c (read_skip_construct): New function.
10316         (handle_file): Allow a null handle_directive, skipping the
10317         construct if so.
10318         (parse_include): Update the comment accordingly.
10319
10320 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
10321
10322         * Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H).
10323         * genmddeps.c: Include read-md.h.
10324         (main): Call init_rtx_reader_args instead of init_md_reader_args.
10325         * genattr.c (main): Likewise.
10326         * genattrtab.c (main): Likewise.
10327         * genautomata.c (main): Likewise.
10328         * gencodes.c (main): Likewise.
10329         * genconditions.c (main): Likewise.
10330         * genconfig.c (main): Likewise.
10331         * genconstants.c (main): Likewise.
10332         * genemit.c (main): Likewise.
10333         * genextract.c (main): Likewise.
10334         * genflags.c (main): Likewise.
10335         * genopinit.c (main): Likewise.
10336         * genoutput.c (main): Likewise.
10337         * genpeep.c (main): Likewise.
10338         * genrecog.c (main): Likewise.
10339         * genpreds.c (main): Likewise.
10340         * gensupport.h (in_fname): Move to read-md.h.
10341         (init_md_reader_args_cb): Rename to...
10342         (init_rtx_reader_args_cb): ...this and return a bool.
10343         (init_md_reader_args): Rename to...
10344         (init_rtx_reader_args): ...this and return a bool.
10345         (include_callback): Move to read-md.h.
10346         * gensupport.c (in_fname, include_callback, base_dir, max_include_len)
10347         (file_name_list, first_dir_md_include): Move to read-md.c
10348         (first_bracket_include): Delete unused variable.
10349         (last_dir_md_include): Move to read-md.c.
10350         (process_include): Delete, moving code to read-md.c:handle_include.
10351         (process_rtx): Don't handle INCLUDE.
10352         (save_string): Delete.
10353         (rtx_handle_directive): New function.
10354         (init_md_reader_args_cb): Rename to...
10355         (init_rtx_reader_args_cb): ...this and return a boolean success value.
10356         Use read_md_args.
10357         (init_md_reader_args): Rename to...
10358         (init_rtx_reader_args): ...this and return a boolean success value.
10359         * rtl.def (INCLUDE): Delete.
10360         * rtl.h (read_rtx): Remove "int *" argument.  Add "const char *"
10361         argument.
10362         * read-rtl.c (read_conditions): Don't gobble ')' here.
10363         (read_mapping): Likewise.
10364         (read_rtx): Remove LINENO argument.  Add RTX_NAME argument.
10365         Handle top-level non-rtx constructs here rather than in read_rtx_1.
10366         Store the whole queue in *X.  Remove call to init_md_reader.
10367         (read_rtx_1): Rename to...
10368         (read_rtx_code): ...this.  Call read_nested_rtx to read subrtxes.
10369         Don't handle top-level non-rtx constructs here.  Don't handle (nil)
10370         here.
10371         (read_nested_rtx): New function.  Handle (nil) here rather than
10372         in read_rtx_code.
10373         (read_rtx_variadic): Call read_nested_rtx to read subrtxes.  Don't
10374         gobble ')' here.
10375         * read-md.h (directive_handler_t): New type.
10376         (in_fname, include_callback): Moved from read-md.h.
10377         (read_constants, init_md_reader): Delete.
10378         (read_md_files): Declare.
10379         * read-md.c (file_name_list, in_fname, base_dir, first_dir_md_include)
10380         (last_dir_md_include_ptr, include_callback, max_include_len): Moved
10381         from gensupport.c.
10382         (read_constants): Rename to...
10383         (handle_constants): ...this.  Don't gobble ')' here.
10384         (handle_include, handle_file, handle_toplevel_file)
10385         (parse_include): New functions, mostly taken from gensupport.c.
10386         (init_md_reader): Subsume into...
10387         (read_md_files): ...this new function.
10388
10389 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
10390
10391         * read-md.h (read_char): Increment read_md_lineno after reading '\n'.
10392         (unread_char): Decrement read_md_lineno after putting back '\n'.
10393         * read-md.c (fatal_with_file_and_line): Push back any characters
10394         that we decide not to add to the context.
10395         (read_skip_spaces): Don't increment read_md_lineno here.  Avoid using
10396         fatal_expected_char in cases where '/' ends a line (for example).
10397         (read_name): Don't increment read_md_lineno here.
10398         (read_escape): Likewise.
10399         (read_quoted_string): Likewise.
10400         (read_braced_string): Likewise.
10401
10402 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
10403
10404         * Makefile.in (READ_MD_H): Add $(HASHTAB_H).
10405         (build/genconstants.o): Depend on $(READ_MD_H) gensupport.h.
10406         * genconstants.c: Include read-md.h.
10407         * read-rtl.c (md_constants): Move to read-md.c.
10408         (md_name): Move to read-md.h.
10409         (initialize_iterators): Use leading_string_hash instead of def_hash
10410         and leading_string_eq_p instead of def_name_eq_p.
10411         (read_name): Move to read-md.c.
10412         (def_hash, def_name_eq_p): Delete.
10413         (read_constants, traverse_md_constants): Move to read-md.c.
10414         * rtl.h (md_constant, traverse_md_constants): Move to read-md.h.
10415         * read-md.h: Include hashtab.h.
10416         (md_name): Moved from read-rtl.c.
10417         (md_constant): Moved from read-md.h.
10418         (leading_string_hash, leading_string_eq_p, read_name)
10419         (read_constants, traverse_md_constants): Declare.
10420         * read-md.c (md_constants): Moved from read-rtl.c.
10421         (leading_string_hash, leading_string_eq_p): New functions.
10422         (read_name, read_constants, traverse_md_constants): Moved from
10423         read-rtl.c.
10424
10425 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
10426
10427         * read-rtl.c (md_name): New structure.
10428         (read_name): Take an md_name instead of a buffer pointer.
10429         Use the "string" field instead of strcpy when expanding constants.
10430         (read_constants): Remove the tmp_char argument.  Update the calls
10431         to read_name, using two local name buffers instead of the tmp_char
10432         argument.  Merge the constant-creation code.
10433         (read_conditions): Remove the tmp_char argument.  Update the calls
10434         to read_name, using a local name buffer instead of the tmp_char
10435         argument.
10436         (read_mapping): Replace tmp_char variable with a local name buffer.
10437         Update the calls to read_name.
10438         (read_rtx_1): Likewise.  Update the calls to read_constants and
10439         read_conditions.
10440
10441 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
10442
10443         * Makefile.in (build/read-md.o): Depend on errors.h.
10444         * read-md.h (error_with_line): Declare.
10445         * read-md.c: Include errors.h.
10446         (message_with_line_1): New function, extracted from...
10447         (message_with_line): ...here.
10448         (error_with_line): New function.
10449         * genattrtab.c: If a call to message_with_line is followed by
10450         "have_error = 1;", replace both statements with a call to
10451         error_with_line.
10452         * genoutput.c: Likewise.
10453         * genpreds.c: Likewise.
10454         * genrecog.c: If a call to message_with_line is followed by
10455         "error_count++;", replace both statements with a call to
10456         error_with_line.
10457         (errorcount): Delete.
10458         (main): Don't check it.
10459         * gensupport.c: If a call to message_with_line is followed by
10460         "errors = 1;", replace both statements with a call to error_with_line.
10461         (errors): Delete.
10462         (process_define_cond_exec): Check have_error instead of errors.
10463         (init_md_reader_args_cb): Likewise.  Don't set errors.
10464
10465 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
10466
10467         * read-md.h (read_md_file): Declare.
10468         (read_char, unread_char): New functions.
10469         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
10470         (read_quoted_string, read_string): Remove FILE * argument.
10471         * read-md.c (read_md_file): New variable.
10472         (read_md_filename, read_md_lineno): Update comments and remove
10473         unnecessary initialization.
10474         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
10475         (read_escape, read_quoted_string, read_braced_string, read_string):
10476         Remove FILE * argument.  Update calls accordingly, using read_char
10477         and unread_char instead of getc and ungetc.
10478         * rtl.h (read_rtx): Remove FILE * argument.
10479         * read-rtl.c (iterator_group): Remove FILE * argument from
10480         "find_builtin".
10481         (iterator_traverse_data): Remove "infile" field.
10482         (find_mode, find_code, apply_mode_maps, apply_iterator_to_rtx)
10483         (add_mapping, read_name, read_constants, read_conditions)
10484         (validate_const_int, find_iterator, read_mapping, check_code_iterator)
10485         (read_rtx, read_rtx_1, read_rtx_variadic): Remove FILE * argument.
10486         Remove file arguments from all calls, using read_char and unread_char
10487         instead of getc and ungetc.
10488         * gensupport.c (process_include): Preserve read_md_file around
10489         the include.  Set read_md_file to the handle of the included file.
10490         Update call to read_rtx.
10491         (init_md_reader_args_cb): Set read_md_file to the handle of the file
10492         and remove local FILE *.  Update calls to read_rtx.
10493
10494 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
10495
10496         * read-md.h (read_rtx_lineno): Rename to...
10497         (read_md_lineno): ...this.
10498         (read_rtx_filename): Rename to...
10499         (read_md_filename): ...this.
10500         (copy_rtx_ptr_loc): Rename to...
10501         (copy_md_ptr_loc): ...this.
10502         (print_rtx_ptr_loc): Rename to...
10503         (print_md_ptr_loc): ...this.
10504         * read-md.c: Likewise.  Update references after renaming.
10505         (string_obstack): Replace RTL with MD in comment.
10506         (set_rtx_ptr_loc): Rename to...
10507         (set_md_ptr_loc): ...this.
10508         (get_rtx_ptr_loc): Rename to...
10509         (get_md_ptr_loc): ...this.
10510         * genconditions.c: Update references after renaming.
10511         * genemit.c: Likewise.
10512         * genoutput.c: Likewise.
10513         * genpreds.c: Likewise.
10514         * gensupport.c: Likewise.
10515         * read-rtl.c: Likewise.
10516
10517 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
10518
10519         * Makefile.in (READ_MD_H): New variable.
10520         (BUILD_RTL): Add build/read-md.o.
10521         (lto-wrapper.o): Depend on coretypes.h instead of defaults.h.
10522         (build/gensupport.o, build/read-rtl.o, build/genattr.o)
10523         (build/genattrtab.o, build/genconditions.o build/genemit.o)
10524         (build/genextract.o, build/genflags.o, build/genoutput.o)
10525         (build/genpreds.o, build/genrecog.o): Depend on $(READ_MD_H).
10526         (build/read-md.o): New rule.
10527         * defaults.h (obstack_chunk_alloc, obstack_chunk_free)
10528         (OBSTACK_CHUNK_SIZE, gcc_obstack_init): Move to...
10529         * coretypes.h: ...here.
10530         * lto-wrapper.c: Include coretypes.h instead of defaults.h.
10531         * pretty-print.c (obstack_chunk_alloc, obstack_chunk_free): Delete.
10532         * genattr.c: Include read-md.h.
10533         * genattrtab.c: Likewise.
10534         * genconditions.c: Likewise.
10535         * genemit.c: Likewise.
10536         * genextract.c: Likewise.
10537         * genflags.c: Likewise.
10538         * genoutput.c: Likewise.
10539         * genpreds.c: Likewise.
10540         * genrecog.c: Likewise.
10541         * rtl.h (read_skip_spaces, copy_rtx_ptr_loc, print_rtx_ptr_loc)
10542         (join_c_conditions, print_c_condition, read_rtx_filename)
10543         (read_rtx_lineno): Move to read-md.h.
10544         * read-rtl.c: Include read-md.h.
10545         (ptr_loc, string_obstack, ptr_locs, ptr_loc_obstack)
10546         (joined_conditions, joined_conditions_obstack, read_rtx_lineno)
10547         (read_rtx_filename, fatal_with_file_and_line, fatal_expected_char)
10548         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc, get_rtx_ptr_loc)
10549         (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
10550         (print_c_condition, read_skip_spaces, read_escape, read_quoted_string)
10551         (read_braced_string, read_string): Move to read-md.c.
10552         (read_rtx): Move some initialization to init_md_reader and call
10553         init_md_reader here.
10554         * gensupport.h (message_with_line, n_comma_elts, scan_comma_elt):
10555         Move to read-md.h.
10556         * gensupport.c: Include read-md.h.
10557         (message_with_line, n_comma_elts, scan_comma_elt): Move to read-md.c.
10558         * read-md.h, read-md.c: New files.
10559
10560 2010-06-10  Anatoly Sokolov  <aesok@post.ru>
10561
10562         * config/moxie/moxie.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
10563         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
10564         * config/moxie/moxie-protos.h (moxie_function_value): Remove.
10565         * config/moxie/moxie.c (moxie_function_value): Make static.
10566         (moxie_libcall_value, moxie_function_value_regno_p): New functions.
10567         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
10568
10569 2010-06-10  Martin Jambor  <mjambor@suse.cz>
10570
10571         * Makefile.in (tree-sra.o): Add DBGCNT_H to dependencies.
10572         * dbgcnt.def (tree_sra): New counter.
10573         * tree-sra.c: Include dbgcnt.h.
10574         (gate_intra_sra): Check tree_sra debug counter.
10575
10576 2010-06-10  Martin Jambor  <mjambor@suse.cz>
10577
10578         PR tree-optimization/44258
10579         * tree-sra.c (build_access_subtree): Return false iff there is a
10580         partial overlap.
10581         (build_access_trees): Likewise.
10582         (analyze_all_variable_accesses): Disqualify candidates if
10583         build_access_trees returns true for them.
10584
10585 2010-06-10  Alexandre Oliva  <aoliva@redhat.com>
10586
10587         PR debug/41371
10588         * var-tracking.c (find_loc_in_1pdv): Remove recursion, only
10589         tail-recurse into canonical node.  Fast-forward over
10590         non-canonical VALUEs.
10591
10592 2010-06-10  H.J. Lu  <hongjiu.lu@intel.com>
10593
10594         PR boostrap/44470
10595         * config/i386/i386.md (*add<mode>_1): Revert revision 160394.
10596         (*addsi_1_zext) <TYPE_LEA>: Likewise.
10597         (add lea splitter): Likewise.
10598         (add_zext lea splitter): Likewise.
10599
10600 2010-06-10  Joseph Myers  <joseph@codesourcery.com>
10601
10602         * common.opt (fshow-column): Don't mark as C ObjC C++ ObjC++.
10603
10604 2010-06-10  Jan Hubicka  <jh@suse.cz>
10605
10606         * df-problems.c (df_live_problem_data): Add live_bitmaps.
10607         (df_live_alloc): Initialize problem data and live_osbtacks.
10608         (df_live_finalize): Remove obstack, problem data; do not
10609         clear all bitmaps.
10610         (df_live_top_dump, df_live_bottom_dump): Do not dump old
10611         data when not allocated.
10612         (df_live_verify_solution_start): Do not allocate problem data.
10613         (df_live_verify_solution_end): Check if out is allocated.
10614         (struct df_md_problem_data): New structure.
10615         (df_md_alloc): Allocate problem data.
10616         (df_md_free): Free problem data; do not clear bitmaps.
10617
10618 2010-06-10  Jan Beulich  <jbeulich@novell.com>
10619
10620         PR bootstrap/37304
10621         * configure.ac: Replace $() with ${} when intending to expand
10622         variables rather than invoking commands.
10623         * configure: Re-generate.
10624
10625 2010-06-10  Jan Hubicka  <jh@suse.cz>
10626
10627         PR rtl-optimization/44460
10628         * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
10629         TYPE_NEEDS_CONSTRUCTING sanity check.
10630
10631 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
10632
10633         * doc/include/fdl.texi: Move to GFDL version 1.3.
10634
10635         * doc/cpp.texi: Move to GFDL version 1.3.
10636         * doc/gcc.texi: Move to GFDL version 1.3.  Fix copyright years.
10637         * doc/gccint.texi: Move to GFDL version 1.3.
10638         * doc/gcov.texi: Move to GFDL version 1.3.  Update copyright years.
10639         * doc/install.texi: Move to GFDL version 1.3.  Fix copyright years.
10640         * doc/invoke.texi: Move to GFDL version 1.3.
10641
10642 2010-06-09  Jan Hubicka  <jh@suse.cz>
10643
10644         * ipa-pure-const.c (propagate_pure_const, propagate_noreturn):
10645         Break out from ...
10646         (propagate) ... here; swap the order.
10647
10648 2010-06-09  Jan Hubicka  <jh@suse.cz>
10649
10650         * bitmap.c (bitmap_elt_insert_after, bitmap_first_set_bit,
10651         bitmap_first_set_bit, bitmap_last_set_bit, bitmap_last_set_bit,
10652         bitmap_and_into, bitmap_and_compl_into, bitmap_set_range,
10653         bitmap_compl_and_into, bitmap_elt_ior): Use checking asserts.
10654
10655 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
10656
10657         * tree-ssa-loop-prefetch.c (gather_memory_references_ref):
10658         Do not the gather memory reference in the outer loop if the step
10659         is not a constant.
10660
10661 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
10662
10663         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO) :
10664         Change the PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO threshold value from
10665         8 to 4.  Minor change of the related comments.
10666
10667 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
10668
10669         * tree-scalar-evolution.c (instantiate_scev_name): Do not fail
10670         the scev analysis when the variable is not used outside the loop
10671         in a close phi node: call compute_overall_effect_of_inner_loop.
10672
10673 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
10674
10675         * graphite-sese-to-poly.c (single_pred_cond): Renamed
10676         single_pred_cond_non_loop_exit.  Return NULL for loop exit edges.
10677         (build_sese_conditions_before): Renamed call to single_pred_cond.
10678         (build_sese_conditions_after): Same.
10679
10680 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
10681
10682         * graphite-poly.h: Fix comments and indentation.
10683         * graphite-sese-to-poly.c: Same.
10684         (build_sese_conditions_before): Compute stmt and gbb only when needed.
10685         * tree-chrec.c: Fix comments and indentation.
10686         (tree-ssa-loop-niter.c): Same.
10687
10688 2010-06-09  Eric Botcazou  <ebotcazou@adacore.com>
10689
10690         PR rtl-optimization/42461
10691         * dce.c (deletable_insn_p): Return true for const or pure calls again.
10692         * except.c (insn_could_throw_p): Return false if !flag_exceptions.
10693
10694 2010-06-09  Jan Hubicka  <jh@suse.cz>
10695
10696         * bitmap.c (bitmap_and): Walk array forward.
10697         (bitmap_and_compl_into): Likewise.
10698         (bitmap_xor): Likewise.
10699         (bitmap_xor_into):  Likewise.
10700         (bitmap_equal_p): Likewise.
10701         (bitmap_intersect_p): Likewise.
10702         (bitmap_intersect_compl_p): Likewise.
10703         (bitmap_ior_and_into): Likewise.
10704         (bitmap_elt_copy): Likewise.
10705         (bitmap_and_compl): Likewise.
10706         (bitmap_elt_ior): Likewise.
10707
10708 2010-06-09  Dave Korn  <dave.korn.cygwin@gmail.com>
10709
10710         * opts-common.c (prune_options): Ensure replacement argv array
10711         is correctly terminated by a NULL entry.
10712
10713 2010-06-09  Jan Hubicka  <jh@suse.cz>
10714
10715         * cgraph.h (varpool_first_static_initializer,
10716         varpool_next_static_initializer): Make checking only when
10717         checking enabled.
10718         * tree-vectorizer.h (vinfo_for_stmt): Remove check.
10719         (set_vinfo_for_stmt, get_earlier_stmt, is_loop_header_bb_p): Change
10720         gcc_assert to gcc_checking_assert.
10721         * tree-flow-inline.h (gimple_vop, get_var_ann, relink_imm_use,
10722         phi_nodes, set_phi_nodes, phi_arg_index_from_use, op_iter_next_use,
10723         op_iter_next_def, op_iter_next_tree, op_iter_init, op_iter_init_use,
10724         op_iter_init_phiuse, op_iter_init_phidef,
10725         array_ref_contains_indirect_ref, ref_contains_array_ref): Use
10726         gcc_checking_assert.
10727         * emit-rtl.h (set_first_insn, set_last_insn): Likewise.
10728         * tree-ssa-live.h (var_to_partition, var_to_partition_to_var,
10729         partition_is_global, live_on_entry, live_on_exit,
10730         live_merge_and_clear): Likewise.
10731         * system.h (gcc_checking_assert): New macro.
10732         * gimple.h (set_bb_seq): Use gcc_checking_assert.
10733
10734 2010-06-09  Jason Merrill  <jason@redhat.com>
10735
10736         * Makefile.in (TAGS): Collect tags info from c-family.
10737
10738 2010-06-09  Jan Hubicka  <jh@suse.cz>
10739
10740         * gimple.h (gcc_gimple_checking_assert): New macro.
10741         (gimple_set_def_ops, gimple_set_use_ops,
10742         gimple_set_vuse, gimple_set_vdef,
10743         gimple_omp_subcode, gimple_omp_set_subcode, gimple_ops, gimple_op,
10744         gimple_op_ptr, gimple_op_ptr, gimple_set_op, gimple_bind_set_block,
10745         gimple_asm_input_op, gimple_asm_input_op_ptr, gimple_asm_set_input_op,
10746         gimple_asm_output_op, gimple_asm_output_op_ptr,
10747         gimple_asm_set_output_op, gimple_asm_clobber_op,
10748         gimple_asm_set_clobber_op, gimple_asm_label_op,
10749         gimple_asm_set_label_op, gimple_try_set_kind,
10750         gimple_try_catch_is_cleanup, gimple_try_set_catch_is_cleanup,
10751         gimple_phi_arg, gimple_switch_num_labels, gimple_switch_set_index,
10752         gimple_switch_label, gimple_switch_set_label, gimple_omp_for_index,
10753         gimple_omp_for_index_ptr, gimple_omp_for_set_index,
10754         gimple_omp_for_initial, gimple_omp_for_initial_ptr,
10755         gimple_omp_for_set_initial, gimple_omp_for_final,
10756         gimple_omp_for_final_ptr, gimple_omp_for_set_final,
10757         gimple_omp_for_incr, gimple_omp_for_incr_ptr, gimple_omp_for_set_incr,
10758         gimple_omp_for_set_cond, gimple_omp_for_cond): Make checking
10759         conditional with ENABLE_GIMPLE_CHECKING.
10760         (gimple_phi_set_arg): Likewise; replace memcpy by assignment.
10761
10762 2010-06-09  Sandra Loosemore  <sandra@codesourcery.com>
10763
10764         * tree-ssa-loop-ivopts.c (adjust_setup_cost): New function.
10765         (get_computation_cost_at): Use it.
10766         (determine_use_iv_cost_condition): Likewise.
10767         (determine_iv_cost): Likewise.
10768
10769 2010-06-09  Richard Guenther  <rguenther@suse.de>
10770
10771         * tree-ssa-loop-niter.c (simplify_replace_tree): Do not
10772         replace constants.
10773
10774 2010-06-09  Kai Tietz  <kai.tietz@onevision.com>
10775
10776         * c-objc-common.c (c_tree_printer): Pre-intialize t by NULL_TREE.
10777
10778 2010-06-09  Martin Jambor  <mjambor@suse.cz>
10779
10780         PR tree-optimization/44423
10781         * tree-sra.c (dump_access): Dump also grp_assignment_read.
10782         (analyze_access_subtree): Pass negative allow_replacements to children
10783         if the current type is scalar.
10784
10785 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
10786
10787         PR testsuite/42843
10788         * gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".
10789         * doc/plugins.texi (Plugin license check): Update information
10790         on type of plugin_is_GPL_compatible.
10791         * Makefile.in (PLUGINCC): Define as $(COMPILER).
10792         (PLUGINCFLAGS): Define as $(COMPILER_FLAGS).
10793
10794 2010-06-09  Bernd Schmidt  <bernds@codesourcery.com>
10795
10796         * config/arm/arm.c (thumb2_reorg): New function.
10797         (arm_reorg): Call it.
10798         * config/arm/thumb2.md (define_peephole2 for flag clobbering
10799         arithmetic operations): Delete.
10800
10801 2010-06-09  Edmar Wienskoski  <edmar@freescale.com>
10802
10803         PR target/44067
10804         * config/rs6000/rs6000.md (DIFD): Do not split dpfp values for
10805         e500v2 target.
10806
10807 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
10808
10809         PR plugins/44459
10810         * gcc-plugin.h: Encapsulate all declarations in extern "C".
10811
10812 2010-06-08  Jan Hubicka  <jh@suse.cz>
10813
10814         * basic-block.h (single_succ_edge, single_pred_edge, ei_container,
10815         ei_next, ei_prev): Do sanity checking with ENABLE_CHECKING only.
10816
10817 2010-06-08  Sandra Loosemore  <sandra@codesourcery.com>
10818
10819         PR tree-optimization/39874
10820         PR middle-end/28685
10821         * gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons):
10822         Declare.
10823         * gimple-fold.c (canonicalize_bool, same_bool_comparison_p,
10824         same_bool_result_p): New.
10825         (and_var_with_comparison, and_var_with_comparison_1,
10826         and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New.
10827         (or_var_with_comparison, or_var_with_comparison_1,
10828         or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New.
10829         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Use
10830         maybe_fold_and_comparisons or maybe_fold_or_comparisons instead
10831         of combine_comparisons.
10832         * tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise.
10833
10834 2010-06-08  Anatoly Sokolov  <aesok@post.ru>
10835
10836         * config/pdp11/pdp11.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
10837         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
10838         * config/pdp11/pdp11.c (pdp11_function_value, pdp11_libcall_value,
10839         pdp11_function_value_regno_p): New functions.
10840         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
10841         TARGET_FUNCTION_VALUE_REGNO_P): Define.
10842
10843 2010-06-08  Kazu Hirata  <kazu@codesourcery.com>
10844
10845         * config/arm/arm.c (arm_rtx_costs_1): Don't special case for
10846         Thumb-2 in the MINUS case.
10847
10848 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
10849
10850         * doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
10851
10852         * doc/gty.texi (GTY Options): Document typed GC allocation and
10853         variable_size GTY option.
10854
10855         * ggc-internal.h: New.
10856
10857         * ggc.h: Update copyright year.
10858         (digit_string): Move to stringpool.c.
10859         (ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
10860         (gt_pch_save_stringpool, gt_pch_fixup_stringpool)
10861         (gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
10862         (init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
10863         (ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
10864         (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
10865         (ggc_force_collect, ggc_get_size, ggc_statistics)
10866         (ggc_print_common_statistics): Move to ggc-internal.h.
10867         (digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
10868         (ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
10869         (GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
10870         (ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
10871         (ggc_min_heapsize_heuristic, ggc_alloc_zone)
10872         (ggc_alloc_zone_pass_stat): Remove.
10873         (ggc_internal_alloc_stat, ggc_internal_alloc)
10874         (ggc_internal_cleared_alloc_stat): New.
10875         (GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
10876         (ggc_internal_vec_alloc_stat)
10877         (ggc_internal_cleared_vec_alloc_stat)
10878         (ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
10879         (ggc_alloc_atomic_stat, ggc_alloc_atomic)
10880         (ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
10881         (ggc_cleared_alloc_ptr_array_two_args): New.
10882         (htab_create_ggc, splay_tree_new_ggc): Redefine.
10883         (ggc_splay_alloc): Change the type of the first argument to
10884         enum gt_types_enum.
10885         (ggc_alloc_string): Make macro.
10886         (ggc_alloc_string_stat): New.
10887         (ggc_strdup): Redefine.
10888         (rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
10889         (ggc_alloc_rtvec_sized): New.
10890         (ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
10891         (ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
10892         (ggc_internal_cleared_alloc_zone_stat)
10893         (ggc_internal_zone_alloc_stat)
10894         (ggc_internal_zone_cleared_alloc_stat)
10895         (ggc_internal_zone_vec_alloc_stat)
10896         (ggc_alloc_zone_rtx_def_stat)
10897         (ggc_alloc_zone_tree_node_stat)
10898         (ggc_alloc_zone_cleared_tree_node_stat)
10899         (ggc_alloc_cleared_gimple_statement_d_stat): New.
10900
10901         * ggc-common.c: Include ggc-internal.h.
10902         (ggc_internal_cleared_alloc_stat): Rename from
10903         ggc_alloc_cleared_stat.
10904         (ggc_realloc_stat): Use ggc_internal_alloc_stat.
10905         (ggc_calloc): Remove.
10906         (ggc_cleared_alloc_htab_ignore_args): New.
10907         (ggc_cleared_alloc_ptr_array_two_args): New.
10908         (ggc_splay_alloc): Add obj_type parameter.
10909         (init_ggc_heuristics): Formatting fixes.
10910
10911         * ggc-none.c: Update copyright year.
10912         (ggc_alloc_stat): Rename to ggc_alloc_stat.
10913         (ggc_alloc_cleared_stat): Rename to
10914         ggc_internal_cleared_alloc_stat.
10915         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
10916
10917         * ggc-page.c: Update copyright year.  Include ggc-internal.h.
10918         Remove references to ggc_alloc in comments.
10919         (ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
10920         (ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
10921         (new_ggc_zone, destroy_ggc_zone): Remove.
10922         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
10923
10924         * ggc-zone.c: Include ggc-internal.h.  Remove references to
10925         ggc_alloc in comments.
10926         (ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
10927         (ggc_internal_alloc_zone_pass_stat): New.
10928         (ggc_internal_cleared_alloc_zone_stat): New.
10929         (ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
10930         (ggc_alloc_stat): Rename ggc_internal_alloc_stat.
10931         (new_ggc_zone, destroy_ggc_zone): Remove.
10932
10933         * stringpool.c: Update copyright year.  Include ggc-internal.h
10934         (digit_vector): Make static.
10935         (digit_string): Moved from ggc.h.
10936         (stringpool_ggc_alloc): Use ggc_alloc_atomic.
10937         (ggc_alloc_string): Rename to ggc_alloc_string_stat.
10938
10939         * Makefile.in (GGC_INTERNAL_H): New.
10940         (ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
10941         $(GGC_INTERNAL_H) to dependencies.
10942
10943         * gentype.c: Update copyright year.
10944         (walk_type): Accept variable_size GTY option.
10945         (USED_BY_TYPED_GC_P): New macro.
10946         (write_enum_defn): Use USED_BY_TYPED_GC_P.  Do not output
10947         whitespace at the end of strings.
10948         (get_type_specifier, variable_size_p): New functions.
10949         (alloc_quantity, alloc_zone): New enums.
10950         (write_typed_alloc_def): New function.
10951         (write_typed_struct_alloc_def): Likewise.
10952         (write_typed_typed_typedef_alloc_def): Likewise.
10953         (write_typed_alloc_defns): Likewise.
10954         (output_typename, write_splay_tree_allocator_def): Likewise.
10955         (write_splay_tree_allocators): Likewise.
10956         (main): Call write_typed_alloc_defns and
10957         write_splay_tree_allocators.
10958
10959         * lto-streamer.h (lto_file_decl_data_ptr): New.
10960
10961         * passes.c (order): Define using cgraph_node_ptr.
10962
10963         * strinpool.c (struct string_pool_data): Declare nested_ptr using
10964         ht_identifier_ptr.
10965
10966         * gimple.h (union gimple_statement_d): Likewise.
10967
10968         * rtl.h (struct rtx_def): Likewise.
10969         (struct rtvec_def): Likewise.
10970
10971         * tree.h (union tree_node): Likewise.
10972
10973         * tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
10974
10975         * cfgloop.c (record_loop_exits): Use htab_create_ggc.
10976
10977         * tree-scalar-evolution.c (scev_initialize): Likewise.
10978
10979         * alias.c (record_alias_subset): Update splay_tree_new_ggc call.
10980
10981         * dwarf2asm.c (dw2_force_const_mem): Likewise.
10982
10983         * omp-low.c (lower_omp_critical): Likewise.
10984
10985         * bitmap.h (struct bitmap_head_def): Update comment to not
10986         reference ggc_alloc.
10987
10988         * config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
10989
10990         * ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
10991
10992         * ipa-prop.c (duplicate_ggc_array): Rename to
10993         duplicate_ipa_jump_func_array.  Use typed GC allocation.
10994         (ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
10995
10996         * gimple.c (gimple_alloc_stat): Use
10997         ggc_alloc_cleared_gimple_statement_d_stat.
10998
10999         * varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
11000
11001         * tree.c (make_node_stat): Use
11002         ggc_alloc_zone_cleared_tree_node_stat.
11003         (make_tree_vec_stat): Likewise.
11004         (build_vl_exp_stat): Likewise.
11005         (copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
11006         (make_tree_binfo_stat): Likewise.
11007         (tree_cons_stat): Likewise.
11008
11009         * rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
11010         (shallow_copy_rtx_stat): Likewise.
11011         (make_node_stat): Likewise.
11012
11013         * lto-symtab.c: Fix comment.
11014
11015         * tree-cfg.c (create_bb): Update comment to not reference
11016         ggc_alloc_cleared.
11017         * tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is value.
11018
11019         * varpool.c (varpool_node): Use typed GC allocation.
11020         (varpool_extra_name_alias): Likewise.
11021
11022         * varasm.c (emutls_decl): Likewise.
11023         (get_unnamed_section): Likewise.
11024         (get_noswitch_section): Likewise.
11025         (get_section): Likewise.
11026         (get_block_for_section): Likewise.
11027         (build_constant_desc): Likewise.
11028         (create_constant_pool): Likewise.
11029         (force_const_mem): Likewise.
11030
11031         * tree.c (build_vl_exp_stat): Likewise.
11032         (build_real): Likewise.
11033         (build_string): Likewise.
11034         (decl_debug_expr_insert): Likewise.
11035         (decl_value_expr_insert): Likewise.
11036         (type_hash_add): Likewise.
11037         (build_omp_clause): Likewise.
11038
11039         * tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
11040
11041         * tree-ssa.c (init_tree_ssa): Likewise.
11042
11043         * tree-ssa-structalias.c (heapvar_insert): Likewise.
11044
11045         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
11046
11047         * tree-ssa-loop-niter.c (record_estimate): Likewise.
11048
11049         * tree-ssa-alias.c (get_ptr_info): Likewise.
11050
11051         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
11052
11053         * tree-phinodes.c (allocate_phi_node): Likewise.
11054
11055         * tree-iterator.c (tsi_link_before): Likewise.
11056         (tsi_link_after): Likewise.
11057
11058         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
11059
11060         * tree-dfa.c (create_var_ann): Likewise.
11061
11062         * tree-cfg.c (create_bb): Likewise.
11063
11064         * toplev.c (alloc_for_identifier_to_locale): Likewise.
11065         (general_init): Likewise.
11066
11067         * stringpool.c (stringpool_ggc_alloc): Likewise.
11068         (gt_pch_save_stringpool): Likewise.
11069
11070         * sese.c (if_region_set_false_region): Likewise.
11071
11072         * passes.c (do_per_function_toporder): Likewise.
11073
11074         * optabs.c (set_optab_libfunc): Likewise.
11075         (set_conv_libfunc): Likewise.
11076
11077         * lto-symtab.c (lto_symtab_register_decl): Likewise.
11078
11079         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
11080         (input_eh_region): Likewise.
11081         (input_eh_lp): Likewise.
11082         (make_new_block): Likewise.
11083         (unpack_ts_real_cst_value_fields): Likewise.
11084
11085         * lto-section-in.c (lto_new_in_decl_state): Likewise.
11086
11087         * lto-cgraph.c (input_node_opt_summary): Likewise.
11088
11089         * loop-init.c (loop_optimizer_init): Likewise.
11090
11091         * lambda.h (lambda_vector_new): Likewise.
11092
11093         * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
11094
11095         * ira.c (update_equiv_regs): Likewise.
11096
11097         * ipa.c (cgraph_node_set_new): Likewise.
11098         (cgraph_node_set_add): Likewise.
11099         (varpool_node_set_new): Likewise.
11100         (varpool_node_set_add): Likewise.
11101
11102         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
11103         (duplicate_ipa_jump_func_array): Likewise.
11104         (ipa_read_node_info): Likewise.
11105
11106         * ipa-cp.c (ipcp_create_replace_map): Likewise.
11107
11108         * integrate.c (get_hard_reg_initial_val): Likewise.
11109
11110         * gimple.c (gimple_alloc_stat): Likewise.
11111         (gimple_build_omp_for): Likewise.
11112         (gimple_seq_alloc): Likewise.
11113         (gimple_copy): Likewise.
11114
11115         * gimple-iterator.c (gsi_insert_before_without_update): Likewise.
11116         (gsi_insert_after_without_update): Likewise.
11117
11118         * function.c (add_frame_space): Likewise.
11119         (insert_temp_slot_address): Likewise.
11120         (assign_stack_temp_for_type): Likewise.
11121         (allocate_struct_function): Likewise.
11122         (types_used_by_var_decl_insert): Likewise.
11123
11124         * except.c (init_eh_for_function): Likewise.
11125         (gen_eh_region): Likewise.
11126         (gen_eh_region_catch): Likewise.
11127         (gen_eh_landing_pad): Likewise.
11128         (add_call_site): Likewise.
11129
11130         * emit-rtl.c (get_mem_attrs): Likewise.
11131         (get_reg_attrs): Likewise.
11132         (start_sequence): Likewise.
11133         (init_emit): Likewise.
11134
11135         * dwarf2out.c (new_cfi): Likewise.
11136         (queue_reg_save): Likewise.
11137         (dwarf2out_frame_init): Likewise.
11138         (new_loc_descr): Likewise.
11139         (find_AT_string): Likewise.
11140         (new_die): Likewise.
11141         (add_var_loc_to_decl): Likewise.
11142         (clone_die): Likewise.
11143         (clone_as_declaration): Likewise.
11144         (break_out_comdat_types): Likewise.
11145         (new_loc_list): Likewise.
11146         (loc_descriptor): Likewise.
11147         (add_loc_descr_to_each): Likewise.
11148         (add_const_value_attribute): Likewise.
11149         (tree_add_const_value_attribute): Likewise.
11150         (add_comp_dir_attribute): Likewise.
11151         (add_name_and_src_coords_attributes): Likewise.
11152         (lookup_filename): Likewise.
11153         (store_vcall_insn): Likewise.
11154         (dwarf2out_init): Likewise.
11155
11156         * dbxout.c (dbxout_init): Likewise.
11157
11158         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
11159
11160         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
11161
11162         * config/score/score7.c (score7_output_external): Likewise.
11163
11164         * config/score/score3.c (score3_output_external): Likewise.
11165
11166         * config/s390/s390.c (s390_init_machine_status): Likewise.
11167
11168         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
11169         (rs6000_init_machine_status): Likewise.
11170         (output_toc): Likewise.
11171
11172         * config/pa/pa.c (pa_init_machine_status): Likewise.
11173         (get_deferred_plabel): Likewise.
11174
11175         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
11176
11177         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
11178
11179         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
11180
11181         * config/mep/mep.c (mep_init_machine_status): Likewise.
11182         (mep_note_pragma_flag): Likewise.
11183
11184         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
11185
11186         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
11187
11188         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
11189
11190         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
11191         (i386_pe_maybe_record_exported_symbol): Likewise.
11192
11193         * config/i386/i386.c (get_dllimport_decl): Likewise.
11194         (ix86_init_machine_status): Likewise.
11195         (assign_386_stack_local): Likewise.
11196
11197         * config/frv/frv.c (frv_init_machine_status): Likewise.
11198
11199         * config/darwin.c (machopic_indirection_name): Likewise.
11200
11201         * config/cris/cris.c (cris_init_machine_status): Likewise.
11202
11203         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
11204
11205         * config/avr/avr.c (avr_init_machine_status): Likewise.
11206
11207         * config/arm/arm.c (arm_init_machine_status): Likewise.
11208
11209         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
11210         (alpha_need_linkage): Likewise.
11211         (alpha_use_linkage): Likewise.
11212
11213         * cgraph.c (cgraph_allocate_node): Likewise.
11214         (cgraph_create_edge_1): Likewise.
11215         (cgraph_create_indirect_edge): Likewise.
11216         (cgraph_add_asm_node): Likewise.
11217
11218         * cfgrtl.c (init_rtl_bb_info): Likewise.
11219
11220         * cfgloop.c (alloc_loop): Likewise.
11221         (rescan_loop_exit): Likewise.
11222
11223         * cfg.c (init_flow): Likewise.
11224         (alloc_block): Likewise.
11225         (unchecked_make_edge): Likewise.
11226
11227         * c-parser.c (c_parse_init): Likewise.
11228         (c_parse_file): Likewise.
11229
11230         * c-decl.c (bind): Likewise.
11231         (record_inline_static): Likewise.
11232         (push_scope): Likewise.
11233         (make_label): Likewise.
11234         (lookup_label_for_goto): Likewise.
11235         (finish_struct): Likewise.
11236         (finish_enum): Likewise.
11237         (c_push_function_context): Likewise.
11238
11239         * bitmap.c (bitmap_element_allocate): Likewise.
11240         (bitmap_gc_alloc_stat): Likewise.
11241
11242         * alias.c (record_alias_subset): Likewise.
11243         (init_alias_analysis): Likewise.
11244
11245 2010-06-08  Shujing Zhao  <pearly.zhao@oracle.com>
11246
11247         * fold-const.c (fold_comparison): Remove redundant parenthesis.
11248         * tree-inline.c (expand_call_inline): Pass translated return value of
11249         cgraph_inline_failed_string to diagnostic function.
11250
11251 2010-06-08  Andrew Pinski  <pinskia@gmail.com>
11252             Shujing Zhao  <pearly.zhao@oracle.com>
11253
11254         PR c/37724
11255         * c-typeck.c (convert_for_assignment): Call pedwarn_init if the
11256         implicit bad conversions is initialization.
11257         (error_init): Use gmsgid instead of msgid for argument name and change
11258         the call for error.
11259         (pedwarn_init): Use gmsgid instead of msgid for argument name and
11260         change the call for pedwarn.
11261         (warning_init): Use gmsgid instead of msgid for argument name and
11262         change the call for warning.
11263
11264 2010-06-07  Nathan Froyd  <froydnj@codesourcery.com>
11265
11266         * config/mips/mips-protos.h (mips_print_operand): Delete.
11267         (mips_print_operand_address): Delete.
11268         * config/mips/mips.h (mips_print_operand_punct): Delete.
11269         (PRINT_OPERAND): Delete.
11270         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
11271         (PRINT_OPERAND_ADDRESS): Delete.
11272         * config/mips/mips.c (mips_print_operand_punct): Make static.
11273         (mips_print_operand_address): Make static.
11274         (mips_print_operand): Make static.  Call
11275         mips_print_operand_punct_valid_p.
11276         (mips_print_operand_punct_valid_p): New function.
11277         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
11278         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
11279
11280 2010-06-07  Jan Hubicka  <jh@suse.cz>
11281
11282         PR middle-end/44454
11283         (df_lr_top_dump, df_lr_bottom_dump): Check that in/out bitmaps
11284         are allocated.
11285
11286 2010-06-07  Kaz Kojima  <kkojima@gcc.gnu.org>
11287
11288         * config/sh/sh.c (sh_build_builtin_va_list): Set tree type
11289         name of RECORD.
11290
11291 2010-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11292
11293         * doc/sourcebuild.texi (Effective-Target Keywords, Other
11294         attributes): Document gas.
11295
11296 2010-06-07  Uros Bizjak  <ubizjak@gmail.com>
11297
11298         * config/i386/i386.md (*add<mode>_1): Remove alternative 2.
11299         <TYPE_LEA>: Split instruction.
11300         <default>: Remove alternative 2 handling.
11301         (*addsi_1_zext) <TYPE_LEA>: Split instruction.
11302         (add lea splitter): Generate SImode lea for mode sizes <= SImode.
11303         (add_zext lea splitter): Use ix86_lea_for_add_ok in insn predicate.
11304
11305         (*movsi_1) <TYPE_LEA>: Use %a modifier to output operand 1.
11306         (ashift_zext lea splitter): Use DImode for multiplication.
11307
11308         * config/i386/i386.c (ix86_expand_epilogue): Do not use ix86_gen_add
11309         to generate addition.
11310
11311 2010-06-07  Joseph Myers  <joseph@codesourcery.com>
11312
11313         * common.opt (fira-verbose): Use Var.
11314         (fpcc-struct-return): Use Init instead of VarExists.
11315         * defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
11316         toplev.c.
11317         * flags.h (flag_signed_char, flag_short_enums,
11318         flag_pcc_struct_return, flag_ira_verbose,
11319         flag_detailed_statistics, flag_remove_unreachable_functions): Remove.
11320         * toplev.c (flag_detailed_statistics, flag_signed_char,
11321         flag_short_enums, flag_pcc_struct_return, flag_ira_verbose): Remove.
11322         (DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
11323         * toplev.h (flag_crossjumping, flag_if_conversion,
11324         flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
11325         flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
11326         flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
11327         flag_cprop_registers, time_report, flag_ira_loop_pressure,
11328         flag_ira_coalesce, flag_ira_move_spills,
11329         flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.
11330
11331 2010-06-07  Jan Hubicka  <jh@suse.cz>
11332
11333         * df-core.c (df_analyze_problem): Do verification after allocation.
11334
11335         * df-problems.c (df_lr_problem_data): Add lr_bitmaps.
11336         (df_lr_alloc): Initialize problem data; move bitmaps to
11337         lr_bitmaps obstack.
11338         (df_lr_finalize): Free problem data; do not bother to free bitmaps.
11339         (df_lr_verify_solution_start): Do not initialize problem data;
11340         allocate bitmaps in lr_bitmaps.
11341         (df_lr_verify_solution_end): Do not free problem data.
11342
11343 2010-06-07  Jan Hubicka  <jh@suse.cz>
11344
11345         * cgraph.c (cgraph_edge_cannot_lead_to_return): Also check
11346         if caller is noreturn.
11347         * ipa-reference.c (analyze_function): Use ipa_ref_cannot_lead_to_return
11348         * ipa-ref.h (ipa_ref_cannot_lead_to_return): New function.
11349         * ipa-ref.c (ipa_ref_cannot_lead_to_return): New function.
11350         * ipa-pure-const.c (check_decl): Add IPA parameter.
11351         (state_from_flags): New function.
11352         (better_state, worse_state): New functions.
11353         (check_call): When in IPA mode, do not care about callees.
11354         (check_load, check_store): Update.
11355         (check_ipa_load, check_ipa_store): New.
11356         (check_stmt): When in IPA mode, use IPA checkers.
11357         (analyze_function): Use state_from_flags.
11358         (propagate): Check indirect edges and references.
11359
11360 2010-06-07  Kazu Hirata  <kazu@codesourcery.com>
11361
11362         PR rtl-optimization/44404
11363         * auto-inc-dec.c (find_inc): Use reg_overlap_mentioned_p instead
11364         of count_occurrences to see if it's safe to modify mem_insn.
11365
11366 2010-06-07  Richard Guenther  <rguenther@suse.de>
11367
11368         * gimplify.c (gimplify_cleanup_point_expr): For empty body
11369         and EH-only cleanup drop the cleanup instead of inserting it
11370         unconditionally.
11371
11372 2010-06-07  Ira Rosen  <irar@il.ibm.com>
11373
11374         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update
11375         documentation.
11376         * targhooks.c (default_builtin_vectorization_cost): New function.
11377         * targhooks.h (default_builtin_vectorization_cost): Declare.
11378         * target.h (enum vect_cost_for_stmt): Define.
11379         (builtin_vectorization_cost): Change argument and comment.
11380         * tree-vectorizer.h: Remove cost model macros.
11381         * tree-vect-loop.c: Include target.h.
11382         (vect_get_cost): New function.
11383         (vect_estimate_min_profitable_iters): Replace cost model macros with
11384         calls to vect_get_cost.
11385         (vect_model_reduction_cost, vect_model_induction_cost): Likewise.
11386         * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Add
11387         default implementation.
11388         * tree-vect-stmts.c (cost_for_stmt): Replace cost model macros with
11389         calls to target hook builtin_vectorization_cost.
11390         (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
11391         Likewise.
11392         * Makefile.in (tree-vect-loop.o): Add dependency on TARGET_H.
11393         * config/spu/spu.c (spu_builtin_vectorization_cost): Replace with new
11394         implementation to return costs.
11395         * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
11396         * config/spu/spu.h: Remove vectorizer cost model macros.
11397         * config/i386/i386.h: Likewise.
11398         * tree-vect-slp.c (vect_build_slp_tree): Replace cost model macro with
11399         a call to target hook builtin_vectorization_cost.
11400
11401 2010-06-06  Sriraman Tallam  <tmsriram@google.com>
11402
11403         PR target/44319
11404         * config/i386/i386.c (override_options): Turn zee pass on for level 2
11405         and above and defer till target is known.
11406         (optimization_options): Turn on zee pass if TARGET_64BIT is set and
11407         turn off otherwise.
11408
11409 2010-05-25  Jan Hubicka  <jh@suse.cz>
11410
11411         * df-core.c (df_set_blocks): Use bitmap_head instead of bitmap.
11412         (df_compact_blocks): Likewise.
11413         * df.h (struct df): Turn hardware_regs_used,
11414         regular_block_artificial_uses, eh_block_artificial_uses,
11415         insns_to_delete, insns_to_rescan, insns_to_notes_rescan into
11416         bitmap_head.
11417         * df-problems.c (df_lr_local_compute, df_lr_confluence_0,
11418         df_byte_lr_alloc, df_simulate_fixup_sets): Update.
11419         * df-scan.c (df_scan_free_internal, df_scan_alloc, df_scan_start_dump,
11420         df_scan_blocks, df_insn_delete, df_insn_rescan,
11421         df_insn_rescan_debug_internal, df_insn_rescan_all,
11422         df_process_deferred_rescans, df_process_deferred_rescans,
11423         df_notes_rescan, df_get_call_refs, df_get_call_refs,
11424         regs_invalidated_by_call_regset, df_get_call_refs, df_bb_refs_collect,
11425         df_record_entry_block_defs, df_record_exit_block_uses,
11426         df_update_exit_block_uses, df_bb_verify, df_entry_block_bitmap_verify,
11427         df_scan_verify): Update.
11428
11429 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
11430
11431         PR c++/44188
11432         * c-common.c (is_typedef_decl): Move this definition ...
11433         * tree.c (is_typedef_decl): ... here.
11434         (typdef_variant_p): Move definition here from gcc/cp/tree.c.
11435         * c-common.h (is_typedef_decl): Move this declaration ...
11436         * tree.h (is_typedef_decl): ... here.
11437         (typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h
11438         * dwarf2out.c (is_naming_typedef_decl): New function.
11439         (gen_tagged_type_die): Split out of ...
11440         (gen_type_die_with_usage): ... this function. When an anonymous
11441         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
11442         is emitted for the typedef.
11443         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
11444         anonymous tagged types.
11445
11446 2010-06-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11447
11448         PR c/20000
11449         * c-decl.c (grokdeclarator): Delete warning.
11450
11451 2010-06-06  Eric Botcazou  <ebotcazou@adacore.com>
11452
11453         * stor-layout.c (self_referential_size): Set UNKNOWN_LOCATION on the
11454         newly built CALL_EXPR.
11455         * tree-profile.c (tree_profiling): Don't profile functions produced
11456         for built-in stuff.
11457
11458 2010-06-06  Segher Boessenkool  <segher@kernel.crashing.org>
11459
11460         PR bootstrap/44427
11461         PR bootstrap/44428
11462         * genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros
11463         endianness-independent.
11464
11465 2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
11466
11467         * c-common.c: Move to c-family/.
11468         * c-common.def: Likewise.
11469         * c-common.h: Likewise.
11470         * c-cppbuiltin.c: Likewise.
11471         * c-dump.c: Likewise.
11472         * c-format.c: Likewise.
11473         * c-format.h : Likewise.
11474         * c-gimplify.c: Likewise.
11475         * c-lex.c: Likewise.
11476         * c-omp.c: Likewise.
11477         * c.opt: Likewise.
11478         * c-opts.c: Likewise.
11479         * c-pch.c: Likewise.
11480         * c-ppoutput.c: Likewise.
11481         * c-pragma.c: Likewise.
11482         * c-pragma.h: Likewise.
11483         * c-pretty-print.c: Likewise.
11484         * c-pretty-print.h: Likewise.
11485         * c-semantics.c: Likewise.
11486         * stub-objc.c: Likewise.
11487
11488         * gengtype.c (get_file_langdir): Special-case files in c-family/.
11489         (get_output_file_with_visibility): Fix name for c-common.h.
11490         * c-config-lang.in: Update paths in gtfiles for files in c-family/.
11491
11492         * c-tree.h: Update include path for moved files.
11493         * c-lang.c: Likewise.
11494         * c-lang.h: Likewise.
11495         * c-parser.c: Likewise.
11496         * c-convert.c: Likewise.
11497         * c-decl.c: Likewise.
11498         * c-objc-common.c: Likewise.
11499         * configure.ac: Make sure c-family/ exists in the build directory.
11500         * configure: Regenerate.
11501         * Makefile.in: Update paths for moved files.  Regroup files per
11502         location and update dependencies.  Move generated_files down after
11503         ALL_GTFILES_H.
11504
11505         * config/spu/spu-c.c: Update paths for moved files.
11506         * config/mep/mep-pragma.c: Likewise.
11507         * config/darwin-c.c: Likewise.
11508         * config/i386/msformat-c.c: Likewise.
11509         * config/i386/i386-c.c: Likewise.
11510         * config/avr/avr-c.c: Likewise.
11511         * config/sol2-c.c: Likewise.
11512         * config/ia64/ia64-c.c: Likewise.
11513         * config/rs6000/rs6000-c.c: Likewise.
11514         * config/arm/arm.c: Likewise.
11515         * config/arm/arm-c.c: Likewise.
11516         * config/h8300/h8300.c: Likewise.
11517         * config/v850/v850-c.c: Likewise.
11518
11519         * config/t-darwin: Fix dependencies for moved files.
11520         * config/t-sol2: Fix dependencies for moved files.
11521         * config/mep/t-mep: Fix dependencies for moved files.
11522         * config/ia64/t-ia64: Fix dependencies for moved files.
11523         * config/rs6000/t-rs6000: Fix dependencies for moved files.
11524         * config/v850/t-v850: Fix dependencies for moved files.
11525         * config/v850/t-v850e: Fix dependencies for moved files.
11526
11527         * config/m32c/m32c-pragma.c
11528
11529         * po/exgettext: Look in c-family/ also.
11530
11531 2010-06-05  Eric Botcazou  <ebotcazou@adacore.com>
11532
11533         * tree-ssa-dce.c (mark_last_stmt_necessary): New function.
11534         (mark_control_dependent_edges_necessary): Call it instead of marking
11535         the last statement manually.
11536         (propagate_necessity): Likewise.
11537
11538 2010-06-05  Jan Hubicka  <jh@suse.cz>
11539
11540         * basic-block.h (compute_dominance_frontiers): Updated.
11541         (compute_idf): Likewise.
11542
11543         * tree-into-ssa.c (insert_phi_nodes): Use bitmap heads
11544         for dominance frontiers.
11545         (rewrite_into_ssa): Update for bitmap heads in dominance frontiers.
11546         (insert_updated_phi_nodes_for): Likewise.
11547         (update_ssa): Likewise.
11548         * cfganal.c (compute_dominance_frontiers_1): Likewise.
11549         (compute_dominance_frontiers): Likewise.
11550         (compute_idf): Likewise.
11551         * df-problems.c (df_md_local_compute): Likewise.
11552
11553 2010-06-05  Anatoly Sokolov  <aesok@post.ru>
11554
11555         * target.h (struct gcc_target): Add memory_move_cost field.
11556         * target-def.h (TARGET_MEMORY_MOVE_COST): New.
11557         (TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
11558         * targhooks.c (default_memory_move_cost): New function.
11559         * targhooks.h (default_memory_move_cost): Declare function.
11560         * reload.h (memory_move_cost): Declare.
11561         (memory_move_secondary_cost): Change type of 'in' argument to bool.
11562         * reginfo.c (memory_move_cost): New function.
11563         (memory_move_secondary_cost): Change type of 'in' argument to bool.
11564         * ira.h (ira_memory_move_cost): Update comment.
11565         * ira.c (ira_memory_move_cost): Update comment.
11566         (setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
11567         with memory_move_cost.
11568         * postreload.c (reload_cse_simplify_set): (Ditto.).
11569         * reload1.c (choose_reload_regs): (Ditto.).
11570         * doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
11571         (MEMORY_MOVE_COST):  Revise documentation.
11572
11573         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
11574         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
11575         * config/i386/i386.h (ix86_memory_move_cost): Make static. Change
11576         type of 'in' argument to bool.
11577         (TARGET_MEMORY_MOVE_COST): Define.
11578
11579 2010-06-05  Jan Hubicka  <jh@suse.cz>
11580
11581         * ipa-pure-const.c (propagate): Fix typo in handling of functions
11582         that cannot return.  Be more careful when merging the results with
11583         previously known ones.
11584
11585 2010-06-05  Matthias Klose  <doko@ubuntu.com>
11586
11587         * gcc.c (cc1_options, cpp_unique_options): Use find-plugindir spec
11588         function to add the -iplugindir option.
11589         (find_plugindir_spec_function): Add new declaration and function.
11590         (static_spec_func): Use it for "find-plugindir".
11591
11592 2010-06-05  Jakub Jelinek  <jakub@redhat.com>
11593
11594         PR c++/44361
11595         * c-typeck.c (mark_exp_read): Handle C_MAYBE_CONST_EXPR.
11596         * c-parser.c (c_parser_postfix_expression): Call mark_exp_read on
11597         statement expression.
11598
11599 2010-06-05  Jan Hubicka  <jh@suse.cz>
11600
11601         * df-problems.c (seen_in_block, seen_in_insn): Convert to bitmap_head.
11602         (df_rd_problem_data): Convert sparse_invalidated_by_call,
11603         dense_invalidated_by_call to bitmap head.
11604         (df_rd_alloc, df_rd_bb_local_compute_process_def,
11605         df_rd_bb_local_compute, df_rd_confluence_n, df_rd_transfer_function,
11606         df_rd_start_dump, df_lr_verify_transfer_functions,
11607         df_live_verify_transfer_functions, df_chain_create_bb,
11608         df_chain_add_problem, df_byte_lr_check_regs, df_byte_lr_alloc,
11609         df_byte_lr_confluence_0, df_byte_lr_confluence_n, df_note_compute,
11610         df_simulate_one_insn_forwards, df_md_alloc,
11611         df_md_bb_local_compute_process_def,
11612         df_md_bb_local_compute_process_def, df_md_local_compute,
11613         df_md_transfer_function df_md_free): Update.
11614
11615 2010-06-05  Joseph Myers  <joseph@codesourcery.com>
11616
11617         PR c/44322
11618         * c-typeck.c (build_unary_op): Merge qualifiers into pointer
11619         target type for ADDR_EXPR; require no changes to qualifiers except
11620         for function types.
11621         * c-tree.h (c_build_type_variant): Remove.
11622
11623 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
11624
11625         * genautomata.c (get_excl_set): Do work per element, not per char.
11626         (check_presence_pattern_sets): Similar.
11627         (check_absence_pattern_sets): Similar.
11628
11629 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
11630
11631         * genautomata.c (curr_state_pass_num): Delete.
11632         (min_issue_delay_pass_states): Delete.
11633         (min_issue_delay): Delete.
11634         (initiate_min_issue_delay_pass_states): Delete.
11635         (output_min_issue_delay_table): Compute min_issue_delay_vect
11636         using a breadth-first search variant.
11637         (output_tables): Don't call initiate_min_issue_delay_pass_states.
11638
11639 2010-06-04  H.J. Lu  <hongjiu.lu@intel.com>
11640
11641         PR boostrap/44421
11642         * df-problems.c (df_lr_bb_local_compute): Updated for embedded bitmaps.
11643         (df_byte_lr_bb_local_compute): Likewise.
11644
11645 2010-06-03  Jason Merrill  <jason@redhat.com>
11646
11647         Implement noexcept operator (5.3.7)
11648         * c-common.c (c_common_reswords): Add noexcept.
11649         * c-common.h (enum rid): Add RID_NOEXCEPT.
11650
11651 2010-06-04  Joseph Myers  <joseph@codesourcery.com>
11652
11653         * config/darwin-driver.c (darwin_default_min_version): Use
11654         GCC-specific formats in diagnostics.
11655         * cppspec.c (lang_specific_driver): Use GCC-specific formats in
11656         diagnostics.
11657         * gcc.c (translate_options, read_specs, add_sysrooted_prefix,
11658         execute, process_command, end_going_arg, do_self_spec, do_spec_1,
11659         eval_spec_function, handle_braces, process_brace_body, main,
11660         perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
11661         getenv_spec_function, compare_version_strings,
11662         version_compare_spec_function): Use GCC-specific formats in
11663         diagnostics.
11664
11665 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
11666
11667         * config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
11668         that operand 0 and operand 1 are equal.
11669         (*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
11670         (*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
11671         and operand 1 are equal.
11672         <default>: Ditto.  Remove ??? comment.
11673         (*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
11674         and operand 1 are equal.
11675         <default>: Ditto.  Remove ??? comment.
11676         (*adddi_4) <default>: Remove assert that operand 0 and operand 1
11677         are equal.
11678         (*add<mode>_4) <default>: Ditto.
11679         (*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
11680
11681 2010-06-04  Nathan Froyd  <froydnj@codesourcery.com>
11682
11683         * config/i386/i386-protos.h (ix86_print_operand): Declare.
11684         * config/i386/i386.c (ix86_print_operand): Make non-static.
11685         * config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
11686         * output.h (output_operand): Declare.
11687         * final.c (output_operand): Make non-static.
11688
11689 2010-06-04  Alexandre Oliva  <aoliva@redhat.com>
11690
11691         PR rtl-optimization/44013
11692         * sched-deps.c (add_dependence_list_and_free): Don't free lists
11693         when processing debug insns.
11694
11695         PR debug/41371
11696         * var-tracking.c (find_loc_in_1pdv): Mark initial value before
11697         recursing.  Check that recursion is bounded.  Rename inner var
11698         to avoid hiding incoming argument.
11699
11700 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
11701
11702         * config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
11703         operands[2] == 255.
11704         (*addqi_3): Ditto.
11705         (*addqi_4): Ditto.
11706         (*addqi_5): Ditto.
11707         (*addqi_ext_1_rex64): Ditto.
11708         (*addqi_ext_1): Ditto.
11709
11710         (*addqi_4): Check for incdec_operand in QImode.
11711
11712         (*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
11713         using SWI mode iterator.
11714         (*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
11715         (*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
11716         mode iterator.
11717         (*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
11718         using SWI mode iterator.
11719
11720 2010-06-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11721
11722         PR c/25880
11723         * c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
11724         * c-format.c (gcc_diag_flag_specs): Add hash.
11725         (gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
11726         (gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
11727         * c-pretty-print.c (pp_c_cv_qualifier): Rename as
11728         pp_c_cv_qualifiers. Handle qualifiers spelling here.
11729         (pp_c_type_qualifier_list): Call the function above.
11730         * c-pretty-print.h (pp_c_cv_qualifiers): Declare.
11731         * c-typeck.c (handle_warn_cast_qual): Print qualifiers.
11732         (WARN_FOR_QUALIFIERS): New macro.
11733         (convert_for_assignment): Use it.
11734
11735 2010-06-04  Kai Tietz  <kai.tietz@onevision.com>
11736
11737         * config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'.
11738
11739 2010-06-04  Jan Hubicka  <jh@suse.cz>
11740
11741         * df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
11742         df_byte_lr_bb_info): Embedd bitmap_head into the structure.
11743         (DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
11744         DF_BYTE_LR_OUT): Update for embedded bitmaps.
11745         * fwprop.c (single_def_use_enter_block): Likewise.
11746         * ddg.c (create_ddg_dep_from_intra_loop_link,
11747         add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
11748         * loop-iv.c (latch_dominating_def): Likewise.
11749         * df-problems.c (df_rd_free_bb_info, df_rd_alloc,
11750         df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
11751         df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
11752         df_rd_transfer_function, df_rd_top_dump,
11753         df_rd_bottom_dump): Update.
11754         (df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
11755         df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
11756         df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
11757         df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
11758         df_lr_verify_solution_start, df_lr_verify_solution_end,
11759         df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
11760         df_live_free_bb_info, df_live_alloc, df_live_reset,
11761         df_live_bb_local_compute, df_live_init, df_live_transfer_function,
11762         df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
11763         df_live_verify_solution_start, df_live_verify_solution_end,
11764         df_live_verify_transfer_functions, df_chain_create_bb,
11765         df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
11766         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
11767         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
11768         df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
11769         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
11770         df_byte_lr_transfer_function, df_byte_lr_top_dump,
11771         df_byte_lr_bottom_dump, df_create_unused_note,
11772         df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
11773         df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
11774         df_md_transfer_function, df_md_init, df_md_confluence_0,
11775         df_md_confluence_n,
11776         df_md_top_dump, df_md_bottom_dump): Update.
11777         (struct df_lr_problem_data): Embedd bitmap headers.
11778
11779 2010-06-04  Jan Hubicka  <jh@suse.cz>
11780
11781         * dce.c (dce_process_block): Do not re-scan already marked
11782         instructions.
11783
11784 2010-06-04  Bernd Schmidt  <bernds@codesourcery.com>
11785
11786         PR rtl-optimization/39871
11787         PR rtl-optimization/40615
11788         PR rtl-optimization/42500
11789         PR rtl-optimization/42502
11790         * ira.c (init_reg_equiv_memory_loc: New function.
11791         (ira): Call it twice.
11792         * reload.h (calculate_elim_costs_all_insns): Declare.
11793         * ira-costs.c: Include "reload.h".
11794         (regno_equiv_gains): New static variable.
11795         (init_costs): Allocate it.
11796         (finish_costs): Free it.
11797         (ira_costs): Call calculate_elim_costs_all_insns.
11798         (find_costs_and_classes): Take estimated elimination costs
11799         into account.
11800         (ira_adjust_equiv_reg_cost): New function.
11801         * ira.h (ira_adjust_equiv_reg_cost): Declare it.
11802         * reload1.c (init_eliminable_invariants, free_reg_equiv,
11803         elimination_costs_in_insn, note_reg_elim_costly): New static functions.
11804         (elim_bb): New static variable.
11805         (reload): Move code out of here into init_eliminable_invariants and
11806         free_reg_equiv.  Call them.
11807         (calculate_elim_costs_all_insns): New function.
11808         (eliminate_regs_1): Declare.  Add extra arg FOR_COSTS;
11809         all callers changed.  If FOR_COSTS is true, don't call alter_reg,
11810         but call note_reg_elim_costly if we turned a valid memory address
11811         into an invalid one.
11812         * Makefile.in (ira-costs.o): Depend on reload.h.
11813
11814 2010-06-04  Julian Brown  <julian@codesourcery.com>
11815
11816         * config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
11817         for pool ranges.
11818
11819 2010-06-04  Richard Guenther  <rguenther@suse.de>
11820
11821         PR lto/41584
11822         * cgraph.h (struct varpool_node): Add lto_file_data field.
11823         * lto-cgraph.c (input_varpool_node): Initialize it.
11824
11825 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
11826
11827         * config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
11828         * config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
11829         predicate in "type" attribute calculation.
11830         (*addsi_1_zext): Ditto.
11831         (*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
11832         (*addsi_2_zext): Ditto.
11833         (*add<mode>_3): Ditto.
11834         (*addsi_3_zext): Ditto.
11835         (*add<mode>_5): Ditto.
11836
11837 2010-06-03  Jan Hubicka  <jh@suse.cz>
11838
11839         * tree-into-ssa.c (mark_block_for_update): Avoid redundant call
11840         of bitmap_bit_p.
11841         * cfganal.c (compute_dominance_frontiers_1): Likewise.
11842
11843 2010-06-03  Jan Hubicka  <jh@suse.cz>
11844
11845         * df-problems.c (df_create_unused_note, df_note_bb_compute):
11846         micro-optimize the checks when to add new note.
11847
11848 2010-06-03  Nathan Froyd  <froydnj@codesourcery.com>
11849
11850         * final.c (output_asm_insn): Call
11851         targetm.asm_out.print_operand_punct_valid_p.  Update comments.
11852         (output_operand): Call targetm.asm_out.print_operand.  Update comments.
11853         (output_address): Call targetm.asm_out.print_operand_address.
11854         Update comments.
11855         * target.h (struct gcc_target): Add print_operand,
11856         print_operand_address, and print_operand_punct_valid_p fields.
11857         * targhooks.h (default_print_operand): Declare.
11858         (default_print_operand_address): Declare.
11859         (default_print_operand_punct_valid_p): Declare.
11860         * targhooks.c (default_print_operand): Define.
11861         (default_print_operand_address): Define.
11862         (default_print_operand_punct_valid_p): Define.
11863         * target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
11864         (TARGET_PRINT_OPERAND_ADDRESS): Likewise.
11865         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
11866         (TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
11867         TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
11868         * vmsdbgout.c (addr_const_to_string): Update comment.
11869         * config/i386/i386.c (print_operand): Rename to...
11870         (ix86_print_operand): ...this.  Make static.
11871         (print_operand_address): Rename to...
11872         (ix86_print_operand_address): ...this.  Make static.  Call
11873         ix86_print_operand instead of PRINT_OPERAND.
11874         (ix86_print_operand_punct_valid_p): New function.
11875         (TARGET_PRINT_OPERAND): Define.
11876         (TARGET_PRINT_OPERAND_ADDRESS): Define.
11877         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
11878         * config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
11879         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
11880         (PRINT_OPERAND): Delete.
11881         (PRINT_OPERAND_ADDRESS): Delete.
11882         * config/i386/i386-protos.h (print_operand): Delete prototype.
11883         (print_operand_address): Delete prototype.
11884
11885 2010-06-03  Richard Guenther  <rguenther@suse.de>
11886
11887         PR tree-optimization/44403
11888         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
11889         Preserve pointer qualifiers.
11890         (vect_create_data_ref_ptr): Likewise.
11891
11892 2010-06-03  H.J. Lu  <hongjiu.lu@intel.com>
11893
11894         PR c++/44294
11895         * defaults.h (MAX_FIXED_MODE_SIZE): New.
11896
11897         * stor-layout.c (MAX_FIXED_MODE_SIZE): Removed.
11898
11899 2010-06-03  Jakub Jelinek  <jakub@redhat.com>
11900
11901         PR debug/44375
11902         * tree-cfg.c (gimple_can_merge_blocks_p): For -O0
11903         return false if merging the bbs would lead to goto_locus
11904         location being lost from the IL.
11905
11906 2010-06-03  Jan Hubicka  <jh@suse.cz>
11907             Jakub Jelinek  <jakub@redhat.com>
11908
11909         * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
11910         set->regs[i] is NULL or has just one entry.
11911
11912 2010-06-03  Jan Hubicka  <jh@suse.cz>
11913
11914         * lto-cgraph.c (lto_varpool_encoder_size): Remove.
11915         * lto-streamer.h (lto_varpool_encoder_size): New inline function.
11916
11917 2010-06-03  Paul Brook  <paul@codesourcery.com>
11918
11919         * config/arm/arm.c (FL_TUNE): Define.
11920         (arm_default_cpu, arm_cpu_select): Remove.
11921         (all_cores): Populate core field.
11922         (arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
11923         (arm_find_cpu): New function.
11924         (arm_handle_option): Lookup cpu/architecture names.
11925         (arm_override_options): Cleanup mcpu/march/mtune handling.
11926         (arm_file_start): Ditto.
11927
11928 2010-06-03  Alan Modra  <amodra@gmail.com>
11929
11930         PR target/44169
11931         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
11932         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
11933         rtx to gen_load_toc_v4_PIC_1b.  Tidy.
11934         (rs6000_emit_load_toc_table): Likewise.
11935
11936 2010-06-02  Jan Hubicka  <jh@suse.cz>
11937
11938         * passes.c (init_optimization_passes): Put ipa reference
11939         after ipa pure-const.
11940
11941 2010-06-02  Jan Hubicka  <jh@suse.cz>
11942
11943         * ipa-reference.c (ipa_reference_local_vars_info_d): Remove
11944         calls_read_all and calls_write_all.
11945         (get_reference_optimization_summary): Fix formatting.
11946         (is_proper_for_analysis): Check that decl is not readonly.
11947         (propagate_bits): Check CONST/PURE/noreturn flags.
11948         (ipa_init): Move all_module_statics to optimization_summary_obstack.
11949         (analyze_function): Ignore indirect edges.
11950         (copy_global_bitmap): For all module statics, do nothing.
11951         (generate_summary): Do not print calls_read_all/calls_write_all.
11952         (read_write_all_from_decl): Take node as argument; check
11953         cgraph_node_cannot_return.
11954         (propagate): Reorganize read_all/write_all computation;
11955         check indirect edges; check ecf flags; use all_module_statics
11956         in the results; do not free all_module_statics.
11957         (stream_out_bitmap): Handle all_module_statics.
11958         (ipa_reference_write_optimization_summary): Likewise; use
11959         varpool/cgraph encoders to get boundaries.
11960         (ipa_reference_read_optimization_summary): Read in all_module_statics;
11961         use it when possible.
11962
11963 2010-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
11964
11965         PR target/44218
11966         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
11967         -mswdiv option.  Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.
11968
11969         * doc/extend.texi (powerpc builtins): Document vec_recip,
11970         vec_rsqrt, vec_rsqrte altivec/vsx builtins.
11971
11972         * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
11973         (rs6000_emit_swrsqrt): Ditto.
11974         (rs6000_emit_swdivsf): Delete.
11975         (rs6000_emit_swdivdf): Ditto.
11976         (rs6000_emit_swrsqrtsf): Ditto.
11977
11978         * config/rs6000/rs6000.c (rs6000_recip_bits): New global to
11979         describe the reciprocal estimate support for each type.
11980         (recip_options): Map -mrecip=<opt> into option bits.
11981         (gen_2arg_fn_t): New typedef for binary rtx gen function.
11982         (rs6000_debug_reg_global): If -mdebug=reg, print the state of the
11983         reciprocal estimate instructions.
11984         (rs6000_init_hard_regno_mode_ok): Key ws constraint off of the
11985         debug -mvsx-scalar-memory switch instead of -mvsx-scalar-double.
11986         Set up rs6000_recip_bits based on the -mrecip* options.  Print the
11987         cost information if -mdebug=cost or -mdebug=reg.
11988         (rs6000_override_options): Set -mrecip-precision for power6, and
11989         power7 machines.  If -mvsx or -mdfp, enable various options that
11990         came in previous instruction set ISAs, unless the option was
11991         explicitly disabled by the command line option.  Parse
11992         -mrecip=<opt> options.
11993         (rs6000_builtin_vectorized_function): Add support for vectorizing
11994         the reciprocal estimate builtins and expansions.
11995         (rs6000_handle_option): Add -mrecip, -mrecip=<opt> support.
11996         (bdesc_2arg): Add reciprocal estimate builtins.
11997         (bdesc_1arg): Add reciprocal square root estimate builtins.
11998         (rs6000_expand_builtin): Rewrite to use a switch statement,
11999         instead of multiple if/then/elses.  Add reciprocal estimate builtins.
12000         (rs6000_init_builtins): Create declarations for reciprocal
12001         estimate builtins.
12002         (rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
12003         sized, prefer traditional floating point registers, if integer
12004         vector types, prefer altivec registers.  Don't actually look at
12005         the memory address any more.
12006         (rs6000_builtin_reciprocal): Add new builtin reciprocal estimate
12007         builtins.
12008         (rs6000_load_constant_and_splat): New helper function to load up
12009         the constant for reciprocal estimate instructions.
12010         (rs6000_emit_madd): New helper function for generating
12011         multiply/add type instructions, based on the current switches.
12012         (rs6000_emit_msub): Ditto.
12013         (rs6000_emit_mnsub): Ditto.
12014         (rs6000_emit_swdiv_high_precision): Replace rs6000_emit_swdivsf to
12015         replace a divide with a reciprocal estimate and fixup, adding
12016         support for machines with high precision and vectors.
12017         (rs6000_emit_swdiv_low_precision): Rewrite rs6000_emit_swdivdf for
12018         low precision machines.
12019         (rs6000_emit_swdiv): New common function to be called to replace a
12020         division with reciprocal estimate and fixup.
12021         (rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf.  Add support
12022         for double and vector types.  Add support for high precision machines.
12023
12024         * config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
12025         the reciprocal estimate instructions can be generated.
12026         (TARGET_FRE): Ditto.
12027         (TARGET_FRSQRTES): Ditto.
12028         (TARGET_FRSQRTE): Ditto.
12029         (RS6000_RECIP_*): New macros for reciprocal estimate support.
12030
12031         * config/rs6000/vector.md (rsqrte<mode>2): New insn for reciprocal
12032         square root estimate on vectors.
12033         (re<mode>2): New insn for reciprocal division estimate on vectors.
12034
12035         * config/rs6000/rs6000-buitlins.def (ALTIVEC_BUILTIN_VRSQRTFP):
12036         New builtin.
12037         (ALTIVEC_BUILTIN_VRECIPFP): Ditto.
12038         (ALTIVEC_BUITLIN_VEC_RE): Ditto.
12039         (ALTIVEC_BUILTIN_VEC_RSQRT): Ditto.
12040         (VSX_BUILTIN_RSQRT_V4SF): Ditto.
12041         (VSX_BUITLIN_RSQRT_V2DF): Ditto.
12042         (RS6000_BUILTIN_RSQRT): Ditto.
12043         (ALTIVEC_BUILTIN_VEC_RSQRTE): Denote that the builtin is a
12044         floating point builtin.
12045
12046         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
12047         macros __RECIP__, __RECIPF__, __RSQRTE__, __RSQRTEF__,
12048         __RECIP_PRECISION__ based on the command line switches.
12049         (altivec_overloaded_builtins): Add reciprocal estimate builtins.
12050
12051         * config/rs6000/rs6000.opt (-mrecip): Document add support for
12052         replacing division instructions with reciprocal estimate and fixup.
12053         (-mrecip=<opt>): New option.
12054         (-mrecip-precision): Ditto.
12055
12056         * config/rs6000/vsx.md (UNSPEC_VSX_RSQRTE): Delete.
12057         (vsx_rsqrte<mode>2): Use UNSPEC_RSQRT not UNSPEC_VSX_RSQRTE.
12058         (vsx_copysignsf3): If -mvsx, use double precision cpsign on single
12059         precision scalar.
12060
12061         * config/rs6000/altivec.md (UNSPEC_RSQRTEFP): Delete.
12062         (UNSPEC_VREFP): Ditto.
12063         (altivec_vnmsubfp*): Make altivec nmsub mirror the scalar and VSX
12064         conterparts with regard to support of -mno-fused-madd and -ffast-math.
12065         (altivec_vrsqrtefp): Use common UNSPEC to allow scalar/vector
12066         reciprocal estimate instructions to be generated.
12067         (altivec_vrefp): Ditto.
12068
12069         * config/rs6000/rs6000.md (RECIPF): New iterator for reciprocal
12070         estimate support.
12071         (rreg): New mode attribute for reciprocal estimate support.
12072         (recip<mode>3): New insn for division using reciprocal estimate
12073         and fixup builtins.
12074         (divide define_split): New define_split to convert floating point
12075         division to use reciprocal estimate if the user used the
12076         appropriate options and the split is run when we can add new
12077         pseudo registers for the fixup.
12078         (rsqrt<mode>2): New insn for reciprocal square root support.
12079         (recipsf3): Move into recip<mode>3.
12080         (recipdf3): Ditto.
12081         (fres): Use TARGET_FRES.
12082         (rsqrtsf2): Move into rsqrt<mode>2.
12083         (rsqrtsf_internal1): Use TARGET_FRSQRTSES.
12084         (copysignsf3): Add support for VSX.
12085         (fred): Use TARGET_FRE.
12086         (fred_fpr): Ditto.
12087         (rsqrtdf_internal1): New function for frsqrte instruciton.
12088
12089         * config/rs6000/altivec.h (vec_recipdiv): Define new vector builtin.
12090         (vec_rsqrt): Ditto.
12091
12092 2010-06-03  Richard Guenther  <rguenther@suse.de>
12093
12094         PR middle-end/44291
12095         * optabs.c (init_one_libfunc): Use IDENTIFIER_HASH_VALUE.
12096         (set_user_assembler_libfunc): Likewise.
12097
12098 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
12099
12100         * mkconfig.sh: Include insn-flags.h and insn-constants.h before
12101         defaults.h.
12102         * except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS
12103         to defaults.h
12104         * expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO,
12105         DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING,
12106         FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE,
12107         STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN,
12108         STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP,
12109         STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT,
12110         STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE,
12111         STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h.
12112         * defaults.h: Updated for above mentioned changes.
12113
12114 2010-06-02  Kai Tietz  <kai.tietz@onevision.com>
12115
12116         * c-common.c: Remove header include of tm_p.h.
12117         * Makefile.in (c-common.o): Remove TM_P_H dependency.
12118
12119 2010-06-02  Jakub Jelinek  <jakub@redhat.com>
12120
12121         * tree.h (struct tree_decl_map): New type.
12122         (tree_decl_map_eq, tree_decl_map_marked_p): Define.
12123         (tree_decl_map_hash): New prototype.
12124         (debug_expr_for_decl, value_expr_for_decl): Change into
12125         tree_decl_map hashtab from tree_map.
12126         (init_ttree): Adjust initialization.
12127         (tree_decl_map_hash): New function.
12128         (decl_debug_expr_lookup, decl_debug_expr_insert,
12129         decl_value_expr_lookup, decl_value_expr_insert): Adjust.
12130
12131 2010-06-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12132
12133         * configure.ac (gcc_cv_ld_sol2_emulation): Test for GNU ld *_sol2
12134         linker emulations.
12135         * configure: Regenerate.
12136         * config.in: Regenerate.
12137
12138         * config/i386/sol2-10.h [TARGET_GNU_LD] (I386_EMULATION): Define.
12139         (X86_64_EMULATION): Define.
12140         (TARGET_LD_EMULATION): Use them.
12141
12142         * config/sparc/sol2-gld-bi.h (SPARC32_EMULATION): Define.
12143         (SPARC64_EMULATION): Define.
12144         (LINK_ARCH_SPEC): Use them.
12145
12146 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
12147
12148         * graphite-clast-to-gimple.c (gcc_type_for_interval): Use
12149         smallest_mode_for_size for computing the precision types of new
12150         graphite IVs.  Do not call lang_hooks.types.type_for_size.
12151
12152 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
12153
12154         * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG
12155         information.
12156         (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information.
12157
12158 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
12159
12160         PR middle-end/44363
12161         * tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable,
12162         return false instead.
12163
12164 2010-06-02  Jan Hubicka  <jh@suse.cz>
12165
12166         PR middle-end/44295
12167         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Do not
12168         create new cgraph node to check callee.
12169
12170 2010-06-02  Richard Guenther  <rguenther@suse.de>
12171
12172         * lto-streamer-in.c (input_gimple_stmt): Fix typo.
12173
12174 2010-06-02  Richard Guenther  <rguenther@suse.de>
12175
12176         * lto-wrapper.c (lto_wrapper_exit): Rename to ...
12177         (lto_wrapper_cleanup): ... this.  Do not exit.
12178         (fatal): Adjust.  Exit here.
12179         (fatal_perror): Likewise.
12180         (fatal_signal): New function.
12181         (main): Set up signal handlers to cleanup temporary files.
12182         * Makefile.in (lto-wrapper.o): Adjust dependencies.
12183
12184 2010-06-02  Richard Guenther  <rguenther@suse.de>
12185
12186         PR tree-optimization/44377
12187         * tree-ssa-structalias.c (find_func_aliases): Fix typo.
12188
12189 2010-06-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12190
12191         * config/s390/2097.md (z10_fhex): Remove insn reservation.
12192         * config/s390/s390.md (UNSPEC_COPYSIGN): Remove unused constant.
12193         (*mov<mode>_64 TD_TF, *mov<mode>_31 TD_TF, *mov<mode>_64dfp DD_DF,
12194         *mov<mode>_64 DD_DF, *mov<mode>_31, mov<mode>): Remove load zero
12195         instruction.
12196         * config/s390/s390.c: Don't accept fp zeros as valid constants anymore.
12197
12198 2010-06-02  Jan Hubicka  <jh@suse.cz>
12199
12200         * bitmap.c (bitmap_descriptor): Add search_iter.
12201         (bitmap_find_bit): Increment it.
12202         (print_statistics): Print it.
12203
12204 2010-06-02  Nathan Froyd  <froydnj@codesourcery.com>
12205
12206         * tree-vect-slp.c (vect_create_mask_and_perm): Use gimple_build_call
12207         instead of gimple_build_call_vec.  Delete unnecessary local variable.
12208
12209 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
12210
12211         * gimplify.c (gimplify_body): Revert "Do not initialize RTL profiling"
12212         change from yesterday.
12213
12214 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
12215
12216         * c-ada-spec.c: Clean up redundant includes.
12217
12218 2010-06-01  Steven Bosscher  <steven@gcc.gnu.org>
12219
12220         * gimplify.c: Do not include except.h and optabs.h.
12221         (gimplify_body): Do not initialize RTL profiling.
12222         * gimple-low.c: Do not include rtl.h, diagnostic.h, langhooks.h,
12223         langhooks-def.h, timevar.h, except.h, hashtab.h, and expr.h.
12224         * gimple-fold.c: Do not include rtl.h, tm_p.h, ggc.h, basic-block.h,
12225         output.h, expr.h, diagnostic.h, timevar.h, value-prof.h, and
12226         langhooks.h.
12227
12228         * tree-pretty-print.h: Include pretty-print.h.
12229         * gimple-pretty-print.h: Include pretty-print.h.
12230
12231         * tree-pretty-print.c: Do not include diagnostic.h.
12232         * tree-vrp.c: Likewise.
12233         * tree-tailcall.c: Likewise
12234         * tree-scalar-evolution.c: Likewise
12235         * tree-ssa-dse.c: Likewise
12236         * tree-chrec.c: Likewise
12237         * tree-ssa-sccvn.c: Likewise
12238         * tree-ssa-copyrename.c: Likewise
12239         * tree-nomudflap.c: Likewise
12240         * tree-call-cdce.c: Likewise
12241         * tree-stdarg.c: Likewise
12242         * tree-ssa-math-opts.c: Likewise
12243         * tree-nrv.c: Likewise
12244         * tree-ssa-sink.c: Likewise
12245         * tree-browser.c: Likewise
12246         * tree-ssa-loop-ivcanon.c: Likewise
12247         * tree-ssa-loop.c: Likewise
12248         * tree-parloops.c: Likewise
12249         * tree-ssa-address.c: Likewise
12250         * tree-ssa-ifcombine.c: Likewise
12251         * tree-if-conv.c: Likewise
12252         * tree-data-ref.c: Likewise
12253         * tree-affine.c: Likewise
12254         * tree-ssa-phiopt.c: Likewise
12255         * tree-ssa-coalesce.c: Likewise
12256         * tree-ssa-pre.c: Likewise
12257         * tree-ssa-live.c: Likewise
12258         * tree-predcom.c: Likewise
12259         * tree-ssa-forwprop.c: Likewise
12260         * tree-ssa-dce.c: Likewise
12261         * tree-ssa-ter.c: Likewise
12262         * tree-ssa-loop-prefetch.c: Likewise
12263         * tree-optimize.c: Likewise
12264         * tree-ssa-phiprop.c: Likewise
12265         * tree-object-size.c: Likewise
12266         * tree-outof-ssa.c: Likewise
12267         * tree-ssa-structalias.c: Likewise
12268         * tree-switch-conversion.c: Likewise
12269         * tree-ssa-reassoc.c: Likewise
12270         * tree-ssa-operands.c: Likewise
12271         * tree-vectorizer.c: Likewise
12272         * tree-vect-data-refs.c: Likewise
12273         * tree-vect-generic.c: Likewise
12274         * tree-vect-stmts.c: Likewise
12275         * tree-vect-patterns.c: Likewise
12276         * tree-vect-slp.c: Likewise
12277         * tree-vect-loop.c: Likewise
12278         * tree-ssa-loop-ivopts.c: Likewise
12279         * tree-ssa-loop-im.c: Likewise
12280         * tree-ssa-loop-niter.c: Likewise
12281         * tree-ssa-loop-unswitch.c: Likewise
12282         * tree-ssa-loop-manip.c: Likewise
12283         * tree-ssa-loop-ch.c: Likewise
12284         * tree-dump.c: Likewise
12285         * tree-complex.c: Likewise
12286
12287         * tree-into-ssa.c: Do not include diagnostic.h and expr.h.
12288         * tree-ssa-uninit.c: Likewise
12289         * tree-ssa-threadupdate.c: Likewise
12290         * tree-ssa-uncprop.c: Likewise
12291         * tree-ssa-ccp.c: Likewise
12292         * tree-ssa-dom.c: Likewise
12293         * tree-ssa-propagate.c: Likewise
12294         * tree-ssa-alias.c: Likewise
12295         * tree-dfa.c: Likewise
12296         * tree-cfgcleanup.c: Likewise
12297         * tree-sra.c: Likewise
12298         * tree-ssa-copy.c: Likewise
12299         * tree-ssa.c: Likewise
12300         * tree-profile.c: Likewise
12301         * tree-cfg.c: Likewise
12302         * tree-ssa-threadedge.c: Likewise
12303         * tree-vect-loop-manip.c: Likewise
12304
12305         * tree-inline.c: Do not include diagnostic.h and expr.h.
12306         Include rtl.h.
12307         (copy_decl_for_dup_finish): Do not use NULL_RTX.
12308
12309         * tree-loop-linear.c: Do not include diagnostic.h, expr.h and optabs.h.
12310         * tree-loop-distribution.c: Likewise.
12311
12312 2010-06-01  Jan Hubicka  <jh@suse.cz>
12313
12314         * ipa-pure-const.c (local_pure_const): Do NORETURN discovery.
12315
12316 2010-06-01  Jan Hubicka  <jh@suse.cz>
12317
12318         * tree-cfgcleanup.c (fixup_noreturn_call): Break out from ...;
12319         remove return value.
12320         (split_bbs_on_noreturn_calls) .... here.
12321         * tree-optimize.c (execute_fixup_cfg): Fixup noreturn calls too.
12322         * tree-flow.h (fixup_noreturn_call): New.
12323
12324 2010-06-01  Jan Hubicka  <jh@suse.cz>
12325
12326         * emit-rtl.c (remove_insn): Fix thinko in prevoius patch.
12327
12328 2010-06-01  Nathan Froyd  <froydnj@codesourcery.com>
12329
12330         * tree.h (build_nt_call_list): Delete.
12331         * tree.c (build_nt_call_list): Delete.
12332
12333 2010-06-01  Jan Hubicka  <jh@suse.cz>
12334
12335         * fwprop.c: Make emit-rtl.h include last.
12336         * rtlanal.c: Include emit-rtl.h.
12337         * genautomata.c: Output emit-rtl include into insn-automata.c
12338         * df-scan.c: Include emit-rtl.h.
12339         * haifa-sched.c: Indlude emit-rtl.h.
12340         * mode-switching.c: Indlude emit-rtl.h.
12341         * graph.c: Indlude emit-rtl.h.
12342         * sel-sched.c: Include emit-rtl.h.
12343         * sel-sched-ir.c: Include emit-rtl.h.
12344         * ira-build.c: Include emit-rtl.h.
12345         * emit-rtl.c (first_insn, last_insn): Remove defines.
12346         (get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
12347         Move to emit-rtl.h.
12348         (set_new_first_and_last_insn, get_last_insn_anywhere,
12349         get_first_nonnote_insn, get_last_nonnote_insn, try_split,
12350         make_call_insn_raw, add_insn_after, add_insn_before, remove_insn,
12351         delete_insns_since, reorder_insns_nobb, emit_insn_after_1,
12352         emit_debug_insn_before, emit_insn, start_sequence, push_to_sequence,
12353         push_to_sequence2, push_topmost_sequence, end_sequence, copy_insn):
12354         Use accessor functions.
12355         * emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
12356          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
12357         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
12358         mem_expr_equal_p): Move here from rtl.h.
12359         (get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
12360         Move here from emit-rtl.c; make inline.
12361         * cfglayout.h: Include emit-rtl.h.
12362         * rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
12363          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
12364         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
12365         mem_expr_equal_p, get_insns, set_first-insn,
12366         get_last_insn, set_last_insn, get_max_uid): Move to emit-rtl.h.
12367         * reg-stack.c: Include emit-rtl.h.
12368         * dce.c: Likewise.
12369
12370 2010-06-01  Jan Hubicka  <jh@suse.cz>
12371
12372         * cgraph.h (tree_function_versioning): Update prototype.
12373         (cgraph_function_versioning): Update prototype.
12374         * cgraphunit.c (cgraph_copy_node_for_versioning): Accept bbs_to_copy
12375         bitmap.
12376         (cgraph_function_versioning): Accept new_entry_block and bbs_to_copy.
12377         (cgraph_materialize_clone, save_inline_function_body): Update use of
12378         tree_function_versioning.
12379         * tree-inline.c (copy_bb): Look for previous copied block to link
12380         after; fix debug output.
12381         (copy_cfg_body): Accept new_entry_block and bbs_to_copy.
12382         (copy_body): Likewise.
12383         (expand_call_inline): Update use of copy_body.
12384         (tree_function_versioning): Update use of copy body; accept
12385         blocks_to_copy and new_entry.
12386
12387 2010-06-01  Jan Hubicka  <jh@suse.cz>
12388
12389         * gegenrtl.c: Remove unnecesary prototypes.
12390         (gendecl): Remove.
12391         (gendef): Produce static inline.
12392         (gencode): Remove.
12393         (main): Do not decode parameters; generate header only.
12394         * Makefile.in (genrtl.c): Remove.
12395
12396 2010-06-01  Jan Hubicka  <jh@suse.cz>
12397
12398         * tree-switch-conversion.c (build_one_array): Make it readonly.
12399
12400 2010-06-01  Richard Guenther  <rguenther@suse.de>
12401
12402         * optabs.c (init_optabs): Guard all accesses to reinit.
12403         * ipa-pure-const.c (propagate): Fix another typo.
12404         * opts.c (common_handle_option): Split assignment to bool.
12405         * c-opts.c (c_common_handle_option): Likewise.
12406
12407 2010-06-01  Arnaud Charlet  <charlet@adacore.com>
12408             Matthew Gingell  <gingell@adacore.com>
12409
12410         * doc/invoke.texi: Mention -fdump-ada-spec.
12411         * tree-dump.c (dump_files): Add ada-spec.
12412         (FIRST_AUTO_NUMBERED_DUMP): Bump to 8.
12413         * tree-pass.h (tree_dump_index): Add TDI_ada.
12414         * gcc.c: Add support for -C without -E and for -fdump-ada-spec.
12415         (cpp_unique_options): Do not reject -C or -CC when -E isn't present.
12416         (default_compilers) <@c-header>: Allow -fdump-ada-spec on header files.
12417         * c-decl.c: Include c-ada-spec.h.
12418         (collect_source_ref_cb, collect_all_refs, for_each_global_decl): New
12419         functions.
12420         (c_write_global_declarations): Add handling of -fdump-ada-spec.
12421         * c-lex.c (c_lex_with_flags): Add handling of CPP_COMMENT.
12422         * Makefile.in (C_AND_OBJC_OBJS): Add c-ada-spec.o.
12423         * c-ada-spec.h, c-ada-spec.c: New files.
12424
12425 2010-06-01  Richard Guenther  <rguenther@suse.de>
12426
12427         PR lto/43853
12428         * ipa-pure-const.c (get_function_state): Hand back varying state
12429         if we do not have one.
12430         (has_function_state): New function.
12431         (duplicate_node_data): Adjust.
12432         (remove_node_data): Likewise.
12433         (pure_const_write_summary): Likewise.
12434         (propagate): Likewise.  Fix typo.
12435
12436 2010-06-01  Jan Hubicka  <jh@suse.cz>
12437
12438         * tree-cfg.c (verify_stmt): Do not skip could_throw test.
12439         * passes.c (execute_function_todo): Do not make implicit verify_ssa.
12440         (execute_all_ipa_transforms): Do not play with the states.
12441
12442 2010-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
12443
12444         * config/arm/t-linux-androideabi: New.
12445         * config.gcc (arm*-*-linux-androideabi): Include multilib config.
12446
12447 2010-06-01  Jan Hubicka  <jh@suse.cz>
12448
12449         * tree-inline.c (estimate_num_insns): For stdarg functions look
12450         into call statement to count cost of argument passing.
12451
12452 2010-06-01  Kai Tietz  <kai.tietz@onevision.com>
12453
12454         * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
12455         argument for fprintf.
12456         (ix86_output_addr_diff_elt): Likewise.
12457         (x86_function_profiler): Likewise.
12458         * config/cygming.h (LOCAL_LABEL_PREFIX): Fix for x64 no-underscore.
12459         (LPREFIX): Likewise.
12460         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
12461
12462 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
12463
12464         PR target/44338
12465         * config/i386/sse.md (fma4i_fmadd<mode>4256, fma4i_fmsub<mode>4256,
12466         fma4i_fnmadd<mode>4256, fma4i_fnmsub<mode>4256, fma4i_fmadd<mode>4,
12467         fma4i_fmsub<mode>4, fma4i_fnmadd<mode>4, fma4i_fnmsub<mode>4,
12468         fma4i_vmfmadd<mode>4, fma4i_vmfmsub<mode>4, fma4i_vmfnmadd<mode>4,
12469         fma4i_vmfnmsub<mode>4, fma4i_fmaddsubv8sf4, fma4i_fmaddsubv4df4,
12470         fma4i_fmaddsubv4sf4, fma4i_fmaddsubv2df4, fma4i_fmsubaddv8sf4,
12471         fma4i_fmsubaddv4df4, fma4i_fmsubaddv4sf4, fma4i_fmsubaddv2df4):
12472         Guard only with TARGET_FMA4 instead of TARGET_FMA4 &&
12473         TARGET_FUSED_MADD.
12474
12475 2010-05-31  Jan Hubicka  <jh@suse.cz>
12476
12477         * tree.h (tree_range_check_failed): Declare noreturn.
12478
12479 2010-05-31  Jan Hubicka  <jh@suse.cz>
12480
12481         * gimple.c (gimple_call_builtin_p): New function.
12482         * gimple.h (gimple_call_builtin_p): Declare.
12483         * tree-cfg.c (make_edges): Produce edge from BUILT_IN_RETURN
12484         to exit.
12485         (execute_warn_function_return): BUILT_IN_RETURN is return.
12486         (split_critical_edges): Return edges are not critical.
12487         (is_ctrl_altering_stmt): Builtin_in_return is altering.
12488         (gimple_verify_flow_info): Handle built_in_return.
12489         (execute_warn_function_return): Handle built_in_return.
12490         * ipa-pure-const.c (check_call): Ignore builtin_return.
12491
12492 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
12493
12494         PR middle-end/44337
12495         * expr.c (expand_assignment): Don't store anything for out-of-bounds
12496         array accesses with non-MEM.
12497
12498         PR tree-optimization/44182
12499         * tree-inline.c (copy_edges_for_bb): Don't split bb if a stmt that
12500         newly needs to end a bb is followed by debug stmts, instead return
12501         true from the function at the end.
12502         (maybe_move_debug_stmts_to_successors): New function.
12503         (copy_cfg_body): Call it if copy_edges_for_bb returned true.
12504
12505 2010-05-31  Kai Tietz  <kai.tietz@onevision.com>
12506
12507         PR target/44161
12508         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle flag_pic.
12509
12510 2010-05-31  Eric Botcazou  <ebotcazou@adacore.com>
12511
12512         * cgraphunit.c (cgraph_decide_is_function_needed): Really return false
12513         for nested functions in non-optimized compilation.
12514
12515 2010-05-31  Richard Guenther  <rguenther@suse.de>
12516
12517         * tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN.
12518
12519 2010-05-30  Jan Hubicka  <jh@suse.cz>
12520
12521         * predict.c (maybe_hot_edge_p): Calls to functions called once is cold.
12522
12523 2010-05-30  Richard Guenther  <rguenther@suse.de>
12524
12525         PR lto/42975
12526         * tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
12527         (execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
12528         no longer needed.
12529
12530 2010-05-30  Iain Sandoe  <iains@gcc.gnu.org>
12531
12532         * config/darwin.c (output_objc_section_asm_op): Add comment.
12533         (name_needs_quotes): Add '_' to list of valid comment chars.
12534         (machopic_output_function_base_name): Remove unneeded quotes.
12535         (darwin_encode_section_info): Adjust asm whitespace.
12536         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Adjust asm tabs.
12537         (ASM_OUTPUT_LOCAL): Ditto.
12538         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
12539         * config/darwin.h (GLOBAL_ASM_OP): Ditto.
12540         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.
12541
12542 2010-05-30  Eric Botcazou  <ebotcazou@adacore.com>
12543
12544         * config/rs6000/rs6000.c (rs6000_output_function_entry): Use
12545         RS6000_OUTPUT_BASENAME unconditionally.
12546         (rs6000_output_function_epilogue): Likewise.
12547
12548 2010-05-30  Jan Hubicka  <jh@suse.cz>
12549
12550         * toplev.c (wrapup_global_declaration_2): Avoid creation of new varpool
12551         nodes.
12552
12553 2010-05-30  Richard Guenther  <rguenther@suse.de>
12554
12555         * tree-cfg.c (verify_gimple_assign_single): Implement
12556         verification for COND_EXPR rhs.
12557
12558 2010-05-30  Jan Hubicka  <jh@suse.cz>
12559
12560         * cgraph.h (cgraph_dump_file): Declare.
12561         * cgraphunit.c (cgraph_dump_file): Export.
12562         * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less verbose.
12563
12564 2010-05-30  Jan Hubicka  <jh@suse.cz>
12565
12566         * dwarf2out.c (reference_to_unused,
12567         premark_types_used_by_global_vars_helper): Avoid creation of new
12568         varpool nodes.
12569
12570 2010-05-30  Jan Hubicka  <jh@suse.cz>
12571
12572         * cgraph.h (cgraph_node_cannot_return,
12573         cgraph_edge_cannot_lead_to_return): New functions.
12574         * cgraph.c (cgraph_node_cannot_return,
12575         cgraph_edge_cannot_lead_to_return): Use them.
12576         * ipa-pure-const.c (pure_const_names): New static var.
12577         (check_call): Handle calls not leading to return.
12578         (pure_const_read_summary): Dump info read.
12579         (propagate): Dump info about propagation process; ignore side effects
12580         of functions not leading to exit; fix handling of pure functions.
12581
12582 2010-05-30  Jan Hubicka  <jh@suse.cz>
12583
12584         * config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
12585         for tail call epilogues.
12586
12587 2010-05-30  Jan Hubicka  <jh@suse.cz>
12588
12589         * passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
12590         ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initialize
12591         dump files.
12592
12593 2010-05-29  Jan Hubicka  <jh@suse.cz>
12594
12595         * ipa.c (cgraph_remove_unreachable_node): Walk references of correct
12596         node; remove references in node we no longer keep in cgrpah but need
12597         body of.
12598
12599 2010-05-29  Jan Hubicka  <jh@suse.cz>
12600
12601         * cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.
12602
12603 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12604
12605         PR target/44165
12606         * config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.
12607
12608 2010-05-29  Jan Hubicka  <jh@suse.cz>
12609
12610         * tree-vrp.c (debug_value_range, debug_all_value_ranges,
12611         debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
12612         * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
12613         debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
12614         debug_names_replaced_by, debug_update_ssa): Likewise.
12615         * sbitmap.c (debug_sbitmap): Likewise.
12616         * genrecog.c (debug_decision, debug_decision_list): Likewise.
12617         * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
12618         debug_tree_chain): Likewise.
12619         * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
12620         * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
12621         * optabs.c (debug_optab_libfuncs): Likewise.
12622         (verify_loop_closed_ssa): Likewise.
12623         * value-prof.c (verify_histograms): Likewise.
12624         * reload.c (debug_reload_to_stream, debug_reload): Likewise.
12625         * bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
12626         * cfghooks.c (verify_flow_info): Likewise.
12627         * fold-const.c (debug_fold_checksum): Likewise.
12628         * omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
12629         * cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
12630         Likewise.
12631         * omega.c (debug_omega_problem): Likewise.
12632         * cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
12633         * tree-ssa-ccp.c (debug_lattice_value): Likewise.
12634         * dominance.c (verify_dominators, debug_dominance_info,
12635         debug_dominance_tree): Likewise.
12636         * df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,
12637         * df_regno_debug, df_ref_debug,
12638         debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref,
12639         debug_df_defno, debug_df_useno, debug_df_chain): Likewise.
12640         * tree-ssa-dom.c (debug_dominator_optimization_stats): Likewise.
12641         * sel-sched.c (debug_state): Likewise.
12642         * tree-ssa-alias.c (debug_alias_info, debug_points_to_info_for):
12643         Likewise.
12644         * cfganal.c (print_edge_list, verify_edge_list): Likewise.
12645         * dwarf2out.c (debug_dwarf_die, debug_dwarf): Likewise.
12646         * tree-eh.c (verify_eh_edges, verify_eh_dispatch_edge): Likewise.
12647         * gimple-pretty-print.c (debug_gimple_stmt, debug_gimple_seq):
12648         Likewise.
12649         * c-pretty-print.c (debug_c_tree): Likewise.
12650         * sel-sched-dump.c (debug_insn_rtx, debug_vinsn, debug_expr, debug_insn
12651         debug_av_set, debug_lv_set, debug_ilist, debug_blist,
12652         debug_insn_vector, debug_hard_reg_set, debug_mem_addr_value): Likewise.
12653         * ebitmap.c (debug_ebitmap): Likewise.
12654         * function.c (debug_find_var_in_block_tree): Likewise.
12655         * print-rtl.c (debug_rtx): Likewise.
12656         (debug_rtx_count): Likewise.
12657         (debug_rtx_list, debug_rtx_range, debug_rtx_find): Likewise.
12658         * stor-layout.c (debug_rli): Likewise.
12659         * ipa.c (debug_cgraph_node_set, debug_varpool_node_set): Likewise.
12660         * tree-data-ref.c (debug_data_references,
12661         debug_data_dependence_relations, debug_data_reference,
12662         debug_data_dependence_relation, debug_rdg_vertex,
12663         debug_rdg_component, debug_rdg): Likewise.
12664         * tree-affine.c (debug_aff): Likewise.
12665         * tree-dfa.c (debug_referenced_vars, debug_variable, debug_dfa_stats):
12666         Likewise.
12667         * except.c (debug_eh_tree, verify_eh_tree): Likewise.
12668         * emit-rtl.c (verify_rtl_sharing): Likewise.
12669         * tree-ssa-pre.c (debug_pre_expr, debug_bitmap_set,
12670         debug_value_expressions): Likewise.
12671         * tree-ssa-live.c (debug_scope_block, debug_scope_blocks): Likewise.
12672         * sese.c (debug_rename_map, debug_ivtype_map): Likewise.
12673         * print-tree.c (debug_tree, debug_vec_tree): Likewise.
12674         * cfglayout.c (verify_insn_chain): Likewise.
12675         * graphite-clast-to-gimple.c (debug_clast_name_indexes,
12676         debug_clast_stmt, debug_generated_program): Likewise.
12677         * ggc-page.c (debug_print_page_list): Likewise.
12678         * tree-ssa-ter.c (debug_ter): Likewise.
12679         * graphite-dependences.c (debug_pddr): Likewise.
12680         * sched-deps.c (debug_ds): Likewise.
12681         * tree-ssa.c (verify_ssa): Likewise.
12682         * graphite-poly.c (debug_scattering_function, debug_iteration_domain,
12683         debug_scattering_functions, debug_iteration_domains, debug_pdr,
12684         debug_pdrs, debug_pbb_domain, debug_pbb, debug_scop_context,
12685         debug_scop, debug_cloog, debug_scop_params, debug_lst): Likewise.
12686         * tree-inline.c (debug_find_tree): Likewise.
12687         * graphite-ppl.c (debug_ppl_linear_expr, debug_ppl_polyhedron_matrix,
12688         debug_ppl_powerset_matrix): Likewise.
12689         * var-tracking.c (debug_dv): Likewise.
12690         * system.h (DEBUG_FUNCTION, DEBUG_VARIABLE): Define.
12691         * cfgloop.c (verify_loop_structure): Likewise.
12692         * plugin.c (dump_active_plugins, debug_active_plugins): Likewise.
12693         * c-common.c (verify_sequence_points): Likewise.
12694         * sched-rgn.c (debug_regions, debug_region, debug_candidate,
12695         debug_candidates, debug_rgn_dependencies): Likewise.
12696         * tree-ssa-structalias.c (debug_constraint, debug_constraints,
12697         * debug_constraint_graph, debug_solution_for_var,
12698         debug_sa_points_to_info): Likewise.
12699         * sched-vis.c (debug_insn_slim, debug_bb_slim, debug_bb_n_slim):
12700         Likewie.
12701         * tree-cfg.c (debug_cfg_stats, verify_stmts, debug_function,
12702         debug_loops, debug_loop, debug_loop_num): Likewise.
12703         * passes.c (debug_pass): Likewise.
12704         (dump_properties): Likewise; add cfglayout property.
12705         (debug_properties): Likewise.
12706         * tree-ssa-reassoc.c (debug_ops_vector): Likewise.
12707         * varpool.c (debug_varpool): Likewise.
12708         * regcprop.c (debug_value_data): Likewise.
12709         * tree-ssa-operands.c (verify_imm_links, debug_immediate_uses,
12710         debug_immediate_uses_for): Likewise.
12711
12712 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
12713
12714         PR bootstrap/44315
12715         * Makefile.in (build/gencondmd.o): Remove TM_H := $(GTM_H).
12716         Filter out insn-flags.h.
12717
12718 2010-05-29  Jan Hubicka  <jh@suse.cz>
12719
12720         * cgraph.h (struct varpool_node_set_def,
12721         struct cgraph_node_set_def): Remove unused AUX pointer.
12722         (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): Use
12723         VEC_empty macro.
12724
12725 2010-05-29  Jan Hubicka  <jh@suse.cz>
12726
12727         PR middle-end/44324
12728         * ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".
12729
12730 2010-05-29  Richard Guenther  <rguenther@suse.de>
12731
12732         * lto-streamer.c (cached_bp): New global variable.
12733         (bitpack_create): Return the cached bitpack, if available.
12734         (bitpack_delete): Clear and cache the bitpack, if appropriate.
12735         (bp_pack_value): Remove redundant asserts.
12736
12737 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
12738
12739         PR middle-end/44306
12740         * tree-if-conv.c (is_true_predicate): New.
12741         (is_predicated): Use is_true_predicate.
12742         (add_to_predicate_list): Same.  Do not use unshare_expr.
12743         (add_to_dst_predicate_list): Same.
12744
12745 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
12746
12747         * tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
12748         field on edges.
12749         (predicate_bbs): Same.
12750         (clean_predicate_lists): Same.
12751         (find_phi_replacement_condition): Do not AND the predicate from
12752         edge->aux.
12753
12754 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
12755
12756         PR bootstrap/44315
12757         * Makefile.in (build/gencondmd.o): Add a missing `\'.
12758
12759 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12760
12761         PR target/44261
12762         config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
12763         (negdf2): Adjust expander pattern and use negdf2_slow.
12764         (negsf2): Likewise.
12765
12766 2010-05-29  Nathan Froyd  <froydnj@codesourcery.com>
12767
12768         * basic-block.h (struct control_flow_graph): Move last_label_uid field
12769         up.
12770         * df.h (struct df_base_ref): Move regno field up.
12771         * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
12772         * expr.h (struct separate_ops): Move location field up.
12773         * optabs.h (struct optab_d): Move libcall_basename field down.
12774         * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
12775         * config/i386/i386.h (struct machine_function): Convert call_abi field
12776         into a bitfield.  Move cfa field to the end of the structure.
12777
12778 2010-05-29  Jan Hubicka  <jh@suse.cz>
12779
12780         * varpool.c (varpool_get_node): Fix lookup.
12781
12782 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
12783
12784         * config/spu/spu-protos.h: Do not include rtl.h.  Protect
12785         RTL specific prototypes with #ifdef RTX_CODE.
12786         * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
12787         * config/spu/t-spu-elf: Fix dependencies.
12788
12789         * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
12790
12791 2010-05-29  Mike Stump  <mikestump@comcast.net>
12792
12793         PR bootstrap/44315
12794         * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
12795         TM_H when building to avoid dependency loops.
12796
12797 2010-05-29  Jan Hubicka  <jh@suse.cz>
12798
12799         * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
12800         refs and body; not the whole node for masters of materialized clones.
12801
12802 2010-05-29  Mike Stump  <mikestump@comcast.net>
12803
12804         * config/rs6000/rs6000-c.c: Remove c-tree.h include.
12805
12806 2010-05-29  Jan Hubicka  <jh@suse.cz>
12807
12808         * cgraph.c (clone_function_name): Take SUFFIX argument; export.
12809         (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
12810         use of clone_function_name.
12811         * cgraph.h (cgraph_create_virtual_clone,
12812         cgraph_function_versioning): update prototypes.
12813         (clone_function_name): Declare.
12814         * ipa-cp.c (ipcp_insert_stage): Update call of
12815         cgraph_create_virtual_clone.
12816         * omp-low.c (create_omp_child_function_name): Use
12817         cgraph_create_virtual_clone.
12818         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
12819         (cgraph_function_versioning): Take SUFFIX argument; produce new name
12820         and make decl local.
12821
12822 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
12823
12824         * vec.h: Include statistics.h
12825         * Makefile.in: Introduce VEC_H.  Replace all vec.h dependencies
12826         with VEC_H.
12827
12828 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
12829
12830         * c-lex.c: Do not include c-tree.h.
12831         * c-pretty-print.c: Likewise.
12832         * c-opts.c: Likewise.
12833         * c-gimplify.c: Likewise.
12834         * c-common.c: Likewise.
12835         * c-dump.c: Likewise.  Include c-common.h.
12836
12837 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
12838
12839         * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
12840         before including diagnostic-core.h.
12841         (c_cpp_error): New prototype moved from c-tree.h.
12842         Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
12843         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
12844         (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
12845         (c_cpp_error): Prototype moved to c-common.h.
12846         * Makefile.in: Update dependency for C_COMMON_H.
12847
12848 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
12849
12850         * c-common.h: Add FIXME for awkward split of c_register_addr_space.
12851         * c-common.c (c_register_addr_space): Remove here.
12852         * c-decl.c (c_register_addr_space): Re-add here.
12853
12854 2010-05-28  Mike Stump  <mikestump@comcast.net>
12855
12856         * config/darwin-c.c: Remove c-tree.h include.
12857
12858 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
12859
12860         * gcc.c: Include diagnostic.h.
12861         (error_count): Remove.  All users changed to use errorcount.
12862         (programname): Remove.  All users changed to use progname.
12863         (fancy_abort, internal_error, fatal_error, error, warning, inform,
12864         fnotice): Remove.
12865         (execute): Don't include "Internal error" and bug reporting
12866         information in argument of internal_error call.
12867         (process_command): Don't increment error_count after calling
12868         perror_with_name.
12869         (input_filename): Rename to gcc_input_filename.  All users
12870         changed.
12871         (main): Call diagnostic_initialize.  Register delete_temp_files
12872         with atexit.  Use seen_error to test for errors.
12873         * gcc.h: Include diagnostic-core.h.
12874         (fatal_error, error, warning): Remove.
12875         * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
12876         (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
12877         (gcc.o): Update dependencies.
12878
12879 2010-05-28  Jeff Law  <law@redhat.com>
12880
12881         * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
12882         functions.
12883         * ira.h (ira_bad_reload_regno): Declare
12884         * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
12885
12886         * ira-color.c (update_curr_costs): Free updated hard reg costs.
12887         (ira_reassign_conflict_allocnos): Remove bogus asserts.
12888         (allocno_reload_assign): Likewise.
12889
12890 2010-05-28  Nathan Froyd  <froydnj@codesourcery.com>
12891
12892         * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
12893         build1_stat.
12894
12895 2010-05-28  Richard Guenther  <rguenther@suse.de>
12896
12897         PR lto/44312
12898         * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
12899         Stream fixed-point constants mode.
12900         (unpack_ts_type_value_fields): Fix width of TYPE_MODE
12901         and TYPE_PRECISION.
12902         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
12903         Stream fixed-point constants mode.
12904         (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
12905         and TYPE_PRECISION.
12906
12907 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
12908
12909         * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
12910         only place it was called from.
12911         (number_of_latch_executions): Do not return chrec_dont_know when the
12912         may_be_zero is a runtime condition: instead, return a COND_EXPR
12913         including the may_be_zero condition.
12914         * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
12915         of nb_iterations.
12916         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
12917         COND_EXPRs.
12918
12919 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
12920
12921         * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
12922         generate COND_EXPRs for degenerate_phi_result.
12923
12924 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
12925
12926         PR middle-end/44293
12927         * tree-if-conv.c (if_convertible_loop_p): Check the
12928         if-convertibility of phi nodes in non predicated BBs.
12929
12930 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
12931
12932         * gcc.c (error, warning, inform): Remove duplicate ": " in output.
12933
12934 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
12935
12936         PR driver/15303
12937         * gcc.c (inform, warning, inform): New functions.
12938         (fatal_ice): Rename to internal_error; change cmsgid parameter to
12939         gmsgid.  All callers changed.
12940         (notice): Rename to fnotice; add parameter fp.  All callers changed.
12941         (fatal_error): Rename to fatal_signal.  All users changed.
12942         (fatal): Rename to fatal_error; change cmsgid parameter to
12943         gmsgid.  All callers changed.
12944         (process_command): Use warning instead of error for warnings.
12945         (end_going_arg): Don't use _() around argument of error.
12946         (do_spec_1): Use inform for message from %n specs.  Use warning
12947         instead of error for warnings.
12948         (main): Use inform for comparison messages.  Use warning for
12949         message about unused linker input.
12950         (error): Increment error_count.  Print "error: ".
12951         * gcc.h (fatal): Change to fatal_error.
12952         (warning): Declare.
12953         * config/darwin-driver.c (darwin_default_min_version): Use warning
12954         instead of fprintf for warnings.
12955         * cppspec.c (lang_specific_driver): Use fatal_error instead of fatal.
12956
12957 2010-05-28  Julian Brown  <julian@codesourcery.com>
12958
12959         * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
12960         (*thumb2_addsi3_compare0_scratch): New.
12961         * config/arm/constraints.md (Pv): New.
12962         * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
12963         for ARM mode only.
12964         (*addsi3_compare0_scratch): Likewise.
12965
12966 2010-05-28  Jan Hubicka  <jh@suse.cz>
12967
12968         * ipa-reference.c (add_static_var): Remove redundant all_module_statics
12969         check.
12970         (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
12971         only on local statics.
12972
12973 2010-05-28  Iain Sandoe  <iains@gcc.gnu.org>
12974
12975         * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
12976
12977 2010-05-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
12978
12979         PR bootstrap/44314
12980         * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
12981         (OPTION_GLIBC): Define.
12982
12983 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
12984
12985         PR debug/41048
12986         * dwarf2out.c (double_int_type_size_in_bits): New function.
12987         (round_up_to_align): Change first argument and return value to
12988         double_int.
12989         (field_byte_offset): Work internally on double_ints.
12990
12991         PR target/43636
12992         * builtins.c (expand_movstr): Use a temporary pseudo instead
12993         of target even when target is not NULL and not const0_rtx, but
12994         fails movstr predicate.
12995         * config/m32c/blkmov.md (movstr): Add predicate to first operand.
12996
12997 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
12998
12999         * final.c (rest_of_clean_state): Use %m in errors instead of
13000         strerror (errno).
13001         * gengtype.c (read_input_list, close_output_files): Use xstrerror
13002         instead of strerror.
13003         * toplev.c (process_options): Use %m in errors instead of strerror
13004         (errno).
13005         * tree-dump.c (dump_begin): Use %m in errors instead of strerror
13006         (errno).
13007
13008 2010-05-28  Uros Bizjak  <ubizjak@gmail.com>
13009
13010         * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
13011         (ix86_canonical_va_list_type): Make static.  Add declaration.
13012         (ix86_enum_va_list): Make static.  Reindent.
13013         * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
13014         (ix86_canonical_va_list_type): Ditto.
13015         (ix86_enum_va_list): Ditto.
13016
13017 2010-05-28  Richard Guenther  <rguenther@suse.de>
13018
13019         * lto-wrapper.c (run_gcc): With -save-temps generate a
13020         user-visible ltrans filename.  Fixup ltrans unit numbering.
13021
13022 2010-05-28  Kai Tietz  <kai.tietz@onevision.com>
13023
13024         * c-common.c (c_common_nodes_and_builtins): Replace use
13025         of TARGET_ENUM_VA_LIST by target hook enum_va_list.
13026         * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
13027         to ix86_enum_va_list.
13028         * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
13029         * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
13030         (TARGET_ENUM_VA_LIST_P): Add hook description.
13031         * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
13032         * target.h (gcc_target): Add enum_va_list hook.
13033
13034         PR bootstrap/44299
13035         * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
13036         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
13037         * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
13038
13039 2010-05-28  Alan Modra  <amodra@gmail.com>
13040
13041         PR target/44266
13042         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
13043         emit_library_call machinery to set up __tls_get_addr calls.
13044
13045 2010-05-28  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
13046
13047         * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
13048
13049 2010-05-28  Dodji Seketeli  <dodji@redhat.com>
13050
13051         Revert fix for PR c++/44188
13052         * c-common.c (is_typedef_decl): Revert the moving of  this
13053         definition ...
13054         * tree.c (is_typedef_decl): ... here.
13055         (typdef_variant_p): Revert the moving of this  definition
13056         here from gcc/cp/tree.c.
13057         * c-common.h (is_typedef_decl): Revert the moving of this
13058         declaration ...
13059         * tree.h (is_typedef_decl): ... here.
13060         (typedef_variant_p): Revert the moving of this  declaration here
13061         from gcc/cp/cp-tree.h
13062         * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
13063         (gen_tagged_type_die): Revert the splitting out of ...
13064         (gen_type_die_with_usage): ... this function. Revert the anonymous
13065         tagged type handling.
13066         (gen_typedef_die): Revert emitting DW_TAG_typedef  for
13067         typedefs naming anonymous tagged types.
13068
13069 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
13070
13071         * config/rs6000/rs6000-modes.def (PSImode): Delete.
13072
13073 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
13074
13075         * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
13076         * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
13077         throughout.
13078         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
13079         "xer" to "ca".
13080         Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
13081         XER_REGS to CA_REGS throughout.
13082         * config/rs6000/rs6000.h: Same.
13083         (ADDITIONAL_REGISTER_NAMES): Add "xer".
13084         * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO.  Document
13085         that mode_iterator "P" is the size for arithmetic carries as well.
13086         * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
13087
13088 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
13089
13090         PR bootstrap/44255
13091         * combine.c (struct rtx_subst_pair): Define unconditionally.
13092         (propagate_for_debug_subst): Likewise.  If not AUTO_INC_DEC,
13093         copy_rtx pair->to instead of cleanup_auto_inc_dec it.
13094         Call make_compound_operation on pair->to.
13095         (propagate_for_debug): Don't call make_compound_operation here.
13096         Always use simplify_replace_fn_rtx.
13097
13098 2010-05-27  Sterling Augustine  <sterling@tensilica.com>
13099
13100         * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
13101         * config/xtensa/xtensa.c (override_options): Check
13102           TARGET_FORCE_NO_PIC and set flag_pic.
13103         * config/xtensa/xtensa.opt: Document -mforce-no-pic
13104
13105 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
13106
13107         PR bootstrap/44299
13108         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
13109         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
13110
13111 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
13112
13113         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
13114         toplev.h.
13115         * diagnostic.c: Don't include toplev.h.
13116         (progname): Define.  Moved from toplev.c.
13117         (seen_error): New function.
13118         * diagnostic.h: Include diagnostic-core.h.
13119         (diagnostic_t, emit_diagnostic): Don't declare here.
13120         * toplev.c (progname): Move to toplev.c.
13121         (emit_debug_global_declarations, compile_file, finalize,
13122         do_compile, toplev_main): Use seen_error.
13123         * toplev.h: Include diagnostic-core.h.
13124         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
13125         internal_error, warning, warning_at, error, error_n, error_at,
13126         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
13127         verbatim, fnotice, progname): Move to diagnostic-core.h.
13128         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
13129         (expand_builtin_expect): Use seen_error.
13130         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
13131         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
13132         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
13133         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
13134         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
13135         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
13136         errorcount for errors.
13137         * c-opts.c (c_common_finish): Use seen_error.
13138         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
13139         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
13140         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
13141         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
13142         (get_coverage_counts): Use seen_error.
13143         * dwarf2out.c (dwarf2out_finish): Use seen_error.
13144         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
13145         gimplify_body): Use seen_error.
13146         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
13147         * ipa-pure-const.c (gate_pure_const): Use seen_error.
13148         * ipa-reference.c (gate_reference): Use seen_error.
13149         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
13150         * lambda-code.c: Include diagnostic-core.h instead of
13151         diagnostic.h.
13152         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
13153         * lto-compress.c: Include diagnostic-core.h instead of
13154         diagnostic.h.
13155         * lto-section-in.c: Include diagnostic-core.h instead of
13156         diagnostic.h.
13157         * lto-streamer-out.c: Include diagnostic-core.h instead of
13158         diagnostic.h.
13159         * lto-streamer.c: Include diagnostic-core.h instead of
13160         diagnostic.h.
13161         (gate_lto_out): Use seen_error.
13162         * matrix-reorg.c: Include diagnostic-core.h instead of
13163         diagnostic.h.
13164         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
13165         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
13166         (gate_expand_omp, lower_omp_1): Use seen_error.
13167         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
13168         (rest_of_decl_compilation, rest_of_type_compilation,
13169         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
13170         * tree-cfg.c (label_to_block_fn): Use seen_error.
13171         * tree-inline.c (optimize_inline_calls): Use seen_error.
13172         * tree-mudflap.c (mudflap_finish_file): Use
13173         seen_error.
13174         * tree-optimize.c (gate_all_optimizations,
13175         gate_all_early_local_passes, gate_all_early_optimizations): Use
13176         seen_error.
13177         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
13178         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
13179         (varpool_remove_unreferenced_decls,
13180         varpool_assemble_pending_decls): Use seen_error.
13181         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
13182         (TOPLEV_H, DIAGNOSTIC_H): Update.
13183         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
13184         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
13185         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
13186         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
13187         coverage.o, lambda-code.o): Update dependencies.
13188
13189 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
13190
13191         PR c++/44188
13192         * c-common.c (is_typedef_decl): Move this definition ...
13193         * tree.c (is_typedef_decl): ... here.
13194         (typdef_variant_p): Move definition here from gcc/cp/tree.c.
13195         * c-common.h (is_typedef_decl): Move this declaration ...
13196         * tree.h (is_typedef_decl): ... here.
13197         (typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h
13198         * dwarf2out.c (is_naming_typedef_decl): New function.
13199         (gen_tagged_type_die): Split out of ...
13200         (gen_type_die_with_usage): ... this function. When an anonymous
13201         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
13202         is emitted for the typedef.
13203         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
13204         anonymous tagged types.
13205
13206 2010-05-27  Jason Merrill  <jason@redhat.com>
13207
13208         * print-tree.c (debug_vec_tree): New fn.
13209         (print_vec_tree): New fn.
13210         * tree.h: Declare them.
13211         * gdbinit.in (pvt): New command.
13212
13213         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
13214
13215         * gdbinit.in (pdd): New command.
13216
13217 2010-05-27  Jan Hubicka  <jh@suse.cz>
13218
13219         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
13220         (update_caller_keys): Return early if there are no callers;
13221         only update fibheap when decresing the key.
13222         (update_callee_keys): Avoid recursion.
13223         (decide_inlining_of_small_functions): When badness does not match;
13224         re-insert into fibheap.
13225
13226 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
13227
13228         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
13229         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
13230         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
13231         (ALL_HOST_OBJS): Now a union of the above two.
13232         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
13233         all files in ALL_HOST_FRONTEND_OBJS.
13234         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
13235
13236         * c-common.c: Pretend to be a backend file by undefining
13237         IN_GCC_FRONTEND (still need rtl.h here).
13238
13239 2010-05-27  Jan Hubicka  <jh@suse.cz>
13240
13241         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
13242         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
13243
13244 2010-05-27  Jan Hubicka  <jh@suse.cz>
13245
13246         * sched-ebb.c: Rename struct deps to struct deps_desc.
13247         * ddg.c: Likewise.
13248         * sel-sched-ir.c: Likewise.
13249         * sched-deps.c: Likewise.
13250         * sched-int.h: Likewise.
13251         * sched-rgn.c: Likewise.
13252
13253 2010-05-27  Jon Beniston  <jon@beniston.com>
13254
13255         PR 43726
13256         * config/lm32/lm32.h: Remove definition of
13257         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
13258
13259 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
13260
13261         PR lto/44230
13262         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
13263
13264 2010-05-27  Richard Guenther  <rguenther@suse.de>
13265
13266         PR tree-optimization/44284
13267         * tree-vect-stmts.c (vectorizable_assignment): Handle
13268         sign-changing conversions as simple copy.
13269
13270 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
13271
13272         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
13273         Bionic C library.
13274         (__gthread_active_p): Check for pthread_create if compiling against
13275         Bionic C library.
13276
13277 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
13278
13279         Support compilation for Android platform.  Reimplement -mandroid.
13280
13281         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
13282         (*android*): Set ANDROID_DEFAULT.
13283         (arm*-*-linux*): Include linux-android.h.
13284         (arm*-*-eabi*): Don't include previous -mandroid implementation.
13285         * config/arm/eabi.h: Remove, move Android-specific parts ...
13286         * config/linux-android.h: ... here.  New file.
13287         * config/arm/eabi.opt: Rename to ...
13288         * config/linux-android.opt: ... this.
13289         (mandroid): Allow -mno-android option.  Initialize based on
13290         ANDROID_DEFAULT.
13291         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
13292         Move logic to corresponding LINUX_TARGET_* macros.
13293         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
13294         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
13295         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
13296         Android definitions.
13297         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
13298         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
13299         Document.
13300
13301 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
13302
13303         Add support for Bionic C library
13304
13305         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
13306         macro.
13307         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
13308         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
13309
13310         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
13311         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
13312         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
13313         to support multiple C libraries.  Handle Bionic.
13314         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
13315         (BIONIC_DYNAMIC_LINKER64): Define.
13316         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
13317         Update.
13318         (TARGET_HAS_SINCOS): Enable for Bionic.
13319
13320         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
13321         the last option specified on command line take effect.
13322         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
13323         (mbionic): New.
13324         (mglibc, muclibc): Update.
13325
13326         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
13327         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
13328         DEFAULT_LIBC.
13329
13330         * doc/invoke.texi (-mglibc, -muclibc): Update.
13331         (-mbionic): Document.
13332
13333 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13334
13335         * c-common.h (c_register_addr_space): Add prototype.
13336         (ADDR_SPACE_KEYWORD): Remove.
13337         * c-common.c (c_register_addr_space): New function.
13338         (c_addr_space_name): Reimplement.
13339         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
13340
13341         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
13342         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
13343
13344         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
13345         Remove TARGET_ADDR_SPACE_KEYWORDS.
13346
13347 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
13348
13349         * input.c: New file.
13350         * input.h (main_input_filename): Move declaration to toplev.h.
13351         * toplev.c (input_location, line_table): Move to input.c
13352         * toplev.h (main_input_filename): Move declaration from input.h.
13353         * tree.c (expand_location): Move to input.c.
13354         * Makefile.in (OBJS-common): Add input.o.
13355         (input.o): Add dependencies.
13356
13357 2010-05-27  Richard Guenther  <rguenther@suse.de>
13358
13359         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
13360         for non-existant files.
13361         (fork_execute): Mark args_name file as deleted.
13362
13363 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
13364
13365         PR bootstrp/44287
13366         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
13367         (narrow_signed_type): Likewise.
13368
13369 2010-05-26  Jan Hubicka  <jh@suse.cz>
13370
13371         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
13372         edge only when checking is enabled; check using former_clone_of;
13373         check inline clones too.
13374         (cgraph_materialize_clone): Record former_clone_of pointer.
13375         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
13376         combining redirections; dump args_to_skip bitmap
13377         (cgraph_materialize_all_clones): Do no redirection here.
13378         * ipa-inline.c (inline_transform): Do redirection here.
13379         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
13380         cheking only).
13381
13382 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
13383
13384         * config/avr/avr-c.c: Do not include regs.h.
13385         Include cpplib.h for cpp_define and tree.h for c-common.h.
13386         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
13387         * config/avr/t-avr: Fix dependencies for avr-c.o.
13388
13389 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
13390
13391         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
13392         string instead of SYMBOL_REF rtx.
13393         * rtl.h (set_stack_check_libfunc): Move prototype from here...
13394         * libfuncs.h: ...to here.  Adjust for explow.c change.
13395
13396 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
13397
13398         * pretty-print.c: Don't include ggc.h.
13399         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
13400         (identifier_to_locale): Use them for allocation.
13401         * pretty-print.h (identifier_to_locale_alloc,
13402         identifier_to_locale_free): Declare.
13403         * toplev.c (alloc_for_identifier_to_locale): New.
13404         (general_init): Set identifier_to_locale_alloc and
13405         identifier_to_locale_free.
13406         * Makefile.in (pretty-print.o): Update dependencies.
13407
13408 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
13409
13410         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
13411         pointer types if they have different alignment or mode.
13412
13413 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
13414
13415         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
13416         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
13417         * config/sparc/sparc-protos.h (function_value): Remove declaration.
13418         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
13419         sparc_function_value_regno_p): New functions.
13420         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
13421         TARGET_FUNCTION_VALUE_REGNO_P): Define.
13422         (function_value): Rename to...
13423         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
13424         argument to 'outgoing'.
13425         (function_arg_record_value, function_arg_union_value,
13426         function_arg_vector_value): Update comment.
13427
13428 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
13429
13430         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
13431         (fde_needed_for_eh_p): New predicate.
13432         (output_call_frame_info): Use it throughout to decide whether FDEs
13433         are needed for EH purpose.
13434         (dwarf2out_begin_prologue): Reorder assignments.
13435
13436 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
13437
13438         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
13439         special case loop->header.
13440         (is_predicated): New.
13441         (if_convertible_loop_p): Call it.
13442
13443 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
13444
13445         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
13446         iterator in parameter.  Do not generate code during the analysis.
13447         (tree_if_convert_cond_stmt): Removed.
13448         (tree_if_convert_stmt): Removed.
13449         (predicate_bbs): New.
13450         (if_convertible_loop_p): Call predicate_bbs.
13451         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
13452         now contains all the analysis part.
13453
13454 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
13455
13456         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
13457         statements in the analysis part.
13458         (tree_if_convert_stmt): Update comment.
13459         (remove_conditions_and_labels): New.
13460         (combine_blocks): Call remove_conditions_and_labels.
13461         (tree_if_conversion): Update comment.
13462
13463 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
13464
13465         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
13466         than 2 predecessors or more than 2 successors.
13467
13468 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
13469
13470         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
13471         of loops in which the data dependence analysis fails.
13472
13473 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
13474
13475         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
13476         CDI_POST_DOMINATORS.
13477         (tree_if_conversion): Same.
13478
13479 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
13480
13481         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
13482
13483 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
13484
13485         * tree-if-conv.c: Update copyright years.  Fix comments.
13486         Fix indentation.
13487
13488 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
13489
13490         * builtin-types.def (BT_INT128): New primitive type.
13491         (BT_UINT128): Likewise.
13492         * c-common.c (c_common_r): Add __int128 keyword.
13493         (c_common_type_for_size): Handle __int128.
13494         (c_common_type_for_mode): Likewise.
13495         (c_common_signed_or_unsigned_type): Likewise.
13496         (c_common_nodes_and_builtins): Add builtin type
13497         if target supports 128-bit integer scalar.
13498         * c-common.h (enum rid): Add RID_INT128.
13499         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
13500         if target supports 128-bit integer scalar.
13501         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
13502         (finish_declspecs): Likewise.
13503         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
13504         (c_token_starts_declspecs): Likewise.
13505         (c_parser_declspecs): Likewise.
13506         (c_parser_attributes): Likewise.
13507         (c_parser_objc_selector): Likewise.
13508         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
13509         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
13510         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
13511         * tree.c (make_or_reuse_type): Likewise.
13512         (make_unsigned_type): Likewise.
13513         (build_common_tree_nodes_2): Likewise.
13514         * tree.h (enum integer_type_kind): Add itk_int128 and
13515         itk_unsigned_int128.
13516         (int128_integer_type_node): New define.
13517         (int128_unsigned_type_node): New define.
13518         * doc/extend.texi: Add documentation about __int128 type.
13519
13520 2010-05-26  Richard Guenther  <rguenther@suse.de>
13521
13522         * tree-ssa-sccvn.c (copy_nary): Adjust.
13523         (copy_phis): Rename to ...
13524         (copy_phi): ... this.  Adjust.
13525         (copy_references): Rename to ...
13526         (copy_reference): ... this.  Adjust.
13527         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
13528         result into the valid table.
13529
13530 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
13531
13532         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
13533         insn-config.h, insn-codes.h, recog.h, and optabs.h.
13534
13535 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
13536
13537         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
13538
13539 2010-05-26  Richard Guenther  <rguenther@suse.de>
13540
13541         * opts.c (common_handle_option): Handle OPT_Ofast.
13542
13543 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
13544
13545         * diagnostic.c: Don't include opts.h.
13546         (permissive_error_option): Define.
13547         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
13548         for classify_diagnostic.  Don't use memset for
13549         classify_diagnostic.  Initialize new and recently added fields.
13550         (diagnostic_classify_diagnostic): Use context->n_opts instead of
13551         N_OPTS.
13552         (diagnostic_report_diagnostic): Pass context parameter to
13553         diagnostic_report_warnings_p.  Use option_enabled and option_name
13554         hooks from context.
13555         (emit_diagnostic): Use permissive_error_option.
13556         (permerror): Likewise.
13557         * diagnostic.h: Don't include options.h.
13558         (struct diagnostic_context): Add n_opts, opt_permissive,
13559         inhibit_warnings, warn_system_headers, option_enabled and
13560         option_name fields.  Change classify_diagnostic to a pointer.
13561         * opts-diagnostic.h: New file.
13562         * opts.c: Include opts-diagnostic.h.
13563         (common_handle_option): Set global_dc fields for -Wfatal-errors,
13564         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
13565         (option_name): New function.
13566         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
13567         (c_common_handle_option): Set global_dc->permissive for
13568         -fpermissive.
13569         * c-common.c (c_cpp_error): Save and restore
13570         global_dc->warn_system_headers, not variable warn_system_headers.
13571         * toplev.c: Include opts-diagnostic.h.
13572         (general_init): Update call to diagnostic_initialize.  Set
13573         global_dc->show_column, global_dc->option_enabled and
13574         global_dc->option_name.
13575         (process_options): Don't set global_dc fields here.
13576         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
13577         (diagnostic.o, opts.o, toplev.o): Update dependencies.
13578
13579 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
13580
13581         * config/picochip/picochip.md (movsi): Split a movsi from a
13582         const after reload.
13583
13584 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
13585
13586         * ggc-zone.c: Update copyright year.
13587         (poison_region): Mark memory for Valgrind as undefined before
13588         memset () call and inaccessible afterwards.
13589         (ggc_pch_total_size): Change type of i to int.
13590
13591 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
13592
13593         * ggc-common.c (ggc_free_overhead): Allow empty slot.
13594
13595 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
13596
13597         * ggc-common.c: Update copyright year.
13598         (ggc_rlimit_bound): Remove prototype.  Compile only if
13599         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
13600         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
13601         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
13602         (ggc_min_heapsize_heuristic): Likewise.
13603
13604 2010-05-26  Richard Guenther  <rguenther@suse.de>
13605
13606         PR rtl-optimization/44164
13607         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
13608         no-common access-path disambiguation.
13609         (indirect_ref_may_alias_decl_p): Adjust.
13610         (indirect_refs_may_alias_p): Likewise.
13611         (refs_may_alias_p_1): Likewise.
13612
13613 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
13614
13615         * c-typeck.c: Do not include expr.h.
13616
13617 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
13618
13619         * rtl.h (decl_default_tls_model): Move prototype from here...
13620         * output.h: ...to here.
13621         * c-decl.c: Do not include rtl.h.
13622         * c-pragma.c: Likewise.
13623         * c-parser.c: Likewise.
13624         * c-gimplify.c: Likewise.  And also not hard-reg-set.
13625         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
13626         FIXME note for it.  Add a FIXME note for expr.h.
13627         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
13628         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
13629         defined.
13630
13631 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
13632
13633         PR target/44199
13634         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
13635         or total_size is larger than red zone size for non-V4 ABI, emit a
13636         stack_tie resp. frame_tie insn before stack pointer restore.
13637         * config/rs6000/rs6000.md (frame_tie): New insn.
13638
13639 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
13640
13641         * function.h (struct function): Add can_throw_non_call_exceptions bit.
13642         * lto-streamer-in.c (input_function): Stream it in.
13643         * lto-streamer-out.c (output_function): Stream it out.
13644         * function.c (allocate_struct_function): Set it.
13645         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
13646         for flag_non_call_exceptions.
13647         * cfgbuild.c (control_flow_insn_p): Likewise.
13648         (make_edges): Likewise.
13649         * cfgexpand.c (expand_stack_alignment): Likewise.
13650         * combine.c (distribute_notes): Likewise.
13651         * cse.c (cse_extended_basic_block): Likewise.
13652         * except.c (insn_could_throw_p): Likewise.
13653         * gcse.c (simple_mem): Likewise.
13654         * ipa-pure-const.c (check_call): Likewise.
13655         (check_stmt ): Likewise.
13656         * lower-subreg.c (lower-subreg.c): Likewise.
13657         * optabs.c (emit_libcall_block): Likewise.
13658         (prepare_cmp_insn): Likewise.
13659         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
13660         * postreload.c (rest_of_handle_postreload): Likewise.
13661         * reload1.c (reload_as_needed): Likewise.
13662         (emit_input_reload_insns): Likewise.
13663         (emit_output_reload_insns): Likewise.
13664         (fixup_abnormal_edges): Likewise.
13665         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
13666         * store-motion.c (find_moveable_store): Likewise.
13667         * tree-eh.c (stmt_could_throw_p): Likewise.
13668         (tree_could_throw_p): Likewise.
13669         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
13670         * config/arm/arm.c (arm_expand_prologue): Likewise.
13671         (thumb1_expand_prologue): Likewise.
13672         * config/rx/rx.md (cbranchsf4): Likewise.
13673         (cmpsf): Likewise.
13674         * config/s390/s390.c (s390_emit_prologue): Likewise.
13675         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
13676         (inline_forbidden_into_p): New predicate.
13677         (expand_call_inline): Use it to forbid inlining.
13678         (tree_can_inline_p): Likewise.
13679
13680 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
13681
13682         * config/i386/i386-c.c: Do not include rtl.h.
13683         * config/i386/t-i386: Update dependencies.
13684
13685 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
13686
13687         * attribs.c: Do not include rtl.h.
13688         * Makefile.in: Update dependencies.
13689
13690 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
13691
13692         * double-int.h (double_int_and): New.
13693         * combine.c (try_combine): Clean up, use double_int_* and
13694         immed_double_int_const functions.
13695
13696 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13697
13698         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
13699         stderr to /dev/null instead of grep -q.
13700         * configure: Regenerate.
13701
13702 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
13703
13704         * Makefile.in (EXCEPT_H): Fix typo.
13705
13706 2010-05-25  Vladimir Makarov  <vmakarov@redhat.com>
13707
13708         * ira-build.c (update_conflict_hard_reg_costs): New.
13709         (ira_build): Call update_conflict_hard_reg_costs.
13710
13711 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
13712
13713         PR debug/41371
13714         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
13715         ENABLE_CHECKING.
13716         (intersect_loc_chains): Walk the s2var's loc_chain together
13717         with s1node chain as long as the locations are equal, don't
13718         call find_loc_in_1pdv in that case.
13719
13720         PR debug/42801
13721         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
13722         (copy_bind_expr): ... instead of here.
13723         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
13724         if the block hasn't been remapped.
13725         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
13726         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
13727
13728 2010-05-25  Richard Guenther  <rguenther@suse.de>
13729
13730         PR middle-end/44069
13731         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
13732         out-of-bounds array accesses.
13733
13734 2010-05-25  Richard Guenther  <rguenther@suse.de>
13735
13736         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
13737         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
13738         (run_gcc): Re-organize to make cleanup easier.
13739
13740 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
13741
13742         * config/s390/s390.c (optimization_options): Fix and move the
13743         flag_prefetch_loop_arrays override ...
13744         (override_options): ... here.
13745
13746 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
13747
13748         * diagnostic.c: Don't include plugin.h.
13749         (diagnostic_report_diagnostic): Don't handle plugins specially
13750         here.  Pass context to internal_error callback.
13751         * diagnostic.h (struct diagnostic_context): Add context parameter
13752         to internal_error callback.
13753         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
13754         * plugin.h (struct diagnostic_context): Declare.
13755         (warn_if_plugins, plugins_internal_error_function): Declare.
13756         * toplev.c (general_init): Set global_dc->internal_error.
13757         * Makefile.in (diagnostic.o): Update dependencies.
13758
13759 2010-05-25  Iain Sandoe  <iains@gcc.gnu.org>
13760
13761         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
13762         * config/rs6000/t-darwin64: New.
13763         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
13764         build crt2.
13765
13766 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
13767
13768         PR 44203
13769         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
13770         match the original (and intended) behaviour before r159557.  This
13771         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
13772         in two ways.
13773
13774 2010-05-25  Richard Guenther  <rguenther@suse.de>
13775
13776         * doc/invoke.texi: Document -Ofast.
13777         * target.h (struct gcc_target): Add handle_ofast.
13778         * target-def.h (TARGET_HANDLE_OFAST): Add.
13779         (TARGET_INITIALIZER): Adjust.
13780         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
13781         * common.opt (Ofast): Add.
13782
13783 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
13784
13785         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
13786         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
13787
13788 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
13789
13790         PR target/43610
13791         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
13792         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
13793         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
13794         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
13795
13796 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
13797
13798         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
13799         DW_OP_minus with negated offset instead of DW_OP_plus.
13800         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
13801
13802 2010-05-25  Wei Guozhi  <carrot@google.com>
13803
13804         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
13805         tst instruction and a new alternative.
13806         * config/arm/constraints.md (Pu): New constraint.
13807
13808 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
13809
13810         * function.c (assign_stack_local_1): Initialize variable
13811         to avoid warning when bootstrapping at -O3.
13812
13813 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
13814
13815         * configure.ac (all_lang_makefiles): Remove everything related to it.
13816         * configure: Regenerate.
13817         * Makefile.in: Fix reference to ada Make-lang.in.
13818         Remove support for LANG_MAKEFILES.
13819
13820 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
13821             Sandra Loosemore  <sandra@codesourcery.com>
13822
13823         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
13824         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
13825         description.  Add arm_neon_fp16_ok.
13826         (Add Options): Add arm_neon and arm_neon_fp16.
13827
13828 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
13829
13830         * diagnostic.c: Don't include flags.h.
13831         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
13832         context parameters.  Check flags in the context passed as a parameter.
13833         (diagnostic_build_prefix): Add context parameter.  Check
13834         show_column flag in context.
13835         (diagnostic_action_after_output): Check fatal_errors flag in context.
13836         (diagnostic_report_current_module): Check show_column flag in context.
13837         (default_diagnostic_starter): Update call to
13838         diagnostic_build_prefix.
13839         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
13840         (emit_diagnostic): Pass context to permissive_error_kind.
13841         (permerror): Pass context to permissive_error_kind.
13842         * diagnostic.h (struct diagnostic_context): Add show_column,
13843         pedantic_errors, permissive and fatal_errors fields.
13844         (diagnostic_build_prefix): Update prototype.
13845         * langhooks.c
13846         * toplev.c (process_options): Set flags in global_dc from
13847         flag_show_column, flag_pedantic_errors, flag_permissive,
13848         flag_fatal_errors.
13849         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
13850         to diagnostic_build_prefix.
13851         * Makefile.in (diagnostic.o): Update dependencies.
13852
13853 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
13854
13855         * config/i386/ia32intrin.h (__crc32q): Define only if
13856         __SSE4_2__ is defined.
13857
13858 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
13859
13860         PR target/44132
13861         PR middle-end/43602
13862         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
13863         DECL_VISIBILITY_SPECIFIED.
13864         (emutls_decl): Set DECL_PRESERVE_P and copy
13865         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
13866         (emutls_finalize_control_var): New callback.
13867         (emutls_finish): Finalize emutls control variables.
13868         * toplev.c (compile_file): Move the call to emutls_finish ()
13869         before varpool_assemble_pending_decls ().
13870
13871 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
13872
13873         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
13874         added to the preprocessor condition.
13875
13876 2010-05-24  Paul Brook  <paul@codesourcery.com>
13877
13878         * gengtype-lex.l: Add HARD_REG_SET.
13879         * expr.c (expand_expr_real_1): Record writes to hard registers.
13880         * function.c (rtl_data): Add asm_clobbers.
13881         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
13882         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
13883         Use crtl->asm_clobbers.
13884
13885 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13886
13887         * doc/makefile.texi (Makefile): Mention stages 'profile'
13888         and 'feedback' for profiledbootstrap.
13889
13890 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
13891
13892         PR target/44245
13893         * config/i386/i386.c (def_builtin): Properly check
13894         OPTION_MASK_ISA_64BIT.
13895
13896 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
13897
13898         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
13899         typedefs with different but compatible types.  Allow duplicate
13900         typedefs with the same type except for pedantic non-C1X, but give
13901         warning for variably modified types.
13902         * c-typeck.c (tagged_types_tu_compatible_p,
13903         function_types_compatible_p, type_lists_compatible_p,
13904         comptypes_internal): Add parameter different_types_p; set
13905         *different_types_p for different but compatible types.  All
13906         callers changed.
13907         (comptypes_check_different_types): New.
13908         * c-tree.h (comptypes_check_different_types): Declare.
13909
13910 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
13911
13912         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
13913         * jump.c: Include basic-block.h.
13914         * profile.c: Likewise.
13915         * tree-profile.c: Likewise.
13916         * coverage.c: Likewise.
13917         * basic-block.h (optimize_function_for_size_p): Move to function.h.
13918         (optimize_function_for_speed_p): Likewise.
13919         * function.h (optimize_function_for_size_p,
13920         optimize_function_for_speed_p): Moved here from basic-block.h.
13921         * Makefile.in: Update dependencies.
13922
13923 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13924
13925         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
13926         before calling make; allow override through $MAKE.
13927         * doc/invoke.texi (Optimize Options): Document override.
13928
13929 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
13930
13931         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
13932         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
13933         (rs6000_mode_dependent_address_ptr): Make static.
13934         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
13935         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
13936         Remove.
13937
13938 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
13939
13940         PR target/43869
13941         * config/i386/i386.c: Make sure that the correct regparm is passed.
13942
13943 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
13944
13945         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
13946         * sbitmap.c: ...to here to internalize sbitmap element access.
13947         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
13948         Explain why basic-block.h is included.
13949         * function.h: Include tm.h for CUMULATIVE_ARGS.
13950         * Makefile.in: Update dependencies.
13951
13952 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
13953
13954         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
13955         New core types.
13956         * sbitmap.h (struct sbitmap_def): Do not typedef here.
13957         * sbitmap.c: Include sbitmap.h.
13958         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
13959         hard-reg-set.h.  Split everything related to regsets out from here...
13960         * regset.h: ...to here.  New file.
13961         * df.h: Include regset.h and sbitmap.h.
13962         * tree-flow.h: Likewise.
13963         * cfgloop.h: Likewise.
13964         * except.h: Do not include sbitmap.h.  Include hashtab.h.
13965         * cgraph.h: Include vec.h and function.h.
13966         * reload.h (struct insn_chain): Change types of live_throughout
13967         and dead_or_set from regset_head to bitmap_head.
13968         (compute_use_by_pseudos): Be defined also if regset.h is not included.
13969         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
13970         spilled_regs from regset_head to bitmap_head to avoid dependency
13971         in regset.h.
13972         * sel-sched-ir.h: Include regset.h.
13973         * reload.c: Include df.h before reload.h.
13974         * caller-save.c: Likewise.
13975         * reload1.c: Likewise.
13976         * ira.c: Likewise.
13977         (mark_elimination): Update type of r to bitmap, consistent with
13978         DF_LR_IN.
13979         * dominance.c: Include bitmap.h.
13980         * modulo-sched.c: Include df.h.
13981         * cfganal.c: Include bitmap.h and sbitmap.h.
13982         * cfgbuild.c: Include sbitmap.h.
13983         * lcm.c: Include sbitmap.h.
13984         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
13985         * domwalk.c: Include sbitmap.h, exclude ggc.h.
13986         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
13987         * cselib.c: Include bitmap.h.
13988         * tree-optimize.c: Include regset.h.
13989         * stmt.c: Include bitmap.h.
13990         * Makefile.in: Update dependencies.
13991
13992 2010-05-22  Jan Hubicka  <jh@suse.cz>
13993
13994         * cgraph.h (struct varpool_node): Add same_comdat_group.
13995         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
13996         pointer.
13997         (output_varpool): Update call of lto_output_varpool_node.
13998         (input_varpool): Read same_comdat_group pointer.
13999         (input_varpool_1): Fixup same_comdat_group pointer.
14000         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
14001         group is needed, all are.
14002         * varpool.c (varpool_remove_node): Remove node from same comdat group
14003         linklist too.
14004         (varpool_analyze_pending_decls): Walk same comdat groups.
14005
14006 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
14007
14008         * rtl.h (union rtunion_def): Remove rt_bit member.
14009         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
14010         * print-rtl (print_rtx): Do not print the member.
14011         * gengtype.c (adjust_field_rtx_def): Do not handle it.
14012         * gengenrtl.c (type_from_format): Likewise.
14013         (accessor_from_format): Likewise.
14014
14015 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
14016
14017         * dbgcnt.c: Include toplev.h instead of errors.h.
14018         * ira-emit.c: Don't include errors.h.
14019         * ira.c: Include toplev.h instead of errors.h.
14020         * lto-compress.c: Include toplev.h instead of errors.h.
14021         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
14022         ira.o, dbgcnt.o): Update dependencies.
14023
14024 2010-05-22  Richard Guenther  <rguenther@suse.de>
14025
14026         * gimple.c (gimple_types_compatible_p): Check type qualifications
14027         before merging pointer to complete and pointer to incomplete type.
14028         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
14029         we use our own resolution algorithm.  The gold linker plugin
14030         doesn't do the job we want it to do here.
14031
14032 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
14033
14034         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
14035         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
14036         (sparc_mode_dependent_address_p): New function.
14037
14038 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
14039
14040         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
14041
14042         * timevar.c: Do not include any core headers.
14043         (timevar_print): De-i18n-ize.
14044         (print_time): Likewise.
14045         * timevar.h (timevar_push, timevar_pop): Make inline functions.
14046
14047 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
14048
14049         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
14050         langhooks-def.h.
14051         (diagnostic_initialize): Initialize x_data not last_function.
14052         (diagnostic_report_current_function): Move to tree-diagnostic.c.
14053         (default_diagnostic_starter): Call
14054         diagnostic_report_current_module not
14055         diagnostic_report_current_function.
14056         (diagnostic_report_diagnostic): Initialize x_data not
14057         abstract_origin.
14058         (verbatim): Likewise.
14059         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
14060         x_data.
14061         (struct diagnostic_context): Change last_function to x_data.
14062         (diagnostic_auxiliary_data): Replace with
14063         diagnostic_context_auxiliary_data and
14064         diagnostic_info_auxiliary_data.
14065         (diagnostic_last_function_changed, diagnostic_set_last_function,
14066         diagnostic_report_current_function): Move to tree-diagnostic.h.
14067         (print_declaration, dump_generic_node, print_generic_stmt,
14068         print_generic_stmt_indented, print_generic_expr,
14069         print_generic_decl, debug_c_tree, dump_omp_clauses,
14070         print_call_name, debug_generic_expr, debug_generic_stmt,
14071         debug_tree_chain, default_tree_printer): Move to
14072         tree-pretty-print.h.
14073         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
14074         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
14075         gimple-pretty-print.h.
14076         * pretty-print.c: Don't include tree.h
14077         (pp_base_format): Don't handle %K here.
14078         (pp_base_tree_identifier): Move to tree-pretty-print.c.
14079         * pretty-print.h (text_info): Change abstract_origin to x_data.
14080         (pp_tree_identifier, pp_unsupported_tree,
14081         pp_base_tree_identifier): Move to tree-pretty-print.h.
14082         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
14083         tree-pretty-print.h: New files.
14084         * tree-pretty-print.c: Include tree-pretty-print.h.
14085         (percent_K_format): New.  Moved from pretty-print.c.
14086         (pp_base_tree_identifier): Move from pretty-print.c.
14087         * c-objc-common.c: Include tree-pretty-print.h.
14088         (c_tree_printer): Handle %K here.
14089         * langhooks.c: Include tree-diagnostic.h.
14090         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
14091         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
14092         (default_tree_printer): Handle %K using percent_K_format.
14093         (general_init): Use default_tree_diagnostic_starter.
14094         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
14095         (free_lang_data): Use default_tree_diagnostic_starter.
14096         * c-pretty-print.c: Include tree-pretty-print.h.
14097         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
14098         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
14099         * dwarf2out.c: Include tree-pretty-print.h.
14100         * except.c: Include tree-pretty-print.h.
14101         * gimple-pretty-print.c: Include tree-pretty-print.h and
14102         gimple-pretty-print.h.
14103         * gimplify.c: Include tree-pretty-print.h.
14104         * graphite-poly.c: Include tree-pretty-print.h and
14105         gimple-pretty-print.h.
14106         * ipa-cp.c: Include tree-pretty-print.h.
14107         * ipa-inline.c: Include gimple-pretty-print.h.
14108         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
14109         * ipa-pure-const.c: Include gimple-pretty-print.h.
14110         * ipa-struct-reorg.c: Include tree-pretty-print.h and
14111         gimple-pretty-print.h.
14112         * ipa-type-escape.c: Include tree-pretty-print.h.
14113         * print-rtl.c: Include tree-pretty-print.h.
14114         * print-tree.c: Include gimple-pretty-print.h.
14115         * sese.c: Include tree-pretty-print.h.
14116         * tree-affine.c: Include tree-pretty-print.h.
14117         * tree-browser.c: Include tree-pretty-print.h.
14118         * tree-call-cdce.c: Include gimple-pretty-print.h.
14119         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
14120         * tree-chrec.c: Include tree-pretty-print.h.
14121         * tree-data-ref.c: Include tree-pretty-print.h and
14122         gimple-pretty-print.h.
14123         * tree-dfa.c: Include tree-pretty-print.h.
14124         * tree-if-conv.c: Include tree-pretty-print.h and
14125         gimple-pretty-print.h.
14126         * tree-inline.c: Include tree-pretty-print.h.
14127         * tree-into-ssa.c: Include tree-pretty-print.h and
14128         gimple-pretty-print.h.
14129         * tree-nrv.c: Include tree-pretty-print.h.
14130         * tree-object-size.c: Include tree-pretty-print.h and
14131         gimple-pretty-print.h.
14132         * tree-outof-ssa.c: Include tree-pretty-print.h and
14133         gimple-pretty-print.h.
14134         * tree-parloops.c: Include tree-pretty-print.h and
14135         gimple-pretty-print.h.
14136         * tree-predcom.c: Include tree-pretty-print.h and
14137         gimple-pretty-print.h.
14138         * tree-scalar-evolution.c: Include tree-pretty-print.h and
14139         gimple-pretty-print.h.
14140         * tree-sra.c: Include tree-pretty-print.h.
14141         * tree-ssa-address.c: Include tree-pretty-print.h.
14142         * tree-ssa-alias.c: Include tree-pretty-print.h.
14143         * tree-ssa-ccp.c: Include tree-pretty-print.h and
14144         gimple-pretty-print.h.
14145         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
14146         * tree-ssa-copy.c: Include tree-pretty-print.h and
14147         gimple-pretty-print.h.
14148         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
14149         * tree-ssa-dce.c: Include tree-pretty-print.h and
14150         gimple-pretty-print.h.
14151         * tree-ssa-dom.c: Include tree-pretty-print.h and
14152         gimple-pretty-print.h.
14153         * tree-ssa-dse.c: Include gimple-pretty-print.h.
14154         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
14155         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
14156         * tree-ssa-live.c: Include tree-pretty-print.h and
14157         gimple-pretty-print.h.
14158         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
14159         gimple-pretty-print.h.
14160         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
14161         gimple-pretty-print.h.
14162         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
14163         gimple-pretty-print.h.
14164         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
14165         gimple-pretty-print.h.
14166         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
14167         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
14168         * tree-ssa-operands.c: Include tree-pretty-print.h and
14169         gimple-pretty-print.h.
14170         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
14171         gimple-pretty-print.h.
14172         * tree-ssa-pre.c: Include tree-pretty-print.h and
14173         gimple-pretty-print.h.
14174         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
14175         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
14176         gimple-pretty-print.h.
14177         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
14178         gimple-pretty-print.h.
14179         * tree-ssa-sink.c: Include gimple-pretty-print.h.
14180         * tree-ssa-ter.c: Include tree-pretty-print.h and
14181         gimple-pretty-print.h.
14182         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
14183         * tree-ssa.c: Include tree-pretty-print.h and
14184         gimple-pretty-print.h.
14185         * tree-stdarg.c: Include gimple-pretty-print.h.
14186         * tree-switch-conversion.c: Include gimple-pretty-print.h.
14187         * tree-tailcall.c: Include tree-pretty-print.h and
14188         gimple-pretty-print.h.
14189         * tree-vect-data-refs.c: Include tree-pretty-print.h and
14190         gimple-pretty-print.h.
14191         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
14192         gimple-pretty-print.h.
14193         * tree-vect-loop.c: Include tree-pretty-print.h and
14194         gimple-pretty-print.h.
14195         * tree-vect-patterns.c: Include gimple-pretty-print.h.
14196         * tree-vect-slp.c: Include tree-pretty-print.h and
14197         gimple-pretty-print.h.
14198         * tree-vect-stmts.c: Include tree-pretty-print.h and
14199         gimple-pretty-print.h.
14200         * tree-vectorizer.c: Include tree-pretty-print.h.
14201         * tree-vrp.c: Include tree-pretty-print.h and
14202         gimple-pretty-print.h.
14203         * value-prof.c: Include tree-pretty-print.h and
14204         gimple-pretty-print.h.
14205         * var-tracking.c: Include tree-pretty-print.h.
14206         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
14207         (tree-diagnostic.o): New dependencies.
14208         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
14209         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
14210         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
14211         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
14212         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
14213         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
14214         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
14215         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
14216         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
14217         tree-ssa-address.o, tree-ssa-loop-niter.o,
14218         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
14219         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
14220         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
14221         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
14222         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
14223         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
14224         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
14225         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
14226         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
14227         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
14228         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
14229         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
14230         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
14231         tree-switch-conversion.o, var-tracking.o, value-prof.o,
14232         cfgexpand.o, pretty-print.o): Update dependencies.
14233
14234 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
14235
14236         * tree-ssa-structalias.c: Remove tm_p.h from include.
14237
14238 2010-05-21  Jeff Law  <law@redhat.com>
14239
14240         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
14241
14242 2010-05-21  Jason Merrill  <jason@redhat.com>
14243
14244         * tree-eh.c (cleanup_is_dead_in): New.
14245         (lower_try_finally): Don't generate a dead cleanup region.
14246         (lower_cleanup): Likewise.
14247
14248 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
14249
14250         PR debug/44223
14251         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
14252         unchain each use from the cyclic next_regno_use chain first.
14253
14254 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
14255
14256         * real: Do not include gmp.h, mpfr.h, and mpc.h.
14257         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
14258         (real_value_negate, real_value_abs): New prototypes.
14259         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
14260         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
14261         new include file for interface between MPFR and REAL_VALUE_TYPE.
14262         * real.c: Include realmpfr.h.
14263         (real_arithmetic2): Remove legacy function.
14264         (real_value_negate): New.
14265         (real_value_abs): New.
14266         (mfpr_from_real, real_from_mpfr): Move from here...
14267         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
14268         * builtins.c: Include realmpfr.h.
14269         * fold-const.c: Include realmpfr.h.
14270         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
14271         (fold_negate_const): Likewise.
14272         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
14273         * toplev.c: Include realmpfr.h.
14274         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
14275         and real_value_negate.
14276         * fixed-value.c (check_real_for_fixed_mode): Likewise.
14277         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
14278         (vfp3_const_double_index): Likewise.
14279         (arm_print_operand): Likewise.
14280         * Makefile.in: Update dependencies.
14281
14282 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
14283
14284         * config/s390/s390.c (override_options): Increase the default
14285         of max-completely-peel-times.
14286
14287 2010-05-21  Julian Brown  <julian@codesourcery.com>
14288             Mark Mitchell  <mark@codesourcery.com>
14289
14290         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
14291         sibling calls for Thumb-1.
14292         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
14293         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
14294         Thumb-2.
14295         (*call_insn, *call_value_insn): Don't use for Thumb-2.
14296         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
14297         for Thumb-2.
14298         (return): New expander.
14299         (*arm_return): New name for ARM return insn.
14300         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
14301
14302 2010-05-19  Joel Sherrill  <joel.sherrill@oarcorp.com>
14303
14304         * config.gcc (sparc64-*-rtems*): New target.
14305
14306 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
14307
14308         * tree.c (build_function_decl_skip_args): Fix grammar.
14309         (build_function_type_list_1): Fix typos, adjust formatting.
14310
14311 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
14312
14313         * tree.h: Include real.h and fixed-value.h as basic datatypes.
14314         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
14315         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
14316         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
14317         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
14318         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
14319         tree-pretty-print.c, tree-loop-distribution.c,
14320         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
14321         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
14322         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
14323         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
14324         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
14325         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
14326         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
14327         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
14328         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
14329         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
14330         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
14331         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
14332         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
14333         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
14334         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
14335         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
14336         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
14337         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
14338         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
14339         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
14340         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
14341         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
14342         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
14343         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
14344         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
14345         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
14346         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
14347         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
14348         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
14349         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
14350         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
14351         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
14352         config/score/score7.c, config/score/score.c, config/arm/arm.c,
14353         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
14354         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
14355         config/bfin/bfin.c: Clean up redundant includes.
14356         * Makefile.in: Update accordingly.
14357
14358 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
14359
14360         PR middle-end/44204
14361         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
14362         statement has no arguments.
14363
14364 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
14365
14366         PR/44139
14367         * varasm.c (emutls_decl): Merge attributes to new decl.
14368
14369 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
14370
14371         PR middle-end/44101
14372         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
14373         around the uniquized constructor if its type requires a conversion.
14374
14375 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
14376
14377         PR debug/44205
14378         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
14379         at -O0 goto_locus of any of the incoming edges differs from
14380         goto_locus of outgoing edge, or gimple_location of any of the
14381         labels differs.
14382
14383 2009-09-14  Vladimir Makarov  <vmakarov@redhat.com>
14384
14385         * ira.c (ira_non_ordered_class_hard_regs): Define.
14386         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
14387         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
14388         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
14389         cost of unaligned hard regs when allocating multi-reg pseudos.
14390
14391 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
14392
14393         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
14394         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
14395         for TARGET_NO_FLOAT.
14396         * config/mips/mips.c (mips_file_start): Expand conditional expression
14397         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
14398         (mips_override_options): Move -mno-float override -msoft-float and
14399         -mhard-float.
14400         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
14401         Condition(TARGET_SUPPORTS_NO_FLOAT).
14402         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
14403         __mips_no_float here.
14404         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
14405         (TARGET_SUPPORTS_NO_FLOAT): Define.
14406         * config/mips/sdemtk.opt: Delete.
14407
14408 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
14409
14410         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
14411
14412 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
14413
14414         PR target/43733
14415         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
14416         * configure: Regenerate.
14417         * config.in: Regenerate.
14418         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
14419         instead of sahf only for 64bit targets.
14420
14421 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
14422
14423         PR debug/44178
14424         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
14425         setup_ref_regs for DEBUG_INSNs.
14426
14427 2010-05-20  Jan Hubicka  <jh@suse.cz>
14428
14429         PR middle-end/44197
14430         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
14431
14432 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
14433
14434         PR bootstrap/43870
14435         * df-scan.c (df_ref_compare): Stabilize sort.
14436
14437 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
14438
14439         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
14440         argument.  Don't use DW_OP_piece if offset is non-zero,
14441         put offset into second DW_OP_bit_piece argument.
14442         (dw_sra_loc_expr): Adjust callers.  For memory expressions
14443         compute offset.
14444
14445 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
14446
14447         PR target/44202
14448         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
14449         settings for 16-bit-constant "addo" alternative.
14450
14451 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
14452
14453         * config/mips/mips-dsp.md (add<DSPV:mode>3,
14454         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
14455
14456         PR target/43764
14457         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
14458         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
14459         Use it.
14460
14461 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
14462
14463         * diagnostic.c (FLOAT, FFS): Don't undefine.
14464         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
14465         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
14466         include ordering.
14467
14468 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
14469
14470         * combine.c (propagate_for_debug): Call make_compound_operation
14471         on the source value.
14472         (try_combine): When implementing a split chosen by find_split_point,
14473         either copy i2src or set it to null.  Assert that i2src is not null
14474         before substituting into CALL_INSN_FUNCTION_USAGE.
14475
14476 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
14477
14478         * double-int.h (double_int_ior): New function.
14479         * tree.h (build_int_cst_wide_type): Remove.
14480         * tree.c (build_int_cst_wide_type): Remove.
14481         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
14482         of build_int_cst_wide_type.
14483         * stor-layout.c (set_sizetype): (Ditto.).
14484         * dojump.c (do_jump): Use build_int_cstu instead of
14485         build_int_cst_wide_type.
14486
14487 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
14488
14489         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
14490         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
14491         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
14492         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
14493         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
14494         propagate the 'data' argument to copy_tree_r.
14495         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
14496         Propagate 'data' argument to walk_tree.
14497         (copy_if_shared): New function.
14498         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
14499         (unmark_visited): New function.
14500         (unshare_body): Call copy_if_shared instead of doing it manually.
14501         (unvisit_body): Call unmark_visited instead of doing it manually.
14502
14503 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
14504
14505         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
14506         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
14507         * hooks.c: Likewise.
14508         * target-def.h (TARGET_FOLD_BUILTIN): Define to
14509         hook_tree_tree_int_treep_bool_null.
14510         * target.h (struct gcc_target): Update signature of fold_builtin
14511         field.
14512         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
14513         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
14514         instead of the call expression.
14515         (fold_builtin_call_array): Pass n and argarray directly.
14516         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
14517         consing a list.
14518         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
14519         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
14520         `i' and use it in place of `arity'.
14521         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
14522         Dereference `args' directly.
14523         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
14524
14525 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14526
14527         * doc/sourcebuild.texi (Effective-Target Keywords): Document
14528         3dnow, sse3, sse2.
14529         (Directives): Document optional dg-require-effective-target
14530         selector.
14531
14532 2010-05-19  Richard Guenther  <rguenther@suse.de>
14533
14534         PR lto/44196
14535         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
14536
14537 2010-05-19  Richard Guenther  <rguenther@suse.de>
14538
14539         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
14540         * common.opt (fwhopr=): New.
14541         * opts.c (common_handle_option): Handle OPT_fwhopr.
14542         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
14543         * collect2.c (main): Match -fwhopr*.
14544         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
14545         Execute ltrans stage in parallel when jobs is bigger than 1.
14546
14547 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14548
14549         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
14550         pentiumpro on Solaris 8/x86 with Sun as.
14551         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
14552         hidden alias bug.
14553         (gcc_cv_as_ix86_quad): Check for .quad directive.
14554         * configure: Regenerate.
14555         * config.in: Regenerate.
14556         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
14557
14558 2010-05-19  Martin Jambor  <mjambor@suse.cz>
14559
14560         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
14561         also for indirect edges.  Actual printing moved...
14562         (ipa_print_node_jump_functions_for_edge): ...here.
14563         (ipa_compute_jump_functions): Renamed to
14564         ipa_compute_jump_functions_for_edge and made static.
14565         (ipa_compute_jump_functions): New function.
14566         (make_edge_direct_to_target): Check if the number of arguments on
14567         the newly direct edge is the same as the number of parametrs of
14568         the callee.
14569         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
14570         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
14571         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
14572         analysis functions unconditionally, call the new
14573         ipa_analyze_params_uses on the node instead of every edge.
14574
14575 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
14576
14577         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
14578         to tree.
14579         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
14580         also checks for a constant int vs.  non-constant but
14581         loop-invariant steps.
14582         (find_or_create_group): Change the sort algorithm to only consider
14583         steps that are constant ints.
14584         (idx_analyze_ref): Adopt code to handle a tree instead of a
14585         HOST_WIDE_INT for step.
14586         (gather_memory_references_ref): Handle tree instead of int and be
14587         prepared to see a NULL_TREE.
14588         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
14589         prefetches if the step cannot be calculated at compile time.
14590         (issue_prefetch_ref): Issue prefetches for non-constant but
14591         loop-invariant steps.
14592
14593 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
14594
14595         Revert:
14596         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
14597
14598         * tree.h (build_call_list): Remove.
14599         * tree.c (build_call_list): Remove.
14600
14601 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
14602
14603         * tree.h (build_call_list): Remove.
14604         * tree.c (build_call_list): Remove.
14605
14606 2010-05-18  Jan Hubicka  <jh@suse.cz>
14607
14608         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
14609
14610 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
14611
14612         PR rtl-optimization/43332
14613         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
14614
14615 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
14616
14617         * tree.h (build_int_cstu): Implement as static inline.
14618         * tree.c (build_int_cstu): Remove function.
14619         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
14620         sign extended.
14621
14622 2010-05-18  Richard Guenther  <rguenther@suse.de>
14623
14624         PR lto/44143
14625         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
14626         (debug): Initialize from -save-temps.
14627         (collect_execute): Print command-line when verbose.
14628         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
14629         for ltrans invocation.  Produce -dumpbase flag again.
14630         (process_args): Remove.
14631         (main): Simplify.
14632         * collect2.c (maybe_run_lto_and_relink): Only pass object
14633         files to lto-wrapper.
14634         * gcc.c (LINK_COMMAND_SPEC): Likewise.
14635
14636 2010-05-18  Jan Hubicka  <jh@suse.cz>
14637
14638         * opts.c (decode_options): Do not disable whopr at ipa_cp.
14639         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
14640
14641 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
14642
14643         PR lto/44184
14644         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
14645         in a GIMPLE_ASM.
14646         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
14647         in a GIMPLE_ASM.
14648
14649 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
14650
14651         PR debug/41371
14652         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
14653         rtx_equal_p inline.
14654
14655 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
14656
14657         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
14658         lto-macho as lto_binary_reader.
14659
14660         * darwin.c (darwin_asm_named_section): Do not add assembler comment
14661         after .section directive; just print it before the directive instead.
14662
14663 2010-05-17  Jan Hubicka  <jh@suse.cz>
14664
14665         * cgraph.c (cgraph_create_virtual_clone): Only check
14666         versionable_function_p when not in wpa and checking is enabled.
14667         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
14668         there are no more functions to materialize.
14669
14670 2010-05-17  Jan Hubicka  <jh@suse.cz>
14671
14672         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
14673         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
14674         New functions.
14675         (output_cgraph): Call output_cgraph_opt_summary.
14676         (input_cgrpah): Call input_cgraph_opt_summary.
14677         (output_cgraph_opt_summary_p, output_node_opt_summary,
14678         input_node_opt_summary, input_cgraph_opt_section): New functions.
14679         * lto-section-in.c (lto_section_name): Add cgraphopt.
14680         * tree-inline.c (tree_function_versioning): Handle parm_num.
14681         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
14682         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
14683
14684 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
14685
14686         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
14687         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
14688         the insn to prefetch ratio heuristic to loops with known trip count.
14689
14690 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
14691
14692         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
14693         (schedule_prefetches): Do not generate a prefetch if the unroll factor
14694         is far from what is required by the prefetch.
14695
14696 2010-05-17  Jan Hubicka  <jh@suse.cz>
14697
14698         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
14699         (ipcp_estimate_growth): Likewise.
14700         (ipcp_const_param_count): Likewise.
14701         (ipcp_insert_stage): Likewise.
14702         * ipa-prop.c (visit_load_for_mod_analysis): New function.
14703         (visit_store_addr_for_mod_analysis): Set used flag.
14704         (ipa_detect_param_modifications): Set used flag for SSE params;
14705         update use of walk_stmt_load_store_addr_ops.
14706         (ipa_print_node_params): Print used flag.
14707         (ipa_write_node_info): Stream used flag.
14708         (ipa_read_node_info): Likewise.
14709         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
14710         (ipa_is_param_used): New function.
14711         (lto_ipa_fixup_call_notes): Remove unused declaration.
14712
14713 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14714
14715         PR target/44074
14716         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
14717         * configure: Regenerate.
14718         * config.in: Regenerate.
14719         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
14720         !HAVE_AS_IX86_REP_LOCK_PREFIX.
14721         Don't emit whitespace.
14722         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
14723         (*rep_movsi): Likewise.
14724         (*rep_movsi_rex64): Likewise.
14725         (*rep_movqi): Likewise.
14726         (*rep_movqi_rex64): Likewise.
14727         (*rep_stosdi_rex64): Likewise.
14728         (*rep_stossi): Likewise.
14729         (*rep_stossi_rex64): Likewise.
14730         (*rep_stosqi): Likewise.
14731         (*rep_stosqi_rex64): Likewise.
14732         (*cmpstrnqi_nz_1): Use {%;} after repz.
14733         (*cmpstrnqi_nz_rex_1): Likewise.
14734         (*cmpstrnqi_1): Likewise.
14735         (*cmpstrnqi_rex_1): Likewise.
14736         (*strlenqi_1): Use {%;} after repnz.
14737         (*strlenqi_rex_1): Likewise.
14738         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
14739         (*sync_compare_and_swap<mode>): Likewise.
14740         (sync_double_compare_and_swap<mode>): Likewise.
14741         (*sync_double_compare_and_swapdi_pic): Likewise.
14742         (sync_old_add<mode>): Likewise.
14743         (sync_add<mode>): Likewise.
14744         (sync_sub<mode>): Likewise.
14745         (sync_<code><mode>): Likewise.
14746
14747 2010-05-17  Martin Jambor  <mjambor@suse.cz>
14748
14749         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
14750         otr_token and polymorphic.
14751         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
14752         (cgraph_clone_edge): Copy the above fields.
14753         * tree.c (get_binfo_at_offset): New function.
14754         * tree.h (get_binfo_at_offset): Declare.
14755         * ipa-prop.h (enum jump_func_type): Added known_type jump function
14756         type, reordered items, updated comments.
14757         (union jump_func_value): Added base_type field, reordered fields.
14758         (enum ipa_lattice_type): Moved down in the file.
14759         (struct ipa_param_descriptor): New field polymorphic.
14760         (ipa_is_param_polymorphic): New function.
14761         * ipa-prop.c: Include gimple.h and gimple-fold.h.
14762         (ipa_print_node_jump_functions): Print known type jump functions.
14763         (compute_complex_pass_through): Renamed to...
14764         (compute_complex_assign_jump_func): this.
14765         (compute_complex_ancestor_jump_func): New function.
14766         (compute_known_type_jump_func): Likewise.
14767         (compute_scalar_jump_functions): Create known type and complex ancestor
14768         jump functions.
14769         (ipa_note_param_call): New parameter polymorphic, set the corresponding
14770         flag in the call note accordingly.
14771         (ipa_analyze_call_uses): Renamed to...
14772         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
14773         variable var only in the block where it is used.
14774         (ipa_analyze_virtual_call_uses): New function.
14775         (ipa_analyze_call_uses): Likewise.
14776         (combine_known_type_and_ancestor_jfs): Likewise.
14777         (update_jump_functions_after_inlining): Implemented handling of a
14778         number of new jump function types combination.
14779         (print_edge_addition_message): Removed.
14780         (make_edge_direct_to_target): New function.
14781         (try_make_edge_direct_simple_call): Likewise.
14782         (try_make_edge_direct_virtual_call): Likewise.
14783         (update_call_notes_after_inlining): Renamed to...
14784         (update_indirect_edges_after_inlining): this.  Moved edge creation for
14785         indirect calls to try_make_edge_direct_simple_call, also calls
14786         try_make_edge_direct_virtual_call for virtual calls.
14787         (ipa_print_node_params): Changed the header message.
14788         (ipa_write_jump_function): Stream also known type jump functions.
14789         (ipa_read_jump_function): Likewise.
14790         (ipa_write_indirect_edge_info): Stream new fields in
14791         cgraph_indirect_call_info.
14792         (ipa_read_indirect_edge_info): Likewise.
14793         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
14794         GIMPLE_FOLD_H.
14795
14796 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14797
14798         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
14799
14800 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
14801
14802         * tree.h (CALL_EXPR_ARGS): Delete.
14803         (call_expr_arglist): Delete.
14804         * tree.c (call_expr_arglist): Delete.
14805         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
14806         targetm.fold_builtin.
14807         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
14808         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
14809         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
14810         arglist parameter.  Use CALL_EXPR_ARG.
14811         (picochip_expand_builtin_3op): Likewise.
14812         (picochip_expand_builtin_2opvoid): Likewise.
14813         (picochip_expand_array_get): Likewise.
14814         (picochip_expand_array_put): Likewise.
14815         (picochip_expand_array_testport): Likewise.
14816         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
14817         rather than arglist.
14818         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
14819         CALL_EXPR_ARGS.
14820         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
14821         than TREE_VALUE and TREE_CHAIN.
14822         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
14823         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
14824         the arglist.
14825
14826 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
14827
14828         PR bootstrap/42347
14829         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
14830         to have no fallthru edge.
14831
14832         PR middle-end/44102
14833         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
14834         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
14835         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
14836         add BARRIER after previous bb if needed.
14837
14838 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
14839
14840         * tree.c (build_function_type_list_1): Remove bogus assert condition.
14841
14842 2010-05-17  Alan Modra  <amodra@gmail.com>
14843
14844         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
14845         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
14846         with copy_reg rtx param.
14847         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
14848         Correct cases where code for ABI_V4 did not initialise the reg
14849         used to access frame.  Also leave frame_reg_rtx as sp for large
14850         frames that save no regs.
14851
14852 2010-05-17  Martin Jambor  <mjambor@suse.cz>
14853
14854         PR middle-end/44133
14855         * tree-sra.c (create_access_replacement): New parameter rename, mark
14856         the replaement for renaming only when it is true.
14857         (get_access_replacement): Pass true in the rename parameter of
14858         create_access_replacement.
14859         (get_unrenamed_access_replacement): New function.
14860         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
14861         replacement declaration from it.
14862
14863 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
14864
14865         * function.c (try_fit_stack_local, add_frame_space): New static
14866         functions.
14867         (assign_stack_local_1): Use them.  Look for opportunities to use
14868         space previously wasted on alignment.
14869         * function.h (struct frame_space): New.
14870         (struct rtl_data): Add FRAME_SPACE_LIST member.
14871         * reload1.c (something_was_spilled): New static variable.
14872         (alter_reg): Set it.
14873         (reload): Test it in addition to testing if the frame size changed.
14874
14875 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
14876
14877         * config/s390/s390.c: Define sane prefetch settings and activate
14878         flag_prefetch_loop_arrays on -O3.
14879         * config/s390/s390.h: Declare that read can use write prefetch.
14880
14881 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
14882
14883         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
14884         build.
14885
14886 2010-05-16  Jan Hubicka  <jh@suse.cz>
14887
14888         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
14889         function body; do not check stdarg field of struct function.
14890
14891 2010-05-16  Jan Hubicka  <jh@suse.cz>
14892
14893         * cgraph.c (dump_cgraph_node): Dump versionable flag.
14894         * cgraph.h (cgraph_local_info): Add versionable flag.
14895         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
14896         (ipcp_versionable_function_p): Use it.
14897         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
14898         versionable flag.
14899
14900 2010-05-16  Jan Hubicka  <jh@suse.cz>
14901
14902         * cgraph.c (cgraph_clone_node): Take decl argument and insert
14903         clone into hash when it is different from orig.
14904         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
14905         * cgraph.h (cgraph_clone_node): Update prototype.
14906         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
14907         (lto_cgraph_encoder_delete): Delete body map.
14908         (lto_cgraph_encoder_size): Move to header.
14909         (lto_cgraph_encoder_encode_body_p,
14910         lto_set_cgraph_encoder_encode_body): New.
14911         (lto_output_node): Do not take written_decls argument; output clone_of
14912         pointer.
14913         (add_node_to): Add include_body_argument; call
14914         lto_set_cgraph_encoder_encode_body on master of the clone.
14915         (add_references): Update use of add_node_to.
14916         (compute_ltrans_boundary): Likewise.
14917         (output_cgraph): Do not create written_decls bitmap.
14918         (input_node): Take nodes argument; stream in clone_of correctly.
14919         (input_cgraph_1): Update use of input_node.
14920         * lto-streamer-out.c (lto_output): Use encoder info to decide
14921         what bodies to output.
14922         * ipa-inline.c (cgraph_clone_inlined_nodes,
14923         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
14924         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
14925         (lto_cgraph_encoder_size): Define here.
14926         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
14927         Declare.
14928
14929 2010-05-16  Richard Guenther  <rguenther@suse.de>
14930
14931         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
14932         -fipa-type-escape.
14933         * ipa-type-escape.c (gate_type_escape_vars): Run when
14934         -fipa-struct-reorg runs.
14935         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
14936         * common.opt (fipa-type-escape): Remove.
14937
14938 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
14939
14940         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
14941         (decode_options): Likewise.
14942         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
14943
14944 2010-05-16  Jan Hubicka  <jh@suse.cz>
14945
14946         * ipa.c (function_and_variable_visibility): Also bring local all
14947         aliases.
14948
14949 2010-05-16  Richard Guenther  <rguenther@suse.de>
14950
14951         * alias.c (nonoverlapping_memrefs_p): Remove use of
14952         IPA type-escape information.
14953
14954 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
14955
14956         * c-common.c (c_common_reswords): Add _Static_assert for C.
14957         * c-parser.c (c_token_starts_declaration,
14958         c_parser_next_token_starts_declaration,
14959         c_parser_static_assert_declaration_no_semi,
14960         c_parser_static_assert_declaration): New.
14961         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
14962         Handle static assertions if static_assert_ok.
14963         (c_parser_external_declaration, c_parser_declaration_or_fndef,
14964         c_parser_compound_statement_nostart, c_parser_label,
14965         c_parser_for_statement, c_parser_objc_methodprotolist,
14966         c_parser_omp_for_loop): All callers of
14967         c_parser_declaration_or_fndef changed.
14968         (c_parser_struct_declaration): Handle static assertions.
14969         (c_parser_compound_statement_nostart): Use
14970         c_parser_next_token_starts_declaration and
14971         c_token_starts_declaration to detect start of declarations.
14972         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
14973         Likewise.
14974
14975 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
14976
14977         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
14978         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
14979         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
14980         TARGET_FUNCTION_VALUE_REGNO_P): Define.
14981         (mmix_function_outgoing_value): Rename to...
14982         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
14983         (mmix_function_value_regno_p): Make static.
14984         (mmix_libcall_value): New function.
14985         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
14986         mmix_function_value_regno_p): Remove declaration.
14987
14988 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
14989
14990         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
14991         BUILT_IN_ALLOCA if stack checking is enabled.
14992
14993 2010-05-16  Richard Guenther  <rguenther@suse.de>
14994
14995         * var-tracking.c (vars_copy_1): Inline ...
14996         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
14997         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
14998         (variable_merge_over_cur): Adjust.  Merge asserts.
14999         (variable_merge_over_src): Likewise.
15000         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
15001         (variable_post_merge_new_vals): Merge asserts.
15002         (variable_post_merge_perm_vals): Likewise.
15003         (find_mem_expr_in_1pdv): Likewise.
15004         (dataflow_set_different_value): Remove.
15005         (onepart_variable_different_p): Merge asserts.
15006         (variable_different_p): Likewise.
15007         (dataflow_set_different_1): Inline ...
15008         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
15009         (emit_notes_for_differences_1): Merge asserts.
15010
15011 2010-05-16  Richard Guenther  <rguenther@suse.de>
15012
15013         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
15014         * optabs.c (libfunc_decl_hash): Likewise.
15015         * varasm.c (emutls_decl): Likewise.
15016
15017 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
15018
15019         * c-decl.c: Don't include gimple.h.
15020         (merge_decls): Do not copy gimple_body.
15021
15022 2010-05-15  Jason Merrill  <jason@redhat.com>
15023
15024         * c.opt: Add -fnothrow-opt.
15025
15026 2010-05-15  Jan Hubicka  <jh@suse.cz>
15027
15028         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
15029         analyzed.
15030         * passes.c (ipa_write_summaries): Write all analyzed nodes.
15031
15032 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
15033
15034         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
15035         * Makefile.in: Add it.
15036         Fix all other Makefile dependencies for changes below.
15037         * tree.h: Include it instead of defining VEC primitives here.
15038         * gimple.h: Likewise.
15039         * rtl.h: Likewise.
15040         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
15041         * except.h: Include vecir.h, break dependence on tree.h.
15042
15043         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
15044         Move from here...
15045         * tree-iterator.c: ...to here.
15046         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
15047
15048         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
15049         tm_p.h.
15050         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
15051         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
15052         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
15053         tree-mudflap.h, and target.h.
15054         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
15055         predict.h, tree-inline.h, gimple.h, and langhooks.h.
15056         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
15057         Add FIXME for why gimple.h is still included (should be unnecessary
15058         since GCC 4.5 gimplification unit-at-a-time).
15059         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
15060         * c-pragma.c: Add FIXME for why function.h needs to be included just
15061         for cfun, at front-end level.
15062         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
15063         Do not include ggc.h, but include vecprim.h for VEC(char).
15064         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
15065         Explain why target.h is included.
15066         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
15067         Explain why gimple.h is included.
15068         * c-ppoutput.c: Do not include tm.h.
15069         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
15070         * c-parses.c: Explain why rtl.h is included, and that this (and only
15071         this) is also why tm.h must be included.
15072         Do not include except.h.
15073         * c-lang.c: Do not include ggc.h.
15074
15075 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
15076
15077         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
15078
15079 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
15080
15081         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
15082         unions by default if those structs and unions have no tags.  Do
15083         not condition anonymous struct and unions handling on flag_iso.
15084         Allow anonymous structs and unions for C1X.
15085         (finish_struct): Do not diagnose lack of named fields when
15086         anonymous structs and unions present for C1X.  Accept flexible
15087         array members in structure with anonymous structs or unions but no
15088         directly named fields.
15089         * doc/extend.texi (Unnamed Fields): Update.
15090
15091 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
15092
15093         * gimple.h (compare_field_offset): Rename into...
15094         (gimple_compare_field_offset): ...this.
15095         * gimple.c (compare_field_offset): Rename into...
15096         (gimple_compare_field_offset): ...this.  Compare the full access if
15097         the offset is self-referential.
15098         (gimple_types_compatible_p): Adjust for above renaming.
15099         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
15100         DECL_NONADDRESSABLE_P flag of fields before merging them.
15101
15102 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
15103
15104         * tree.h (ctor_to_list): Delete.
15105         * tree.c (ctor_to_list): Delete.
15106
15107 2010-05-15  Jan Hubicka  <jh@suse.cz>
15108
15109         * ipa-reference.c: Include toplev.h
15110         (is_proper_for_analysis): Only add to all_module_statics
15111         if it is allocated.
15112         (write_node_summary_p, stream_out_bitmap,
15113         ipa_reference_write_optimization_summary,
15114         ipa_reference_read_optimization_summary): New.
15115         (struct ipa_opt_pass_d pass_ipa_reference): Add
15116         optimization summary streaming.
15117         * lto-cgraph.c (referenced_from_this_partition_p,
15118         reachable_from_this_partition_p): New functions.
15119         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
15120         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
15121         * opts.c (decode_options): Enable ipa_reference.
15122         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
15123         * lto-streamer.h (referenced_from_this_partition_p,
15124         reachable_from_this_partition_p): Declare.
15125
15126 2010-05-15  Richard Guenther  <rguenther@suse.de>
15127
15128         PR tree-optimization/44038
15129         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
15130         taking the address of a V_C_E of a constant.
15131
15132 2010-05-14  Jan Hubicka  <jh@suse.cz>
15133
15134         * tree.h (memory_identifier_string): Remove.
15135         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
15136         (ipa_reference_global_vars_info_d): Remove statics_not_read and
15137         statics_not_written.
15138         (ipa_reference_optimization_summary_d): New structure.
15139         (ipa_reference_optimization_summary_t): New type and vector.
15140         (ipa_reference_vars_info_d): Embedd structures instead of using
15141         pointers.
15142         (reference_vars_to_consider): Remove out of GGC space.
15143         (module_statics_escape): Remove.
15144         (global_info_obstack): Rename to ...
15145         (optimization_summary_obstack): ... this one.
15146         (initialization_status_t): Remove.
15147         (memory_identifier_string): Remove.
15148         (get_reference_vars_info): Fix indenting.
15149         (set_reference_vars_info): Likewise.
15150         (get_reference_optimization_summary): New.
15151         (set_reference_optimization_summary): New.
15152         (get_global_reference_vars_info): Remove.
15153         (ipa_reference_get_read_global): Remove.
15154         (ipa_reference_get_written_global): Remove.
15155         (ipa_reference_get_not_read_global): Update.
15156         (ipa_reference_get_not_written_global): Update.
15157         (is_proper_for_analysis): Outlaw addressable.
15158         (propagate_bits): Update for new datastructures.
15159         (analyze_variable): Remove.
15160         (init_function_info): Update for new datastructures.
15161         (clean_function_local_data): Remove.
15162         (clean_function): Remove.
15163         (copy_global_bitmap): Use optimizations_summary_obstack.
15164         (duplicate_node_data): Duplicate optimization summary only.
15165         (remove_node_data): Remove optimization summary only.
15166         (generate_summary): Do not analyze variables; do not compute
15167         module_statics_escape; do not prune solutions by it.
15168         (read_write_all_from_decl): Fix typos in comments.
15169         (propagate): Doscover readonly and nonaddressable first;
15170         update for new datastructures; share global bitmaps.
15171         * ipa-reference.h (ipa_reference_get_read_global,
15172         ipa_reference_get_written_global): Remove.
15173         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
15174         * Makefile.in: Remove ipa-refereference from GT files.
15175
15176 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
15177
15178         PR debug/44112
15179         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
15180         for all SYMBOL_REF_DECLs.
15181
15182 2010-05-14  Jan Hubicka  <jh@suse.cz>
15183
15184         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
15185         (varpool_all_refs_explicit_p): New inline function.
15186         * ipa-reference.c: Update comment.
15187         (module_statics_written): Remove.
15188         (get_static_decl): Remove.
15189         (ipa_init): Do not initialize module_statics_written.
15190         (analyze_function): Likewise.
15191         (generate_summary): Likewise; do not compute module_statics_readonly
15192         and do not update variable flags.
15193         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
15194         * ipa.c: Inlucde flags.h
15195         (cgraph_local_node_p): New.
15196         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
15197         promote functions to local.
15198         (ipa_discover_readonly_nonaddressable_vars): New function.
15199         (function_and_variable_visibility): Use cgraph_local_node_p.
15200         * varpool.c (varpool_finalize_decl): Set force_output for
15201         DECL_PRESERVE_P vars.
15202
15203 2010-05-14  Jan Hubicka  <jh@suse.cz>
15204
15205         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
15206
15207 2010-05-14  Richard Guenther  <rguenther@suse.de>
15208
15209         PR tree-optimization/44119
15210         * tree-ssa-pre.c (eliminate): Properly mark replacement of
15211         a PHI node necessary.
15212
15213 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
15214
15215         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
15216
15217 2010-05-14  Jason Merrill  <jason@redhat.com>
15218
15219         PR c++/44127
15220         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
15221         (gimple_call_set_nothrow): New.
15222         * gimple.c (gimple_build_call_from_tree): Call it.
15223         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
15224
15225         PR c++/44127
15226         * gimplify.c (gimplify_seq_add_stmt): No longer static.
15227         * gimple.h: Declare it.
15228         * gimple.c (gimple_build_eh_filter): No ops.
15229
15230 2010-05-14  Jan Hubicka  <jh@suse.cz>
15231
15232         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
15233         nodes already in queue.
15234         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
15235         re-enqueueing node.
15236
15237 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
15238
15239         PR debug/44136
15240         * cfgexpand.c (expand_debug_expr): If non-memory op0
15241         has BLKmode, return NULL.
15242
15243 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
15244
15245         * config.gcc: Add support for --with-cpu option for bdver1.
15246         * config/i386/i386.h (TARGET_BDVER1): New macro.
15247         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
15248         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
15249         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
15250         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
15251         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
15252         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
15253         (processor_type): Add PROCESSOR_BDVER1.
15254         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
15255         processor_type in config/i386/i386.h.
15256         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
15257         movaps <reg, reg> instead of movapd <reg, reg> when replacing
15258         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
15259         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
15260         to emit packed xor instead of packed double/packed integer
15261         xor for SSE and AVX when moving a zero value.
15262         * config/i386/sse.md: Add check for
15263         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
15264         movapd/movdqa for SSE and AVX.
15265         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
15266         single logical operations i.e and, or and xor instead of packed double
15267         logical operations for SSE and AVX.
15268         * config/i386/i386-c.c (ix86_target_macros_internal):
15269         Add PROCESSOR_BDVER1.
15270         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
15271         (has_fma4, has_xop): New.
15272         * config/i386/i386.c (bdver1_cost): New variable.
15273         (m_BDVER1): New macro.
15274         (m_AMD_MULTIPLE): Add m_BDVER1.
15275         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
15276         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
15277         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
15278         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
15279         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
15280         x86_tune_sse_partial_reg_dependency,
15281         x86_tune_sse_unaligned_load_optimal,
15282         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
15283         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
15284         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
15285         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
15286         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
15287         Enable/disable for bdver1.
15288         (processor_target_table): Add bdver1_cost.
15289         (cpu_names): Add bdver1.
15290         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
15291          processor_alias_table.
15292         (ix86_expand_vector_move_misalign): Change.
15293         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
15294         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
15295         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
15296         of movupd/movdqu for SSE and AVX.
15297         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
15298         (ix86_tune_adjust_cost): Add code for bdver1.
15299         (standard_sse_constant_opcode): Add check for
15300         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
15301         of packed double xor for SSE and AVX.
15302
15303 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
15304
15305         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
15306         result to unsigned.
15307
15308 2010-05-14  Tristan Gingold  <gingold@adacore.com>
15309
15310         * toplev.c (default_debug_hooks): Remove this variable.
15311         (process_options): Remove assignments to default_debug_hooks.
15312
15313 2010-05-14  Martin Jambor  <mjambor@suse.cz>
15314
15315         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
15316         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
15317         * langhooks.h (struct lang_hooks_for_decls): Removed field
15318         fold_obj_type_ref.
15319         * tree.c (free_lang_data): Remove assignment to
15320         lang_hooks.fold_obj_type_ref.
15321         * tree.def (OBJ_TYPE_REF): Update comment.
15322
15323 2010-05-14  Richard Guenther  <rguenther@suse.de>
15324
15325         PR tree-optimization/44124
15326         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
15327
15328 2010-05-14  Alan Modra  <amodra@gmail.com>
15329
15330         PR target/44075
15331         * config/rs6000/rs6000.c (struct machine_function): Reorder
15332         fields for better packing.  Add lr_save_state.
15333         (rs6000_ra_ever_killed): Return lr_save_state if set.
15334         (rs6000_emit_eh_reg_restore): Set lr_save_state.
15335
15336 2010-05-13  Jan Hubicka  <jh@suse.cz>
15337
15338         * varpool.c (decide_is_variable_needed): Drop code checking
15339         TREE_SYMBOL_REFERENCED.
15340
15341 2010-05-13  Jan Hubicka  <jh@suse.cz>
15342
15343         * final.c (output_addr_const): Do not call mark_decl_referenced.
15344         * cgraphunit.c (process_function_and_variable_attributes): Use
15345         mark_needed_node dirrectly.
15346         (assemble_thunk): Do not call mark_decl_referenced.
15347
15348 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
15349
15350         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
15351
15352 2010-05-13  Jeff Law  <law@redhat.com>
15353
15354         * ira-conflicts.c (print_allocno_conflicts): New function broken out
15355         from...
15356         (print_conflicts): Call print_allocno_conflicts.
15357
15358 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
15359
15360         PR debug/44104
15361         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
15362         if it is NULL.
15363
15364 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
15365
15366         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
15367         t-mingw-w64 or t-mingw-w32 for multilib configuration.
15368         * config/i386/t-mingw-w32: New.
15369         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
15370
15371 2010-05-13  Martin Jambor  <mjambor@suse.cz>
15372
15373         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
15374         gimple-fold.c).
15375         * gimple-fold.c (get_base_binfo_for_type): New function.
15376         (gimple_get_relevant_ref_binfo): Likewise.
15377         (gimple_fold_obj_type_ref_known_binfo): Likewise.
15378         (gimple_fold_obj_type_ref): Likewise.
15379         (fold_gimple_call): Simplify condition for folding virtual calls
15380         and call gimple_fold_obj_type_ref.
15381         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
15382         (gimple_fold_obj_type_ref_known_binfo): Likewise.
15383
15384 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
15385
15386         * config/rs6000/rs6000-protos.h
15387         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
15388         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
15389         (rs6000_debug_mode_dependent_address)
15390         (rs6000_mode_dependent_address_ptr): Likewise.
15391
15392 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
15393
15394         PR debug/43983
15395         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
15396         by SRA.
15397         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
15398         * tree-sra.c (create_access_replacement): Call unshare_expr before
15399         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
15400         * dwarf2out.c: Include tree-flow.h.
15401         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
15402         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
15403         Handle DW_OP_bit_piece.
15404         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
15405         construct_piece_list, adjust_piece_list): New functions.
15406         (add_var_loc_to_decl): Handle SRA optimized variables.
15407         Adjust for var_loc_note to loc field renaming.
15408         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
15409         in VAR_LOCATION note.
15410         (new_loc_descr_op_bit_piece): New function.
15411         (dw_sra_loc_expr): New function.
15412         (dw_loc_list): Use it.  Don't handle the last range after the
15413         loop, handle it inside of the loop.  Adjust for var_loc_note
15414         to loc field renaming.
15415         (add_location_or_const_value_attribute): Only special case
15416         single entry loc lists if loc is NOTE_P.  Adjust for
15417         var_loc_note to loc field renaming.
15418         (dwarf2out_var_location): Don't set newloc->var_loc_note
15419         and newloc->next here.
15420
15421 2010-05-12  Jan Hubicka  <jh@suse.cz>
15422
15423         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
15424         flag.
15425         * cgraph.h (cgraph_only_called_directly_p,
15426         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
15427         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
15428         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
15429         (assemble
15430         * ipa.c (cgraph_remove_unreachable_nodes): Use
15431         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
15432         flags.
15433         * tree-inline.c (copy_bb): Check address_taken flag.
15434         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
15435         externally_visible flag.
15436
15437 2010-05-12  Jason Merrill  <jason@redhat.com>
15438
15439         PR bootstrap/44048
15440         PR target/44099
15441         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
15442         * sdbout.c (plain_type_1): Likewise.
15443         * dwarf2out.c (is_base_type): Likewise.
15444         (gen_type_die_with_usage): Likewise.  Generate
15445         DW_TAG_unspecified_type for any LANG_TYPE.
15446
15447 2010-05-12  Jan Hubicka  <jh@suse.cz>
15448
15449         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
15450         indrect edges too.
15451         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
15452         (cgraph_clone_edge): Update.
15453         (cgraph_node_remove_callees): Remove indirect calls too.
15454         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
15455         (cgraph_create_indirect_edge): Update prototype.
15456         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
15457         is_proper_for_analysis.
15458         (add_new_function, visited_nodes, function_insertion_hook_holder,
15459         get_local_reference_vars_info, mark_address_taken, mark_address,
15460         mark_load, mark_store, check_asm_memory_clobber, check_call,
15461         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
15462         (ipa_init): Do not initialize visited_nodes;
15463         function_insertion_hook_holder.
15464         (analyze_variable): Rewrite.
15465         (analyze_function): Rewrite.
15466         (copy_local_bitmap): Remove.
15467         (duplicate_node_dat): Do not duplicate local info.
15468         (generate_summary): Simplify to only walk cgraph.
15469         (write_node_summary_p, ipa_reference_write_summary,
15470         ipa_reference_read_summary): Remove.
15471         (propagate): Do not remove function insertion;
15472         generate summary.
15473         (pass_ipa_reference): NULLify summary handling fields.
15474         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
15475         (input_edge): Input ecf_flags.
15476         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
15477         (update_indirect_edges_after_inlining): Ignore edges with unknown
15478         param.
15479
15480 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
15481
15482         * implicit-zee.c: New file.
15483         * tree-pass.h (pass_implicit_zee): Declare.
15484         * passes.c (init_optimization_passes): Add zee pass.
15485         * common.opt (fzee): New flag.
15486         * timevar.def (TV_ZEE): Define.
15487         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
15488         and beyond.
15489         * Makefile.in (implicit-zee.o): Add new build file.
15490
15491 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
15492             Nathan Froyd  <froydnj@codesourcery.com>
15493
15494         * c-common.c (sync_resolve_params): Remove write-only variable.
15495
15496 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
15497
15498         * target.h (struct gcc_target): Add mode_dependent_address_p field.
15499         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
15500         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
15501         * targhooks.c (default_mode_dependent_address_p): New function.
15502         * targhooks.h (default_mode_dependent_address_p): Declare function.
15503         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
15504         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
15505         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
15506         target hook. Change return type to bool.
15507         * recog.h (mode_dependent_address_p): Change return type to bool.
15508
15509 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
15510             Nathan Froyd  <froydnj@codesourcery.com>
15511
15512         * tree-mudflap.c (build_function_type_0, build_function_type_1,
15513         build_function_type_2, build_function_type_3): Remove.
15514         (mudflap_init): Use build_function_type_list.
15515
15516 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
15517             Nathan Froyd  <froydnj@codesourcery.com>
15518
15519         * coverage.c (build_fn_info_value): Call build_constructor instead of
15520         build_constructor_from_list.
15521         (build_ctr_info_value): Likewise.
15522         (build_gcov_info): Likewise.
15523
15524 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
15525
15526         * tree.c (build_constructor): Compute TREE_CONSTANT for the
15527         resultant constructor.
15528         (build_constructor_single): Don't set TREE_CONSTANT.
15529         (build_constructor_from_list): Don't compute TREE_CONSTANT.
15530
15531 2010-05-12  Jan Hubicka  <jh@suse.cz>
15532
15533         * cgraph.h (struct varpool_node): Add aux.
15534         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
15535         * varpool.c (varpool_remove_node): Do not remove initializer.
15536         (varpool_reset_queue): Export.
15537         (varpool_finalize_decl): Volatile vars are forced to be output.
15538         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
15539         replaced decl.
15540         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
15541         process_references, varpool_can_remove_if_no_refs): New functions.
15542         (cgraph_remove_unreachable_nodes): Handle variables too.
15543
15544 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
15545
15546         PR target/44088
15547         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
15548
15549 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
15550
15551         PR middle-end/44085
15552         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
15553         change value of ORT_TASK.
15554         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
15555         (omp_notice_threadprivate_variable): New function.
15556         (omp_notice_variable): Call it for threadprivate variables.
15557         If enclosing ctx is a task, print enclosing task rather than
15558         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
15559         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
15560         if task has untied clause.
15561
15562         PR debug/42278
15563         * dwarf2out.c (base_type_die): Don't add name attribute here.
15564         (modified_type_die): Instead of sizetype use
15565         its underlying original type.  If a DW_TAG_base_type doesn't
15566         have name added, add __unknown__.
15567         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
15568         always call force_type_die instead.
15569
15570 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
15571
15572         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
15573         for __stack_chk_guard.
15574
15575 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
15576
15577         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
15578         don't call start_source_file debug hook here...
15579         (finish_options): ... but here, after outputting predefined and
15580         command line defines and undefs.
15581
15582         PR middle-end/44071
15583         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
15584         no fallthru edge.
15585         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
15586         optimizing away empty bb with no successors, move over its
15587         footer chain to fallthru predecessor.
15588         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
15589         (rtl_split_edge): For asm goto call patch_jump_insn even if
15590         splitting fallthru edge.
15591
15592         PR c++/44059
15593         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
15594         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
15595         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
15596         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
15597         on DW.ref.* decls.
15598
15599         PR c++/44062
15600         * c-parser.c (c_parser_expression): Mark LHS of a comma
15601         expression as read if it is a decl, handled component or
15602         COMPOUND_EXPR with that on the RHS.
15603         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
15604         if it is a decl or handled component.
15605
15606 2010-05-11  Jan Hubicka  <jh@suse.cz>
15607
15608         * lto-symtab.c (lto_symtab_free): New function.
15609         * lto-streamer.h (lto_symtab_free): Declare.
15610
15611 2010-05-11  Jan Hubicka  <jh@suse.cz>
15612
15613         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
15614         that if function is needed it is reachable.
15615         (lto_output_node): See if it the function is reachable or referenced.
15616         (output_cgraph): Update call of lto_output_node.
15617         * lto-streamer.h (reachable_from_other_partition_p): Declare.
15618
15619 2010-05-11  Jan Hubicka  <jh@suse.cz>
15620
15621         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
15622         Mark as used.
15623
15624 2010-05-11  Jan Hubicka  <jh@suse.cz>
15625
15626         PR tree-optimize/44063
15627         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
15628         queue.
15629         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
15630         limits.
15631         (estimate_function_body_sizes): Compute sizes even when disregarding.
15632
15633 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
15634
15635         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
15636
15637 2010-05-11  Jan Hubicka  <jh@suse.cz>
15638
15639         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
15640         into every boundary.
15641
15642 2010-05-11  Jan Hubicka  <jh@suse.cz>
15643
15644         * matrix-reorg.c (matrix_reorg): Rebuild edges.
15645
15646 2010-05-11  Jan Hubicka  <jh@suse.cz>
15647
15648         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
15649         lto_streamer_cache_delete): Put nodes into heap.
15650         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
15651         heap.
15652
15653 2010-05-11  Jan Hubicka  <jh@suse.cz>
15654
15655         * cgraphbuild.c (cgraph_rebuild_references): New.
15656         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
15657         out extern inlines.
15658         * cgraph.h (cgraph_rebuild_references): Declare.
15659         * tree-inline.c (tree_function_versioning): Use it.
15660         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
15661
15662 2010-05-11  Jan Hubicka  <jh@suse.cz>
15663
15664         * cgraph.c: Include ipa-utils.h
15665         (cgraph_create_virtual_clone): Update references.
15666         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
15667
15668 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
15669
15670         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
15671         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
15672         cache size.
15673
15674 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
15675
15676         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
15677
15678 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
15679
15680         * gcc.c (execute): For -### don't quote arguments that
15681         contain just alphanumerics and _/-. characters.
15682         * doc/invoke.texi: Document that change for -###.
15683
15684         PR debug/44023
15685         * df-problems.c (struct dead_debug): Add to_rescan field.
15686         (dead_debug_init): Clear to_rescan field.
15687         (dead_debug_finish): Rescan all debug insns in to_rescan
15688         bitmap and free the bitmap.
15689         (dead_debug_insert_before): Instead of rescanning debug insns
15690         immediately queue their rescanning until dead_debug_finish.
15691         (df_note_bb_compute): After dead_debug_add do continue instead
15692         of break.
15693
15694 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
15695
15696         PR debug/44028
15697         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
15698         clear also INSN_REG_USE_LIST.
15699
15700 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15701
15702         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
15703
15704 2010-05-10  Jan Hubicka  <jh@suse.cz>
15705
15706         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
15707         commited change.
15708
15709 2010-05-10  Jan Hubicka  <jh@suse.cz>
15710
15711         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
15712         Allocate encoders.
15713         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
15714         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
15715         (lto_streamer_cache_create): Init alloc pool.
15716         (lto_streamer_cache_delete): Free alloc pool.
15717         * lto-streamer.h: Include alloc pool.
15718         (lto_streamer_cache_d): Use alloc pool.
15719         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
15720
15721 2010-05-10  Jan Hubicka  <jh@suse.cz>
15722
15723         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
15724         * cgraphbuild.c: Include except.h
15725         (record_type_list, record_eh_tables): New function.
15726         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
15727
15728 2010-05-10  Jan Hubicka  <jh@suse.cz>
15729
15730         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
15731         __frame_dummy_init_array_entry, force_to_data): Attribute as used
15732         rather than unused.
15733
15734 2010-05-10  Michael Matz  <matz@suse.de>
15735
15736         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
15737         (can_reassociate_p): Use FLOAT_TYPE_P.
15738         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
15739         (vect_force_simple_reduction): ... this.
15740         * tree-parloops.c (gather_scalar_reductions): Use
15741         vect_force_simple_reduction.
15742         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
15743         vect_is_simple_reduction, add modify argument, if true rewrite
15744         "a-b" into "a+(-b)".
15745         (vect_is_simple_reduction, vect_force_simple_reduction): New
15746         functions.
15747         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
15748
15749 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
15750             Vladimir Makarov  <vmakarov@redhat.com>
15751
15752         PR rtl-optimization/44012
15753         * ira-build.c (remove_unnecessary_allocnos): Nullify
15754         regno_allocno_map of the removed allocno.
15755
15756 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15757
15758         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
15759         to /dev/null.
15760         * configure: Regenerate.
15761
15762 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15763
15764         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
15765         unused.
15766         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
15767         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
15768         support in Sun ld.
15769         * configure: Regenerate.
15770
15771 2010-05-10  Richard Guenther  <rguenther@suse.de>
15772
15773         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
15774         marked if the entry identifier is marked.
15775
15776 2010-05-10  Richard Guenther  <rguenther@suse.de>
15777
15778         * c-common.c (struct c_common_attributes): Add fnspec attribute.
15779         (handle_fnspec_attribute): New function.
15780         * gimple.h (gimple_call_return_flags): Declare.
15781         (gimple_call_arg_flags): Likewise.
15782         * gimple.c (gimple_call_arg_flags): New function.
15783         (gimple_call_return_flags): Likewise.
15784         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
15785         New argument flags.
15786         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
15787         return value flags.
15788         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
15789         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
15790         main work to ...
15791         (make_heapvar_for): ... this new function.
15792         (handle_rhs_call): Handle fnspec attribute argument specifiers.
15793         (handle_lhs_call): Likewise.
15794         (find_func_aliases): Adjust.
15795
15796 2010-05-10  Richard Guenther  <rguenther@suse.de>
15797
15798         PR tree-optimization/44050
15799         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
15800
15801 2010-05-10  Wei Guozhi  <carrot@google.com>
15802
15803         PR target/42879
15804         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
15805
15806 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
15807
15808         PR c/10676
15809         * c-typeck.c (lookup_field): Take a type directly.  Update
15810         recursive calls.
15811         (build_component_ref): Update call to lookup_field.
15812         (set_init_label): Use lookup_field to find initialized field.
15813         Handle returned list of fields like a sequence of designators.
15814
15815 2010-05-09  Richard Guenther  <rguenther@suse.de>
15816
15817         PR middle-end/44024
15818         * fold-const.c (tree_single_nonzero_warnv_p): Properly
15819         handle &FUNCTION_DECL.
15820
15821 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
15822
15823         PR c/4784
15824         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
15825         structures and unions recursively.
15826         (detect_field_duplicates): Move duplicate detection with a hash to
15827         detect_field_duplicates_hash.  Always use a hash if anonymous
15828         structures or unions are present.
15829         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
15830         give errors.
15831
15832 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
15833
15834         PR target/44046
15835         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
15836         detect Atom, Core 2 and Core i7.
15837
15838 2010-05-09  Richard Guenther  <rguenther@suse.de>
15839
15840         * gcc.c (store_arg): Handle temporary file deletion for
15841         joined arguments.
15842
15843 2010-05-09  Richard Guenther  <rguenther@suse.de>
15844
15845         PR middle-end/44043
15846         * ipa-inline.c (estimate_function_body_sizes): Return after
15847         disregarding inline limits.
15848
15849 2010-05-09  Richard Guenther  <rguenther@suse.de>
15850
15851         * gcc.c (store_arg): Revert last change.
15852
15853 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
15854
15855         PR middle-end/28685
15856         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
15857         (optimize_ops_list): Call it.
15858
15859 2010-05-08  Richard Guenther  <rguenther@suse.de>
15860
15861         PR tree-optimization/44030
15862         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
15863         NECESSARY flag if we propagate from a inserted expression.
15864
15865 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
15866
15867         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
15868         domain types as equal if they are both PLACEHOLDER_EXPRs.
15869
15870 2010-05-08  Richard Guenther  <rguenther@suse.de>
15871
15872         * lto-wrapper.c (run_gcc): Remove linker output from
15873         command line for LTRANS invocation.
15874
15875 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
15876
15877         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
15878         lto-macho as lto_binary_reader.
15879         * target.h (struct gcc_target): New hooks lto_start and lto_end.
15880         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
15881         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
15882         in lto_start and lto_end calls.
15883         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
15884         magic numbers.
15885         (scan_prog_file): Update is_elf_or_coff call.
15886         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
15887
15888         * collect2.c (main): Fix enum comparison.
15889
15890         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
15891         Add prototypes.
15892         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
15893         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
15894         and TARGET_ASM_LTO_END.
15895         * darwin.c: Include obstack.h and lto-streamer.h.
15896         (lto_section_names_offset, lto_section_names_obstack,
15897         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
15898         global variables.
15899         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
15900         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
15901         to a temporary file.
15902         (darwin_asm_lto_end): New function.  Restore asm_out_file.
15903         (darwin_asm_named_section): For LTO sections, replace the name with
15904         the offset of the section name in a string table, and build this
15905         table.
15906         (darwin_file_start): Initialize global vars for LTO support.
15907         (darwin_file_end): If output to asm_out_file was redirected, append it
15908         to the proper asm_out_file here.  Add the section names section.
15909
15910 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
15911
15912         * c-pragma.c (pending_weak_d, pending_weak): New.
15913         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
15914         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
15915         handle_pragma_weak): Update the uses of pending_weaks.
15916
15917 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15918
15919         PR documentation/44016
15920         * doc/standards.texi (Standards): Link to unversioned
15921         cxx0x_status.html page.
15922
15923 2010-05-07  Iain Sandoe  <iains@gcc.gnu.org>
15924
15925         PR target/43708
15926         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
15927         in addition to TREE_USED, to avoid "set but unused" warnings.
15928
15929 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
15930
15931         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
15932         (is_loop_prefetching_profitable): Do not insert prefetches
15933         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
15934         times the prefetch ahead distance.
15935
15936 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
15937
15938         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
15939         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
15940         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
15941         the unroll_factor.
15942
15943 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
15944
15945         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
15946         a diagnostic info when the insn-to-mem ratio is too small.
15947
15948 2010-05-07  Richard Guenther  <rguenther@suse.de>
15949
15950         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
15951         the linker plugin.
15952         (store_arg): Queue temp_filename for deletion instead of
15953         the whole argument.
15954
15955 2010-05-07  Richard Guenther  <rguenther@suse.de>
15956
15957         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
15958         (run_gcc): Handle LTRANS phase invocation.
15959         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
15960
15961 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
15962
15963         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
15964         this is also meaningful on PARM_DECLs and RESULT_DECLs.
15965
15966 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15967
15968         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
15969
15970 2010-05-07  Richard Guenther  <rguenther@suse.de>
15971
15972         PR tree-optimization/44020
15973         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
15974         code when PRE is not yet initialized.
15975
15976 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15977
15978         * config/mips/dbxmdebug.h: Remove.
15979         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
15980
15981 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
15982
15983         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
15984         with null pointer and also warn about ordered comparison of zero with
15985         pointer if -Wextra.
15986
15987 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15988
15989         * graphite-blocking.c
15990         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
15991         * graphite-clast-to-gimple.c
15992         (clast_to_gcc_expression): Same.
15993         (precision_for_value): Same.
15994         (precision_for_interval): Same.
15995         (gcc_type_for_interval): Same.
15996         (graphite_create_new_guard): Same.
15997         (compute_bounds_for_level): Same.
15998         (graphite_create_new_loop_guard): Same.
15999         * graphite-interchange.c
16000         (build_linearized_memory_access): Same.
16001         (pdr_stride_in_loop): Same.
16002         (memory_strides_in_loop_1): Same.
16003         (memory_strides_in_loop): Same.
16004         (extend_scattering): Same.
16005         (psct_scattering_dim_for_loop_depth): Same.
16006         (pbb_number_of_iterations): Same.
16007         * graphite-poly.h
16008         (debug_iteration_domains): Same.
16009         * graphite-ppl.c
16010         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
16011         (ppl_set_inhomogeneous_gmp): Same.
16012         (ppl_strip_loop): Same.
16013         (ppl_lexico_compare_linear_expressions): Same.
16014         (ppl_read_polyhedron_matrix): Same.
16015         (ppl_max_for_le_pointset): Same.
16016         * graphite-ppl.h
16017         (ppl_read_polyhedron_matrix): Same.
16018         (tree_int_to_gmp): Same.
16019         (gmp_cst_to_tree): Same.
16020         (ppl_set_inhomogeneous): Same.
16021         (ppl_set_inhomogeneous_tree): Same.
16022         (ppl_set_coef): Same.
16023         (ppl_set_coef_tree): Same.
16024         * graphite-sese-to-poly.c
16025         (build_pbb_scattering_polyhedrons): Same.
16026         (build_scop_scattering): Same.
16027         (scan_tree_for_params_right_scev): Same.
16028         (scan_tree_for_params): Same.
16029         (find_params_in_bb): Same.
16030         (find_scop_parameters): Same.
16031         (add_upper_bounds_from_estimated_nit): Same.
16032         (build_loop_iteration_domains): Same.
16033         (add_condition_to_domain): Same.
16034         (pdr_add_memory_accesses): Same.
16035
16036 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
16037
16038         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
16039         CLooG's value_* macros to their respective mpz_* counterparts.
16040         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
16041         (graphite_create_new_loop_guard): Same.
16042         * graphite-interchange.c (build_linearized_memory_access): Same.
16043         (pdr_stride_in_loop): Same.
16044         (memory_strides_in_loop_1): Same.
16045         (1st_interchange_profitable_p): Same.
16046         * graphite-poly.c (extend_scattering): Same.
16047         (psct_scattering_dim_for_loop_depth): Same.
16048         (pbb_number_of_iterations): Same.
16049         (pbb_number_of_iterations_at_time): Same.
16050         * graphite-poly.h (new_1st_loop): Same.
16051         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
16052         (oppose_constraint): Same.
16053         (insert_constraint_into_matrix): Same.
16054         (ppl_set_inhomogeneous_gmp): Same.
16055         (ppl_set_coef_gmp): Same.
16056         (ppl_strip_loop): Same.
16057         (ppl_lexico_compare_linear_expressions): Same.
16058         (ppl_max_for_le_pointset): Same.
16059         (ppl_min_for_le_pointset): Same.
16060         (ppl_build_realtion): Same.
16061         * graphite-ppl.h (gmp_cst_to_tree): Same.
16062         (ppl_set_inhomogeneous): Same.
16063         (ppl_set_inhomogeneous_tree): Same.
16064         (ppl_set_coef): Same.
16065         (ppl_set_coef_tree): Same.
16066         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
16067         (build_scop_scattering): Same.
16068         (add_value_to_dim): Same.
16069         (scan_tree_for_params_right_scev): Same.
16070         (scan_tree_for_params_int): Same.
16071         (scan_tree_for_params): Same.
16072         (find_params_in_bb): Same.
16073         (find_scop_parameters): Same.
16074         (add_upper_bounds_from_estimated_nit): Same.
16075         (build_loop_iteration_domains): Same.
16076         (create_linear_expr_from_tree): Same.
16077         (add_condition_to_domain): Same.
16078         (pdr_add_memory_accesses): Same.
16079
16080 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
16081             Jason Merrill  <jason@redhat.com>
16082
16083         * c-common.c (c_common_reswords): Add nullptr.
16084         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
16085         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
16086         (gen_type_die_with_usage): Likewise.
16087         * dbxout.c (dbxout_type): Likewise.
16088         * sdbout.c (plain_type_1): Likewise.
16089
16090 2010-05-06  Jason Merrill  <jason@redhat.com>
16091
16092         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
16093         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
16094         ret appropriately.
16095         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
16096
16097         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
16098         stripping WITH_SIZE_EXPR.
16099         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
16100         change.
16101
16102 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16103
16104         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
16105         list of obsolete configurations.
16106         Disabled check for obsolete configurations.
16107         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
16108         Removed support for previous versions.
16109         * config/mips/iris.h: Removed.
16110         * config/mips/iris5.h: Removed.
16111         * config/mips/iris6.h: Merged old iris.h contents.
16112         (TARGET_IRIX): Removed.
16113         (DRIVER_SELF_SPECS): Removed mabi=32.
16114         (IDENT_ASM_OP): Removed undef.
16115         (STARTFILE_SPEC): Removed mabi=32.
16116         (ENDFILE_SPEC): Likewise.
16117         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
16118         (MACHINE_TYPE): Update for IRIX 6.5.
16119         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
16120         TARGET_IRIX by TARGET_IRIX6.
16121         (mips_file_start): Likewise.
16122         (mips_output_external): Remove IRIX 5/6 O32 support.
16123         (mips_output_function_prologue): Likewise.
16124         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
16125         TARGET_IRIX6.
16126         (TARGET_CPU_CPP_BUILTINS): Likewise.
16127         (TARGET_IRIX): Removed.
16128         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
16129         (MULTILIB_DIRNAMES): Removed 32.
16130         (MULTILIB_OSDIRNAMES): Removed ../lib.
16131         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
16132         (Specific, mips-sgi-irix5): Document removal.
16133         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
16134         Remove references to older IRIX 6 releases and the O32 ABI.
16135
16136 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
16137
16138         PR bootstrap/43994
16139         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
16140         instead of DF_REF_REAL_REG.
16141
16142 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
16143
16144         PR target/43888
16145         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
16146         handling to still return true for x64 targets.
16147
16148 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
16149
16150         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
16151
16152 2010-05-06  Jan Hubicka  <jh@suse.cz>
16153
16154         PR tree-optimization/43791
16155         * ipa-inline.c (update_caller_keys): Remove bogus
16156         disregard_inline_limits check.
16157
16158 2010-05-06  Michael Matz  <matz@suse.de>
16159
16160         PR tree-optimization/43984
16161         * tree-ssa-pre.c (inserted_phi_names): Remove.
16162         (inserted_exprs): Change to bitmap.
16163         (create_expression_by_pieces): Set bits, don't append to vector.
16164         (insert_into_preds_of_block): Don't handle inserted_phi_names.
16165         (eliminate): Don't look at inserted_phi_names, remove deleted
16166         insns from inserted_exprs.
16167         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
16168         (init_pre, fini_pre): Allocate and free bitmaps.
16169         (execute_pre): Insert insns on edges before elimination.
16170
16171 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
16172
16173         * tree.c (initializer_zerop): Handle STRING_CST.
16174
16175 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
16176
16177         PR 40989
16178         * doc/invoke.texi (Wimplicit): Document as C only.
16179         * opts.c (common_handle_option): Add argument kind.
16180         (handle_option): Rename as read_cmdline_option. Factor out code to...
16181         (handle_option): ... here. New.
16182         (handle_options): Rename as read_cmdline_options.
16183         (decode_options): Update call.
16184         (set_option): Use option index instead of option pointer. Classify
16185         diagnostics correctly.
16186         (enable_warning_as_error): Call handle_option.
16187         * opts.h (set_option): Update declaration.
16188         (handle_option): Declare.
16189         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
16190         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
16191         * c-opts.c (set_Wimplicit): Delete.
16192         (c_family_lang_mask): New static constant.
16193         (c_common_handle_option): Add argument kind. Use handle_option
16194         instead of set_Wimplicit.
16195         (c_common_post_options): warn_implicit and warn_implicit_int
16196         are disabled by default.
16197         * c-common.c (warn_implicit): Do not define here.
16198         * c-common.h (warn_implicit): Do not declare here.
16199         (c_common_handle_option): Update declaration.
16200         * lto-opts.c (lto_reissue_options): Update call to set_option.
16201
16202 2010-05-06  Richard Guenther  <rguenther@suse.de>
16203
16204         PR tree-optimization/43571
16205         * domwalk.c (walk_dominator_tree): Walk the dominator
16206         sons in more optimal order.
16207
16208 2010-05-06  Richard Guenther  <rguenther@suse.de>
16209
16210         PR tree-optimization/43934
16211         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
16212         (stmt_cost): Likewise.
16213         (extract_true_false_args_from_phi): New helper.
16214         (determine_max_movement): For PHI nodes verify we can hoist them
16215         and compute their cost.
16216         (determine_invariantness_stmt): Handle PHI nodes.
16217         (move_computations_stmt): Likewise.  Hoist PHI nodes in
16218         if-converted form using COND_EXPRs.
16219         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
16220         (tree_ssa_lim): Likewise.
16221         * tree-flow.h (tree_ssa_lim): Adjust prototype.
16222         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
16223
16224 2010-05-06  Richard Guenther  <rguenther@suse.de>
16225
16226         PR tree-optimization/43987
16227         * tree-ssa-structalias.c (could_have_pointers): For possibly
16228         address-taken variables force pointers to be recorded.
16229         (create_variable_info_for_1): Likewise.
16230         (push_fields_onto_fieldstack): Pass in wheter all fields
16231         must have pointers.
16232         (find_func_aliases): Query types instead of vars whether
16233         they contain pointers where appropriate.
16234
16235 2010-05-06  Jan Hubicka  <jh@suse.cz>
16236
16237         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
16238         (record_reference, mark_address, mark_load, mark_store): Record
16239         references.
16240         (record_references_in_initializer): Update call of record_references.
16241         (rebuild_cgraph_edges): Remove all references before rebuiding.
16242         * cgraph.c (cgraph_create_node): Clear ref list.
16243         (cgraph_remove_node): Remove references.
16244         (dump_cgraph_node): Dump references.
16245         (cgraph_clone_node): Clone references.
16246         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
16247         (struct cgraph_node, varpool_node): Add ref_lst.
16248         * ipa-ref.c: New file.
16249         * ipa-ref.h: New file.
16250         * ipa-ref-inline.h: New file.
16251         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
16252         (referenced_from_other_partition_p): New function.
16253         (lto_output_varpool_node): Take set arugment; call
16254         referenced_from_other_partition.
16255         (lto_output_ref): New.
16256         (add_references): New.
16257         (output_refs): New.
16258         (output_cgraph): Compute boundary based on references; output refs.
16259         (output_varpool): Accept cgraph_node_set argument.
16260         (input_ref): New.
16261         (input_refs): New.
16262         (input_cgraph): Call input_refs.
16263         * lto-section-in.c (lto_section_name): Add refs.
16264         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
16265         (ipa-ref.o): New file.
16266         * varpool.c (varpool_node): Clear ipa ref list.
16267         (varpool_remove_node): Remove references.
16268         (dump_varpool_node): Dump references.
16269         (varpool_assemble_decl): Only compile finalized ones.
16270         (varpool_extra_name_alias): Initialize ref list.
16271         * lto-streamer.c (lto-get_section_name): Add .refs section.
16272         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
16273         (referenced_from_other_partition_p): Declared.
16274
16275 2010-05-06  Ira Rosen  <irar@il.ibm.com>
16276
16277         PR tree-optimization/43901
16278         * tree-vect-stmts.c (vectorizable_call): Assert that vector
16279         type is not NULL if it's transformation phase, and return
16280         FALSE if it's analysis.
16281         (vectorizable_conversion, vectorizable_operation,
16282         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
16283
16284 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
16285
16286         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
16287         Delete.
16288         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
16289         New define.
16290         * config/mips/mips-protos.h
16291         (mips_small_register_classes_for_mode_p): Delete prototype.
16292
16293 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
16294
16295         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
16296         * config/arm/arm.c (multiple_operation_profitable_p,
16297         compute_offset_order): New static functions.
16298         (load_multiple_sequence, store_multiple_sequence): Use them.
16299         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
16300         memory offsets, not register numbers.
16301         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
16302
16303 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
16304
16305         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
16306         (get_pending_sizes, put_pending_size, put_pending_sizes):
16307         Update the uses of pending_sizes.
16308         * c-decl.c (store_parm_decls): Likewise.
16309         * c-tree.h (struct c_arg_info): Likewise.
16310         * tree.h: Update the prototype for get_pending_sizes and
16311         put_pending_sizes.
16312
16313 2010-05-05  Jason Merrill  <jason@redhat.com>
16314
16315         PR debug/43370
16316         * c-common.c (handle_aligned_attribute): Respect
16317         ATTR_FLAG_TYPE_IN_PLACE.
16318
16319         PR testsuite/43758
16320         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
16321         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
16322         (TARGET_INITIALIZER): Use it.
16323         * c-common.c (attribute_takes_identifier_p): Call it.
16324         * c-common.h: Update prototype.
16325         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
16326         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
16327
16328 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
16329
16330         PR debug/43950
16331         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
16332         DW_ID_down_case for Fortran compilation units.
16333
16334 2010-05-05  Jan Hubicka  <jh@suse.cz>
16335
16336         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
16337         handle aliases.
16338
16339 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
16340
16341         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
16342         a variable-sized RESULT_DECL.
16343
16344 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
16345
16346         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
16347
16348 2010-05-05  Jason Merrill  <jason@redhat.com>
16349
16350         PR c++/43787
16351         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
16352         returns GS_OK.
16353         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
16354
16355 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
16356             Jakub Jelinek  <jakub@redhat.com>
16357
16358         PR debug/43478
16359         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
16360         (dead_debug_init, dead_debug_finish): New functions.
16361         (dead_debug_add, dead_debug_insert_before): Likewise.
16362         (df_note_bb_compute): Initialize a dead_debug object, add dead
16363         debug uses to it, insert debug bind insns before death insns,
16364         reset debug insns that refer to pending uses at the end.
16365         * rtl.h (make_debug_expr_from_rtl): New prototype.
16366         * varasm.c (make_debug_expr_from_rtl): New function.
16367
16368 2010-05-05  Jan Hubicka  <jh@suse.cz>
16369
16370         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
16371         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
16372         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
16373         lto_varpool_encoder_deref, lto_varpool_encoder_size,
16374         lto_varpool_encoder_encode_initializer_p,
16375         lto_set_varpool_encoder_encode_initializer): New functions.
16376         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
16377         call output_varpool.
16378         (input_varpool_node): Do not always set analyzed.
16379         (input_cgraph_1): Return vector of cgraph nodes.
16380         (input_varpool_1): Return vector of varpools.
16381         (input_cgraph): Free the vectors.
16382         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
16383         output only initializers needed.
16384         (lto_output): Only call output_cgraph.
16385         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
16386         * lto-section-out.c (lto_new_out_decl_state): Initialize
16387         state->varpool_node_encoder.
16388         * lto-streamer.h (lto_varpool_encoder_d): New.
16389         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
16390         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
16391         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
16392         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
16393         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
16394         Declare.
16395         (output_varpool, input_varpool): Remove declarations.
16396
16397 2010-05-05  Jan Hubicka  <jh@suse.cz>
16398
16399         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
16400         with body can prevail.
16401
16402 2010-05-05  Jan Hubicka  <jh@suse.cz>
16403
16404         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
16405         size.
16406
16407 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
16408
16409         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
16410
16411         * gengtype.h (erro_at_line): Constify pos argument.
16412
16413         * gengtype.c: Include hashtab.h.
16414         (enum gc_used): Document GC_MAYBE_POINTED_TO.
16415         (error_at_line): Constify pos argument.
16416         (do_typedef): Initialize p->opt field.
16417         (get_file_gtfilename): Fix comment typo.
16418         (struct walk_type_data): Constify line field.
16419         (get_output_file_for_structure): New function.
16420         (write_local_func_for_structure): Constify orig_s argument.
16421         Use get_output_file_for_structure.
16422         (write_func_for_structure): Use get_output_file_for_structure.
16423         (INDENT): New define.
16424         (dump_pair, dump_type, dump_type_list, dump_typekind)
16425         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
16426         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
16427         functions.
16428         (seen_types): New variable.
16429         (main): New variable do_dump.  Process "-d" command line option.
16430         Call dump_everything if dump requested.
16431
16432 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
16433
16434         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
16435         in a temporary instead of invoking the macro multiple times.
16436         (track_expr_p): Likewise.
16437
16438 2010-05-04  Neil Vachharajani  <nvachhar@google.com>
16439
16440         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
16441         per new semantics.
16442         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
16443         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
16444         conditions for printing notes.
16445         * common.opt (-Wcoverage-mismatch): Allow negative, default to
16446         true, update documentation.
16447         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
16448
16449 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
16450
16451         PR c/43981
16452         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
16453         on dimen.
16454
16455 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
16456
16457         PR target/43799
16458         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
16459         (*sse_prologue_save_insn1): Likewise.
16460         (SSE prologue save splitter): Likewise.
16461
16462 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
16463
16464         * tree.c (free_lang_data_in_one_sizepos): New inline function.
16465         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
16466         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
16467         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
16468         all decls.  Call it on DECL_FIELD_OFFSET of fields.
16469         (find_decls_types_r): Follow DECL_VALUE_EXPR.
16470         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
16471
16472 2010-05-04  Martin Jambor  <mjambor@suse.cz>
16473
16474         * tree-sra.c (build_access_from_expr_1): The first parameter type
16475         changed to simple tree.
16476         (build_access_from_expr): Likewise, gsi parameter was eliminated.
16477         (scan_assign_result): Renamed to assignment_mod_result, enum elements
16478         renamed as well.
16479         (build_accesses_from_assign): Removed all parameters except for a
16480         simple gimple statement.  Now returns a simple bool.
16481         (scan_function): All non-analysis parts moved to separate functions
16482         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
16483         parameters and updated both callers.
16484         (sra_modify_expr): Removed parameter data.
16485         (sra_modify_function_body): New function.
16486         (perform_intra_sra): Call sra_modify_function_body to modify the
16487         function body.
16488         (replace_removed_params_ssa_names): Parameter data changed into
16489         adjustments vector.
16490         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
16491         changed the parameter dont_convert to convert with the opposite
16492         meaning.
16493         (sra_ipa_modify_assign): Parameter data changed into adjustments
16494         vector, return value changed to bool.
16495         (ipa_sra_modify_function_body): New function.
16496         (sra_ipa_reset_debug_stmts): Updated a comment.
16497         (modify_function): Use ipa_sra_modify_function_body to modify function
16498         body.
16499
16500 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
16501
16502         PR middle-end/43671
16503         * alias.c (true_dependence): Handle the same VALUE in x and mem.
16504         (canon_true_dependence): Likewise.
16505         (write_dependence_p): Likewise.
16506
16507 2010-05-04  Jan Hubicka  <jh@suse.cz>
16508
16509         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
16510         * cgraphbuild.c: Include ipa-utils.h
16511         (record_reference_ctx): New struct.
16512         (record_reference): Simplify to work on initializers; not statements.
16513         (mark_address, mark_load, mark_store): New.
16514         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
16515         walk PHI nodes too.
16516         (record_references_in_initializer): Update use of record_reference.
16517         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
16518         walk PHI nodes too.
16519
16520 2010-05-04  Jan Hubicka  <jh@suse.cz>
16521
16522         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
16523         node will be removed anyway.
16524         (lto_varpool_replace_node): Allow also unanalyzed nodes;
16525         relink aliases of node into prevailing node.
16526         * varpool.c (varpool_remove_node): Remove aliases properly;
16527         when removing node, remove all its aliases too; remove DECL_INITIAL
16528         of removed node; ggc_free the varpool node.
16529
16530 2010-05-04  Richard Guenther  <rguenther@suse.de>
16531
16532         PR tree-optimization/43879
16533         * tree-ssa-structalias.c (alias_get_name): Use
16534         DECL_ASSEMBLER_NAME if available.
16535         (create_function_info_for): Return the varinfo node.
16536         (ipa_pta_execute): Associate same-body aliases and extra names
16537         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
16538
16539 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
16540
16541         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
16542
16543 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
16544
16545         PR bootstrap/43964
16546         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
16547         only if HONOR_REG_ALLOC_ORDER is not defined.
16548
16549 2010-05-04  Richard Guenther  <rguenther@suse.de>
16550
16551         PR tree-optimization/43949
16552         * tree-vrp.c (extract_range_from_binary_expr): Only handle
16553         TRUNC_MOD_EXPR.
16554
16555 2010-04-26  Jason Merrill  <jason@redhat.com>
16556
16557         * c.opt (-fstrict-enums): New.
16558         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
16559
16560 2010-05-03  David Ung  <davidu@mips.com>
16561             James E. Wilson  <wilson@codesourcery.com>
16562
16563         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
16564         emit the trap instruction before the divide for TUNE_74K.
16565
16566 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
16567
16568         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
16569         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
16570         based on the above, for new target hook.
16571
16572         * hooks.c (hook_bool_mode_true): New generic hook.
16573         * hooks.h (hook_bool_mode_true): Add prototype.
16574
16575         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
16576         target hook.
16577         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
16578         target hook, set to hook_bool_mode_false.
16579         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
16580         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
16581         with targetm.small_register_classes_for_mode_p.
16582         (find_reusable_reload): Likewise.
16583         (combine_reloads): Likewise.
16584         * reload1.c (reload_as_needed): Likewise.
16585         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
16586         * ifcvt.c (noce_process_if_block, check_cond_move_block,
16587         dead_or_predicable): Likewise.
16588         * regmove.c (optimize_reg_copy_1): Likewise.
16589         * calls.c (prepare_call_address): Likewise.
16590         (precompute_register_parameters): Likewise.
16591
16592         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
16593         hook definition.
16594         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
16595         implementation of the hook that considers all register classes
16596         small except for SH64.
16597         (sh_override_options): Use the new hook.
16598         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
16599         Add prototype.
16600
16601         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
16602         hook definition.
16603         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
16604         implementation of the hook that considers all register classes
16605         small for THUMB1.
16606         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
16607         Add prototype.
16608
16609         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
16610         hook definition.
16611         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
16612         implementation of the hook that considers all register classes
16613         small for MIPS16.
16614         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
16615         Add prototype.
16616
16617         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
16618         hook definition.
16619         * config/m32c/m32c.h: Likewise.
16620         * config/pdp11/pdp11.h: Likewise.
16621         * config/avr/avr.h: Likewise.
16622         * config/xtensa/xtensa.h: Likewise.
16623         * config/m68hc11/m68hc11.h: Likewise.
16624         * config/mn10300/mn10300.h: Likewise.
16625         * config/mcore/mcore.h: Likewise.
16626         * config/h8300/h8300.h: Likewise.
16627         * config/bfin/bfin.h: Likewise.
16628
16629         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
16630         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
16631
16632 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
16633
16634         * double-int.h (tree_to_double_int): Remove macro.
16635         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
16636         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
16637         (tree_to_double_int): New function.
16638         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
16639         Move ...
16640         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
16641
16642 2010-05-03  Richard Guenther  <rguenther@suse.de>
16643
16644         PR tree-optimization/43971
16645         * tree-ssa-structalias.c (get_constraint_for_1): Fix
16646         constraints in the !flag_delete_null_pointer_checks case.
16647
16648 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
16649
16650         PR debug/43972
16651         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
16652         result mode matches original rtl mode.
16653
16654 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
16655
16656         PR target/43888
16657         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
16658
16659 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
16660
16661         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
16662         when processing flag options.
16663
16664 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
16665
16666         * gcov-iov.c (main): Change format string placeholder
16667         from %#08x to 0x%08x.
16668         * genchecksum.c (dosum): Change format string placeholder
16669         from %#02x to 0x%02x.
16670
16671 2010-05-02  Richard Guenther  <rguenther@suse.de>
16672
16673         PR tree-optimization/43879
16674         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
16675
16676 2010-05-02  Bruno Haible  <bruno@clisp.org>
16677
16678         * doc/extend.texi (Function Attributes): Fix a typo.
16679
16680 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
16681
16682         Revert:
16683         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
16684         placeholder from 0x%x to %#x.
16685         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
16686         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
16687         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
16688         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
16689         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
16690         * config/i386/i386.c (ix86_target_string): Ditto.
16691         * config/i386/i386.c (output_pic_addr_const): Ditto.
16692         (print_operand): Ditto.
16693
16694 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
16695
16696         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
16697         placeholder from 0x%x to %#x.
16698         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
16699         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
16700         (ASM_OUTPUT_DEBUG_DATA): Ditto.
16701         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
16702         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
16703         * optc-gen.awk: Ditto.
16704         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
16705         (HOST_WIDE_INT_PRINT_HEX): Ditto.
16706         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
16707         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
16708
16709 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
16710
16711         * target.h (struct calls): Add function_value_regno_p field.
16712         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
16713         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
16714         * targhooks.c (default_function_value_regno_p): New function.
16715         * targhooks.h (default_function_value_regno_p): Declare function.
16716         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
16717         * builtins.c. (apply_result_size): (Ditto.).
16718         * combine.c. (likely_spilled_retval_p): (Ditto.).
16719         * mode-switching.c. Include 'target.h'.
16720         (create_pre_exit): Use function_value_regno_p hook.
16721         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
16722         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
16723         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
16724
16725         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
16726         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
16727         (ix86_function_value_regno_p): Declare as static, change argument
16728         type to const unsigned int.
16729         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
16730
16731 2010-05-01  Richard Guenther  <rguenther@suse.de>
16732
16733         PR tree-optimization/43949
16734         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
16735         types.
16736         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
16737
16738 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
16739
16740         * rtl.h (CONST_DOUBLE_P): Define.
16741         (rtx_to_double_int): Declare.
16742         * emit-rtl.c (rtx_to_double_int): New function.
16743         * dwarf2out.c (insert_double): New function.
16744         (loc_descriptor, add_const_value_attribute): Clean up, use
16745         rtx_to_double_int and insert_double functions.
16746
16747 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
16748
16749         * doc/extend.texi (Inline): Add missing return keyword to examples.
16750         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
16751         "command-line".
16752
16753 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
16754
16755         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
16756         the variable part of the offset as well.  Use highest_pow2_factor for
16757         all alignment checks.
16758
16759 2010-04-30  Richard Guenther  <rguenther@suse.de>
16760
16761         PR tree-optimization/43879
16762         * tree-ssa-structalias.c (type_could_have_pointers): Functions
16763         can have pointers.
16764
16765 2010-04-30  Jan Hubicka  <jh@suse.cz>
16766
16767         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
16768         varpool.
16769         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
16770
16771 2010-04-30  Jan Hubicka  <jh@suse.cz>
16772
16773         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
16774         New.
16775         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
16776         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
16777         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
16778         cgraph_node_set_needs_ltrans_p): Remove.
16779
16780 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
16781
16782         * sdbout.c: Include vec.h, do not include varray.h.
16783         (deferred_global_decls, sdbout_global_decl,
16784         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
16785         * toplev.c: Do not include varray.h.
16786         (dump_memory_report): Do not dump VARRAY statistics.
16787         * gengtype.c (open_base_file): Ignore varray.h.
16788         * Makefile.in: Update for abovementioned changes.
16789         Remove all traces of varray.c and varray.h.
16790         * varray.c: Remove file.
16791         * varray.h: Remove file.
16792
16793 2010-04-30  Jan Hubicka  <jh@suse.cz>
16794
16795         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
16796         references.
16797
16798 2010-04-30  Jan Hubicka  <jh@suse.cz>
16799
16800         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
16801         needed.
16802
16803 2010-04-30  Richard Guenther  <rguenther@suse.de>
16804
16805         * tree-ssa-structalias.c (get_constraint_for_1): Generate
16806         constraints for CONSTRUCTOR.
16807
16808 2010-04-30  Richard Guenther  <rguenther@suse.de>
16809
16810         PR lto/43946
16811         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
16812         first after all lowering passes.
16813
16814 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
16815
16816         * toplev.c: Include varray.h for statistics dumping.
16817         * tree.h: Do not declare varray_head_tag.
16818         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
16819         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
16820         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
16821         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
16822         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
16823         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
16824         c-common.c, c-common.h, reg-stack.c, basic-block.h,
16825         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
16826         include varray.h.
16827         * Makefile.in: Update for abovementioned changes.
16828
16829 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
16830
16831         PR debug/43942
16832         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
16833
16834 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
16835
16836         * config/picochip/picochip.c (picochip_legitimize_address): Define.
16837         Use this function to do machine-specific conversion.
16838         (picochip_legitimize_reload_address): Likewise.
16839         (picochip_legitimate_address_p): Check valid base register only if
16840         strict.
16841         (picochip_check_conditional_copy): Check for modw only if opnd is
16842         register.
16843         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
16844         to call the function in c.
16845         * config/picochip/picochip-protos.h
16846         (picochip_legitimize_reload_address): Define.
16847         * config/picochip/picochip.md (supported_compare1): Define.
16848
16849 2010-04-30  Jan Hubicka  <jh@suse.cz>
16850
16851         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
16852         (cgraph_global_info): Remove inlined.
16853         (LTO_cgraph_tag_names): Remove.
16854         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
16855         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
16856         simplify cgraph tags and document.
16857         (lto_output_node): Use only LTO_cgraph_unavail_node and
16858         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
16859         for_functions_valid, global info, process and output flags.
16860         (input_overwrite_node): Initialize estimated stack size and
16861         estimated growth.  Do not read flags we no longer store.
16862         (input_node): Likewise do not read info no longer stored.
16863         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
16864         flag.
16865
16866 2010-04-30  Richard Guenther  <rguenther@suse.de>
16867
16868         PR tree-optimization/43879
16869         * tree-ssa-structalias.c (get_constraint_for_1): Properly
16870         handle non-zero initializers.
16871
16872 2010-04-30  Richard Guenther  <rguenther@suse.de>
16873
16874         * builtins.c (fold_builtin_1): Delete free (0).
16875
16876 2010-04-29  Jan Hubicka  <jh@suse.cz>
16877
16878         * gengtype.c (open_base_files): Add lto-streamer.h
16879         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
16880         (pass_ipa_cp): GGC collect.
16881         * toplev. (compile_file): Do not output symbols.
16882         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
16883         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
16884         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
16885         * lto-section-in.c: Include ggc.h
16886         (lto_new_in_decl_state): Alloc in GGC.
16887         (lto_delete_in_decl_state): Likewise.
16888         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
16889         Collect.
16890
16891 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
16892
16893         PR target/42895
16894         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
16895         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
16896         (HONOR_REG_ALLOC_ORDER): Describe new macro.
16897         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
16898         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
16899         account only if HONOR_REG_ALLOC_ORDER is not defined.
16900         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
16901         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
16902
16903 2010-04-29  Jon Grant  <04@jguk.org>
16904
16905         * collect2.c (vflag): Change type from int to bool.
16906         (debug): Likewise.
16907         (helpflag): New global bool.
16908         (main): Set vflag and debug with boolean, not integer truth values.
16909         Accept new "--help" option and output usage text if found.
16910         * collect2.h (vflag): Update prototype.
16911         (debug): Likewise.
16912
16913 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
16914
16915         PR bootstrap/43936
16916         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
16917
16918 2010-04-29  Richard Guenther  <rguenther@suse.de>
16919
16920         PR bootstrap/43935
16921         * plugin.h (invoke_plugin_callbacks): Annotate arguments
16922         with ATTRIBUTE_UNUSED.
16923
16924 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
16925
16926         PR target/43921
16927         * config/i386/i386.c (get_some_local_dynamic_name): Replace
16928         INSN_P with NONDEBUG_INSN_P.
16929         (distance_non_agu_define): Likewise.
16930         (distance_agu_use): Likewise.
16931
16932 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
16933
16934         From Dominique d'Humieres  <dominiq@lps.ens.fr>
16935         PR bootstrap/43858
16936         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
16937         test_set.
16938
16939 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
16940
16941         * plugin.h (invoke_plugin_callbacks): New inline function.
16942         * plugin.c (flag_plugin_added): New global flag.
16943         (add_new_plugin): Initialize above flag.
16944         (invoke_plugin_callbacks): Rename to ...
16945         (invoke_plugin_callbacks_full): ... this.
16946
16947 2010-04-28  Jan Hubicka  <jh@suse.cz>
16948
16949         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
16950         (lto_varpool_replace_node): New.
16951         (lto_symtab_resolve_symbols): Resolve varpool nodes.
16952         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
16953         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
16954         * cgraph.h (varpool_node_ptr): New type.
16955         (varpool_node_ptr): New vector.
16956         (varpool_node_set_def): New structure.
16957         (varpool_node_set): New type.
16958         (varpool_node_set): New vector.
16959         (varpool_node_set_element_def): New structure.
16960         (varpool_node_set_element, const_varpool_node_set_element): New types.
16961         (varpool_node_set_iterator): New type.
16962         (varpool_node): Add prev pointers, add used_from_other_partition,
16963         in_other_partition.
16964         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
16965         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
16966         varpool_get_node, varpool_remove_node): Declare.
16967         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
16968         varpool_node_set_size): New inlines.
16969         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
16970         * tree-pass.h (varpool_node_set_def): Forward declare.
16971         (ipa_opt_pass_d): Summary writting takes vnode sets too.
16972         (ipa_write_optimization_summaries): Update prototype.
16973         * ipa-cp.c (ipcp_write_summary): Update.
16974         * ipa-reference.c (ipa_reference_write_summary): Update.
16975         * lto-cgraph.c (lto_output_varpool_node): New static function.
16976         (output_varpool): New function.
16977         (input_varpool_node): New static function.
16978         (input_varpool_1): New function.
16979         (input_cgraph): Input varpool.
16980         * ipa-pure-const.c (pure_const_write_summary): Update.
16981         * lto-streamer-out.c (lto_output): Update, output varpool too.
16982         (write_global_stream): Kill WPA hack.
16983         (produce_asm_for_decls): Update.
16984         (output_alias_pair_p): Handle variables.
16985         (output_unreferenced_globals): Output only needed partition of varpool.
16986         * ipa-inline.c (inline_write_summary): Update.
16987         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
16988         cgraph.
16989         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
16990         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
16991         varpool_node_set_new, varpool_node_set_add,
16992         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
16993         debug_varpool_node_set): New functions.
16994         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
16995         (execute_one_pass): Process new decls too.
16996         (ipa_write_summaries_2): Pass around vsets.
16997         (ipa_write_summaries_1): Likewise.
16998         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
16999         to add.
17000         (ipa_write_optimization_summaries_1): Pass around vsets.
17001         (ipa_write_optimization_summaries): Likewise.
17002         * varpool.c (varpool_get_node): New.
17003         (varpool_node): Update doubly linked lists.
17004         (varpool_remove_node): New.
17005         (dump_varpool_node): More dumping.
17006         (varpool_enqueue_needed_node): Update doubly linked lists.
17007         (decide_is_variable_needed): Kill ltrans hack.
17008         (varpool_finalize_decl): Kill lto hack.
17009         (varpool_assemble_decl): Skip decls in other partitions.
17010         (varpool_assemble_pending_decls): Update doubly linkes lists.
17011         (varpool_empty_needed_queue): Likewise.
17012         (varpool_extra_name_alias): Likewise.
17013         * lto-streamer.c (lto_get_section_name): Add vars section.
17014         * lto-streamer.h (lto_section_type): Update.
17015         (output_varpool, input_varpool): Declare.
17016
17017 2010-04-28  Mike Stump  <mikestump@comcast.net>
17018
17019         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
17020
17021 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
17022
17023         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
17024         record or union type with RECORD_OR_UNION_TYPE_P predicate.
17025         (lto_input_ts_type_tree_pointers): Likewise.
17026         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
17027         (lto_output_ts_type_tree_pointers): Likewise.
17028
17029 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
17030
17031         Uniquization of constants at the Tree level
17032         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
17033         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
17034         bit to the end.
17035         (tree_output_constant_def): Declare.
17036         * gimplify.c (gimplify_init_constructor): When using block copy, first
17037         uniquize the constant constructor on the RHS.
17038         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
17039         DECL_IN_CONSTANT_POOL flag.
17040         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
17041         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
17042         constant pool.
17043         (assemble_variable): Deal with symbols belonging to the tree constant
17044         pool.
17045         (get_constant_section): Add ALIGN parameter and simplify.
17046         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
17047         (assemble_constant_contents): Use the expression of the VAR_DECL.
17048         (output_constant_def_contents): Use the alignment of the VAR_DECL.
17049         (tree_output_constant_def): New global function.
17050         (mark_constant): Use the expression of the VAR_DECL.
17051         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
17052         its expression.
17053         (output_object_block): Likewise and assemble the expression.
17054
17055 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
17056
17057         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
17058         hash_tree, eq_tree): New tree hash table.
17059         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
17060         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
17061         lto_orig_address_remove): Reimplement.
17062
17063 2010-04-28  Xinliang David Li  <davidxl@google.com>
17064
17065         PR c/42643
17066         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
17067         (compute_uninit_opnds_pos): New function.
17068         (is_non_loop_exit_postdominating): New function.
17069         (compute_control_dep_chain): New function.
17070         (find_pdom): New function.
17071         (convert_control_dep_chain_into_preds): New function.
17072         (find_predicates): New function.
17073         (find_control_equiv_block): New function.
17074         (collect_phi_def_edges): New function.
17075         (find_def_preds): New function.
17076         (find_dom): New function.
17077         (dump_predicates): New function.
17078         (get_cmp_code): New function.
17079         (is_value_included_in): New function.
17080         (find_matching_predicate_in_rest_chains): New function.
17081         (use_pred_not_overlap_with_undef_path_pred): New function.
17082         (is_use_properly_guarded): New function.
17083         (normalize_cond_1): New function.
17084         (is_and_or_or): New function.
17085         (normalize_cond): New function.
17086         (is_gcond_subset_of): New function.
17087         (is_subset_of_any): New function.
17088         (is_or_set_subset_of): New function.
17089         (is_and_set_subset_of): New function.
17090         (is_norm_cond_subset_of): New function.
17091         (is_pred_expr_subset_of): New function.
17092         (is_pred_chain_subset_of): New function.
17093         (is_included_in): New function.
17094         (is_superset_of): New function.
17095         (find_uninit_use): New function.
17096         (warn_uninitialized_phi): New function.
17097         (compute_possibly_undefined_names): New function.
17098         (ssa_undefined_value_p): New function.
17099         (execute_late_warn_uninitialized): New function.
17100         * tree-ssa.c (ssa_undefined_value_p): Removed.
17101         (warn_uninit): Changed to extern.
17102         (warn_uninitialized_phi): Removed.
17103         (warn_uninitialized_vars): Changed to extern.
17104         (execute_late_warn_uninitialized): Removed
17105         * tree-flow.h: Add new prototypes.
17106         * timevar.def: Add new time variable.
17107         * Makefile.in: Add new build file.
17108
17109 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
17110
17111         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
17112         type if available.
17113
17114 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17115
17116         PR target/22224
17117         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
17118
17119 2010-04-28  Martin Jambor  <mjambor@suse.cz>
17120
17121         * cgraph.h (struct cgraph_node): New field indirect_calls.
17122         (struct cgraph_indirect_call_info): New type.
17123         (struct cgraph_edge): Removed field indirect_call. New fields
17124         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
17125         (cgraph_create_indirect_edge): Declare.
17126         (cgraph_make_edge_direct): Likewise.
17127         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
17128         * ipa-prop.h (struct ipa_param_call_note): Removed.
17129         (struct ipa_node_params): Removed field param_calls.
17130         (ipa_create_all_structures_for_iinln): Declare.
17131         * cgraph.c: Described indirect edges and uids in initial comment.
17132         (cgraph_add_edge_to_call_site_hash): New function.
17133         (cgraph_edge): Search also among the indirect edges, use
17134         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
17135         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
17136         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
17137         site hash.
17138         (initialize_inline_failed): Assign a reason to indirect edges.
17139         (cgraph_create_edge_1): New function.
17140         (cgraph_create_edge): Moved some functionality to
17141         cgraph_create_edge_1.
17142         (cgraph_create_indirect_edge): New function.
17143         (cgraph_edge_remove_callee): Add an assert checking for
17144         non-indirectness.
17145         (cgraph_edge_remove_caller): Special-case indirect edges.
17146         (cgraph_remove_edge): Likewise.
17147         (cgraph_set_edge_callee): New function.
17148         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
17149         (cgraph_make_edge_direct): New function.
17150         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
17151         the declaration of the call statement matches.
17152         (cgraph_node_remove_callees): Special-case indirect edges.
17153         (cgraph_clone_edge): Likewise.
17154         (cgraph_clone_node): Clone also the indirect edges.
17155         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
17156         indirect_call, dump count of indirect_calls edges.
17157         * ipa-prop.c (iinlining_processed_edges): New variable.
17158         (ipa_note_param_call): Create indirect edges instead of
17159         creating notes.  New parameter node.
17160         (ipa_analyze_call_uses): New parameter node, pass it on to
17161         ipa_note_param_call.
17162         (ipa_analyze_stmt_uses): Likewise.
17163         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
17164         (print_edge_addition_message): Work on edges rather than on notes.
17165         (update_call_notes_after_inlining): Likewise, renamed to
17166         update_indirect_edges_after_inlining.
17167         (ipa_create_all_structures_for_iinln): New function.
17168         (ipa_free_node_params_substructures): Do not free notes.
17169         (ipa_edge_duplication_hook): Propagate bits within
17170         iinlining_processed_edges bitmap.
17171         (ipa_node_duplication_hook): Do not duplicate notes.
17172         (free_all_ipa_structures_after_ipa_cp): Renamed to
17173         ipa_free_all_structures_after_ipa_cp.
17174         (free_all_ipa_structures_after_iinln): Renamed to
17175         ipa_free_all_structures_after_iinln.
17176         (ipa_write_param_call_note): Removed.
17177         (ipa_read_param_call_note): Removed.
17178         (ipa_write_indirect_edge_info): New function.
17179         (ipa_read_indirect_edge_info): Likewise.
17180         (ipa_write_node_info): Do not stream notes, do stream information
17181         in indirect edges.
17182         (ipa_read_node_info): Likewise.
17183         (lto_ipa_fixup_call_notes): Removed.
17184         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
17185         * ipa-inline.c (pass_ipa_inline): Likewise.
17186         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
17187         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
17188         * tree-inline.c (copy_bb): Removed an unnecessary double check for
17189         is_gimple_call.
17190         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
17191         edges.
17192         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
17193         (output_cgraph): Stream also indirect edges.
17194         (lto_output_edge): Added capability to stream indirect edges.
17195         (input_edge): Likewise.
17196         (input_cgraph_1): Likewise.
17197         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
17198         of indirect edges.
17199
17200 2010-04-28  Richard Guenther  <rguenther@suse.de>
17201
17202         PR tree-optimization/43879
17203         PR tree-optimization/43909
17204         * tree-ssa-structalias.c (struct variable_info): Add
17205         only_restrict_pointers flag.
17206         (new_var_info): Initialize it.  Increment stats.total_vars here.
17207         (create_function_info_for): Do not increment stats.total_vars here.
17208         (get_function_part_constraint): Fix build with C++.
17209         (insert_into_field_list): Remove.
17210         (push_fields_onto_fieldstack): Properly merge fields.
17211         (create_variable_info_for): Split and simplify.
17212         (create_variable_info_for_1): New piece.
17213         (intra_create_variable_infos): Properly make restrict constraints
17214         from parameters.
17215
17216 2010-04-28  Richard Guenther  <rguenther@suse.de>
17217
17218         PR c++/43880
17219         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
17220
17221 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
17222             Jan Hubicka  <hubicka@ucw.cz>
17223
17224         * doc/invoke.texi (-Wsuggest-attribute=const,
17225         -Wsuggest-attribute=pure): Document.
17226         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
17227         (function_always_visible_to_compiler_p,
17228         suggest_attribute, warn_function_pure, warn_function_const):
17229         New functions.
17230         (check_call): Improve debug info.
17231         (analyze_function): Do not check availability.
17232         (add_new_function): Check availability.
17233         (propagate): Output warnings.
17234         (skip_function_for_local_pure_const): New function.
17235         (local_pure_const): Use it; output warnings.
17236         * common.opt (Wsuggest-attribute=const,
17237         Wsuggest-attribute=pure): New.
17238
17239 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
17240
17241         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
17242         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
17243         or DW_CFA_def_cfa_offset{,_sf}.
17244
17245 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
17246
17247         * tree.h: Fix truncated long macros.
17248
17249 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
17250
17251         * collect2.c (TARGET_64BIT): Redefine to target's default.
17252         * tlink.c: Likewise.
17253         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
17254         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
17255         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
17256         for underscoring __USER_LABEL_PREFIX__.
17257         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
17258         (SUB_LINK_ENTRY32): New.
17259         (SUB_LINK_ENTRY64): New.
17260         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
17261         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
17262         (SUB_LINK_ENTRY64): New.
17263         (SUB_LINK_ENTRY): New.
17264         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
17265         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
17266         x64 target is choosen.
17267         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
17268         * configure: Regenerated.
17269         * configure.ac (leading-mingw64-underscores): Option added.
17270
17271 2010-04-27  Jan Hubicka  <jh@suse.cz>
17272
17273         * doc/invoke.texi (-fipa-profile): Document.
17274         * opts.c (decode_options): Enable ipa-profile at -O1.
17275         * timevar.def (TV_IPA_PROFILE): Define.
17276         * common.opt (fipa-profile): Add.
17277         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
17278         flag for clones.
17279         (cgraph_propagate_frequency): Handle only local ones.
17280         * tree-pass.h (pass_ipa_profile): Declare.
17281         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
17282         (pass_ipa_profile): Use TV_IPA_PROFILE.
17283         * ipa.c (ipa_profile): New function.
17284         (gate_ipa_profile): Likewise.
17285         (pass_ipa_profile): New global variable.
17286         * passes.c (pass_ipa_profile): New.
17287
17288 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
17289
17290         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
17291
17292 2010-04-27  Martin Jambor  <mjambor@suse.cz>
17293
17294         PR middle-end/43812
17295         * ipa.c (dissolve_same_comdat_group_list): New function.
17296         (function_and_variable_visibility): Call
17297         dissolve_same_comdat_group_list when comdat group contains external or
17298         newly local nodes.
17299         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
17300         lists are circular and that they contain only DECL_ONE_ONLY nodes.
17301
17302 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
17303
17304         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
17305         (const_hash_1) <VECTOR_CST>: New case.
17306         (compare_constant) <VECTOR_CST>: Likewise.
17307         <ADDR_EXPR>: Deal with LABEL_REFs.
17308         (copy_constant) <VECTOR_CST>: New case.
17309
17310 2010-04-27  Jan Hubicka  <jh@suse.cz>
17311
17312         * cgraph.c (cgraph_propagate_frequency): New function.
17313         * cgraph.h (cgraph_propagate_frequency): Declare.
17314         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
17315         cgraph_propagate_frequency.
17316
17317 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
17318
17319         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
17320
17321 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
17322
17323         PR target/40657
17324         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
17325         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
17326         here to determine which regs to push and how much stack to reserve.
17327
17328 2010-04-27  Jie Zhang  <jie@codesourcery.com>
17329
17330         * doc/gimple.texi (gimple_statement_with_ops): Remove
17331         addresses_taken field.
17332         (gimple_statement_with_memory_ops): Likewise.
17333
17334 2010-04-27  Jan Hubicka  <jh@suse.cz>
17335
17336         * tree-inline.c (eni_inlining_weights): Remove.
17337         (estimate_num_insns): Special case more builtins.
17338
17339 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
17340
17341         PR c/32207
17342         * c-typeck.c (build_binary_op): Move forward check for comparison
17343         pointer with null pointer constant and adjust the diagnostic message.
17344
17345 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
17346
17347         PR lto/42776
17348         * configure.ac (gcc_cv_as_section_has_align): Set if installed
17349         binutils supports extended .section directive needed by LTO, or
17350         warn if older binutils found.
17351         (LTO_BINARY_READER): New AC_SUBST'd variable.
17352         (LTO_USE_LIBELF): Likewise.
17353         * gcc/config.gcc (lto_binary_reader): New target-specific configure
17354         variable.
17355         * gcc/Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
17356         (LTO_USE_LIBELF): Likewise.
17357         * configure: Regenerate.
17358
17359         * collect2.c (is_elf): Rename from this ...
17360         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
17361          object files in addition to ELF-formatted ones.
17362         (scan_prog_file): Caller updated.  Also allow for LTO info marker
17363         symbol to be prefixed or not by an extra underscore.
17364
17365         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
17366         * config/i386/winnt.c: Also #include lto-streamer.h
17367         (i386_pe_asm_named_section): Specify 1-byte section alignment for
17368         LTO named sections.
17369         (i386_pe_asm_output_aligned_decl_common): Add comment.
17370         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
17371
17372 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
17373
17374         PR target/43889
17375         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
17376         Add missing earlyclobber for second alternative.
17377
17378 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
17379
17380         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
17381         bits for artificial defs at the top of the block.
17382         * fwprop.c (single_def_use_enter_block): Don't call it.
17383
17384 2010-04-26  Jack Howarth  <howarth@bromo.med.uc.edu>
17385
17386         PR 43715
17387         * gcc/configure.ac: Use "$gcc_cv_nm -g" on darwin
17388         instead of "$gcc_cv_objdump -T".
17389         Use "-undefined dynamic_lookup" on darwin.
17390         * gcc/configure: Regenerate.
17391
17392 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
17393
17394         PR c/43893
17395         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
17396
17397 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
17398
17399         * c-parser.c (struct c_token): Move location field up.
17400         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
17401         (struct c_declspecs): Convert typespec_word, storage_class, and
17402         default_int_p into bitfields.
17403         (struct c_declarator): Move loc field up.
17404
17405 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
17406
17407         * cfgloop.h (struct loop): Move can_be_parallel field up.
17408         * ipa-prop.h (struct ip_node_params): Move bitfields up.
17409         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
17410         down.
17411         (struct iv_cand): Convert pos field into a bitfield.
17412         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
17413         field up.
17414         (struct _stmt_vec_info): Shuffle fields for better packing.
17415
17416 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
17417
17418         * varasm.c (IN_NAMED_SECTION): Remove guard.
17419         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
17420         (IN_NAMED_SECTION_P): ...this.
17421         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
17422         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
17423
17424 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
17425
17426         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
17427         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
17428         of shadowing it.  Fix comments.
17429
17430 2010-04-26  Jan Hubicka  <jh@suse.cz>
17431
17432         * cgraph.c (cgraph_create_node): Set node frequency to normal.
17433         (cgraph_clone_node): Copy function frequency.
17434         * cgraph.h (node_frequency): New enum
17435         (struct cgraph_node): Add.
17436         * final.c (rest_of_clean_state): Update.
17437         * lto-cgraph.c (lto_output_node): Output node frequency.
17438         (input_overwrite_node): Input node frequency.
17439         * tre-ssa-loop-ivopts (computation_cost): Update.
17440         * lto-streamer-out.c (output_function): Do not output function
17441         frequency.
17442         * predict.c (maybe_hot_frequency_p): Update and handle functions
17443         executed once.
17444         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
17445         attribute lookup.
17446         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
17447         (compute_function_frequency): Set noreturn functions to be executed
17448         once.
17449         (choose_function_section): Update.
17450         * lto-streamer-in.c (input_function): Do not input function frequency.
17451         * function.c (allocate_struct_function): Do not initialize function
17452         frequency.
17453         * function.h (function_frequency): Remove.
17454         (struct function): Remove function frequency.
17455         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
17456         (try_update): Update.
17457         * tree-inline.c (initialize_cfun): Do not update function frequency.
17458         * passes.c (pass_init_dump_file): Update.
17459         * i386.c (ix86_compute_frame_layout): Update.
17460         (ix86_pad_returns): Update.
17461
17462 2010-04-26  Jie Zhang  <jie@codesourcery.com>
17463
17464         PR tree-optimization/43833
17465         * tree-vrp.c (range_int_cst_p): New.
17466         (range_int_cst_singleton_p): New.
17467         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
17468         when both operands are constants.  Use range_int_cst_p in
17469         BIT_IOR_EXPR case.
17470
17471 2010-04-26  Jan Hubicka  <jh@suse.cz>
17472
17473         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
17474
17475 2010-04-26  Richard Guenther  <rguenther@suse.de>
17476
17477         PR lto/43080
17478         * gimple.c (gimple_decl_printable_name): Deal gracefully
17479         with a NULL DECL_NAME.
17480
17481 2010-04-26  Richard Guenther  <rguenther@suse.de>
17482
17483         PR lto/42425
17484         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
17485         if emitting debug information and it is either a function
17486         or a namespace decl.
17487
17488 2010-04-26  Ira Rosen  <irar@il.ibm.com>
17489
17490         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
17491         determine if the statement is vectorizable, and a macro to access it.
17492         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
17493         Skip statements that can't be vectorized. If the analysis fails,
17494         mark the statement as unvectorizable if vectorizing basic block.
17495         (vect_compute_data_refs_alignment): Likewise.
17496         (vect_verify_datarefs_alignment): Skip statements marked as
17497         unvectorizable. Add print.
17498         (vect_analyze_group_access): Skip statements that can't be
17499         vectorized. If the analysis fails, mark the statement as
17500         unvectorizable if vectorizing basic block.
17501         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
17502         * tree-vect-stmts.c (vectorizable_store): Fix the number of
17503         generated stmts for SLP.
17504         (new_stmt_vec_info): Initialize the new field.
17505         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
17506         statements marked as unvectorizable.
17507
17508 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
17509
17510         * c-common.c (flag_isoc1x): New.
17511         (flag_isoc99): Update comment.
17512         * c-common.h (flag_isoc1x): New.
17513         (flag_isoc99): Update comment.
17514         * c-cppbuiltin.c (builtin_define_float_constants): Also define
17515         __<type>_DECIMAL_DIG__.
17516         * c-opts.c (set_std_c1x): New.
17517         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
17518         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
17519         * c.opt (-std=c1x, -std=gnu1x): New options.
17520         * doc/cpp.texi: Mention -std=c1x.
17521         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
17522         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
17523         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
17524         * doc/standards.texi: Mention C1X.
17525         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
17526         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
17527         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
17528         Define for C1X.
17529
17530 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
17531
17532         * config/i386/gmon-sol2.c (_mcleanup): Change format string
17533         placeholder from 0x%x to %#x.
17534         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
17535         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
17536         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
17537         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
17538         * config/i386/i386.c (ix86_target_string): Ditto.
17539         (output_pic_addr_const): Ditto.
17540         (print_operand): Ditto.
17541
17542 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
17543
17544         * combine.c (find_split_point): Add third argument.  Use it
17545         to find nested multiply-accumulate instructions.  Adjust calls.
17546         (try_combine): Adjust call to find_split_point.
17547
17548 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
17549
17550         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
17551
17552 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
17553
17554         PR tree-optimization/41442
17555         * fold-const.c (merge_truthop_with_opposite_arm): New function.
17556         (fold_binary_loc): Call it.
17557
17558 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
17559
17560         * toplev.c (general_init): Set default for fdiagnostics-show-option.
17561         * opts.c (common_handle_option): Allow disabling it.
17562         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
17563
17564 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
17565
17566         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
17567         between modes if both types are integral.
17568
17569 2010-04-23  Richard Guenther  <rguenther@suse.de>
17570
17571         PR tree-optimization/43572
17572         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
17573
17574 2010-04-23  Richard Guenther  <rguenther@suse.de>
17575
17576         PR lto/43455
17577         * tree-inline.c (tree_can_inline_p): Also check compatibility
17578         of return types.
17579
17580 2010-04-23  Martin Jambor  <mjambor@suse.cz>
17581
17582         PR tree-optimization/43846
17583         * tree-sra.c (struct access): New flag grp_assignment_read.
17584         (build_accesses_from_assign): Set grp_assignment_read.
17585         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
17586         (enum mark_read_status): New type.
17587         (analyze_access_subtree): Propagate grp_assignment_read, create
17588         accesses also if both direct_read and root->grp_assignment_read.
17589
17590 2010-04-23  Martin Jambor  <mjambor@suse.cz>
17591
17592         PR middle-end/43835
17593         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
17594         function does not have type attributes.
17595
17596 2010-04-23  Richard Guenther  <rguenther@suse.de>
17597
17598         PR lto/42653
17599         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
17600         of FUNCTION_DECLs.
17601
17602 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
17603
17604         * sese.h (create_if_region_on_edge): Remove.
17605
17606         * sese.c (create_if_region_on_edge): Make static.
17607
17608         * tree-inline.c: Do not include ggc.h.
17609
17610         * expr.c: Do not include ggc.h.
17611
17612         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
17613         dependencies.
17614
17615 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
17616
17617         PR target/43744
17618         * config/sh/sh.c (find_barrier): Don't emit a constant pool
17619         in the middle of insns for casesi_worker_2.
17620
17621 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
17622
17623         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
17624
17625 2010-04-22  Ira Rosen  <irar@il.ibm.com>
17626
17627         PR tree-optimization/43842
17628         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
17629         loop unrolling in update of exit phis. Fix comment.
17630         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
17631         least two reduction statements in the loop before starting SLP
17632         analysis.
17633
17634 2010-04-22  Nick Clifton  <nickc@redhat.com>
17635
17636         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
17637
17638 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
17639
17640         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
17641         to simplify a + ~a.
17642
17643 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
17644
17645         * tree-parloops.c (loop_parallel_p): New argument
17646         parloop_obstack.  Pass it down.
17647         (parallelize_loops): New variable parloop_obstack.  Initialize it,
17648         pass it down, free it.
17649
17650         * tree-loop-linear.c (linear_transform_loops): Pass down
17651         lambda_obstack.
17652
17653         * tree-data-ref.h (lambda_compute_access_matrices): New argument
17654         of type struct obstack *.
17655
17656         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
17657         scratch_obstack.  Initialize it, pass down, free it.
17658
17659         * lambda.h (lambda_loop_new): Remove.
17660         (lambda_matrix_new, lambda_matrix_inverse)
17661         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
17662         argument of type struct obstack *.
17663
17664         * lambda-trans.c (lambda_trans_matrix_new): New argument
17665         lambda_obstack.  Pass it down, use obstack allocation for ret.
17666         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
17667         it down.
17668
17669         * lambda-mat.c (lambda_matrix_get_column)
17670         (lambda_matrix_project_to_null): Remove.
17671         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
17672         allocation for mat.
17673         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
17674         lambda_obstack.
17675
17676         * lambda-code.c (lambda_loop_new): New function.
17677         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
17678         (lambda_compute_auxillary_space, lambda_compute_target_space)
17679         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
17680         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
17681         (build_access_matrix): New argument lambda_obstack.  Use obstack
17682         allocation for am.
17683         (lambda_compute_step_signs, lambda_compute_access_matrices): New
17684         argument lambda_obstack.  Pass it down.
17685
17686 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
17687
17688         * optabs.h (expand_widening_mult): Declare.
17689
17690 2010-04-22  Richard Guenther  <rguenther@suse.de>
17691
17692         PR tree-optimization/43845
17693         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
17694         lookup the CALL_EXPR function and arguments.
17695
17696 2010-04-22  Nick Clifton  <nickc@redhat.com>
17697
17698         * config/stormy16/stormy16.c
17699         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
17700         * config/stormy16/stormy16.h: Tidy up formatting.
17701         (DONT_USE_BUILTIN_SETJMP): Remove definition.
17702         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
17703         (ineqbranchsi): Delete pattern.
17704         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
17705         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
17706         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
17707         stormy16-lib2-ucmpsi2.c.
17708
17709 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
17710
17711         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
17712         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
17713         extra set merge_set_noclobber, and use it to relax the final test
17714         slightly.
17715         * df.h (df_simulate_find_noclobber_defs): Declare.
17716         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
17717         conditional defs.
17718         (df_simulate_find_noclobber_defs): New function.
17719
17720 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
17721
17722         * config/i386/i386.md: Use {} around multi-line preparation statements.
17723
17724 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
17725
17726         * c-tree.h (push_init_level, pop_init_level, set_init_index)
17727         (process_init_element): New argument of type struct obstack *.
17728
17729         * c-typeck.c (push_init_level, pop_init_level, set_designator)
17730         (set_init_index, set_init_label, set_nonincremental_init)
17731         (set_nonincremental_init_from_string, find_init_member)
17732         (output_init_element, output_pending_init_elements)
17733         (process_init_element): New argument braced_init_obstack.  Pass it
17734         down.
17735         (push_range_stack, add_pending_init): New argument
17736         braced_init_obstack.  Use obstack allocation.
17737
17738         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
17739         braced_init_obstack.  Pass it down.
17740         (c_parser_braced_init): New variables ret, braced_init_obstack.
17741         Initialize obstack, pass it down and finally free it.
17742
17743 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
17744
17745         PR middle-end/29274
17746         * tree-pass.h (pass_optimize_widening_mul): Declare.
17747         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
17748         gate_optimize_widening_mul): New static functions.
17749         (pass_optimize_widening_mul): New.
17750         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
17751         <case MULT_EXPR>: Remove support for widening multiplies.
17752         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
17753         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
17754         simplify_gen_unary rather than directly building extensions.
17755         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
17756         WIDEN_MULT_EXPR.
17757         * expmed.c (expand_widening_mult): New function.
17758         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
17759
17760 2010-04-21  Jan Hubicka  <jh@suse.cz>
17761
17762         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
17763         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
17764         * lto-wpa-fixup.c: Remove.
17765         * Makefile.in (lto-wpa-fixup.o): Remove.
17766         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
17767         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
17768         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
17769
17770 2010-04-21  Jan Hubicka  <jh@suse.cz>
17771
17772         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
17773         add write_optimization_summary, read_optimization_summary.
17774         (ipa_write_summaries_of_cgraph_node_set): Remove.
17775         (ipa_write_optimization_summaries): Declare.
17776         (ipa_read_optimization_summaries): Declare.
17777         * ipa-cp.c (pass_ipa_cp): Update.
17778         * ipa-reference.c (pass_ipa_reference): Update.
17779         * ipa-pure-const.c (pass_ipa_pure_const): Update.
17780         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
17781         Update.
17782         * ipa-inline.c (pass_ipa_inline): Update.
17783         * ipa.c (pass_ipa_whole_program): Update.
17784         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
17785         * passes.c (ipa_write_summaries_1): Do not test wpa.
17786         (ipa_write_optimization_summaries_1): New.
17787         (ipa_write_optimization_summaries): New.
17788         (ipa_read_summaries): Do not test ltrans.
17789         (ipa_read_optimization_summaries_1): New.
17790         (ipa_read_optimization_summaries): New.
17791
17792 2010-04-21  Jan Hubicka  <jh@suse.cz>
17793
17794         * lto-cgraph.c (lto_output_node): Do not output comdat groups
17795         for boundary nodes.
17796         (output_cgraph): Do not arrange comdat groups for boundary nodes.
17797
17798 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
17799
17800         PR debug/40040
17801         * dwarf2out.c (add_name_and_src_coords_attributes): Add
17802         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
17803
17804 2010-04-21  Jan Hubicka  <jh@suse.cz>
17805
17806         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
17807
17808 2010-04-21  Jan Hubicka  <jh@suse.cz>
17809
17810         * varpool.c (decide_is_variable_needed): Variable is always needed
17811         during ltrans.
17812
17813 2010-04-21  Jan Hubicka  <jh@suse.cz>
17814
17815         * opts.c (decode_options): Enable pure-const pass for whopr.
17816
17817 2010-04-21  Jan Hubicka  <jh@suse.cz>
17818
17819         * cgraph.c (dump_cgraph_node): Dump also assembler name.
17820         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
17821         at WPA dumping.
17822         (cgraph_decide_inlining): Do not expect callee to be removed in all
17823         cases.
17824
17825 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
17826
17827         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
17828
17829 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
17830
17831         * config/i386/i386.md (x86_shrd): Add athlon_decode and
17832         amdfam10_decode attributes.
17833
17834 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
17835
17836         PR middle-end/43570
17837         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
17838         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
17839         (lower_copyprivate_clauses): Use private var in outer
17840         context instead of original var.  Make sure the types
17841         are correct for VLAs.
17842
17843 2010-04-21  Richard Guenther  <rguenther@suse.de>
17844
17845         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
17846         to non-pointer objects.
17847
17848 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
17849
17850         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
17851         last chain entry if it starts with the still current label.
17852         (add_location_or_const_value_attribute): Check that
17853         loc_list->first->next is NULL instead of comparing ->first with ->last.
17854         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
17855         to add_var_loc_to_decl.
17856
17857         * dwarf2out.c (output_call_frame_info): For dw_cie_version
17858         >= 4 add also address size and segment size fields into CIE header.
17859
17860         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
17861         long as address size is the same as sizeof (void *) and
17862         segment size is 0.
17863         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
17864         address size or segment size is unexpected, return DW_EH_PE_omit.
17865         (classify_object_over_fdes): If get_cie_encoding returned
17866         DW_EH_PE_omit, return -1.
17867         (init_object): If classify_object_over_fdes returned -1,
17868         pretend there were no FDEs at all.
17869
17870 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
17871
17872         * config/i386/i386.md (bswap<mode>2): Macroize expander from
17873         bswap{si,di}2 using SWI48 mode iterator.
17874         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
17875         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
17876         set modrm attribute of bswap insn to 0 and remove length attribute.
17877         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
17878         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
17879         set mode attribute to <MODE> and remove length attribute.
17880
17881 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
17882
17883         PR rtl-optimization/43520
17884         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
17885         zero available registers.
17886
17887 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17888
17889         * builtins.c (fold_builtin_cproj): Fold more cases.
17890
17891 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17892
17893         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
17894         (fold_builtin_1): Fold builtin cproj.
17895         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
17896         Use ATTR_CONST_NOTHROW_LIST.
17897
17898 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
17899
17900         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
17901         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
17902         ffsi2_no_cmove for !TARGET_CMOVE.
17903         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
17904         (ffssi2): Remove expander.
17905         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
17906         mode iterator.
17907         (ctz<mode>2): Ditto from ctz{si,di}2.
17908         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
17909         mode iterator.
17910         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
17911         mode iterator.
17912
17913 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
17914
17915         * dwarf2out.c (AT_linkage_name): Define.
17916         (clone_as_declaration): Handle DW_AT_linkage_name.
17917         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
17918         of DW_AT_MIPS_linkage_name.
17919         (move_linkage_attr): Likewise.
17920         (dwarf2out_finish): Likewise.
17921
17922 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
17923
17924         PR middle-end/41952
17925         * fold-const.c (fold_comparison): New folding rule.
17926
17927 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
17928
17929         * double-int.h (double_int_setbit): Declare.
17930         * double-int.c (double_int_setbit): New function.
17931         * rtl.h (immed_double_int_const): Declare.
17932         * emit-rtl.c (immed_double_int_const): New function.
17933         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
17934         and immed_double_int_const functions.
17935         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
17936         expand_copysign_bit): (Ditto.).
17937         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
17938         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
17939         * dojump.c (prefer_and_bit_test): (Ditto.).
17940         * expr.c (convert_modes, reduce_to_bit_field_precision,
17941         const_vector_from_tree): (Ditto.).
17942         * expmed.c (mask_rtx, lshift_value): (Ditto.).
17943
17944 2010-04-20  Jan Hubicka  <jh@suse.cz>
17945
17946         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
17947         (dump_cgraph_node): Dump new flags.
17948         * cgraph.h (struct cgraph_node): Add flags
17949         reachable_from_other_partition and in_other_partition.
17950         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
17951         other partition can not be removed.
17952         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
17953         the other partition must be output; silence sanity checking on
17954         leaking functions bodies from other paritition.
17955         * lto-cgraph.c (reachable_from_other_partition_p): New function.
17956         (lto_output_node): Output new flags; do not sanity check that inline
17957         clones are output; drop lto_forced_extern_inline_p code; do not mock
17958         visibility flags at partition boundaries.
17959         (add_node_to): New function.
17960         (output_cgraph): Use it to sort functions so masters appear before
17961         clones.
17962         (input_overwrite_node): Input new flags.
17963         * passes.c (ipa_write_summaries): Do not call
17964         lto_new_extern_inline_states.
17965         * lto-section-out.c (forced_extern_inline,
17966         lto_new_extern_inline_states lto_delete_extern_inline_states,
17967         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
17968         * lto-streamer.h (lto_new_extern_inline_states,
17969         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
17970         lto_forced_extern_inline_p): Kill.
17971
17972 2010-04-20  Richard Guenther  <rguenther@suse.de>
17973
17974         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
17975         from vars that can have pointers.
17976         (process_constraint): Dump useless constraints.
17977
17978 2010-04-20  Richard Guenther  <rguenther@suse.de>
17979
17980         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
17981         (dump_sa_points_to_info): Remove asserts.
17982         (init_base_vars): nothing_id isn't an escape point nor does it
17983         have pointers.
17984
17985 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
17986
17987         * tree.h (TYPE_REF_IS_RVALUE): Define.
17988         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
17989         should_move_die_to_comdat, prune_unused_types_walk): Handle
17990         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
17991         (modified_type_die, gen_reference_type_die): Emit
17992         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
17993         if TYPE_REF_IS_RVALUE and -gdwarf-4.
17994
17995 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17996
17997         PR target/43635
17998         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
17999         calls for -fpic -m31 if they have been sibcall optimized.
18000
18001 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
18002
18003         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
18004         ar.lc fixed and call-used.
18005
18006         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
18007
18008 2010-04-19  Jan Hubicka  <jh@suse.cz>
18009
18010         * opts.c (decode_options): Disable whpr incompatible passes.
18011         * lto/lto.c (lto_1_to_1_map): Skip clones.
18012         (read_cgraph_and_symbols): Do not mark everything as needed.
18013         (do_whole_program_analysis): Do map only after optimizing;
18014         set proper cgraph_state; use passmanager.
18015
18016 2010-04-19  DJ Delorie  <dj@redhat.com>
18017
18018         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
18019         POINTER_PLUS_EXPR and fix them.
18020
18021 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
18022
18023         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
18024         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
18025         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
18026         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
18027         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
18028         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
18029         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
18030         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
18031         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
18032         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
18033         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
18034
18035 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
18036
18037         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
18038         (check_cond_move_block): Likewise.
18039         (cond_move_process_if_block): Likewise.
18040         (noce_find_if_block): Improve formatting.
18041         (find_if_header): Pass 0 to memset and tweak conditions.
18042         (cond_exec_find_if_block): Fix long lines and tweak conditions.
18043
18044 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
18045
18046         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
18047         for -gdwarf-4.
18048
18049         PR middle-end/43337
18050         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
18051         with non-local decl doesn't need chain.
18052
18053 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
18054
18055         * ira-color.c (allocno_reload_assign): Avoid accumulating
18056         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
18057
18058 2010-04-19  Martin Jambor  <mjambor@suse.cz>
18059
18060         * gimple.h (create_tmp_reg): Declare.
18061         * gimplify.c (create_tmp_reg): New function.
18062         (gimplify_return_expr): Use create_tmp_reg.
18063         (gimplify_omp_atomic): Likewise.
18064         (gimple_regimplify_operands): Likewise.
18065         * tree-dfa.c (make_rename_temp): Likewise.
18066         * tree-predcom.c (predcom_tmp_var): Likewise.
18067         (reassociate_to_the_same_stmt): Likewise.
18068         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
18069         (get_replaced_param_substitute): Likewise.
18070         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
18071         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
18072         * tree-ssa-pre.c (get_representative_for): Likewise.
18073         (create_expression_by_pieces): Likewise.
18074         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
18075         (create_tailcall_accumulator): Likewise.
18076
18077 2010-04-19  Martin Jambor  <mjambor@suse.cz>
18078
18079         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
18080         new_stmt.
18081         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
18082
18083 2010-04-19  Richard Guenther  <rguenther@suse.de>
18084
18085         PR tree-optimization/43796
18086         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
18087         from SCEV in the lattice.
18088         (vrp_visit_phi_node): Dump change.
18089
18090 2010-04-19  Richard Guenther  <rguenther@suse.de>
18091
18092         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
18093         * configure: Re-generated.
18094
18095 2010-04-19  Richard Guenther  <rguenther@suse.de>
18096
18097         PR tree-optimization/43783
18098         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
18099         constant ARRAY_REF operands two and three if possible.
18100
18101 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
18102
18103         PR target/43766
18104         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
18105
18106 2010-04-19  Jie Zhang  <jie@codesourcery.com>
18107
18108         PR target/43662
18109         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
18110
18111 2010-04-19  Ira Rosen  <irar@il.ibm.com>
18112
18113         PR tree-optimization/37027
18114         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
18115         and macro to access it.
18116         (vectorizable_reduction): Add argument.
18117         (vect_get_slp_defs): Likewise.
18118         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
18119         statements for possible use in SLP.
18120         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
18121         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
18122         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
18123         add new argument.
18124         (vectorizable_reduction): Likewise.
18125         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
18126         vect_get_slp_defs.
18127         (vectorizable_type_demotion, vectorizable_type_promotion,
18128         vectorizable_store): Likewise.
18129         (vect_analyze_stmt): Update call to vectorizable_reduction.
18130         (vect_transform_stmt): Likewise.
18131         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
18132         (vect_build_slp_tree): Fix indentation. Check that there are no loads
18133         from different interleaving chains in same node.
18134         (vect_slp_rearrange_stmts): New function.
18135         (vect_supported_load_permutation_p): Allow load permutations for
18136         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
18137         inside SLP nodes if necessary.
18138         (vect_analyze_slp_instance): Handle reductions.
18139         (vect_analyze_slp): Try to build SLP instances originating from groups
18140         of reductions.
18141         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
18142         (vect_get_constant_vectors): Create initial vectors for reductions
18143         according to reduction code. Add new argument.
18144         (vect_get_slp_defs): Add new argument, pass it to
18145         vect_get_constant_vectors.
18146         (vect_schedule_slp_instance): Remove SLP tree root statements.
18147
18148 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
18149
18150         * tree.h (ENUM_IS_SCOPED): Define.
18151         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
18152         for ENUM_IS_SCOPED enums.
18153
18154 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
18155
18156         * fold-const.c (fold_comparison): Use ssizetype.
18157         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
18158         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
18159         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
18160         * tree-object-size.c (compute_object_sizes): Use size_type_node.
18161
18162         * tree.h (initialize_sizetypes): Remove parameter.
18163         (build_common_tree_nodes): Remove second parameter.
18164         * stor-layout.c (initialize_sizetypes): Remove parameter.
18165         Always create an unsigned type.
18166         (set_sizetype): Assert that the passed type is unsigned and simplify.
18167         * tree.c (build_common_tree_nodes): Remove second parameter.
18168         Adjust call to initialize_sizetypes.
18169         * c-decl.c (c_init_decl_processing): Remove second argument in call to
18170         build_common_tree_nodes.
18171
18172 2010-04-18  Matthias Klose  <doko@ubuntu.com>
18173
18174         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
18175
18176 2010-04-18  Ira Rosen  <irar@il.ibm.com>
18177
18178         PR tree-optimization/43771
18179         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
18180         load permutation doesn't have gaps.
18181
18182 2010-04-18  Jan Hubicka  <jh@suse.cz>
18183
18184         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
18185         (sse_prologue_save_insn expander): Use new pattern.
18186         (sse_prologue_save_insn1): New pattern and splitter.
18187         (sse_prologue_save_insn): Update to deal also with 64bit aligned
18188         blocks.
18189         * i386.c (setup_incoming_varargs_64): Do not compute jump
18190         destination here.
18191         (ix86_gimplify_va_arg): Update alignment needed.
18192         (ix86_local_alignment): Do not align all local arrays to 128bit.
18193
18194 2010-04-17  Jan Hubicka  <jh@suse.cz>
18195
18196         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
18197
18198 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
18199
18200         * arm.md (negdi2): Remove redundant code to force values into a
18201         register.
18202
18203 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
18204
18205         * arm/bpabi.S: Add EABI alignment attributes to objects.
18206         * arm/bpabi-v6m.S: Likewise.
18207         * arm/crti.asm: Likewise.
18208         * arm/crtn.asm: Likewise.
18209         * arm/lib1funcs.asm: Likewise.
18210         * arm/libunwind.S: Likewise.
18211
18212 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
18213
18214         * arm-protos.h (tune_params): New structure.
18215         * arm.c (current_tune): New variable.
18216         (arm_constant_limit): Delete.
18217         (struct processors): Add pointer to the tune parameters.
18218         (arm_slowmul_tune): New tuning option.
18219         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
18220         (all_cores): Adjust to pick up the tuning model.
18221         (arm_constant_limit): New function.
18222         (arm_override_options): Select the appropriate tuning model.  Delete
18223         initialization of arm_const_limit.
18224         (arm_split_constant): Use the new constant-limit model.
18225         (arm_rtx_costs): Pick up the current tuning model.
18226         * arm.md (is_strongarm, is_xscale): Delete.
18227         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
18228         for Xscale variant architectures.
18229         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
18230
18231 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
18232
18233         * config/arm/arm.c (arm_gen_constant): Remove unused variable
18234         can_shift.
18235         (arm_rtx_costs_1): Remove unused variable extra_cost.
18236         (arm_unwind_emit_set): Use variable offset.
18237         (thumb1_output_casesi): Remove unused variable flags.
18238
18239 2010-04-16  Jeff Law  <law@redhat.com>
18240
18241         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
18242         needing assignment rather than doing a two-phase assignment.  Remove
18243         unused variable 'm'.
18244
18245 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
18246
18247         PR bootstrap/43767
18248         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
18249
18250 2010-04-16  Doug Kwan  <dougkwan@google.com>
18251
18252         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
18253         (next_operand_entry_id): New static variable.
18254         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
18255         (add_to_ops_vec): Assigned unique ID to operand entry.
18256         (struct oecount_s): New field ID.
18257         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
18258         (undistribute_ops_list): Assign unique IDs to oecounts.
18259         (init_reassoc): reset next_operand_entry_id.
18260
18261 2010-04-16  Doug Kwan  <dougkwan@google.com>
18262
18263         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
18264         missing left parenthesis.
18265
18266 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
18267
18268         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
18269         *btdi_rex64 using SWI48 mode iterator.
18270         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
18271         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
18272         *jcc_btdi_mask_rex64.
18273
18274 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
18275
18276         * double-int.h (tree_to_double_int): Convert to macro.
18277         * double-int.c (tree_to_double_int): Remove.
18278
18279 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
18280
18281         PR debug/43762
18282         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
18283         with want_address 2 and in case a single element list might be
18284         possible, call it again with want_address 0.
18285
18286 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
18287
18288         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
18289         case 'W' print operands for HI mode.
18290         * config/h8300/h8300.h (Y0, Y2) : New constraints.
18291         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
18292         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
18293         * config/h8300/predicate.md (bit_register_indirect_operand): New.
18294
18295         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
18296
18297         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
18298         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
18299         #xx:3 and #xx:4 mode.
18300
18301         * config/h8300/h8300.md (inverted load with HImode dest): Add
18302         support for H8300SX.
18303
18304         * config/h8300/predicate.md (bit_operand): Allow immediate values that
18305         satisfy 'U' constraint.
18306
18307 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18308
18309         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
18310         * configure: Regenerate.
18311         * config.in: Regenerate.
18312         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
18313         works.
18314
18315 2010-04-16  Richard Guenther  <rguenther@suse.de>
18316
18317         * tree.h (struct tree_decl_minimal): Move pt_uid ...
18318         (struct tree_decl_common): ... here.
18319         (DECL_PT_UID): Adjust.
18320         (SET_DECL_PT_UID): Likewise.
18321         (DECL_PT_UID_SET_P): Likewise.
18322
18323 2010-04-16  Richard Guenther  <rguenther@suse.de>
18324
18325         PR tree-optimization/43572
18326         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
18327         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
18328         * tree-flow.h (is_call_clobbered): Remove.
18329         * tree-flow-inline.h (is_call_clobbered): Likewise.
18330         * tree-dfa.c (dump_variable): Do not dump call clobber state.
18331         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
18332         (execute_return_slot_opt): Adjust.
18333         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
18334         check for call clobbered vars here.
18335         (find_tail_calls): Move tailcall verification to the
18336         proper place.
18337
18338 2010-04-16  Diego Novillo  <dnovillo@google.com>
18339
18340         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
18341
18342 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
18343
18344         PR target/40603
18345         * config/arm/arm.md (cbranchqi4): New pattern.
18346         * config/arm/predicates.md (const0_operand,
18347         cbranchqi4_comparison_operator): New predicates.
18348
18349 2010-04-16  Richard Guenther  <rguenther@suse.de>
18350
18351         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
18352         (dump_gimple_stmt): Likewise.
18353
18354 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
18355
18356         * recog.h (struct recog_data): New field is_operator.
18357         (struct insn_operand_data): New field is_operator.
18358         * recog.c (extract_insn): Set recog_data.is_operator.
18359         * genoutput.c (output_operand_data): Emit code to set the
18360         is_operator field.
18361         * reload.c (find_reloads): Use it rather than testing for an
18362         empty constraint string.
18363
18364         PR target/41514
18365         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
18366         If the previous insn is a cbranchsi4_insn with the same arguments,
18367         omit the compare instruction.
18368
18369         * config/arm/arm.md (addsi3_cbranch): If destination is a high
18370         register, inputs must be low registers and we need a low register
18371         scratch.  Handle alternative 2 like alternative 3.
18372
18373 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
18374
18375         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
18376         don't call get_addr on both.  If one expression is a VALUE and
18377         the other a REG, check VALUE's locs if the REG isn't among them.
18378
18379 2010-04-16  Christian Bruel  <christian.bruel@st.com>
18380
18381         * config/sh/sh.h (sh_frame_pointer_required): New function.
18382         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
18383         (flag_omit_frame_pointer) Set.
18384         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
18385         (rounded_frame_size): Adjust size with outgoing_args_size.
18386         (sh_set_return_address): Must return from stack pointer.
18387         * gcc/config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
18388         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
18389         (ACCUMULATE_OUTGOING_ARGS): Define.
18390         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
18391         * gcc/config/sh/sh.opt (maccumulate-outgoing-args): New option.
18392
18393 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
18394
18395         PR target/43471
18396         * config/sh/sh.c (sh_legitimize_reload_address): Use
18397         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
18398         Remove a unneeded check for offset_base.
18399
18400 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
18401
18402         * configure: Regenerated.
18403
18404 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18405
18406         * config/s390/s390.c (s390_call_save_register_used): Switch back
18407         to HARD_REGNO_NREGS.
18408
18409 2010-04-15  Richard Guenther  <rguenther@suse.de>
18410
18411         * alias.c (alias_set_subset_of): Handle alias-set zero
18412         child properly.
18413
18414 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
18415             Julian Brown  <julian@codesourcery.com>
18416
18417         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
18418         alternatives according to use of high and low regs.
18419         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
18420         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
18421         optimizing for size on Thumb-2.
18422
18423 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
18424
18425         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
18426
18427 2010-04-15  Richard Guenther  <rguenther@suse.de>
18428
18429         * tree-ssa-structalias.c (struct variable_info): Add
18430         is_fn_info flag.
18431         (new_var_info): Initialize it.
18432         (dump_constraints): Support printing last added constraints.
18433         (debug_constraints): Adjust.
18434         (dump_constraint_graph): Likewise.
18435         (make_heapvar_for): Check for NULL cfun.
18436         (get_function_part_constraint): New function.
18437         (get_fi_for_callee): Likewise.
18438         (find_func_aliases): Properly implement IPA PTA constraints.
18439         (process_ipa_clobber): New function.
18440         (find_func_clobbers): Likewise.
18441         (insert_into_field_list_sorted): Remove.
18442         (create_function_info_for): Properly allocate vars for IPA mode.
18443         Do not use insert_into_field_list_sorted.
18444         (create_variable_info_for): Properly generate constraints for
18445         global vars in IPA mode.
18446         (dump_solution_for_var): Always dump the solution.
18447         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
18448         (find_what_var_points_to): Adjust.
18449         (pt_solution_set): Change.
18450         (pt_solution_ior_into): New function.
18451         (pt_solution_empty_p): Export.
18452         (pt_solution_includes_global): Adjust.
18453         (pt_solution_includes_1): Likewise.
18454         (pt_solutions_intersect_1): Likewise.
18455         (dump_sa_points_to_info): Check some invariants.
18456         (solve_constraints): Move constraint dumping ...
18457         (compute_points_to_sets): ... here.
18458         (ipa_pta_execute): ... and here.
18459         (compute_may_aliases): Do not re-compute points-to info
18460         locally if IPA info is available.
18461         (ipa_escaped_pt): New global var.
18462         (ipa_pta_execute): Properly implement IPA PTA.
18463         * tree-into-ssa.c (dump_decl_set): Support dumping
18464         decls not in referenced-vars.
18465         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
18466         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
18467         (dump_points_to_solution): Likewise.
18468         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
18469         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
18470         (remap_gimple_stmt): Reset call clobber/use information if necessary.
18471         (copy_decl_to_var): Copy DECL_PT_UID.
18472         (copy_result_decl_to_var): Likewise.
18473         * tree.c (make_node_stat): Initialize DECL_PT_UID.
18474         (copy_node_stat): Copy it.
18475         * tree.h (DECL_PT_UID): New macro.
18476         (SET_DECL_PT_UID): Likewise.
18477         (DECL_PT_UID_SET_P): Likewise.
18478         (struct tree_decl_minimal): Add pt_uid member.
18479         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
18480         (pt_solution_empty_p): Declare.
18481         (pt_solution_set): Adjust.
18482         (ipa_escaped_pt): Declare.
18483         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
18484         * gimple-pretty-print.c (pp_points_to_solution): New function.
18485         (dump_gimple_call): Dump call clobber/use information.
18486         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
18487         * tree-pass.h (TDF_ALIAS): New dump option.
18488         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
18489         * doc/invoke.texi (-fipa-pta): Update documentation.
18490
18491 2010-04-15  Richard Guenther  <rguenther@suse.de>
18492
18493         * Makefile.in (OBJS-common): Add gimple-fold.o.
18494         (gimple-fold.o): New rule.
18495         * tree.h (maybe_fold_offset_to_reference,
18496         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
18497         prototypes ...
18498         * gimple.h: ... here.
18499         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
18500         may_propagate_address_into_dereference): Move prototypes ...
18501         * gimple.h: ... here.
18502         * tree-ssa-ccp.c (get_symbol_constant_value,
18503         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
18504         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
18505         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
18506         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
18507         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
18508         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
18509         gimplify_and_update_call_from_tree): Move ...
18510         * gimple-fold.c: ... here.  New file.
18511         (ccp_fold_builtin): Rename to ...
18512         (gimple_fold_builtin): ... this.
18513         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
18514
18515 2010-04-15  Richard Guenther  <rguenther@suse.de>
18516
18517         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
18518         fit_double_type, force_fit_type_double, add_double_with_sign,
18519         neg_double, mul_double_with_sign, lshift_double, rshift_double,
18520         lrotate_double, rrotate_double, div_and_round_double): Move ...
18521         * double-int.c: ... here.
18522         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
18523         add_double, neg_double, mul_double_with_sign, mul_double,
18524         lshift_double, rshift_double, lrotate_double, rrotate_double,
18525         div_and_round_double): Move prototypes ...
18526         * double-int.h: ... here.
18527
18528 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
18529
18530         PR target/43742
18531         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
18532         matching constraints to ensure inputs match the output.
18533
18534 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
18535
18536         PR target/43742
18537         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
18538         in an input-only operand.
18539
18540 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
18541
18542         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
18543         (double_int_not, double_int_lshift, double_int_rshift): Declare.
18544         (double_int_negative_p): Convert to static inline function.
18545         * double-int.c (double_int_lshift, double_int_lshift): New functions.
18546         (double_int_negative_p): Remove.
18547         * tree.h (lshift_double, rshift_double):
18548         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
18549         * fold-const.c (fold_convert_const_int_from_real,
18550         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
18551         (lshift_double): Change type of arith argument to bool.
18552         (rshift_double): Change type of arith argument to bool. Correct
18553         comment.
18554         * expmed.c (mask_rtx, lshift_value): (Ditto.).
18555
18556 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
18557
18558         PR target/21803
18559         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
18560         at the start and end of the then/else blocks, and omit them from the
18561         conversion.
18562         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
18563         argument; all callers changed.  Pass zero to old_insns_match_p instead.
18564         (flow_find_head_matching_sequence): New function.
18565         (old_insns_match_p): Check REG_EH_REGION notes for calls.
18566         * basic-block.h (flow_find_cross_jump,
18567         flow_find_head_matching_sequence): Declare functions.
18568
18569 2010-04-14  Jason Merrill  <jason@redhat.com>
18570
18571         PR c++/36625
18572         * c-common.c (attribute_takes_identifier_p): New fn.
18573         * c-common.h: Declare it.
18574
18575 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
18576
18577         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
18578         splitter condition.
18579         (*udivmod<mode>4): Ditto.
18580
18581 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
18582
18583         * config/i386/i386.md (maxmin_int): Rename code attribute from
18584         maxminiprefix and update all users.
18585         (maxmin_float): Ditto from maxminfprefix.
18586         (logic): Ditto from logicprefix.
18587         (absneg_mnemonic): Ditto from absnegprefix.
18588         * config/i386/mmx.md: Update all users of maxminiprefix,
18589         maxminfprefix and logicprefix for rename.
18590         * config/i386/sse.md: Ditto.
18591         * config/i386/sync.md (sync_<code><mode>): Update for
18592         logicprefix rename.
18593
18594 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
18595
18596         PR 42966
18597         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
18598         warnings converted to errors.
18599
18600 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
18601
18602         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
18603         used insn_type variable.
18604         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
18605         to avoid set-but-not-used warning.
18606
18607 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
18608
18609         * df-core.c (df_ref_debug): Change format string placeholder
18610         from 0x%x to %#x.
18611         * dwarf2asm.c (dw2_asm_output_data_raw,
18612         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
18613         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
18614         * dwarf2out.c (output_cfi, output_cfi_directive,
18615         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
18616         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
18617         Ditto.
18618         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
18619         * print-rtl.c (print_rtx): Ditto.
18620
18621 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
18622
18623         PR middle-end/42694
18624         * builtins.c (expand_builtin_pow_root): New function to expand pow
18625         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
18626         series of sqrt and cbrt calls under -ffast-math.
18627         (expand_builtin_pow): Call it.
18628
18629 2010-04-14  Michael Matz  <matz@suse.de>
18630
18631         PR tree-optimization/42963
18632         * tree-cfg.c (touched_switch_bbs): New static variable.
18633         (group_case_labels_stmt): New function broken out from ...
18634         (group_case_labels): ... here, use the above.
18635         (start_recording_case_labels): Allocate touched_switch_bbs.
18636         (end_recording_case_labels): Deallocate it, call
18637         group_case_labels_stmt.
18638         (gimple_redirect_edge_and_branch): Remember index of affected BB.
18639
18640 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
18641
18642         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
18643         from insn template.
18644
18645 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
18646
18647         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
18648
18649 2010-04-13  Jan Hubicka  <jh@suse.cz>
18650
18651         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
18652         of optimized out static functions.
18653         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
18654         cost computation.  Also sanity check for overflows.
18655         (update_caller_keys): Update cgraph_edge_badness call; properly
18656         update fibheap and sanity check that it is up to date.
18657         (add_new_edges_to_heap): Update cgraph_edge_badness.
18658         (cgraph_decide_inlining_of_small_function): Likewise;
18659         add sanity checking that badness in heap is up to date;
18660         improve dumping of reason; Update badness of calls to the
18661         offline copy of function currently inlined; dump badness
18662         of functions not inlined because of unit growth limits.
18663
18664 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
18665
18666         PR middle-end/32628
18667         * c-common.c (pointer_int_sum): Disregard overflow that occured only
18668         because of sign-extension change when converting to sizetype here...
18669         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
18670
18671         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
18672         the folding to constants.  Remove redundant final conversion.
18673         (fold_binary) <associate>: Do not associate if the re-association of
18674         constants alone overflows.
18675         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
18676         to the end of the list.
18677         (multiple_of_p) <COND_EXPR>: New case.
18678
18679 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
18680
18681         * opt-functions.awk (opt_sanitized_name): New.
18682         (opt_enum): New.
18683         * optc-gen.awk: Use it
18684         * opth-gen.awk: Use it.
18685
18686 2010-04-13  Martin Jambor  <mjambor@suse.cz>
18687
18688         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
18689         (sra_modify_assign): Delete stmts loading dead data even if racc has no
18690         children.  Call replace_uses_with_default_def_ssa_name to handle
18691         SSA_NAES on lhs.
18692
18693 2010-04-13  Michael Matz  <matz@suse.de>
18694
18695         PR middle-end/43730
18696         * builtins.c (expand_builtin_interclass_mathfn): Also create
18697         a register if the predicate doesn't match.
18698
18699 2010-04-13  Diego Novillo  <dnovillo@google.com>
18700
18701         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
18702         * c-pch.c: Include timevar.h.
18703         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
18704         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
18705         * ggc-common.c: Include timevar.h.
18706         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
18707         * timevar.def (TV_PCH_SAVE): Define.
18708         (TV_PCH_CPP_SAVE): Define.
18709         (TV_PCH_PTR_REALLOC): Define.
18710         (TV_PCH_PTR_SORT): Define.
18711         (TV_PCH_RESTORE): Define.
18712         (TV_PCH_CPP_RESTORE): Define.
18713
18714 2010-04-13  Michael Matz  <matz@suse.de>
18715
18716         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
18717         into MINUS_EXPRs.
18718         (can_reassociate_p): New function.
18719         (break_up_subtract_bb, reassociate_bb): Use it.
18720
18721 2010-04-13  Richard Guenther  <rguenther@suse.de>
18722
18723         PR bootstrap/43737
18724         * builtins.c (c_readstr): Fix assert.
18725
18726 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
18727
18728         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
18729         when generating cltd insn.
18730
18731         (*ashl<mode>3_1): Remove special handling for register operand 2.
18732         (*ashlsi3_1_zext): Ditto.
18733         (*ashlhi3_1): Ditto.
18734         (*ashlhi3_1_lea): Ditto.
18735         (*ashlqi3_1): Ditto.
18736         (*ashlqi3_1_lea): Ditto.
18737         (*<shiftrt_insn><mode>3_1): Ditto.
18738         (*<shiftrt_insn>si3_1_zext): Ditto.
18739         (*<shiftrt_insn>qi3_1_slp): Ditto.
18740         (*<rotate_insn><mode>3_1): Ditto.
18741         (*<rotate_insn>si3_1_zext): Ditto.
18742         (*<rotate_insn>qi3_1_slp): Ditto.
18743
18744 2010-04-13  Richard Guenther  <rguenther@suse.de>
18745
18746         * tree-ssa-structalias.c (callused_id): Remove.
18747         (call_stmt_vars): New.
18748         (get_call_vi): Likewise.
18749         (lookup_call_use_vi): Likewise.
18750         (lookup_call_clobber_vi): Likewise.
18751         (get_call_use_vi): Likewise.
18752         (get_call_clobber_vi): Likewise.
18753         (make_transitive_closure_constraints): Likewise.
18754         (handle_const_call): Adjust to do per-call call-used handling.
18755         (handle_pure_call): Likewise.
18756         (find_what_var_points_to): Remove general callused handling.
18757         (init_base_vars): Likewise.
18758         (init_alias_vars): Initialize call_stmt_vars.
18759         (compute_points_to_sets): Process call-used and call-clobbered
18760         vars for call statements.
18761         (delete_points_to_sets): Free call_stmt_vars.
18762
18763 2010-04-13  Richard Guenther  <rguenther@suse.de>
18764
18765         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
18766         Only add RW dependence for dependence distance zero.
18767         Adjust maximal vectorization factor according to dependences.
18768         Move alignment handling ...
18769         (vect_find_same_alignment_drs): ... here.  New function.
18770         (vect_analyze_data_ref_dependences): Adjust.
18771         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
18772         (vect_analyze_data_refs): Adjust minimal vectorization factor
18773         according to data references.
18774         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
18775         dependences before determining the vectorization factor.
18776         Analyze alignment after determining the vectorization factor.
18777         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
18778         dependences before alignment.
18779         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
18780         Adjust prototype.
18781         (vect_analyze_data_refs): Likewise.
18782         (MAX_VECTORIZATION_FACTOR): New define.
18783
18784 2010-04-13  Duncan Sands  <baldrick@free.fr>
18785
18786         * except.h (lang_eh_type_covers): Remove.
18787         * except.c (lang_eh_type_covers): Likewise.
18788
18789 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18790             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18791
18792         * gcc/config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
18793         * gcc/config/s390/s390.c: Replace UNTIS_PER_WORD with
18794         UNITS_PER_LONG where it is ABI relevant.
18795         (s390_return_addr_rtx): Likewise.
18796         (s390_back_chain_rtx): Likewise.
18797         (s390_frame_area): Likewise.
18798         (s390_frame_info): Likewise.
18799         (s390_initial_elimination_offset): Likewise.
18800         (save_gprs): Likewise.
18801         (s390_emit_prologue): Likewise.
18802         (s390_emit_epilogue): Likewise.
18803         (s390_function_arg_advance): Likewise.
18804         (s390_function_arg): Likewise.
18805         (s390_va_start): Likewise.
18806         (s390_gimplify_va_arg): Likewise.
18807         (s390_function_profiler): Likewise.
18808         (s390_optimize_prologue): Likewise.
18809         (s390_rtx_costs): Likewise.
18810         (s390_secondary_reload): Likewise.
18811         (s390_promote_function_mode): Likewise.
18812         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
18813         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
18814         registers available.
18815         (s390_unwind_word_mode): New function.
18816         (s390_function_value): Split 64 bit values into register pair if
18817         used as return value.
18818         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
18819         function call parameters.  Handle parallels.
18820         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
18821         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
18822         (DWARF_CIE_DATA_ALIGNMENT): New macro.
18823         (s390_expand_setmem): Remove unused variable src_addr.
18824         * gcc/longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
18825         deal with 64 bit registers.
18826         * gcc/config/s390/s390.h: Define __zarch__ predefined macro.
18827         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
18828         (UNITS_PER_LONG): New macro.
18829         * libjava/include/s390-signal.h: Define extended ucontext
18830         structure containing the upper halfs of the 64 bit registers.
18831
18832 2010-04-13  Simon Baldwin  <simonb@google.com>
18833
18834         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
18835
18836 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
18837
18838         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
18839         rvalue on the RHS if the LHS is of a non-renamable type.
18840         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
18841
18842 2010-04-13  Matthias Klose  <doko@ubuntu.com>
18843
18844         * gcc.c (cc1_options): Handle -iplugindir before processing
18845         the cc1 spec. Only add -iplugindir once.
18846         (cpp_unique_options): Add -iplugindir option if -fplugin* options
18847         found.
18848         * common.opt (iplugindir): Remove `Separate' property, initialize.
18849         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
18850         option.
18851         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
18852         (distclean): Remove plugin dir.
18853         * doc/invoke.texi: Document -iplugindir.
18854
18855 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
18856
18857         * doc/plugins.texi (Loading Plugins): Document short
18858         -fplugin=foo option.
18859         (Plugin API): Mention default_plugin_dir_name function.
18860
18861         * gcc.c (find_file_spec_function): Add new declaration.
18862         (static_spec_func): Use it for "find-file".
18863         (find_file_spec_function): Add new function.
18864         (cc1_options): Add -iplugindir option if -fplugin* options found.
18865
18866         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
18867
18868         * plugin.c (add_new_plugin): Updated comment, and handle short
18869         plugin name.
18870         (default_plugin_dir_name): Added new function.
18871
18872         * common.opt (iplugindir): New option to set the plugin directory.
18873
18874 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
18875
18876         * config/i386/i386.md (any_rotate): New code iterator.
18877         (rotate_insn): New code attribute.
18878         (rotate): Ditto.
18879         (SWIM124): New mode iterator.
18880         (<rotate_insn>ti3): New expander.
18881         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
18882         any_rotate code iterator.
18883         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
18884         using any_rotate code iterator and SWIM124 mode iterator.
18885         (ix86_rotlti3): New insn_and_split pattern.
18886         (ix86_rotrti3): Ditto.
18887         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
18888         ix86_rotl{di,ti}3 patterns.
18889         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
18890         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
18891         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
18892         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
18893         code iterator and SWI mode iterator.
18894         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
18895         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
18896         code iterator.
18897         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
18898         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
18899         (bswap rotatert splitter): Add splitter.
18900         (bswap splitter): Macroize splitter using any_rotate code iterator.
18901         Add insn predicate to split only for TARGET_USE_XCHGB or when
18902         optimizing function for size.
18903
18904 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
18905
18906         * config/pa/pa.c (emit_move_sequence): Remove use of
18907         deleted variable flag_argument_noalias.
18908
18909 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18910
18911         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
18912         configurations.
18913         Add to unsupported targets list.
18914         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
18915         sparc*-sun-solaris2.[567]* from target lists.
18916         * configure: Regenerate.
18917         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
18918         removal.
18919         Remove Solaris 7 patch references.
18920         (Specific, sparc-sun-solaris2.7): Removed.
18921         (sparc-sun-solaris2*): Update Solaris 7 example.
18922         (sparc64-*-solaris2*): Likewise.
18923
18924 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18925
18926         * config.build (alpha*-dec-osf4*): Remove.
18927         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
18928         of obsolete configurations.
18929         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
18930         support.
18931         * config/alpha/t-osf4: Renamed to ...
18932         * config/alpha/t-osf5: ... this.
18933         * config/alpha/osf.h: Renamed to ...
18934         * config/alpha/osf5.h: ... this.
18935         Merged old osf5.h contents.
18936         Update comments.
18937         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
18938         (EXTRA_SPECS): Removed.
18939         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
18940         reflect removal of Tru64 UNIX V4.0/V5.0 support.
18941         Document that.
18942
18943 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18944
18945         * doc/contrib.texi (Contributors, Rainer Orth): Update.
18946
18947 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
18948
18949         PR/43702
18950         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
18951         __thiscall convention.
18952
18953 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
18954
18955         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
18956         orig_base.
18957         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
18958
18959 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
18960
18961         * function.c (assign_parms_initialize_all): Add unused attribute
18962         to fntype.
18963
18964 2010-04-12  Richard Guenther  <rguenther@suse.de>
18965
18966         * gsstruct.def (GSS_CALL): New.
18967         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
18968         * gimple.h: Include tree-ssa-alias.h.
18969         (struct gimple_statement_call): New.
18970         (union gimple_statement_struct_d): Add gimple_call member.
18971         (gimple_call_reset_alias_info): Declare.
18972         (gimple_call_use_set): New function.
18973         (gimple_call_clobber_set): Likewise.
18974         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
18975         * gimple.c (gimple_call_reset_alias_info): New function.
18976         (gimple_build_call_1): Call it.
18977         * lto-streamer-in.c (input_gimple_stmt): Likewise.
18978         * tree-inline.c (remap_gimple_stmt): Likewise.
18979         (expand_call_inline): Remove callused handling.
18980         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
18981         * tree-dfa.c (dump_variable): Likewise.
18982         * tree-parloops.c (parallelize_loops): Likewise.
18983         * tree-ssa.c (init_tree_ssa): Likewise.
18984         (delete_tree_ssa): Likewise.
18985         * tree-flow-inline.h (is_call_used): Remove.
18986         * tree-flow.h (struct gimple_df): Remove callused member.
18987         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
18988         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
18989         (ref_maybe_used_by_call_p_1): Simplify.
18990         (call_may_clobber_ref_p_1): Likewise.
18991         * tree-ssa-structalias.c (compute_points_to_sets): Set
18992         the call stmt used and clobbered sets.
18993         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
18994         (find_tail_calls): Verify the tail call.
18995
18996 2010-04-12  Richard Guenther  <rguenther@suse.de>
18997
18998         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
18999         single-iteration always-inline inlining.
19000         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
19001         (cgraph_decide_inlining): Do not handle always-inline specially.
19002         (try_inline): Remove always-inline cycle detection special case.
19003         Do not recurse on always-inlines.
19004         (cgraph_early_inlining): Do not iterate if not optimizing.
19005         (cgraph_gate_early_inlining): remove.
19006         (pass_early_inline): Run unconditionally.
19007         (gate_cgraph_decide_inlining): New function.
19008         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
19009         not inlining or optimizing.
19010         (cgraph_decide_inlining_of_small_functions): Also consider
19011         always-inline functions.
19012         (cgraph_default_inline_p): Return true for nodes which should
19013         disregard inline limits.
19014         (estimate_function_body_sizes): Assume zero size and time for
19015         nodes which are marked as disregarding inline limits.
19016         (cgraph_decide_recursive_inlining): Do not perform recursive
19017         inlining on always-inline nodes.
19018
19019 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
19020
19021         PR bootstrap/43699
19022         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
19023         for exprs satisfying handled_component_p.
19024
19025 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
19026
19027         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
19028         non-constant aggregate elements.
19029
19030         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
19031         is a real initialization.
19032
19033 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
19034
19035         PR c/36774
19036         * c-decl.c (start_function): Move forward check for nested function.
19037
19038 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
19039
19040         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
19041         * config/sh/sh.c: Include reload.h.
19042         (sh_legitimize_reload_address): New.
19043         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
19044         sh_legitimize_reload_address.
19045
19046 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
19047
19048         * config/sh/sh.md (*movqi_pop): New insn pattern.
19049         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
19050
19051 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
19052
19053         * config/i386/i386.md (any_shiftrt): New code iterator.
19054         (shiftrt_insn): New code attribute.
19055         (shiftrt): Ditto.
19056         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
19057         using any_shiftrt code iterator.
19058         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
19059         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
19060         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
19061         pattern from corresponding peephole2 patterns.
19062         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
19063         using any_shiftrt code iterator.
19064         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
19065         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
19066         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
19067         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
19068         *{ashr,lshr}<mode>3_cmp_zext.
19069         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
19070
19071 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
19072
19073         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
19074         scratch register.
19075         (*lshr<mode>3_cconly): Ditto.
19076
19077 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
19078
19079         * config/i386/i386.md (lshr<mode>3): Macroize expander from
19080         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
19081         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
19082         pattern from *lshr{di,ti}3_1 and corresponding splitters using
19083         DWI mode iterator.
19084         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
19085         from corresponding peephole2 patterns.
19086         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
19087         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
19088         and *lshrdi3_1_rex64 using SWI mode iterator.
19089         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
19090         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
19091         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
19092         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
19093         and *lshrdi3_cmp_rex64 using SWI mode iterator.
19094         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
19095         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
19096         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
19097         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
19098         SWI mode iterator.
19099
19100 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
19101
19102         * config/i386/i386.md (ashr<mode>3): Macroize expander from
19103         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
19104         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
19105         pattern from *ashr{di,ti}3_1 and corresponding splitters using
19106         DWI mode iterator.
19107         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
19108         from corresponding peephole2 patterns.
19109         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
19110         (ashrsi3_cvt): Rename from ashrsi3_31.
19111         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
19112         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
19113         and x86_64_shift_adj_3 using SWI48 mode iterator.
19114         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
19115         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
19116         and *ashrdi3_1_rex64 using SWI mode iterator.
19117         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
19118         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
19119         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
19120         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
19121         and *ashrdi3_cmp_rex64 using SWI mode iterator.
19122         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
19123         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
19124         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
19125         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
19126         SWI mode iterator.
19127         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
19128         * config/i386/i386.c (ix86_split_ashr): Update for renamed
19129         x86_shift<mode>_adj_3 expanders.
19130
19131 2010-04-10  Wei Guozhi  <carrot@google.com>
19132
19133         PR target/42601
19134         * config/arm/arm.c (arm_pic_static_addr): New function.
19135         (legitimize_pic_address): Call arm_pic_static_addr when it detects
19136         a static symbol.
19137         (arm_output_addr_const_extra): Output expression for new pattern.
19138         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
19139
19140 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
19141
19142         * ira-costs.c (record_reg_classes): Ignore alternatives that are
19143         not enabled.
19144
19145         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
19146         * web.c: Include "insn-config.h" and "recog.h".
19147         (union_match_dups): New function.
19148         (web_main): Call it.
19149         (union_defs): Don't try to recognize match_dups.
19150
19151         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
19152         if doing so would replace the entire pattern.
19153
19154 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
19155
19156         PR target/43707
19157         PR target/43709
19158         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
19159         and splitter pattern.  Change splitter operand 1 predicate to
19160         nonmemory_operand.
19161
19162 2010-04-09  Martin Jambor  <mjambor@suse.cz>
19163
19164         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
19165         lattices are addresses of CONST_DECLs with the same initial value.
19166         (ipcp_print_all_lattices): Print values of CONST_DECLs.
19167         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
19168
19169 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
19170             Bernd Schmidt  <bernds@codesourcery.com>
19171
19172         * loop-invariant.c (replace_uses): New static function.
19173         (move_invariant_reg): Use it to ensure we can replace the uses.
19174
19175 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
19176
19177         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
19178         function template.
19179         (picochip_override_options): Enable section anchors only above -O1.
19180         (picochip_reorg): Fixed a couple of build warnings.
19181
19182 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19183
19184         * configure.ac (plugin -rdynamic test): Log result.
19185         * configure: Regenerate.
19186         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
19187         (RDYNAMIC_SPEC): Define.
19188         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
19189
19190 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19191
19192         * configure.ac: Determine Sun ld version numbers.
19193         (comdat_group): Restrict GNU ld version checks to gld.
19194         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
19195         (enable_comdat): Support --enable-comdat.
19196         * configure: Regenerate.
19197         * doc/install.texi (Configuration): Document --enable-comdat.
19198
19199 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19200
19201         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
19202         * config/sol2-gld.h: ... here.
19203         * config.gcc (sparc*-*-solaris2*): Reflect this.
19204         (i[34567]86-*-solaris2*): Use it.
19205
19206 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
19207
19208         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
19209         setup_clocks_p.
19210         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
19211
19212 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19213
19214         PR 42965
19215         * diagnostic.c (diagnostic_initialize): Initialize
19216         some_warnings_are_errors.
19217         (diagnostic_finish): New.
19218         (diagnostic_action_after_output): Call it before exiting.
19219         (diagnostic_report_diagnostic): Do not print message here. Set
19220         some_warnings_are_errors.
19221         * diagnostic.h (diagnostic_context): Delete
19222         issue_warnings_are_errors_message. Add some_warnings_are_errors.
19223         (diagnostic_finish): Declare.
19224         * toplev.c (toplev_main): Call it before exit.
19225
19226 2010-04-09  Jason Merrill  <jason@redhat.com>
19227
19228         PR c++/42623
19229         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
19230         for incomplete type.
19231
19232         PR c++/41788
19233         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
19234         based on a warning flag.
19235
19236 2010-04-09  Richard Guenther  <rguenther@suse.de>
19237
19238         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
19239
19240 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
19241
19242         PR bootstrap/43684
19243         * varasm.c (default_assemble_visibility): Wrap vars that are
19244         set, but unused, by targets without GAS.
19245         * config/rs6000/rs6000.c (paired_emit_vector_compare):
19246         Remove set, but unused, vars.
19247         (rs6000_legitimize_tls_address): Likewise.
19248         (altivec_expand_dst_builtin): Likewise.
19249         * config/darwin.c (machopic_classify_symbol): Likewise.
19250         (machopic_indirection_name): Likewise.
19251
19252 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
19253
19254         * config/i386/i386.md (DWI): New mode iterator.
19255         (S): New mode attribute.
19256         (shift_operand): Ditto.
19257         (shift_immediate_operand): Ditto.
19258         (ashl_input_operand): Ditto.
19259         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
19260         using SDWIM mode iterator.
19261         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
19262         pattern from *ashl{di,ti}3_1 and corresponding splitters using
19263         DWI mode iterator.
19264         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
19265         from corresponding peephole2 patterns.
19266         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
19267         and x86_64_shift_adj_1 using SWI48 mode iterator.
19268         (x86_shift<mode>_adj_2): Ditto.
19269         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
19270         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
19271         using SWI48 mode iterator.
19272         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
19273         *ashldi3_cmp_rex64 using SWI mode iterator.
19274         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
19275         *ashldi3_cconly_rex64 using SWI mode iterator.
19276         * config/i386/i386.c (ix86_split_ashl): Update for renamed
19277         x86_shift<mode>_adj_{1,2}.
19278         (ix86_split_ashr): Ditto.
19279         (ix86_split_lshr): Ditto.
19280
19281 2010-04-09  Richard Guenther  <rguenther@suse.de>
19282
19283         * target.h (builtin_conversion): Pass in input and output types.
19284         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
19285         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
19286         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
19287         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
19288
19289         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
19290         Handle AVX modes.
19291         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
19292
19293 2010-04-09  Richard Guenther  <rguenther@suse.de>
19294
19295         PR target/43152
19296         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
19297
19298 2010-04-09  Richard Guenther  <rguenther@suse.de>
19299
19300         * tree-vectorizer.h (struct _stmt_vec_info): Document
19301         that vectype is the type of the LHS.
19302         (supportable_widening_operation, supportable_narrowing_operation):
19303         Get both input and output vector types as arguments.
19304         (vect_is_simple_use_1): Declare.
19305         (get_same_sized_vectype): Likewise.
19306         * tree-vect-loop.c (vect_determine_vectorization_factor):
19307         Set STMT_VINFO_VECTYPE to the vector type of the def.
19308         (vectorizable_reduction): Adjust.
19309         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
19310         Adjust.  Specify the output vector type.
19311         (vect_pattern_recog_1): Adjust.
19312         * tree-vect-stmts.c (get_same_sized_vectype): New function.
19313         (vectorizable_call): Adjust.
19314         (vectorizable_conversion): Likewise.
19315         (vectorizable_operation): Likewise.
19316         (vectorizable_type_demotion): Likewise.
19317         (vectorizable_type_promotion): Likewise.
19318         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
19319         the def.
19320         (vect_is_simple_use_1): New function.
19321         (supportable_widening_operation): Get both input and output
19322         vector types.
19323         (supportable_narrowing_operation): Likewise.
19324         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
19325
19326 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
19327
19328         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
19329         __thiscall and _thiscall as predefined macros.
19330         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
19331         thiscall attribute handling.
19332         (ix86_comp_type_attributes): Likewise.
19333         (ix86_function_regparm): Likewise.
19334         (ix86_return_pops_args): Likewise.
19335         (init_cumulative_args): Likewise.
19336         (find_drap_reg): Likewise.
19337         (ix86_static_chain): Likewise.
19338         (x86_this_parameter): Likewise.
19339         (x86_output_mi_thunk): Likewise.
19340         (ix86_attribute_table): Add description for thiscall attribute.
19341         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
19342         * doc/extend.texi: Add documentation for thiscall.
19343
19344 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19345
19346         PR c++/28584
19347         * c.opt (Wint-to-pointer-cast): Available in C++.
19348         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
19349
19350 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
19351
19352         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
19353         * calls.c (expand_call): Pass the function type to aggregate_value_p.
19354         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
19355         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
19356         function type instead.  Reorder and simplify checks.
19357
19358         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
19359
19360 2010-04-08  Jing Yu  <jingyu@google.com>
19361             Zdenek Dvorak  <ook@ucw.cz>
19362
19363         PR tree-optimization/42720
19364         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
19365         loop unswitch conditions here from ...
19366         (tree_unswitch_single_loop): ... here.
19367
19368 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
19369
19370         * tree-if-conv.c: Fix comments and simplify logic.
19371
19372 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
19373
19374         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
19375         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
19376         (main_tree_if_conversion): Update call to tree_if_conversion.
19377
19378 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19379
19380         PR 42485
19381         * doc/invoke.texi (-b,-V): Delete.
19382         * doc/tm.texi: Do not mention -b.
19383         * gcc.c (display_help): Delete -b and -V.
19384         (process_command): Delete -b and -V.
19385         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
19386
19387 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
19388             Wolfgang Gellerich  <gellerich@de.ibm.com>
19389
19390         Implement target hook for loop unrolling
19391         * target.h (loop_unroll_adjust): Add a new target hook function.
19392         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
19393         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
19394         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
19395         (s390_loop_unroll_adjust): Implement the new target hook for s390.
19396         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
19397         target hook.
19398         (decide_unroll_stupid): Likewise.
19399
19400 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19401
19402         PR target/43643
19403         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
19404
19405 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19406
19407         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
19408         (Specific, *-*-solaris2*): Likewise.
19409         Don't prefer Sun as over GNU as.
19410
19411 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
19412
19413         * config/s390/s390.c (override_options): Adjust the z10 defaults
19414         for max-unroll-times, max-completely-peeled-insns
19415         and max-completely-peel-times.
19416
19417 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19418
19419         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
19420         instructions for z10.
19421         (s390_expand_setmem): Likewise.
19422         (s390_expand_cmpmem): Likewise.
19423
19424 2010-04-08  Richard Guenther  <rguenther@suse.de>
19425
19426         PR tree-optimization/43679
19427         * tree-ssa-pre.c (eliminate): Only propagate copies.
19428
19429 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
19430
19431         PR bootstrap/43681
19432         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
19433         set but not used variable warning.
19434
19435 2010-04-08  Wei Guozhi  <carrot@google.com>
19436
19437         PR target/41653
19438         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
19439         (arm_size_rtx_costs): Call the new function when optimized for size.
19440
19441 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
19442
19443         PR debug/43670
19444         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
19445         op0 is not a MEM, just return NULL instead of assertion
19446         failure.
19447         (discover_nonconstant_array_refs): Don't walk debug stmts.
19448
19449 2010-04-08  Doug Kwan  <dougkwan@google.com>
19450
19451         * configure.ac: Recognize gold and do not use its version number
19452         to test ld features.
19453         * configure: Regenerate.
19454
19455 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
19456
19457         PR middle-end/40815
19458         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
19459         (negate_value): Move code to push elements to broken_up_substracts ...
19460         (eliminate_plus_minus_pair): ... here.  Push operands that have no
19461         negative pair to plus_negates.
19462         (repropagate_negates, init_reassoc, fini_reassoc): Update.
19463
19464 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
19465
19466         * doc/install.texi (Configuration): Move description of
19467         --enable-lto, --with-libelf*, --enable-gold from Java section to
19468         general section.
19469
19470         * doc/generic.texi (Working with declarations)
19471         (Function Properties, C and C++ Trees): Fix typos.
19472         * doc/sourcebuild.texi (Top Level): Likewise.
19473
19474 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
19475
19476         PR c/18624
19477         * tree.h (DECL_READ_P): Define.
19478         (struct tree_decl_common): Add decl_read_flag.
19479         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
19480         a set but not used warning.
19481         (merge_decls): Merge DECL_READ_P flag.
19482         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
19483         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
19484         * c-common.c (handle_used_attribute, handle_unused_attribute):
19485         Likewise.
19486         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
19487         New prototypes.
19488         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
19489         New functions.
19490         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
19491         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
19492         c_parser_binary_expression, c_parser_cast_expression,
19493         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
19494         Call default_function_array_read_conversion instead of
19495         default_function_array_conversion where needed.
19496         (c_parser_unary_expression, c_parser_conditional_expression,
19497         c_parser_postfix_expression_after_primary, c_parser_initelt):
19498         Likewise.  Call mark_exp_read where needed.
19499         (c_parser_statement_after_labels, c_parser_asm_operands,
19500         c_parser_typeof_specifier, c_parser_sizeof_expression,
19501         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
19502         where needed.
19503         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
19504         New.
19505         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
19506         (warn_unused_but_set_parameter): Default to warn_unused
19507         && extra_warnings.
19508         * doc/invoke.texi: Document -Wunused-but-set-variable and
19509         -Wunused-but-set-parameter.
19510
19511         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
19512         used count variable.
19513         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
19514         when operandN variables aren't used in the body of the expander
19515         or splitter.
19516         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
19517         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
19518         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
19519         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
19520         FOR_EACH_IMM_USE_ON_STMT): Likewise.
19521         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
19522         * tree.c (PROCESS_ARG): Likewise.
19523
19524 2010-04-07  Simon Baldwin  <simonb@google.com>
19525
19526         * diagnostic.h (diagnostic_override_option_index): New macro to
19527         set a diagnostic's option_index.
19528         * c-tree.h (c_cpp_error): Add warning reason argument.
19529         * opts.c (_warning_as_error_callback): New.
19530         (register_warning_as_error_callback): Store callback for
19531         warnings enabled via enable_warning_as_error.
19532         (enable_warning_as_error): Call callback, minor code tidy.
19533         * opts.h (register_warning_as_error_callback): Declare.
19534         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
19535         response to -Werror=.
19536         (c_common_init_options): Register warning_as_error_callback in opts.c.
19537         * common.opt: Add -Wno-cpp option.
19538         * c-common.c (struct reason_option_codes_t): Map cpp warning
19539         reason codes to gcc option indexes.
19540         * (c_option_controlling_cpp_error): New function, lookup the gcc
19541         option index for a cpp warning reason code.
19542         * (c_cpp_error): Add warning reason argument, call
19543         c_option_controlling_cpp_error for diagnostic_override_option_index.
19544         * doc/invoke.texi: Document -Wno-cpp.
19545
19546 2010-04-07  Richard Guenther  <rguenther@suse.de>
19547
19548         * ipa-reference.c (mark_load): Use get_base_address.
19549         (mark_store): Likewise.
19550
19551         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
19552         inserting GIMPLE_NOPs into the IL.
19553         * tree-ssa-structalias.c (get_constraint_for_component_ref):
19554         Explicitly strip handled components and indirect references.
19555
19556         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
19557         folding address expressions.
19558         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
19559         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
19560         operand_equal_p to compare decls.
19561         (ptr_deref_may_alias_decl_p): Likewise.
19562         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
19563         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
19564         Handle reversed comparison ops.
19565         * tree-sra.c (asm_visit_addr): Use get_base_address.
19566         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
19567         * ipa-reference.c (mark_address): Use get_base_address.
19568
19569 2010-04-07  Richard Guenther  <rguenther@suse.de>
19570
19571         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
19572         Propagate constants everywhere.
19573
19574 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
19575
19576         PR debug/43516
19577         * tree.c (MAX_INT_CACHED_PREC): Define.
19578         (nonstandard_integer_type_cache): New array.
19579         (build_nonstandard_integer_type): Cache results for precision
19580         <= MAX_INT_CACHED_PREC.
19581
19582 2010-04-07  Richard Guenther  <rguenther@suse.de>
19583
19584         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
19585         -fargument-noalias-global, -fargument-noalias-anything): Remove.
19586         * common.opt: Likewise.
19587         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
19588         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
19589         (nonoverlapping_memrefs_p): Likewise.
19590         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
19591         * opts.c (common_handle_option): Handle OPT_fargument_alias,
19592         OPT_fargument_noalias, OPT_fargument_noalias_anything and
19593         OPT_fargument_noalias_global for backward compatibility.
19594
19595 2010-04-07  Richard Guenther  <rguenther@suse.de>
19596
19597         PR tree-optimization/43270
19598         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
19599         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
19600         * tree-ssa-pre.c (phi_translate_1): Adjust.
19601         (fully_constant_expression): Split out vn_reference handling to ...
19602         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
19603         Fold reads from constant strings.
19604         (vn_reference_lookup): Handle fully constant references.
19605         (vn_reference_lookup_pieces): Likewise.
19606         * Makefile.in (expmed.o-warn): Add -Wno-error.
19607
19608 2010-04-07  Martin Jambor  <mjambor@suse.cz>
19609
19610         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
19611
19612 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
19613
19614         PR driver/41594
19615         * gcc.c: Add -static-libstdc++ to list of recognized options.
19616
19617 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19618
19619         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
19620
19621 2010-04-07  Richard Guenther  <rguenther@suse.de>
19622
19623         PR middle-end/42617
19624         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
19625         bases build simple mem attributes to retain points-to information.
19626
19627 2010-04-07  Richard Guenther  <rguenther@suse.de>
19628
19629         PR middle-end/42617
19630         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
19631         preserve points-to related information.
19632
19633 2010-04-07  Richard Guenther  <rguenther@suse.de>
19634
19635         PR middle-end/42617
19636         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
19637         discard plain indirect references.
19638         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
19639         * tree.c (tree_nop_conversion): Likewise.
19640
19641 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
19642
19643         PR debug/43628
19644         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
19645
19646 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
19647
19648         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
19649         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
19650
19651 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
19652
19653         * tree-if-conv.c: Fix indentation and comments.
19654
19655 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
19656
19657         * tree-if-conv.c: Sort static functions in topological order.
19658
19659 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
19660
19661         * tree-if-conv.c: Fix indentation and comments.
19662
19663 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
19664
19665         PR middle-end/43519
19666         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
19667         lang_hooks.types.type_for_size instead of
19668         build_nonstandard_integer_type.
19669         When converting an unsigned type to signed, double its precision.
19670         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
19671         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
19672         (graphite_create_new_loop_guard): When ub + 1 wraps around,
19673         use lb <= ub.
19674
19675 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
19676
19677         PR middle-end/43519
19678         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
19679         POINTER_PLUS_EXPR for pointer types.
19680
19681 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
19682
19683         PR middle-end/43519
19684         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
19685         * graphite-clast-to-gimple.c: Include langhooks.h.
19686         (max_signed_precision_type): New.
19687         (max_precision_type): Takes two types as arguments.
19688         (precision_for_value): New.
19689         (precision_for_interval): New.
19690         (gcc_type_for_interval): New.
19691         (gcc_type_for_value): New.
19692         (gcc_type_for_clast_term): New.
19693         (gcc_type_for_clast_red): New.
19694         (gcc_type_for_clast_bin): New.
19695         (gcc_type_for_clast_expr): Split up into several functions.
19696         (gcc_type_for_clast_eq): Rewritten.
19697         (compute_bounds_for_level): New.
19698         (compute_type_for_level_1): New.
19699         (compute_type_for_level): New.
19700         (gcc_type_for_cloog_iv): Removed.
19701         (gcc_type_for_iv_of_clast_loop): Rewritten.
19702         (graphite_create_new_loop): Compute the lower and upper bound types
19703         with gcc_type_for_clast_expr.
19704         (graphite_create_new_loop_guard): Same.
19705         (find_cloog_iv_in_expr): Removed.
19706         (compute_cloog_iv_types_1): Removed.
19707         (compute_cloog_iv_types): Removed.
19708         (gloog): Do not call compute_cloog_iv_types.
19709         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
19710         GBB_CLOOG_IV_TYPES.
19711         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
19712         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
19713         (GBB_CLOOG_IV_TYPES): Removed.
19714
19715 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
19716
19717         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
19718         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
19719         (detect_commutative_reduction): Same.
19720
19721 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
19722
19723         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
19724         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
19725         argument.
19726         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
19727         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
19728         (rewrite_commutative_reductions_out_of_ssa): Same.
19729         * passes.c (execute_function_todo): Call verify_ssa for every pass
19730         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
19731         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
19732         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
19733         with an extra argument.
19734         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
19735         verify_ssa only when the extra argument is true.
19736         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
19737         with an extra argument.
19738         (tree_transform_and_unroll_loop): Same.
19739
19740 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
19741
19742         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
19743         for all the passes of the LNO having LOOP_CLOSED_SSA.
19744         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
19745         * tree-loop-distribution.c (pass_loop_distribution): Same.
19746         * tree-pass.h (TODO_verify_loops): Removed.
19747         * tree-ssa-loop.c (pass_tree_loop_init): Same.
19748         (pass_lim): Same.
19749         (pass_tree_unswitch): Same.
19750         (pass_predcom): Same.
19751         (pass_vectorize): Same.
19752         (pass_linear_transform): Same.
19753         (pass_graphite_transforms): Same.
19754         (pass_iv_canon): Same.
19755         (pass_complete_unroll): Same.
19756         (pass_complete_unrolli): Same.
19757         (pass_parallelize_loops): Same.
19758         (pass_loop_prefetch): Same.
19759         (pass_iv_optimize): Same.
19760
19761 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
19762
19763         PR middle-end/32824
19764         * passes.c (init_optimization_passes): Move pass_lim before
19765         pass_copy_prop and pass_dce_loop.
19766
19767 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
19768
19769         PR target/43667
19770         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
19771         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
19772         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
19773         MULTI_* defines for 4 argument vpermil2p* builtins.
19774
19775 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
19776
19777         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
19778         * config/i386/i386.c (x86_maybe_negate_const_int): New.
19779         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
19780         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
19781         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
19782         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
19783         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
19784         Use x86_maybe_negate_const_int to output insn mnemonic.
19785         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
19786         check from instruction predicate.  Update comments.
19787         * config/i386/sync.md (sync_add<mode>): Use
19788         x86_maybe_negate_const_int to output insn mnemonic.
19789
19790 2010-04-06  Jan Hubicka  <jh@suse.cz>
19791
19792         PR tree-optimization/42906
19793         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
19794         IGNORE_SELF argument.  Set visited_control_parents for fully
19795         processed BBs.
19796         (find_obviously_necessary_stmts): Update call of
19797         mark_control_dependent_edges_necessary.
19798         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
19799
19800 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
19801
19802         * config/i386/i386.md: Remove comment about 'e' and 'E'
19803         operand modifier.
19804
19805 2010-04-06  Richard Guenther  <rguenther@suse.de>
19806
19807         PR tree-optimization/43627
19808         * tree-vrp.c (extract_range_from_unary_expr): Widenings
19809         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
19810         not varying.
19811
19812 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
19813
19814         * BASE-VER: Change to 4.6.0.
19815
19816         PR target/43638
19817         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
19818         handling.
19819
19820 2010-04-06  Richard Guenther  <rguenther@suse.de>
19821
19822         PR middle-end/43661
19823         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
19824
19825 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
19826
19827         * doc/invoke.texi (Optimize Options): Document that LTO
19828         won't remove object access purely due to incompatible
19829         declarations.
19830
19831 2010-04-04  Matthias Klose  <doko@ubuntu.com>
19832
19833         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
19834         Initialize variable.
19835
19836 2010-04-03  Richard Guenther  <rguenther@suse.de>
19837
19838         PR middle-end/42509
19839         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
19840         require a non-NULL MEM_OFFSET.
19841
19842 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
19843
19844         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
19845         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
19846         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
19847         config/alpha/predicates.md, config/arm/arm.md,
19848         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
19849         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
19850         config/darwin9.h, config/darwin.c, config/darwin.h,
19851         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
19852         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
19853         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
19854         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
19855         config/mips/mips.md, config/mn10300/mn10300.c,
19856         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
19857         config/rs6000/aix.h, config/rs6000/dfp.md,
19858         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
19859         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
19860         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
19861         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
19862         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
19863         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
19864         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
19865         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
19866         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
19867         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
19868         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
19869         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
19870         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
19871         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
19872         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
19873         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
19874         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
19875         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
19876         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
19877         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
19878         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
19879         opt-functions.awk, opth-gen.awk, params.def, passes.c,
19880         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
19881         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
19882         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
19883         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
19884         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
19885         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
19886         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
19887         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
19888         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
19889         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
19890         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
19891         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
19892         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
19893         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
19894
19895 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
19896
19897         PR other/43620
19898         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
19899         * aclocal.m4: Regenerate.
19900
19901 2010-04-02  Richard Guenther  <rguenther@suse.de>
19902
19903         PR tree-optimization/43629
19904         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
19905         if we have seen a constant value.
19906
19907 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
19908
19909         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
19910
19911 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
19912
19913         PR target/43469
19914         * arm.c (legitimize_tls_address): Adjust call to
19915         gen_tls_load_dot_plus_four.
19916         (arm_note_pic_base): New function.
19917         (arm_cannot_copy_insn_p): Use it.
19918         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
19919         constraint.
19920
19921 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
19922
19923         PR bootstrap/43531
19924
19925         Revert:
19926         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
19927
19928         * Makefile.in ($(out_object_file)): Depend on
19929         gt-$(basename $(notdir $(out_file))).h.
19930
19931 2010-04-01  Ralf Corsépius  <ralf.corsepius@rtems.org>
19932
19933         * config.gcc (lm32-*-rtems*): Add t-lm32.
19934
19935 2010-04-01  Joel Sherrill  <joel.sherrill@oarcorp.com>
19936
19937         * config.gcc: Add lm32-*-rtems*.
19938         * config/lm32/rtems.h: New file.
19939
19940 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
19941
19942         PR target/42609
19943         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
19944
19945 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
19946
19947         * dwarf2out.c (output_compilation_unit_header): For
19948         -gdwarf-4 use version 4 instead of version 3.
19949         (output_line_info): For version 4 and above emit additional
19950         maximum ops per insn header field.
19951         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
19952
19953         * dwarf2out.c (is_c_family, is_java): Remove.
19954         (lower_bound_default): New function.
19955         (add_bound_info, gen_descr_array_type_die): Use it.
19956
19957 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
19958
19959         PR debug/43325
19960         * dwarf2out.c (gen_variable_die): Allow debug info for variable
19961         re-declaration when it happens in a function.
19962
19963 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
19964
19965         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
19966         (cgraph_remove_function_insertion_hook): Same.
19967         (cgraph_call_function_insertion_hooks): Same.
19968
19969 2010-04-01  Richard Guenther  <rguenther@suse.de>
19970
19971         PR middle-end/43614
19972         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
19973         and TREE_THIS_VOLATILE.
19974         (copy_ref_info): Likewise.
19975         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
19976         * tree.c (build6_stat): Ignore side-effects of all but arg5
19977         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
19978         TARGET_MEM_REF.
19979
19980 2010-04-01  Richard Guenther  <rguenther@suse.de>
19981
19982         PR tree-optimization/43607
19983         * ipa-type-escape.c (check_call): Do not access non-existing
19984         arguments.
19985
19986 2010-04-01  Richard Guenther  <rguenther@suse.de>
19987
19988         PR middle-end/43602
19989         Revert
19990         2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
19991                     Jack Howarth  <howarth@bromo.med.uc.edu>
19992
19993         * tree-profile.c (tree_init_ic_make_global_vars): Make static
19994         variables TLS.
19995
19996 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19997
19998         * doc/install.texi (Prerequisites): Document libelf usability on
19999         IRIX 5/6 and Solaris 2.
20000         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
20001         Update GNU as, GNU ld requirements.
20002         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
20003         Document Sun Studio compiler download.
20004         Update and simplify as, ld recommendations.
20005         (Specific, *-*-solaris2.7): Note obsoletion, removal.
20006
20007 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20008
20009         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
20010         with_tune_32 to pentium4.
20011
20012 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
20013
20014         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
20015
20016 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20017
20018         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
20019         obsoletion, removal.
20020         Update IDO URL.
20021         Document GNU as requirement.
20022         Update configure requirements.
20023         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
20024         Recomment IRIX 6.5.18+.
20025         Document IDF/IDL requirement.
20026         Document GNU as requirement.
20027         Document GNU ld bootstrap failure.
20028         Remove freeware.sgi.com reference.
20029
20030 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20031
20032         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
20033         UNIX V4.0, V5.0 obsoletion, removal.
20034         Remove --with-gc=simple reference.
20035         Update VM requirements during bootstrap.
20036         Remove -oldas bootstrap description.
20037         Update binutils reference.
20038         Remove comparison failure note.
20039
20040 2010-03-31  Richard Guenther  <rguenther@suse.de>
20041             Zdenek Dvorak  <ook@ucw.cz>
20042             Sebastian Pop  <sebastian.pop@amd.com>
20043
20044         PR middle-end/43464
20045         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
20046         with multiple arguments.
20047         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
20048
20049 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
20050
20051         * graphite-dependences.c (print_pddr): Call print_pdr with an
20052         extra argument.
20053         * graphite-poly.c (debug_pdr): Add an extra argument for the
20054         verbosity level.
20055         (print_pdr): Same.
20056         (print_pbb_domain): Same.
20057         (print_pbb): Same.
20058         (print_scop_context): Same.
20059         (print_scop): Same.
20060         (print_cloog): Same.
20061         (debug_pbb_domain): Same.
20062         (debug_pbb): Same.
20063         (print_pdrs): Same.
20064         (debug_pdrs): Same.
20065         (debug_scop_context): Same.
20066         (debug_scop): Same.
20067         (debug_cloog): Same.
20068         (print_scop_params): Same.
20069         (debug_scop_params): Same.
20070         (print_iteration_domain): Same.
20071         (print_iteration_domains): Same.
20072         (debug_iteration_domain): Same.
20073         (debug_iteration_domains): Same.
20074         (print_scattering_function): Same.
20075         (print_scattering_functions): Same.
20076         (debug_scattering_function): Same.
20077         (debug_scattering_functions): Same.
20078         * graphite-poly.h (debug_pdr): Update declaration.
20079         (print_pdr): Same.
20080         (print_pbb_domain): Same.
20081         (print_pbb): Same.
20082         (print_scop_context): Same.
20083         (print_scop): Same.
20084         (print_cloog): Same.
20085         (debug_pbb_domain): Same.
20086         (debug_pbb): Same.
20087         (print_pdrs): Same.
20088         (debug_pdrs): Same.
20089         (debug_scop_context): Same.
20090         (debug_scop): Same.
20091         (debug_cloog): Same.
20092         (print_scop_params): Same.
20093         (debug_scop_params): Same.
20094         (print_iteration_domain): Same.
20095         (print_iteration_domains): Same.
20096         (debug_iteration_domain): Same.
20097         (debug_iteration_domains): Same.
20098         (print_scattering_function): Same.
20099         (print_scattering_functions): Same.
20100         (debug_scattering_function): Same.
20101         (debug_scattering_functions): Same.
20102
20103 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
20104
20105         * graphite-poly.c (print_scattering_function_1): New.
20106         (print_scattering_function): Call it.
20107         (print_scop_params): Remove spaces at the end of lines.
20108         (print_cloog): New.
20109         (debug_cloog): New.
20110         * graphite-poly.h (print_cloog): Declared.
20111         (debug_cloog): Declared.
20112
20113 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
20114
20115         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
20116         in loop->header.
20117         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
20118         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
20119         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
20120         to switch between adding the IV bump in loop->latch or in loop->header.
20121
20122 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
20123
20124         * graphite-poly.c (print_scattering_function): Pretty print following
20125         the scoplib format.
20126         (print_pdr): Same.
20127         (print_pbb_domain): Same.
20128         (dump_gbb_cases): Same.
20129         (dump_gbb_conditions): Same.
20130         (print_pdrs): Same.
20131         (print_pbb): Same.
20132         (print_scop_params): Same.
20133         (print_scop_context): Same.
20134         (print_scop): Same.
20135         (print_pbb_body): New.
20136         (lst_indent_to): New.
20137         (print_lst): Start new lines with a #.
20138         * graphite-poly.h (pbb_bb): New.
20139         (pbb_index): Use pbb_bb.
20140         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
20141         disjuncts.
20142         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
20143
20144 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
20145
20146         * dwarf2out.c (size_of_die): For -gdwarf-4 use
20147         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
20148         and 0 instead of 1 for dw_val_class_flag.
20149         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
20150         dw_val_class_range_list, dw_val_class_loc_list,
20151         dw_val_class_lineptr and dw_val_class_macptr, use
20152         DW_FORM_flag_present for dw_val_class_flag and
20153         DW_FORM_exprloc for dw_val_class_loc.
20154         (output_die): For -gdwarf-4 print dw_val_class_loc
20155         size as uleb128 instead of 1 or 2 bytes and don't print
20156         anything for dw_val_class_flag.
20157
20158         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
20159         instead of cselib_lookup following by tweaking locs->setting_insn.
20160
20161         PR bootstrap/43596
20162         * cselib.c (cselib_process_insn): Clear cselib_current_insn
20163         even before returning from label, setjmp call or volatile asm
20164         handling.
20165
20166 2010-03-31  Richard Guenther  <rguenther@suse.de>
20167
20168         PR middle-end/43600
20169         * cgraphunit.c (cgraph_output_in_order): Do not allocate
20170         temporary data on stack.
20171
20172 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20173
20174         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
20175         (PUSHSECTION_ASM_OP): Remove.
20176         (POPSECTION_ASM_OP): Remove.
20177         (PUSHSECTION_FORMAT): Remove.
20178         * config/sol2.h (PUSHSECTION_FORMAT): Define.
20179         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
20180         * config/sol2.c (solaris_output_init_fini): Use it.
20181
20182 2010-03-31  Jie Zhang  <jie@codesourcery.com>
20183
20184         PR 43574
20185         * opt-functions.awk (var_type_struct): Use signed char type
20186         for simple variables.
20187
20188 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20189
20190         * config/sol2.c: Include output.h.
20191         (solaris_assemble_visibility): New function.
20192         * config/t-sol2 (sol2.o): Add output.h dependency.
20193         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
20194         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
20195         Redefine.
20196
20197 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
20198
20199         PR target/43580
20200         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
20201         V2SImode or XFmode on PRE_DEC.
20202
20203         PR debug/43557
20204         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
20205         BLKmode.
20206
20207 2010-03-31  Jie Zhang  <jie@codesourcery.com>
20208
20209         PR 43562
20210         * reload.h (caller_save_initialized_p): Declare.
20211         * toplev.c (backend_init_target): Don't call
20212         init_caller_save but set caller_save_initialized_p to false.
20213         * caller-save.c (caller_save_initialized_p): Define.
20214         (init_caller_save): Check caller_save_initialized_p.
20215         * ira.c (ira): Call init_caller_save if flag_caller_saves.
20216
20217 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20218
20219         PR target/39048
20220         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
20221         and soft-fp/t-softfp to tmake_file.
20222         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
20223         (LIBGCC2_TF_CEXT): Define.
20224         (TF_SIZE): Define.
20225
20226 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
20227
20228         PR debug/42977
20229         * cselib.c (n_useless_values): Document handling of debug locs.
20230         (n_useless_debug_values, n_debug_values): New variables.
20231         (new_elt_loc_list): Don't add to debug values, keep count.
20232         (promote_debug_loc): New.
20233         (cselib_reset_table): Zero new variables.
20234         (entry_and_rtx_equal_p): Promote debug locs.
20235         (discard_useless_locs): Increment n_useless_debug_values for
20236         debug values.
20237         (remove_useless_values): Adjust n_useless_values and n_debug_values
20238         with n_useless_debug_values.
20239         (add_mem_for_addr): Promote debug locs.
20240         (cselib_lookup_mem): Likewise.
20241         (cselib_lookup_addr): Renamed to...
20242         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
20243         (cselib_log_lookup): ... this.  Turn into...
20244         (cselib_lookup_addr): ... new wrapper.
20245         (cselib_lookup_from_insn): New.
20246         (cselib_invalidate_regno): Increment n_useless_debug_values for
20247         debug values.
20248         (cselib_invalidate_mem): Likewise.
20249         (cselib_process_insn): Take n_deleted and n_debug_values into
20250         account to guard remove_useless_value call.
20251         (cselib_finish): Zero n_useless_debug_values.
20252         * cselib.h (cselib_lookup_from_insn): Declare.
20253         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
20254         (sched_analyze_2): Likewise.
20255
20256 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
20257
20258         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
20259         functions.
20260         (adjust_mems): Replace narrowing SUBREG of expression containing
20261         just PLUS, MINUS, MULT and ASHIFT of registers and constants
20262         with operations in the narrower mode.
20263
20264         PR debug/43593
20265         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
20266         regs_invalidated_by_call instead all call_used_reg_set registers.
20267
20268 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
20269
20270         PR middle-end/43430
20271         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
20272         pointer comparisons with types_compatible_p.
20273         * tree-vect-stmts.c (vectorizable_call): Same.
20274         (vectorizable_condition): Same.
20275
20276 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
20277
20278         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
20279         stack check if the mask would be zero.
20280
20281 2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
20282             Jack Howarth  <howarth@bromo.med.uc.edu>
20283
20284         * tree-profile.c (tree_init_ic_make_global_vars): Make static
20285         variables TLS.
20286
20287 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
20288
20289         PR other/25232
20290         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
20291         and __unordtf2.
20292         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
20293         Include ___unordxf2 and ___unordtf2.
20294         * config/i386/libgcc-glibc.ver: Do not define inheritance from
20295         GCC_4.4.0 here.
20296
20297 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
20298
20299         * config/lm32/t-lm32: New file.
20300         * config.gcc: Use the above file when targetting lm32.
20301
20302 2010-03-28  Duncan Sands  <baldrick@free.fr>
20303
20304         * Makefile.in (PLUGIN_HEADERS): Add except.h.
20305
20306 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
20307
20308         PR middle-end/43431
20309         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
20310         Improve vectorization cost model diagnostic.
20311
20312 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
20313
20314         PR middle-end/43436
20315         * tree-vect-data-refs.c (vect_analyze_data_refs): When
20316         compute_data_dependences_for_loop returns false, early exit
20317         and output an extra diagnostic for the failed data reference
20318         analysis.
20319
20320 2010-03-29  Richard Guenther  <rguenther@suse.de>
20321
20322         PR tree-optimization/43560
20323         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
20324         (can_sm_ref_p): Treat stores to readonly locations as trapping.
20325
20326 2010-03-29  Jie Zhang  <jie@codesourcery.com>
20327
20328         PR 43564
20329         * toplev.c (process_options): Set optimization_default_node
20330         and optimization_current_node.
20331         * opts.c (decode_options): Don't set optimization_default_node
20332         and optimization_current_node.
20333
20334 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
20335
20336         * config/rtems.h: Abandon -qrtems_debug.
20337
20338 2010-03-28  Jan Hubicka  <jh@suse.cz>
20339
20340         PR tree-optimization/43505
20341         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
20342         map should not be copied.
20343
20344 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20345
20346         PR middle-end/41674
20347         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
20348         cdtors, set DECL_PRESERVE_P.
20349         * ipa.c (cgraph_externally_visible_p): Return true if declaration
20350         should be preseved.
20351
20352 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
20353
20354         PR tree-optimization/43528
20355         * stor-layout.c (place_field): Check that constant fits into
20356         unsigned HWI when skipping calculation of MS bitfield layout.
20357
20358 2010-03-27  Jan Hubicka  <jh@suse.cz>
20359
20360         PR middle-end/43391
20361         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
20362         notice_global_symbol work.
20363
20364 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
20365
20366         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
20367         instead of dwarf2out_decl.
20368         (struct var_loc_node): Remove section_label field.
20369         (dwarf2out_function_decl): New function.
20370         (dwarf2out_var_location): Don't set section_label field.
20371         (dwarf2out_begin_function): Don't empty decl_loc_table here.
20372
20373 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
20374
20375         PR tree-optimization/43544
20376         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
20377         First argument for builtin vectorized function hook is now a
20378         tree to be able to distinguish between machine specific and
20379         standard builtins.
20380         * targhooks.c (default_builtin_vectorized_function): Ditto.
20381         * targhooks.h (default_builtin_vectorized_function): Ditto.
20382         * target.h (struct gcc_target): Ditto.
20383         * tree-vect-stmts.c (vectorizable_function): Ditto.
20384         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
20385         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
20386         Ditto.
20387
20388 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
20389
20390         PR c/43381
20391         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
20392         nested binding iff it is a FUNCTION_DECL.
20393         (store_parm_decls_newstyle): Pass nested=true to bind for
20394         FUNCTION_DECLs amongst parameters.
20395
20396 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
20397
20398         * var-tracking.c (vt_expand_loc_callback): Don't run
20399         cselib_expand_value_rtx_cb in dummy mode if
20400         cselib_dummy_expand_value_rtx_cb returned false.
20401
20402         * var-tracking.c (emit_note_insn_var_location): For one part
20403         notes with offset 0, don't add EXPR_LIST around the location.
20404         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
20405         add_location_or_const_value_attribute): Adjust for that change.
20406
20407         PR debug/43540
20408         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
20409         into first operand and location into second.
20410         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
20411         dw_cfi_oprnd_loc for DW_CFA_expression.
20412         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
20413         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
20414         assume first argument is regnum and second argument is location.
20415
20416 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
20417
20418         PR target/42113
20419         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
20420         of scratch register to DImode.  Split to DImode comparison operator.
20421         Use SImode subreg of scratch register in the multiplication.
20422         (*cmp_sadd_sidi): Ditto.
20423         (*cmp_ssub_si): Ditto.
20424         (*cmp_ssub_sidi): Ditto.
20425
20426 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
20427
20428         PR target/43524
20429         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
20430         Remove invalid assert and wrong comment.
20431
20432 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
20433
20434         PR debug/43516
20435         * flags.h (final_insns_dump_p): New extern.
20436         * final.c (final_insns_dump_p): New variable.
20437         (rest_of_clean_state): Set it before -fdump-final-insns=
20438         dumping, clear afterwards.
20439         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
20440         MEM_ALIAS_SET on MEMs.
20441
20442 2010-03-26  David S. Miller  <davem@davemloft.net>
20443
20444         * configure.ac: Fix sparc GOTDATA_OP bug check.
20445         * configure: Rebuild.
20446
20447 2010-03-26  Alan Modra  <amodra@gmail.com>
20448
20449         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
20450
20451 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20452
20453         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
20454         TLS_SECTION_ASM_FLAG.
20455
20456 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
20457
20458         PR bootstrap/43511
20459         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
20460         Clear first_function_block_is_cold.
20461
20462         PR c/43385
20463         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
20464         argument if the argument is truth_value_p.
20465
20466 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
20467
20468         * config/rs6000/constraints.md: Update copyright year for my changes.
20469
20470         PR target/43484
20471         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
20472         used in reg+reg addressing, swap registers.
20473
20474 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
20475
20476         PR debug/43293
20477         * target.h (struct gcc_target): Add code_end hook.
20478         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
20479         if not yet defined.
20480         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
20481         * toplev.c (compile_file): Call targetm.asm_out.code_end
20482         hook before unwind info/debug info output.
20483         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
20484         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
20485         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
20486         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
20487         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
20488         * config/i386/i386.c (ix86_file_end): Renamed to...
20489         (ix86_code_end): ... this.  Make static.  Don't call
20490         file_end_indicate_exec_stack.  Emit unwind info using
20491         final_start_function/final_end_function.
20492         (darwin_x86_file_end): Remove.
20493         (TARGET_ASM_CODE_END): Define.
20494         * config/i386/i386.h (TARGET_ASM_FILE_END,
20495         NEED_INDICATE_EXEC_STACK): Don't define.
20496         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
20497         (TARGET_ASM_FILE_END): Define to darwin_file_end.
20498         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
20499         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
20500
20501         PR target/43498
20502         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
20503         at the beginning and final_end_function at the end.
20504         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
20505
20506 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20507
20508         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
20509         and Sun as TLS syntax.
20510         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
20511         * configure: Regenerate.
20512         * config.in: Regenerate.
20513         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
20514         (default_elf_asm_named_section): Use it.
20515         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
20516         (i386_output_dwarf_dtprel): Likewise.
20517         (output_addr_const_extra): Likewise.
20518         (output_pic_addr_const): Lowercase @GOTTPOFF.
20519         (output_addr_const_extra): Likewise.
20520         (output_pic_addr_const): Lowercase @GOTNTPOFF.
20521         (output_addr_const_extra): Likewise.
20522         (output_pic_addr_const): Lowercase @INDNTPOFF.
20523         (output_addr_const_extra): Likewise.
20524         (output_pic_addr_const): Lowercase @NTPOFF.
20525         (output_addr_const_extra): Likewise.
20526         (output_pic_addr_const): Lowercase @TPOFF.
20527         (output_addr_const_extra): Likewise.
20528         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
20529         (*tls_global_dynamic_64): Likewise.
20530         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
20531         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
20532
20533         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
20534         (ASM_OUTPUT_TLS_COMMON): Use it.
20535         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
20536
20537         PR target/38118
20538         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
20539         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
20540         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
20541         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
20542         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
20543         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
20544
20545 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20546
20547         * config/i386/i386.c (override_options): Don't accept
20548         -mtls-dialect=sun any longer.
20549         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
20550         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
20551         (*tls_local_dynamic_base_32_sun): Likewise.
20552         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
20553
20554 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
20555
20556         PR debug/43508
20557         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
20558         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
20559
20560         PR debug/43479
20561         * ira.c (adjust_cleared_regs): New function.
20562         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
20563
20564         PR debug/19192
20565         PR debug/43479
20566         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
20567         from gimple_block.
20568         * expr.c (expand_expr_real): Restore previous
20569         curr_insn_source_location and curr_insn_block after
20570         expand_expr_real_1 call.
20571         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
20572         instead of expand_expr_real_1.
20573
20574 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
20575
20576         PR rtl-optimization/43413
20577         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
20578         hard regs too.
20579
20580 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
20581
20582         PR target/43348
20583         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
20584         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
20585
20586 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
20587
20588         * config/i386/i386.c (ix86_target_string): Add -mfma.
20589         Fix a typo in comment.
20590
20591 2010-03-22  Mike Stump  <mikestump@comcast.net>
20592
20593         PR target/23071
20594         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
20595         Don't overly align based upon packed packed fields.
20596
20597 2010-03-22  Jason Merrill  <jason@redhat.com>
20598
20599         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
20600         Use () rather than [], and move before the element type.
20601
20602 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20603
20604         * doc/configfiles.texi (Configuration Files): Removed
20605         fixinc/Makefile*, intl/Makefile.*.
20606         * doc/makefile.texi: Fixed markup. Abstract from version
20607         control system used.
20608         (Makefile): Removed obsolete gcc/java/parse.y example.
20609         * doc/sourcebuild.texi: Likewise.
20610         (Top Level): Added config, gnattools, libdecnumber, libgcc,
20611         libgomp, libssp.  Removed fastjar.
20612         (Miscellaneous Docs): Clarify location.
20613         Added COPYING3, COPYING3.LIB.
20614         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
20615
20616 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20617
20618         PR target/38085
20619         * config/i386/i386.c (x86_function_profiler)
20620         [!NO_PROFILE_COUNTERS]: Fix typo.
20621         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
20622         instead of callq.
20623
20624 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
20625             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20626
20627         * doc/sourcebuild.texi (Test Directives): Split into six
20628         subsections, with most of the current text in new subsections
20629         Directives, Selectors, and Final Actions.
20630         (Directives): Split list of test directives into multiple
20631         subsubsections.
20632         (Selectors): Describe use and syntax of selectors.
20633         (Effective-Target Keywords): Describe all existing keywords.
20634         (Add Options): Describe features for dg-add-options.
20635         (Require Support): Describe variants of dg-require-support.
20636         (Final Actions): Describe commands to use in dg-final.
20637
20638 2010-03-22  Michael Matz  <matz@suse.de>
20639
20640         PR middle-end/43475
20641         * recog.c (validate_replace_rtx_group): Replace also in
20642         REG_EQUAL and REG_EQUIV notes.
20643
20644 2010-03-22  Richard Guenther  <rguenther@suse.de>
20645
20646         PR tree-optimization/43390
20647         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
20648         sure vector extracts are type correct.
20649
20650 2010-03-22  Richard Guenther  <rguenther@suse.de>
20651
20652         PR middle-end/40106
20653         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
20654         x * sqrt (x) even when optimizing for size if the target
20655         has native support for sqrt.
20656
20657 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
20658
20659         * varasm.c (make_decl_rtl_for_debug): Also clear
20660         flag_mudflap for the duration of make_decl_rtl call.
20661
20662         PR debug/43443
20663         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
20664         locs from preserved VALUEs.
20665
20666 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20667
20668         PR middle-end/42718
20669         * pa.md (movmemsi): Set align to one if zero.
20670         (movmemdi): Likewise.
20671
20672 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
20673
20674         PR target/42321
20675         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
20676         with their corresponding prologue pushes.
20677
20678 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
20679
20680         PR target/43156
20681         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
20682         at the begining or end.
20683         (spu_expand_epilogue): Likewise.
20684
20685 2010-03-20  Richard Guenther  <rguenther@suse.de>
20686
20687         PR rtl-optimization/43438
20688         * combine.c (make_extraction): Properly zero-/sign-extend an
20689         extraction of the low part of a CONST_INT.  Also handle
20690         CONST_DOUBLE.
20691
20692 2010-03-19  Mike Stump  <mikestump@comcast.net>
20693
20694         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
20695         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
20696         (override_options): Use SUBTARGET32_DEFAULT_CPU.
20697
20698 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
20699
20700         PR c/43211
20701         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
20702         an error.
20703
20704 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
20705
20706         PR rtl-optimization/42258
20707         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
20708         use that may match DEF.
20709
20710         PR target/40697
20711         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
20712         the cost of loading the constant rather than assuming
20713         COSTS_N_INSNS (1).
20714         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
20715         outer code is AND, do the same tests as the andsi3 expander and
20716         return COSTS_N_INSNS (1) if and is cheap.
20717
20718         * optabs.c (avoid_expensive_constant): Fix formatting.
20719
20720 2010-03-19  Michael Matz  <matz@suse.de>
20721
20722         PR c++/43116
20723         * attribs.c (decl_attributes): When rebuilding a function pointer
20724         type use the same qualifiers as the original pointer type.
20725
20726 2010-03-19  Martin Jambor  <mjambor@suse.cz>
20727
20728         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
20729         and is_gimple_ip_invariant_address.
20730
20731 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
20732
20733         Revert
20734         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
20735
20736         * config/arm/arm.c (arm_override_options): Turn off
20737         flag_dwarf2_cfi_asm for AAPCS variants.
20738
20739 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
20740
20741         PR target/43399
20742         * config/arm/arm.c (emit_multi_reg_push): Update comments.
20743         Use PRE_MODIFY instead of PRE_DEC.
20744         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
20745         (vfp_emit_fstmd): Likewise.
20746
20747 2010-03-19  Michael Matz  <matz@suse.de>
20748
20749         PR target/43305
20750         * builtins.c (expand_builtin_interclass_mathfn,
20751         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
20752         if that fails.
20753
20754 2010-03-19  Richard Guenther  <rguenther@suse.de>
20755
20756         PR tree-optimization/43415
20757         * tree-ssa-pre.c (phi_translate): Split out worker to ...
20758         (phi_translate_1): ... this.
20759         (phi_translate): Move all caching here.  Cache all NARY
20760         and REFERENCE translations.
20761
20762 2010-03-19  David S. Miller  <davem@davemloft.net>
20763
20764         With help from Eric Botcazou.
20765         * config/sparc/sparc.c: Include dwarf2out.h.
20766         (emit_pic_helper): Delete.
20767         (pic_helper_symbol_name): Delete.
20768         (pic_helper_emitted_p): Delete.
20769         (pic_helper_needed): New.
20770         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
20771         (get_pc_thunk_name): New.
20772         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
20773         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
20774         Set pic_helper_needed to true.  Don't call emit_pic_helper.
20775         (sparc_expand_prologue): Update load_pic_register call.
20776         (sparc_output_mi_thunk): Likewise.
20777         (sparc_file_end): Emit a hidden comdat symbol for the PIC
20778         thunk if possible.  Output CFI information as needed.
20779
20780 2010-03-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
20781             Jack Howarth  <howarth@bromo.med.uc.edu>
20782
20783         PR target/36399
20784         * config/i386/i386.h: Fix ABI on darwin x86-32.
20785
20786 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
20787
20788         * tree.h: Declare make_decl_rtl_for_debug.
20789         * varasm.c (make_decl_rtl_for_debug): New.
20790         * dwarf2out.c (rtl_for_decl_location): Call it.
20791         * cfgexpand.c (expand_debug_expr): Call it.
20792
20793 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
20794
20795         PR bootstrap/43399
20796         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
20797         mem_mode.
20798
20799         PR bootstrap/43403
20800         * var-tracking.c (vt_init_cfa_base): Do nothing if
20801         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
20802
20803 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
20804
20805         PR debug/42873
20806         * var-tracking.c (canonicalize_vars_star): New.
20807         (dataflow_post_merge_adjust): Use it.
20808
20809 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
20810
20811         PR debug/43058
20812         * var-tracking.c (non_suitable_const): New function.
20813         (add_uses): For DEBUG_INSNs with constants, don't record any
20814         value, instead just the constant value itself.
20815         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
20816         is not VAR_LOC_UNKNOWN_P, set var to the constant.
20817         (emit_notes_in_bb): Likewise.
20818         (emit_note_insn_var_location): For onepart variables if
20819         cur_loc is a VOIDmode constant, use DECL_MODE.
20820
20821 2010-03-18  Martin Jambor  <mjambor@suse.cz>
20822
20823         PR middle-end/42450
20824         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
20825         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
20826         all non-clones.  Moved call redirection...
20827         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
20828         (cgraph_materialize_all_clones): Dispose of all
20829         combined_args_to_skip bitmaps.
20830         (verify_cgraph_node): Do not check for edges pointing to wrong
20831         nodes in inline clones.
20832         * tree-inline.c (copy_bb): Call
20833         cgraph_redirect_edge_call_stmt_to_callee.
20834         * ipa.c (cgraph_remove_unreachable_nodes): Call
20835         cgraph_node_remove_callees even when there are used clones.
20836
20837 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
20838
20839         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
20840
20841 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
20842
20843         PR target/43383
20844         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
20845         for 32bit.
20846
20847 2010-03-18  Michael Matz  <matz@suse.de>
20848
20849         PR middle-end/43419
20850         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
20851         into sqrt(x) if we need to preserve signed zeros.
20852
20853 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
20854             Eric Botcazou  <ebotcazou@adacore.com>
20855
20856         PR rtl-optimization/43360
20857         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
20858         note if we don't know its invariant status.
20859
20860 2010-03-18  Michael Matz  <matz@suse.de>
20861
20862         PR tree-optimization/43402
20863         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
20864         PHI chains of ssa names registered for update.
20865
20866 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
20867
20868         PR target/42427
20869         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
20870         non-offsettable and pre_modify update addressing.
20871         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
20872         and "2" alternatives "#".
20873         (*movdd_softfloat32): Make all alternatives "#";
20874         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
20875         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
20876         (*movdf_softfloat32): Make all alternatives "#";
20877         (movdi): Use the new DIFD mode iterator to create a common splitter
20878         for movdi, movdf and movdd patterns.
20879
20880 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
20881
20882         * common.opt (dumpdir): Remove redundant tab.
20883
20884 2010-03-17  Martin Jambor  <mjambor@suse.cz>
20885
20886         PR tree-optimization/43347
20887         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
20888         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
20889
20890 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
20891
20892         PR rtl-optimization/42216
20893         * regrename.c (create_new_chain): New function, broken out from...
20894         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
20895         appending a use to an empty chain.
20896         (build_def_use): Remove previous changes that convert OP_INOUT to
20897         OP_OUT operands; instead detect the case where an OP_INOUT operand
20898         uses a previously untracked register and create an empty chain for it.
20899
20900 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
20901
20902         * doc/extend.texi (Function Attributes): Rewrite unfinished
20903         sentence in ms_abi documentation.
20904
20905 2010-03-17  Alan Modra  <amodra@gmail.com>
20906
20907         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
20908         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
20909         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
20910         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
20911
20912 2010-03-16  Richard Henderson  <rth@redhat.com>
20913
20914         PR middle-end/43365
20915         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
20916         (lower_try_finally): Save and restore eh_seq around the expansion
20917         of the try-finally.
20918
20919 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
20920
20921         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
20922         statements before splitting block.
20923
20924 2010-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20925
20926         * doc/sourcebuild.texi (Testsuites): Fix markup.
20927         Use pathnames relative to gcc/testsuite.
20928         (Test Directives): Move description of how timeout is determined.
20929         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
20930         (C Tests): Correct gcc.misc-tests directory.
20931         Framework tests now live in gcc.test-framework.
20932
20933 2010-03-16  Richard Guenther  <rguenther@suse.de>
20934
20935         PR middle-end/43379
20936         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
20937         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
20938
20939 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
20940             Alexandre Oliva  <aoliva@redhat.com>
20941
20942         PR tree-optimization/42917
20943         * lambda-code.c (remove_iv): Skip debug statements.
20944         (lambda_loopnest_to_gcc_loopnest): Likewise.
20945         (not_interesting_stmt): Debug statements are not interesting.
20946
20947 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
20948
20949         PR debug/43051
20950         PR debug/43092
20951         * cselib.c (cselib_preserve_constants,
20952         cfa_base_preserved_val): New static variables.
20953         (preserve_only_constants): New function.
20954         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
20955         clear its REG_VALUES.  If cselib_preserve_constants, don't
20956         empty the whole hash table, but preserve there VALUEs with constants,
20957         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
20958         (cselib_preserve_cfa_base_value): New function.
20959         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
20960         (cselib_init): Change argument to int bitfield.  Set
20961         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
20962         is in it.
20963         (cselib_finish): Clear cselib_preserve_constants and
20964         cfa_base_preserved_val.
20965         * cselib.h (enum cselib_record_what): New enum.
20966         (cselib_init): Change argument to int.
20967         (cselib_preserve_cfa_base_value): New prototype.
20968         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
20969         * dse.c (dse_step1): Likewise.
20970         * cfgcleanup.c (thread_jump): Likewise.
20971         * sched-deps.c (sched_analyze): Likewise.
20972         * gcse.c (local_cprop_pass): Likewise.
20973         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
20974         If FN is non-NULL, call the callback always and whenever it returns
20975         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
20976         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
20977         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
20978         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
20979         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
20980         * var-tracking.c: Include recog.h.
20981         (bb_stack_adjust_offset): Remove.
20982         (vt_stack_adjustments): Don't call it, instead just gather the
20983         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
20984         (adjust_stack_reference): Remove.
20985         (compute_cfa_pointer): New function.
20986         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
20987         (struct adjust_mem_data): New type.
20988         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
20989         functions.
20990         (get_address_mode): New function.
20991         (replace_expr_with_values): Use it.
20992         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
20993         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
20994         (adjust_sets): Remove.
20995         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
20996         Use get_address_mode.
20997         (get_adjusted_src): Remove.
20998         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
20999         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
21000         (add_with_sets): Don't call adjust_sets.
21001         (fp_setter, vt_init_cfa_base): New functions.
21002         (vt_initialize): Change return type to bool.  Move most of pool etc.
21003         initialization to the beginning of the function from end.  Pass
21004         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
21005         If !frame_pointer_needed, call vt_stack_adjustment before mos
21006         vector is filled, call vt_init_cfa_base if argp/framep has been
21007         eliminated to sp.  If frame_pointer_needed and argp/framep has
21008         been eliminated to hard frame pointer, set
21009         hard_frame_pointer_adjustment and call vt_init_cfa_base after
21010         encountering fp setter in the prologue.  For MO_ADJUST, call
21011         log_op_type before pusing the op into mos vector, not afterwards.
21012         Call adjust_insn before cselib_process_insn/add_with_sets,
21013         call cancel_changes (0) afterwards.
21014         (variable_tracking_main_1): Adjust for vt_initialize calling
21015         vt_stack_adjustments and returning whether it succeeded or not.
21016
21017 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
21018
21019         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
21020         debug statements.
21021
21022 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
21023
21024         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
21025         has been set.
21026         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
21027         drap_reg has not been set.
21028
21029 2010-03-15  Michael Matz  <matz@suse.de>
21030
21031         PR middle-end/43300
21032         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
21033         use it to expand block copies.
21034         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
21035         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
21036         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
21037
21038 2010-03-15  Richard Guenther  <rguenther@suse.de>
21039
21040         PR tree-optimization/43367
21041         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
21042         elimination check.
21043
21044 2010-03-15  Richard Guenther  <rguenther@suse.de>
21045
21046         PR tree-optimization/43317
21047         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
21048
21049 2010-03-15  Martin Jambor  <mjambor@suse.cz>
21050
21051         PR tree-optimization/43141
21052         * tree-sra.c (create_abstract_origin): New function.
21053         (modify_function): Call create_abstract_origin.
21054
21055 2010-03-15  Chris Demetriou  <cgd@google.com>
21056
21057         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
21058         wasn't copied.
21059
21060 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
21061
21062         PR middle-end/43354
21063         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
21064         call insert_out_of_ssa_copy for default definitions.
21065
21066 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
21067
21068         * graphite-clast-to-gimple.c (my_long_long): Defined.
21069         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
21070         * graphite-sese-to-poly.c (my_long_long): Defined.
21071         (scop_ivs_can_be_represented): Use it.
21072
21073 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
21074
21075         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
21076         graphite-max-bbs-per-function, and loop-block-tile-size.
21077         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
21078         with "maximum".
21079         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
21080
21081 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
21082
21083         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
21084         forward declaration.
21085         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
21086         (add_upper_bounds_from_estimated_nit): New.
21087         (build_loop_iteration_domains): Use it.
21088
21089 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
21090
21091         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
21092
21093 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
21094
21095         PR middle-end/43306
21096         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
21097         should be an INTEGER_CST.  Also handle CASE_CONVERT.
21098
21099 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
21100
21101         * graphite.c (graphite_initialize): To bound the number of bbs per
21102         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
21103         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
21104         * doc/invoke.texi: Document it.
21105
21106 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
21107
21108         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
21109         * graphite-sese-to-poly.h (build_poly_scop): Same.
21110
21111 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
21112
21113         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
21114         the number of parameters in the scop.  Use as an upper bound
21115         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
21116         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
21117         * doc/invoke.texi: Document it.
21118
21119 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
21120
21121         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
21122         * doc/c-tree.texi: Remove.
21123         * doc/generic.texi: Merge c-tree.texi here.
21124         * doc/gccint.texi (Trees): Remove menu entry.
21125         (c-tree.texi): Remove @include.
21126         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
21127         * doc/languages.texi (Reading RTL): Ditto.
21128
21129 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
21130
21131         PR target/42869
21132         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
21133
21134 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
21135
21136         PR middle-end/42431
21137         * gcc/config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
21138         code added to work around reload clobbering CONST insns.
21139
21140 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
21141
21142         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
21143         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
21144         (cselib_preserve_only_values): Remove retain argument, don't
21145         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
21146         * cselib.h (cselib_preserve_only_values): Remove retain argument.
21147         * var-tracking.c (micro_operation): Move insn field before union.
21148         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
21149         (struct variable_tracking_info_def): Remove n_mos field, change
21150         mos into a vector of micro_operations.
21151         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
21152         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
21153         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
21154         changing into a vector.
21155         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
21156         come before all other uops generated by add_stores.
21157         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
21158         argument removal.
21159         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
21160         a vector.  Run just one pass over the bbs instead of separate counting
21161         and computation phase.
21162         (vt_finalize): Free VTI (bb)->mos vector instead of array.
21163
21164         PR debug/43329
21165         * tree-inline.c (remap_decls): Put old_var rather than origin_var
21166         into *nonlocalized_list vector.
21167         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
21168         even if origin is non-NULL.
21169         (gen_variable_die): Likewise.
21170         (process_scope_var): Don't change origin.
21171         (gen_decl_die): Likewise.
21172         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
21173         before adding new edges instead of after it, fix moving over
21174         debug stmts.
21175
21176 2010-03-11  David S. Miller  <davem@davemloft.net>
21177
21178         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
21179         of four.
21180         * configure: Rebuild.
21181
21182 2010-03-11  Martin Jambor  <mjambor@suse.cz>
21183
21184         PR tree-optimization/43257
21185         * tree.c (assign_assembler_name_if_neeeded): New function.
21186         (free_lang_data_in_cgraph): Assembler name assignment moved to the
21187         above new function.
21188         * tree.h (assign_assembler_name_if_neeeded): Declare.
21189         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
21190         the function if needed.
21191
21192 2010-03-11  Chris Demetriou  <cgd@google.com>
21193
21194         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
21195         include/stdint-gcc.h, and include/stdint.h world-readable.
21196
21197 2010-03-11  Richard Guenther  <rguenther@suse.de>
21198
21199         PR tree-optimization/43255
21200         * tree-vrp.c (process_assert_insertions_for): Do not insert
21201         asserts for trivial conditions.
21202
21203 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
21204
21205         PR tree-optimization/43280
21206         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
21207         generation.  Move calculation of size out of the if branch.
21208         (find_bswap): Modify compare number generation.
21209
21210 2010-03-11  Richard Guenther  <rguenther@suse.de>
21211
21212         PR lto/43200
21213         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
21214         (input_gimple_stmt): Fixup handled component types during
21215         operand read.  Also fix up decls in ADDR_EXPRs.
21216
21217 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
21218
21219         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
21220         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
21221
21222 2010-03-10  Jan Hubicka  <jh@suse.cz>
21223
21224         PR c/43288
21225         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
21226         * varasm.c (get_variable_section): Don't do that here...
21227         (make_decl_rtl): ... and here.
21228         (do_assemble_alias): Produce decl RTL.
21229         (assemble_alias): Likewise.
21230
21231 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
21232
21233         PR debug/43290
21234         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
21235         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
21236         of fde->vdrap_reg.
21237         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
21238         (based_loc_descr): Only express drap or vdrap regno based expressions
21239         using DW_OP_fbreg when not optimizing.
21240         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
21241         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
21242         REG_CFA_SET_VDRAP note.
21243
21244 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
21245
21246         PR tree-optimization/43236
21247         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
21248         error in calculation of base address in reverse iteration case.
21249         (generate_builtin): Take number of latch executions if the statement
21250         is in the latch.
21251
21252 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
21253
21254         PR middle-end/42859
21255         * tree-eh.c: Include pointer-set.h.
21256         (lower_eh_dispatch): Filter out duplicate case labels and
21257         remove the unneeded edge when the label is unused.  Return
21258         true when some edges are removed.
21259         (execute_lower_eh_dispatch): When any lowering resulted in
21260         removing an edge, also delete unreachable blocks.
21261
21262 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
21263
21264         PR bootstrap/43287
21265         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
21266         UNSPEC_MACHOPIC_OFFSET.
21267
21268 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
21269
21270         PR target/43294
21271         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
21272         (m68k_delegitimize_address): New function.
21273
21274 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
21275
21276         PR debug/43299
21277         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
21278
21279         PR debug/43299
21280         * var-tracking.c (adjust_sets): New function.
21281         (count_with_sets, add_with_sets): Use it.
21282         (get_adjusted_src): New inline function.
21283         (add_stores): Use it.
21284
21285         PR debug/43304
21286         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
21287         call cselib_dummy_expand_value_rtx_cb instead of
21288         cselib_expand_value_rtx_cb.
21289
21290         PR debug/43293
21291         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
21292         * config/i386/i386.c: Include debug.h and dwarf2out.h.
21293         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
21294         and .cfi_endproc around the pic thunks.
21295         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
21296         all queued unwind info register saves are saved before the call.
21297         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
21298         considered as sp-=4 for unwind info and the pop as sp+=4 which
21299         also clobbers dest, but doesn't actually restore it.
21300
21301         PR debug/43290
21302         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
21303         RTX_FRAME_RELATED_P.
21304
21305 2010-03-09  Jie Zhang  <jie@codesourcery.com>
21306
21307         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
21308         whitespaces in output template.
21309
21310 2010-03-09  Jie Zhang  <jie@codesourcery.com>
21311
21312         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
21313         out array boundary.
21314
21315 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
21316
21317         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
21318         builtins.exp in a separate job.
21319
21320 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
21321
21322         * graphite-sese-to-poly.c (add_param_constraints): Use
21323         lower_bound_in_type and upper_bound_in_type.
21324
21325 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
21326
21327         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
21328         instead of unsigned_type_node.
21329
21330 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
21331             Reza Yazdani  <reza.yazdani@amd.com>
21332
21333         PR middle-end/43065
21334         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
21335         on pointer type parameters.
21336
21337 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
21338
21339         PR middle-end/42644
21340         PR middle-end/42130
21341         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
21342         handle conversions from pointer to integers.
21343         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
21344         induction variable, to be able to work with code generated by CLooG.
21345         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
21346         (build_poly_scop): Bail out if we cannot codegen a loop.
21347
21348 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
21349
21350         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
21351         code generation with gloog_error.
21352
21353 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
21354
21355         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
21356         Call fold_convert on all the returned values.
21357         (expand_scalar_variables_expr): Pass to
21358         expand_scalar_variables_ssa_name the type of the resulting expression.
21359
21360 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
21361
21362         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
21363         ppl_min_for_le_pointset.
21364         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
21365         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
21366
21367 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
21368
21369         * graphite-dependences.c (map_into_dep_poly): Removed.
21370         (dependence_polyhedron_1): Use combine_context_id_scat.
21371
21372 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
21373
21374         * graphite-poly.h (struct poly_scattering): Add layout documentation.
21375         (struct poly_bb): Same.
21376         (combine_context_id_scat): New.
21377
21378 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
21379
21380         PR middle-end/42326
21381         * sese.c (name_defined_in_loop_p): Return false for default
21382         definitions.
21383
21384 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
21385
21386         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
21387         and clean up the logic.
21388
21389 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
21390
21391         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
21392         early return.
21393
21394 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
21395
21396         * var-tracking.c (remove_cselib_value_chains): Define only for
21397         ENABLE_CHECKING.
21398         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
21399         delete_slot_part, emit_notes_for_differences_1): Don't call
21400         remove_cselib_value_chains here.
21401         (set_slot_part, emit_notes_for_differences_2): Don't call
21402         add_cselib_value_chains here.
21403         (preserved_values): New vector.
21404         (preserve_value): New function.
21405         (add_uses, add_stores, vt_add_function_parameters): Use it
21406         instead of cselib_preserve_value.
21407         (changed_values_stack): New vector.
21408         (check_changed_vars_0): New function.
21409         (check_changed_vars_1, check_changed_vars_2): Use it.
21410         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
21411         changed_values_stack VALUEs.
21412         (vt_emit_notes): For all preserved_values call
21413         add_cselib_value_chains.  If ENABLE_CHECKING call
21414         remove_cselib_value_chains before verifying value_chains is empty.
21415         Initialize and free changed_values_stack.
21416         (vt_initialize): Initialize preserved_values.
21417         (vt_finalize): Free preserved_values.
21418
21419 2010-03-08  Richard Guenther  <rguenther@suse.de>
21420
21421         PR tree-optimization/43269
21422         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
21423         region detection.
21424
21425 2010-03-08  Martin Jambor  <mjambor@suse.cz>
21426
21427         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
21428         (ipa_is_param_called): Removed.
21429         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
21430         (ipa_print_node_params): Do not print the called flag.
21431         (ipa_write_node_info): Do not stream the called flag.
21432         (ipa_read_node_info): Likewise.
21433
21434 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
21435
21436         PR debug/43176
21437         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
21438         * cselib.c (struct expand_value_data): Add dummy field.
21439         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
21440         dummy to false.
21441         (cselib_dummy_expand_value_rtx_cb): New function.
21442         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
21443         any rtl.
21444         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
21445         * var-tracking.c: Include pointer-set.h.
21446         (variable): Change n_var_parts to char from int.  Add
21447         cur_loc_changed and in_changed_variables fields.
21448         (variable_canonicalize): Remove.
21449         (shared_var_p): New inline function.
21450         (unshare_variable): Maintain cur_loc_changed and
21451         in_changed_variables fields.  If var was in changed_variables,
21452         replace it there with new_var.  Just copy cur_loc instead of
21453         resetting it to something else.
21454         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
21455         (dataflow_set_union): Don't call variable_canonicalize.
21456         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
21457         of their DEBUG_EXPR_TREE_DECLs.
21458         (canonicalize_loc_order_check): Verify that cur_loc is NULL
21459         and in_changed_variables and cur_loc_changed is false.
21460         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
21461         and cur_loc_changed.  Don't update cur_loc here.
21462         (variable_merge_over_src): Don't call variable_canonicalize.
21463         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
21464         removing loc that is equal to cur_loc, clear cur_loc,
21465         set cur_loc_changed and ensure variable_was_changed is called.
21466         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
21467         compare pointers in cur_loc check, if it is equal to loc,
21468         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
21469         (variable_different_p): Remove compare_current_location argument,
21470         don't compare cur_loc.
21471         (dataflow_set_different_1): Adjust variable_different_p caller.
21472         (variable_was_changed): If dv had some var in changed_variables
21473         already, reset in_changed_variables flag for it and propagate
21474         cur_loc_changed over to the new variable.  On empty var
21475         always set cur_loc_changed.  Set in_changed_variables on whatever
21476         var is added to changed_variables.
21477         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
21478         Use shared_var_p.  When removing loc that is equal to cur_loc,
21479         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
21480         end, don't set it to something else, just call variable_was_changed.
21481         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
21482         loc being removed, clear cur_loc and set cur_loc_changed.
21483         Set cur_loc_changed if all locations have been removed.
21484         (struct expand_loc_callback_data): New type.
21485         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
21486         allocated.  Always create SUBREGs if simplify_subreg failed.
21487         Prefer to use cur_loc, when that fails and still in
21488         changed_variables (and seen first time) recompute it.  Set
21489         cur_loc_changed of variables which had to change cur_loc and
21490         compute elcd->cur_loc_changed if any of the subexpressions used
21491         had to change cur_loc.
21492         (vt_expand_loc): Adjust to pass arguments in
21493         expand_loc_callback_data structure.
21494         (vt_expand_loc_dummy): New function.
21495         (emitted_notes): New variable.
21496         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
21497         that weren't used for any other decl in current
21498         emit_notes_for_changes call call vt_expand_loc_dummy to update
21499         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
21500         first loc_chain location if NULL before.  Always use just
21501         cur_loc instead of first loc_chain location.  When cur_loc_changed
21502         is false, when not --enable-checking=rtl just don't emit any note.
21503         When rtl checking, compute the note and assert it is the same
21504         as previous note.  Clear cur_loc_changed and in_changed_variables
21505         at the end before removing from changed_variables.
21506         (check_changed_vars_3): New function.
21507         (emit_notes_for_changes): Traverse changed_vars to call
21508         check_changed_vars_3 on each changed var.
21509         (emit_notes_for_differences_1): Clear cur_loc_changed and
21510         in_changed_variables.  Recompute cur_loc of new_var.
21511         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
21512         (vt_emit_notes): Initialize and destroy emitted_notes.
21513
21514 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
21515
21516         PR rtl-optimization/42220
21517         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
21518         Use verify_reg_tracked to determine if we should use OP_OUT rather
21519         than OP_INOUT.
21520         (build_def_use): If we see an in-out operand for a register that we
21521         know nothing about, treat is an output if possible, fail the block if
21522         not.
21523
21524 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
21525
21526         PR debug/42897
21527         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
21528         permanently.
21529
21530 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
21531
21532         PR debug/42897
21533         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
21534         uses of relevant DEFs that are dead outside the loop too.
21535
21536 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
21537
21538         * var-tracking.c (dataflow_set_merge): Swap src and src2.
21539         Reverted:
21540         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
21541         PR debug/41371
21542         * var-tracking.c (values_to_unmark): New variable.
21543         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
21544         values_to_unmark vector.  Moved body to...
21545         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
21546         instead queue it into values_to_unmark vector.
21547         (vt_find_locations): Free values_to_unmark vector.
21548
21549 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
21550
21551         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
21552         (site.exp): Export them when plugins are enabled.
21553
21554 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
21555
21556         PR middle-end/42326
21557         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
21558         that contain scevs.
21559         (chrec_fold_multiply): Same.
21560
21561 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
21562
21563         PR c/43248
21564         * c-decl.c (build_compound_literal): Return early if init is
21565         an error_mark_node.
21566
21567 2010-03-04  Martin Jambor  <mjambor@suse.cz>
21568
21569         PR tree-optimization/43164
21570         PR tree-optimization/43191
21571         * tree-sra.c (type_consists_of_records_p): Reject records with
21572         zero-size bit-fields at the end.
21573
21574 2010-03-04  Mike Stump  <mikestump@comcast.net>
21575
21576         * Makefile.in (TAGS): Remove *.y.
21577
21578 2010-03-04  Richard Guenther  <rguenther@suse.de>
21579
21580         PR tree-optimization/40761
21581         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
21582         in reverse order.
21583         (my_rev_post_order_compute): New function.
21584         (init_pre): Call it.
21585
21586 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
21587
21588         PR middle-end/43209
21589         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
21590         decrease the cost of an IV candidate when the cost is infinite.
21591
21592 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
21593
21594         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
21595         Use '3DNow!' for the extension of that name, ensure normal space
21596         after the string.
21597         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
21598
21599 2010-03-03  Jeff Law  <law@redhat.com>
21600
21601         * PR middle-end/32693
21602         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
21603         than gen_rtx_SUBREG.
21604         (extract_bit_field_1): Likewise.
21605
21606 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
21607
21608         * doc/sourcebuild.texi (Test directives): Document that arguments
21609         include-opts and exclude-opts are now optional for dg-skip-if,
21610         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
21611
21612 2010-03-03  Jason Merrill  <jason@redhat.com>
21613
21614         PR c++/12909
21615         * cgraph.h (varpool_node): Add extra_name field.
21616         * varpool.c (varpool_extra_name_alias): New.
21617         (varpool_assemble_decl): Emit extra name aliases.
21618         (varpool_mark_needed_node): Look past an extra name alias.
21619         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
21620         * lto-streamer-in.c (lto_input_tree): Read it.
21621         * lto-streamer-out.c (output_unreferenced_globals): Write it.
21622
21623 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
21624
21625         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
21626         (sparc*-*-solaris2*): ...this.
21627
21628 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
21629
21630         PR debug/43229
21631         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
21632         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
21633         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
21634         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
21635
21636         PR debug/43237
21637         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
21638         fallthrough to default handling, just with want_address 0 instead of 2.
21639         For single element lists, add_AT_loc directly, otherwise create an
21640         artificial variable DIE and stick location list to it.
21641
21642         PR debug/43177
21643         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
21644         (VAL_EXPR_HAS_REVERSE): Define.
21645         (reverse_op): New function.
21646         (add_stores): For reversible operations add an extra MO_VAL_USE.
21647
21648 2010-03-02  Jason Merrill  <jason@redhat.com>
21649
21650         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
21651
21652 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
21653
21654         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
21655         (sparc64-*-linux*): Likewise.
21656         (sparc64-*-solaris2*): Include assembler files before linker ones.
21657         (sparc-*-solaris2*): Simplify and reorder to match previous case.
21658         * config/sparc/gas.h: Delete.
21659         * config/sparc/sol2-64.h: Add copyright notice.
21660         * config/sparc/sol2-gas-bi.h: Likewise.
21661         * config/sparc/sol2-gld.h: Likewise.
21662         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
21663         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
21664         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
21665         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
21666         (sparc_elf_asm_named_section): Rename into...
21667         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
21668
21669 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
21670
21671         * config/alpha/alpha.c (override_options): Fix -mtune error message.
21672
21673 2010-03-02  Jeff Law  <law@redhat.com>
21674
21675         PR middle-end/42431
21676         * reload1.c (rtx_p, substitute_stack): Declare.
21677         (substitute): Record addresses of changed rtxs.
21678         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
21679         Restore the original rtx when complete.
21680         (reload): Free subsitute_stack when complete.
21681
21682 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
21683
21684         * doc/gccint.texi (menu): Add Testsuites as a chapter.
21685         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
21686         new chapter.
21687         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
21688         LTO Testing, gcov Testing, profopt Testing, compat Testing,
21689         Torture Tests): Change from subsection to section.
21690
21691 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
21692             Steven Bosscher  <steven@gcc.gnu.org>
21693
21694         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
21695         instead of bb.
21696
21697 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
21698
21699         PR middle-end/42640
21700         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
21701         the assignment from the new induction variable to the assignment
21702         of the value from the original loop PHI function.
21703
21704 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
21705             Daniel Jacobowitz  <dan@codesourcery.com>
21706
21707         * doc/sourcebuild.texi (Test directives): Clarify options to
21708         dg-skip-if.
21709
21710 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21711
21712         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
21713         Disable cfi directives unless GCC and gas agree on using read-only
21714         .eh_frame sections for 64-bit.
21715         * configure: Regenerate.
21716
21717 2010-03-01  Richard Guenther  <rguenther@suse.de>
21718
21719         PR tree-optimization/43220
21720         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
21721         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
21722
21723 2010-03-01  Richard Guenther  <rguenther@suse.de>
21724             Martin Jambor  <mjambor@suse.cz>
21725
21726         PR middle-end/41250
21727         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
21728         gimplified parameters.
21729
21730 2010-03-01  Christian Bruel  <christian.bruel@st.com>
21731
21732         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
21733
21734 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
21735
21736         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
21737
21738 2010-03-01  Richard Guenther  <rguenther@suse.de>
21739
21740         PR middle-end/43213
21741         * expr.c (expand_assignment): Use the alias-oracle to tell
21742         if the rhs aliases the result decl.
21743
21744 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21745
21746         PR pch/14940
21747         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
21748         to sol_gt_pch_get_address.
21749         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
21750         64-bit, SPARC and x86.
21751         (sol_gt_pch_get_address): New function.
21752
21753 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
21754
21755         * toplev.h (inform_n, error_n): Declare.
21756         * diagnostic.c (inform_n, error_n): New function.
21757
21758 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
21759
21760         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
21761         has no rtl yet when processing local_decls, queue it and recheck
21762         if deferred stack allocation hasn't assigned it rtl.
21763
21764 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
21765
21766         * config/sh/sh.c (unspec_bbr_uid): New.
21767         (gen_block_redirect): Use it instead of INSN_UID.
21768         (gen_far_branch): Likewise.
21769
21770 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
21771
21772         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
21773         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
21774
21775 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
21776
21777         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
21778         (Warning Options): -Wno-conversion-null is valid for
21779         Objective-C++ as well.
21780         * doc/tm.texi (Named Address Spaces): Likewise.
21781         * doc/plugins.texi (Plugins): Replace TABs with spaces.
21782         * doc/tree-ssa.texi (Tree SSA): Likewise.
21783
21784 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
21785
21786         PR bootstrap/43202
21787         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
21788         by default.  Don't set the default arch for
21789         i[34567]86-*-darwin*|x86_64-*-darwin*.
21790
21791 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
21792
21793         PR bootstrap/43202
21794         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
21795         default.  Set the default 32bit/64bit archs with $with_arch
21796         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
21797
21798 2010-02-27  Richard Guenther  <rguenther@suse.de>
21799
21800         PR tree-optimization/43186
21801         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
21802         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
21803         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
21804         unroller iterations.
21805
21806 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
21807
21808         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
21809         required and i[34567]86-*-* targets don't support 64bit ISA.
21810
21811 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
21812
21813         PR ada/43096
21814         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
21815         the same alias set.
21816
21817 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
21818
21819         * config.gcc: Set the default arch at least to Prescott for
21820         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
21821         if SSE math is enabled.
21822
21823 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21824
21825         * diagnostic.c (diagnostic_initialize): Update.
21826         (diagnostic_report_diagnostic): Test inhibit_notes_p for
21827         informative notes.
21828         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
21829         (diagnostic_inhibit_notes): New.
21830         * toplev.c (process_options): inhibit notes with -fcompare-debug.
21831
21832 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21833
21834         PR c/20631
21835         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
21836         * doc/standards.texi: Likewise.
21837         * doc/extend.texi: Likewise.
21838         * doc/trouble.texi: Likewise.
21839         * doc/cppopts.texi: Likewise.
21840         * doc/install.texi: Likewise.
21841         * c.opt (std=c90,std=gnu90): New options.
21842         * c-opts.c (c_common_handle_option): Handle them.
21843
21844 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21845
21846         PR c/24577
21847         * c-decl.c (undeclared_variable): Use an informative note.
21848
21849 2010-02-26  Richard Guenther  <rguenther@suse.de>
21850
21851         PR tree-optimization/43186
21852         * gimple.h (gimple_fold): Remove.
21853         * gimple.c (gimple_fold): Remove.  Inline into single user ...
21854         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
21855         Try harder for conditions.
21856
21857 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
21858
21859         PR debug/43190
21860         * function.c (used_types_insert): Don't skip through named pointer
21861         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
21862         and it is different from the main variant's type.
21863
21864 2010-02-26  Nick Clifton  <nickc@redhat.com>
21865
21866         * config/rx/rx.md (sminsi3): Remove bogus alternative.
21867
21868 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
21869
21870         * config.gcc: Support --with-fpmath=sse for x86.
21871
21872         * config/i386/ssemath.h: New.
21873
21874         * doc/install.texi (--with-fpmath=sse): Documented.
21875
21876 2010-02-26  Richard Guenther  <rguenther@suse.de>
21877
21878         PR tree-optimization/43188
21879         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
21880         vector types of over-aligned element type.
21881
21882 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
21883
21884         PR target/43175
21885         * config/i386/i386.c (expand_vec_perm_blend): Use correct
21886         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
21887
21888 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
21889
21890         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
21891
21892 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
21893
21894         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
21895         * var-tracking.c: Include diagnostic.h.
21896         (debug_dv): New function.
21897         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
21898
21899         PR debug/43160
21900         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
21901         (add_value_chain, add_value_chains, remove_value_chain,
21902         remove_value_chains): Handle DEBUG_EXPRs.
21903         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
21904
21905         PR debug/43161
21906         * regcprop.c (struct queued_debug_insn_change): New type.
21907         (struct value_data_entry): Add debug_insn_changes field.
21908         (struct value_data): Add n_debug_insn_changes field.
21909         (debug_insn_changes_pool): New variable.
21910         (free_debug_insn_changes, apply_debug_insn_changes,
21911         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
21912         (kill_value_one_regno): Call free_debug_insn_changes if needed.
21913         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
21914         fields.
21915         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
21916         changes for them.
21917         (copyprop_hardreg_forward_1): Don't call apply_change_group for
21918         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
21919         changes, call cprop_find_used_regs via note_stores.
21920         (copyprop_hardreg_forward): When copying vd from predecessor
21921         which has any queued DEBUG_INSN changes, make sure the pointers are
21922         cleared.  At the end call df_analyze and then if there are any
21923         DEBUG_INSN changes queued at the end of some basic block for still
21924         live registers, apply them.
21925         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
21926
21927 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
21928
21929         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
21930         (arm*-*-*): Ditto.
21931
21932 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
21933
21934         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
21935         targets.  Set the default with_cpu/with_arch from arch/cpu.
21936         Allow x86-64 and native for with_cpu/with_arch.
21937
21938 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
21939
21940         * ebitmap.c: Change calls to verify_popcount with calls to
21941         sbitmap_verify_popcount.
21942         (ebitmap_clear_bit): Fixed map->cacheindex test and
21943         map>cache update when bit clearing results in an empty
21944         element.
21945
21946 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
21947
21948         PR target/43154
21949         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
21950         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
21951         and support both V2DF and V2DI modes.
21952         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
21953         support both V2DF and V2DI modes.
21954         (general): Delete trailing whitespace from a few patterns.
21955
21956         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
21957         V2DF/V2DI interleave high/low builtins.
21958
21959         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
21960         new VSX builtins.
21961
21962         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
21963         interleave high/low functions.
21964
21965 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
21966
21967         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
21968         #pragma extern_prefix.
21969
21970 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
21971
21972         PR debug/43166
21973         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
21974         BLKmode, assert op0 is a MEM and just adjust its mode.
21975
21976         PR debug/43165
21977         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
21978         if bitpos isn't multiple of mode's bitsize.
21979
21980 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21981
21982         * c.opt (-ftemplate-depth=): New.
21983         (-ftemplate-depth-): Deprecate.
21984         * optc-gen.awk: Handle -ftemplate-depth=.
21985         * opth-gen.awk: Likewise.
21986         * c-opts.c (c_common_handle_option): Likewise.
21987         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
21988
21989 2010-02-24  Jason Merrill  <jason@redhat.com>
21990
21991         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
21992
21993 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21994
21995         * cfg.c (alloc_aux_for_block): Remove inline.
21996         (alloc_aux_for_edge): Likewise.
21997
21998 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21999
22000         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
22001
22002 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22003
22004         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
22005         * config/i386/sol2-gas.h: New file.
22006         * config.gcc (i[34567]86-*-solaris2*): Use it.
22007
22008 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22009
22010         PR c/43128
22011         * c-typeck.c (ep_convert_and_check): New.
22012         (build_conditional_expr): Use it.
22013         (build_binary_op): Likewise.
22014
22015 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
22016
22017         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
22018
22019         PR debug/43150
22020         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
22021         bounds even for -O+.
22022         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
22023         expr needs to have DECL_NAME set.
22024
22025 2010-02-24  Nick Clifton  <nickc@redhat.com>
22026
22027         * config/mep/mep.c: Include gimple.h.
22028         (mep_function_uses_sp): Delete unused function.
22029         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
22030         parameters.  Use unsigned integers to count args.  Return a
22031         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
22032
22033 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
22034
22035         PR target/43107
22036         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
22037         greater or equal to nelt instead of 2 * nelt.
22038         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
22039         with nelt - 1.
22040
22041 2010-02-23  Jason Merrill  <jason@redhat.com>
22042
22043         PR debug/42800
22044         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
22045         in cfun->local_decls even if they have register types.
22046
22047         PR c++/42837
22048         * stor-layout.c (place_field): Don't warn about unnecessary
22049         DECL_PACKED if the type is packed.
22050
22051 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
22052
22053         PR target/43139
22054         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
22055         GOTOFF relocs, even when the base reg isn't pic pointer.
22056
22057 2010-02-23  Michael Matz  <matz@suse.de>
22058
22059         PR debug/43077
22060         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
22061         (expand_gimple_basic_block): Generate and use debug temps if there
22062         are debug uses left after the last real use of TERed ssa names.
22063         Unlink debug immediate uses when they are expanded.
22064
22065 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22066
22067         PR 43123
22068         * config/i386/i386.c (override_options): Reorganise to provide
22069         better error messages.
22070
22071 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
22072
22073         PR middle-end/43083
22074         * graphite-scop-detection.c (create_single_exit_edge): Move
22075         the call to find_single_exit_edge to....
22076         (create_sese_edges): ...here.  Don't handle multiple edges
22077         exiting the function.
22078         (build_graphite_scops): Don't handle multiple edges
22079         exiting the function.
22080
22081 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
22082
22083         PR middle-end/43097
22084         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
22085         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
22086
22087 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
22088
22089         PR middle-end/43026
22090         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
22091
22092 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22093
22094         PR c++/43126
22095         * c-typeck.c (convert_arguments): Print declaration location.
22096         * c-common.c (validate_nargs): Rename as
22097         builtin_function_validate_nargs.
22098         (check_builtin_function_arguments): Update.
22099
22100 2010-02-22  Richard Guenther  <rguenther@suse.de>
22101
22102         PR lto/43045
22103         * tree-inline.c (declare_return_variable): Use the type of
22104         the call stmt lhs if available.
22105
22106 2010-02-22  Duncan Sands  <baldrick@free.fr>
22107
22108         * passes.c (register_pass): Always consider all pass lists when
22109         ref_pass_instance_number is zero.
22110
22111 2010-02-22  Richard Guenther  <rguenther@suse.de>
22112
22113         PR tree-optimization/42749
22114         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
22115         parameter.  Do arithmetic in the original type.
22116         (update_accumulator_with_ops): Likewise.
22117         (adjust_accumulator_values): Adjust.
22118
22119 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
22120
22121         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
22122         (QI to BLKmode splitter): New splitter.
22123
22124 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
22125
22126         * config/i386/i386.c (initial_ix86_tune_features): Turn on
22127         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
22128
22129 2010-02-22  Richard Guenther  <rguenther@suse.de>
22130
22131         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
22132
22133 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
22134
22135         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
22136         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
22137         ($(T)crti.o, $(T)crtn.o): Remove rules.
22138
22139 2010-02-21  Tobias Burnus  <burnus@net-b.de>
22140
22141         PR fortran/35259
22142         * doc/invoke.texi (-fassociative-math): Document that this
22143         option is automatically enabled for Fortran.
22144
22145 2010-02-20  David S. Miller  <davem@davemloft.net>
22146
22147         * configure.ac: Test if linker and assembler properly support
22148         GOTDATA_OP relocations.
22149         * configure: Rebuild.
22150         * config.in: Likewise.
22151         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
22152         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
22153         (movsi_high_pic): Likewise.
22154         (movdi_lo_sum_pic): Likewise.
22155         (movdi_high_pic): Likewise.
22156         (movsi_pic_gotdata_op): New pattern.
22157         (movdi_pic_gotdata_op): Likewise.
22158         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
22159         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
22160
22161 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
22162
22163         PR target/43067
22164         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
22165         attribute to ssemul.
22166         (xop_mulv2div2di3_high): Ditto.
22167
22168 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22169
22170         PR c++/35669
22171         * c.opt (Wconversion-null): New option.
22172         * doc/invoke.texi (Wconversion-null): Document.
22173
22174 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22175
22176         * common.opt (Wlarger-than-): Add Undocumented.
22177
22178 2010-02-19  Mike Stump  <mikestump@comcast.net>
22179
22180         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
22181
22182 2010-02-19  Jason Merrill  <jason@redhat.com>
22183
22184         PR target/40332
22185         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
22186         * configure: Likewise.
22187
22188 2010-02-20  Alan Modra  <amodra@gmail.com>
22189
22190         PR middle-end/42344
22191         * cgraph.h (cgraph_make_decl_local): Declare.
22192         * cgraph.c (cgraph_make_decl_local): New function.
22193         (cgraph_make_node_local): Use it.
22194         * cgraphunit.c (cgraph_function_versioning): Likewise.
22195         * ipa.c (function_and_variable_visibility): Likewise.
22196
22197 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
22198
22199         PR bootstrap/43121
22200         * except.c (sjlj_emit_function_enter): Don't call
22201         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
22202         directly.
22203         * rtl.h (add_reg_br_prob_note): Remove prototype.
22204
22205 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22206
22207         PR 41779
22208         * c-common.c (conversion_warning): Remove widening conversions
22209         before checking the conversion of integers to reals.
22210
22211 2010-02-19  Mike Stump  <mikestump@comcast.net>
22212
22213         PR middle-end/43125
22214         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
22215
22216         PR objc/43061
22217         * cgraphunit.c (process_function_and_variable_attributes): Check
22218         DECL_PRESERVE_P instead of looking up attribute "used".
22219         * ipa-pure-const.c (check_decl): Likewise.
22220         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
22221         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
22222         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
22223         instead of attribute "used".
22224         * config/sol2-c.c (solaris_pragma_init): Likewise.
22225         (solaris_pragma_fini): Likewise.
22226
22227 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
22228
22229         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
22230         Use XCNEW instead of xcalloc.
22231         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
22232         XNEW instead of xmalloc.
22233         (get_fields): Use XNEWVEC instead of xmalloc.
22234
22235         PR debug/43084
22236         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
22237         populate vars array.
22238         (create_new_general_access): For debug stmts just reset value.
22239         (get_stmt_accesses): For accesses within debug stmts just record them
22240         using add_access_to_acc_sites instead of preventing the peeling or
22241         counting them as accesses.
22242
22243         PR middle-end/42233
22244         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
22245
22246 2010-02-19  Richard Guenther  <rguenther@suse.de>
22247
22248         PR tree-optimization/42916
22249         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
22250         instructions.
22251
22252 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
22253
22254         * configure.ac: Replace all uses of changequote in macro arguments
22255         with proper quoting.
22256
22257 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
22258
22259         PR middle-end/42233
22260         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
22261
22262 2010-02-19  Richard Guenther  <rguenther@suse.de>
22263
22264         PR tree-optimization/42944
22265         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
22266         test for aliasing with errno.
22267
22268 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
22269
22270         PR middle-end/42233
22271         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
22272         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
22273         * dojump.c: Include output.h.
22274         (inv): New inline function.
22275         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
22276         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
22277         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
22278         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
22279         argument, pass it down to other calls.
22280         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
22281         add REG_BR_PROB note to the conditional jump.
22282         * cfgexpand.c (add_reg_br_prob_note): Removed.
22283         (expand_gimple_cond): Don't call it, add the probability
22284         as last argument to jumpif_1/jumpifnot_1.
22285         * Makefile.in (dojump.o): Depend on output.h.
22286         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
22287         callers.
22288         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
22289         * stmt.c (do_jump_if_equal): Likewise.
22290         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
22291         * loop-unswitch.c (compare_and_jump_seq): Likewise.
22292         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
22293         Likewise.
22294         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
22295         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
22296         jumpifnot_1 callers.
22297         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
22298         callers.
22299         (store_expr): Adjust jumpifnot caller.
22300         (store_constructor): Adjust jumpif caller.
22301
22302         PR middle-end/42233
22303         * gimplify.c (gimple_boolify): For __builtin_expect call
22304         gimple_boolify also on its first argument.
22305
22306 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
22307
22308         * configure.ac (gnu-unique-object): Wrap regexps using [] in
22309         changequote block.
22310         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
22311         * configure: Regenerated.
22312
22313 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
22314
22315         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
22316         lang_hooks.types_compatible_p instead of comptypes.
22317
22318 2010-02-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
22319
22320         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
22321         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
22322         if __prefer_thumb__ is defined.
22323
22324 2010-02-18  Martin Jambor  <mjambor@suse.cz>
22325
22326         PR tree-optimization/43066
22327         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
22328         array with zero-sized element type.
22329
22330 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
22331
22332         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
22333         rtx, allocate struct var_loc_node here and return it to the
22334         caller, and only if it is actually needed.
22335         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
22336         move it earlier and return immediately if it returns NULL.
22337
22338 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
22339
22340         * config/sparc/gas.h: New file.  Restore
22341         TARGET_ASM_NAMED_SECTION to its ELF default.
22342         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
22343         check !HAVE_GNU_AS.
22344         * config/sparc/sparc.c (sparc_elf_asm_named_section):
22345         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
22346         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
22347         after sparc/sysv4.h.
22348
22349 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
22350
22351         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
22352
22353 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
22354
22355         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
22356         patterns from predicated pattern.
22357
22358 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
22359
22360         PR target/43103
22361         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
22362         for insn mnemonic suffix.
22363
22364 2010-02-17  Richard Guenther  <rguenther@suse.de>
22365
22366         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
22367         to loop PHI nodes.
22368
22369 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
22370
22371         PR debug/42918
22372         * caller-save.c (save_call_clobbered_regs): If BB ends with
22373         a DEBUG_INSN, move any notes in between last real insn and the last
22374         DEBUG_INSN after the last DEBUG_INSN.
22375
22376 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
22377
22378         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
22379         Fix return type.  Fix argument type.  Explain meaning of return value.
22380
22381 2010-02-16  Richard Guenther  <rguenther@suse.de>
22382
22383         PR tree-optimization/41043
22384         * tree-vrp.c (vrp_var_may_overflow): Only ask SCEV for real loops.
22385         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
22386         statements ...
22387         (vrp_visit_phi_node): ... but only for loop PHI nodes.
22388
22389 2010-02-16  Ira Rosen  <irar@il.ibm.com>
22390
22391         PR tree-optimization/43074
22392         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
22393         * tree-vect-loop.c (vect_analyze_loop_operations): Add
22394         vectorizable cycles in hybrid SLP check.
22395         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
22396
22397 2010-02-16  Richard Guenther  <rguenther@suse.de>
22398
22399         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
22400         (true_dependence): If memrefs_conflict_p computes must-alias
22401         trust it.  Move TBAA check after offset-based disambiguation.
22402         (canon_true_dependence): Likewise.
22403
22404 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
22405
22406         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
22407         * doc/invoke.texi: Document it.
22408         * var-tracking.c: Include toplev.h and params.h.
22409         (vt_find_locations): Return bool indicating success.  Compute
22410         hash sizes unconditionally.  Check new parameter, report.
22411         (variable_tracking_main_1): Check vt_find_locations results and
22412         retry.  Renamed from...
22413         (variable_tracking_main): ... this.  New wrapper to preserve
22414         flag_var_tracking_assignments.
22415         * Makefile.in (var-tracking.o): Adjust dependencies.
22416
22417 2010-02-16  Jack Howarth  <howarth@bromo.med.uc.edu>
22418             Jakub Jelinek  <jakub@redhat.com>
22419
22420         PR target/42854
22421         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
22422         if weak_import attribute is present.
22423         * config/darwin.c (machopic_select_section): Likewise.
22424
22425 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
22426
22427         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
22428         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
22429         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
22430         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
22431
22432         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
22433         types.
22434
22435         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
22436         Fix argument types.
22437
22438         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
22439         Rewrite text to refer to the names.
22440
22441 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
22442
22443         * config/i386/i386-builtin-types.def
22444         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
22445         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
22446         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
22447         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
22448         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
22449         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
22450         IX86_BUILTIN_VPERMIL2PS256.
22451         (MULTI_ARG_4_DF2_DI_I): Defined.
22452         (MULTI_ARG_4_DF2_DI_I1): Defined.
22453         (MULTI_ARG_4_SF2_SI_I): Defined.
22454         (MULTI_ARG_4_SF2_SI_I1): Defined.
22455         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
22456         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
22457         __builtin_ia32_vpermil2ps256.
22458         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
22459         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
22460         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
22461         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
22462         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
22463         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
22464         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
22465         CODE_FOR_xop_vpermil2v8sf3.
22466         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
22467         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
22468         * config/i386/xopintrin.h (_mm_permute2_pd): New.
22469         (_mm256_permute2_pd): New.
22470         (_mm_permute2_ps): New.
22471         (_mm256_permute2_ps): New.
22472
22473 2010-02-15  Nick Clifton  <nickc@redhat.com>
22474
22475         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
22476         boolean parameters.  Use emit_jump_insn when emitting a pop
22477         instruction containing a return insn.
22478         (push): Use 'true' rather than '1' as second parameter to F.
22479         (h8300_expand_prologue): Likewise.
22480         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
22481         (h8300_expand_epilogue): Likewise.
22482
22483 2010-02-15  Richard Guenther  <rguenther@suse.de>
22484
22485         PR middle-end/43068
22486         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
22487         if that is zero.
22488
22489 2010-02-15  Nick Clifton  <nickc@redhat.com>
22490
22491         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
22492         delta.
22493
22494 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
22495
22496         * intl.c (fake_ngettext): New function.
22497         * intl.h (fake_ngettext): Declare.
22498         (ngettext): Define macro.
22499         * collect2.c (notice_translated): New function.
22500         (main): Use notice_translated and ngettext.
22501         * collect2.h (notice_translated): Declare.
22502
22503 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
22504
22505         * reorg.c (delete_computation): Comment fixes.
22506         * caller-save.c (setup_save_areas): Idem.
22507         * sel-sched-dump.c (dump_lv_set): Idem.
22508         * rtl.def: Idem.
22509
22510 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
22511
22512         * config/s390/s390.c (s390_sched_init): New function.
22513         (TARGET_SCHED_INIT): Target hook defined.
22514
22515 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
22516             Jack Howarth  <howarth@bromo.med.uc.edu>
22517             Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
22518
22519         PR target/42982
22520         Partial revert of unintended change in fix for PR41605.
22521         * config/darwin.h: Fix typo.
22522         * config/darwin9.h: Same.
22523
22524 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
22525
22526         * c-pch.c (pch_init): Clear v.
22527
22528 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
22529
22530         PR middle-end/42930
22531         * graphite-scop-detection.c (graphite_can_represent_scev): Call
22532         graphite_can_represent_init for MULT_EXPR.
22533
22534 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
22535
22536         PR middle-end/42914
22537         PR middle-end/42530
22538         * graphite-sese-to-poly.c (remove_phi): New.
22539         (translate_scalar_reduction_to_array): Call remove_phi.
22540
22541 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
22542
22543         PR middle-end/42771
22544         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
22545         * graphite-clast-to-gimple.h (gloog): Update declaration.
22546         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
22547         * graphite-poly.h (struct poly_bb): Add missing comments.
22548         (struct scop): Add poly_scop_p field.
22549         (POLY_SCOP_P): New.
22550         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
22551         * graphite.c (graphite_transform_loops): Build the polyhedral
22552         representation for each scop before code generation.
22553         * sese.c (rename_variables_in_operand): Removed.
22554         (rename_variables_in_expr): Return the renamed expression.
22555         (rename_sese_parameters): New.
22556         * sese.h (rename_sese_parameters): Declared.
22557
22558 2010-02-11  Richard Guenther  <rguenther@suse.de>
22559
22560         PR tree-optimization/42998
22561         * tree-ssa-pre.c (create_expression_by_pieces): Treat
22562         POINTER_PLUS_EXPR properly.
22563
22564 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
22565             Changpeng Fang  <changpeng.fang@amd.com>
22566
22567         PR middle-end/40886
22568         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
22569         the cost of an IV candidate when the IV is used in a test against zero.
22570
22571         * gcc.dg/tree-ssa/ivopts-3.c: New.
22572
22573 2010-02-11  Richard Guenther  <rguenther@suse.de>
22574
22575         PR lto/41664
22576         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
22577         pointer-vs-decl case by swapping refs.  Handle some cases
22578         of pointer-vs-decl disambiguations more conservatively.
22579         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
22580         to false after expanding.
22581
22582 2010-02-11  Richard Guenther  <rguenther@suse.de>
22583
22584         PR driver/43021
22585         * gcc.c (process_command): Handle LTO file@offset case more
22586         appropriately.
22587
22588 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
22589
22590         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
22591         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
22592         of DEBUG_INSNs.
22593         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
22594
22595         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
22596         if MEM's mode size isn't DWARF2_ADDR_SIZE.
22597         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
22598         Optimize eq/ne comparisons when both arguments are known to be
22599         zero-extended.
22600         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
22601         Don't mask operands unnecessarily if they are known to be already
22602         zero-extended.
22603
22604 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
22605
22606         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
22607         instead of loop.
22608
22609 2010-02-10  Richard Guenther  <rguenther@suse.de>
22610
22611         PR tree-optimization/43017
22612         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
22613         for wrapping signed arithmetic.
22614
22615 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
22616
22617         PR debug/43010
22618         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
22619         if no debug info should be emitted for it.
22620
22621 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
22622
22623         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
22624         note when flag_exceptions is set.
22625
22626 2010-02-10  Duncan Sands  <baldrick@free.fr>
22627
22628         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
22629
22630 2010-02-10  Richard Guenther  <rguenther@suse.de>
22631
22632         PR c/43007
22633         * tree.c (get_unwidened): Handle constants.
22634         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
22635
22636 2010-02-10  Martin Jambor  <mjambor@suse.cz>
22637
22638         PR lto/42985
22639         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
22640         check for variable argument counts independently.
22641
22642 2010-02-10  Christian Bruel  <christian.bruel@st.com>
22643
22644         PR target/42841
22645         * config/sh/sh.c (find_barrier): Increase length for non delayed
22646         conditional branches.
22647
22648 2010-02-10  Christian Bruel  <christian.bruel@st.com>
22649
22650         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
22651
22652 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
22653
22654         * builtins.c (set_builtin_user_assembler_name): Also handle
22655         ffs if int is smaller than word.
22656
22657 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
22658
22659         PR middle-end/42973
22660         * ira-conflicts.c (get_dup): Remove.
22661         (process_reg_shuffles): Add new parameter.  Use it as an
22662         additional guard for copy generation.
22663         (add_insn_allocno_copies): Rewrite.
22664
22665 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
22666
22667         * common.opt (fsched2-use-traces): Preserved for backward
22668         compatibility.
22669         * doc/invoke.texi: Remove the documentation about option
22670         -fsched2-use-traces.
22671         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
22672         flag_sched2_use_traces.
22673         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
22674         the backward compatibility flag section.
22675
22676 2010-02-09  Richard Guenther  <rguenther@suse.de>
22677
22678         PR tree-optimization/43008
22679         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
22680         make HEAP variables initialized from global memory if they
22681         are not known builtin functions.
22682         (find_func_aliases): Adjust.
22683
22684 2010-02-09  Richard Guenther  <rguenther@suse.de>
22685
22686         PR tree-optimization/43000
22687         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
22688         arithmetic manually.
22689
22690 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
22691
22692         PR tree-optimization/42931
22693         * tree-loop-linear.c (try_interchange_loops): Don't call
22694         double_int_mul if estimated_loop_iterations failed.
22695
22696 2010-02-08  Martin Jambor  <mjambor@suse.cz>
22697
22698         PR middle-end/42898
22699         * tree-sra.c (build_accesses_from_assign): Do not mark in
22700         should_scalarize_away_bitmap if stmt has volatile ops.
22701         (sra_modify_assign): Do not process assigns piecemeal if if stmt
22702         has volatile ops.
22703
22704 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
22705
22706         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
22707
22708 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
22709
22710         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
22711         before the pattern.
22712
22713 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
22714
22715         PR middle-end/42946
22716         * df-core.c (df_finish_pass): Change type of saved_flags to int.
22717
22718 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
22719
22720         PR middle-end/42988
22721         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
22722         to unknown_dependence.
22723         (graphite_legal_transform_dr): Handle the unknown_dependence.
22724         (graphite_carried_dependence_level_k): Same.
22725
22726 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
22727
22728         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
22729
22730 2010-02-07  Richard Guenther  <rguenther@suse.de>
22731
22732         PR middle-end/42991
22733         * expr.c (get_inner_reference): Always initialize *pbitsize.
22734
22735 2010-02-07  Richard Guenther  <rguenther@suse.de>
22736
22737         PR middle-end/42956
22738         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
22739         new ARRAY_REFs on variable size element or minimal index arrays.
22740         Complete.
22741         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
22742         gimple_fold_indirect_ref.
22743
22744 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
22745
22746         PR target/42957
22747         * arm.c (arm_override_options): Just return if the user has specified
22748         an invalid fpu name.
22749
22750 2010-02-03  Jason Merrill  <jason@redhat.com>
22751
22752         PR c++/42870
22753         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
22754         i386_pe_maybe_record_exported_symbol.
22755
22756 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
22757
22758         PR target/42924
22759         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
22760         (pa_delegitimize_address): New function.
22761
22762 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
22763
22764         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
22765         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
22766
22767 2010-02-05  Richard Guenther  <rguenther@suse.de>
22768
22769         PR lto/42762
22770         * lto-streamer-in.c (get_resolution): Deal with references
22771         to undefined functions.
22772
22773 2010-02-05  Richard Guenther  <rguenther@suse.de>
22774
22775         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
22776         (fold_const_aggregate_ref): Likewise.
22777         (ccp_fold_stmt): Substitute loads.
22778         (maybe_fold_reference): Verify types before substituting.
22779         Unshare properly.
22780         (fold_gimple_assign): Unshare properly.
22781         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
22782
22783 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
22784
22785         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
22786         for rs6000_gen_cell_microcode.
22787
22788 2010-02-04  Richard Guenther  <rguenther@suse.de>
22789
22790         PR rtl-optimization/42952
22791         * dse.c (const_or_frame_p): Remove MEM handling.
22792
22793 2010-02-04  Nick Clifton  <nickc@redhat.com>
22794
22795         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
22796         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
22797         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
22798         (mn10300_asm_output_mi_thunk): New function.
22799         (mn10300_can_output_mu_thunk): New function.
22800         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
22801         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
22802         (FUNCTION_ARG): Delete incorrect comment.
22803
22804 2010-02-03  Jason Merrill  <jason@redhat.com>
22805
22806         PR c++/40138
22807         * fold-const.c (operand_equal_p): Handle erroneous types.
22808
22809 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
22810
22811         * config/h8300/h8300.md (can_delay): Fix attibute condition.
22812
22813 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
22814
22815         PR rtl-optimization/42941
22816         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
22817         of xmalloc.
22818
22819 2010-02-03  Jason Merrill  <jason@redhat.com>
22820
22821         PR c++/35652
22822         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
22823
22824 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
22825
22826         PR debug/42896
22827         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
22828         (cselib_reset_table): Renamed from...
22829         (cselib_reset_table_with_next_value): ... this.
22830         (cselib_get_next_uid): Renamed from...
22831         (cselib_get_next_unknown_value): ... this.
22832         * cselib.c (next_uid): Renamed from...
22833         (next_unknown_value): ... this.
22834         (cselib_clear_table): Adjust.
22835         (cselib_reset_table): Adjust.  Renamed from...
22836         (cselib_reset_table_with_next_value): ... this.
22837         (cselib_get_next_uid): Adjust.  Renamed from...
22838         (cselib_get_next_unknown_value): ... this.
22839         (get_value_hash): Use hash.
22840         (cselib_hash_rtx): Likewise.
22841         (new_cselib_val): Adjust.  Set and dump uid.
22842         (cselib_lookup_mem): Pass next_uid as hash.
22843         (cselib_subst_to_values): Likewise.
22844         (cselib_log_lookup): Dump uid.
22845         (cselib_lookup): Pass next_uid as hash.  Adjust.
22846         (cselib_process_insn): Adjust.
22847         (cselib_init): Initialize next_uid.
22848         (cselib_finish): Adjust.
22849         (dump_cselib_table): Likewise.
22850         * dse.c (canon_address): Dump value uid.
22851         * print-rtl.c (print_rtx): Print value uid.
22852         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
22853         (dvuid): New type.
22854         (dv_uid): New function, sort of renamed from...
22855         (dv_htab_hash): ... this, reimplemented in terms of it and...
22856         (dv_uid2hash): ... this.  New.
22857         (variable_htab_eq): Drop excess assertions.
22858         (tie_break_pointers): Removed.
22859         (canon_value_cmp): Compare uids.
22860         (variable_post_merge_New_vals): Print uids.
22861         (vt_add_function_parameters): Adjust.
22862         (vt_initialize): Reset table.  Adjust.
22863
22864 2010-02-03  Richard Guenther  <rguenther@suse.de>
22865
22866         PR tree-optimization/42944
22867         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
22868         (call_may_clobber_ref_p_1): Likewise.  Properly handle
22869         malloc and calloc clobbering errno.
22870
22871 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
22872
22873         * doc/invoke.texi: Fix name of sched1 dump.
22874
22875         * opts.c (decode_options): Set flag_tree_switch_conversion
22876         only conditionally on optimize >= 2.
22877
22878         * gcse.c: Assorted comment fixes in pass description.
22879
22880 2010-02-03  Anthony Green  <green@moxielogic.com>
22881
22882         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
22883         nop padding in order to maintain alignment of storage location of
22884         target function address.
22885         (moxie_trampoline_init): Store target function address at newly
22886         aligned location.
22887         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
22888         to 32.
22889         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
22890
22891 2010-02-03  Richard Guenther  <rguenther@suse.de>
22892
22893         PR middle-end/42927
22894         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
22895
22896 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22897
22898         * config.gcc: Reenable check for obsolete targets.
22899         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
22900         mips-sgi-irix6.[0-4]*.
22901
22902 2010-02-02  Nick Clifton  <nickc@redhat.com>
22903
22904         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
22905         constant size of 4 as being the same as 0.
22906         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
22907         can take values in the range 0..4.
22908
22909 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
22910
22911         PR java/41991
22912         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
22913         as _darwin10_Unwind_FindEnclosingFunction().
22914         * libgcc-libsystem.ver: New.
22915
22916 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
22917
22918         PR target/41399
22919         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
22920         implicitly set registers.
22921
22922 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
22923
22924         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
22925         (arm_override_options): Allow automatic selection of the thread
22926         pointer register if thumb2.
22927         (legitimize_pic_address): Improve code sequences for Thumb2.
22928         (arm_call_tls_get_addr): Likewise.
22929         (legitimize_tls_address): Likewise.
22930         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
22931         (pic_load_addr_32bit): ... this.  New named pattern.
22932         * thumb2.md (pic_load_addr_thumb2): Delete.
22933         (pic_load_dot_plus_four): Delete.
22934         (tls_load_dot_plus_four): New named pattern.
22935
22936 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22937
22938         PR libgomp/29986
22939         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
22940         Document fix for TLS bug.
22941
22942 2010-01-31  Richard Guenther  <rguenther@suse.de>
22943
22944         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
22945         conservatively correct.
22946
22947 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22948
22949         PR target/42850
22950         Revert:
22951         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22952
22953         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
22954
22955 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22956
22957         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
22958
22959 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
22960
22961         * config.gcc: Adjust order of makefile fragments for mingw targets.
22962
22963 2010-01-31  Richard Guenther  <rguenther@suse.de>
22964
22965         PR middle-end/42898
22966         * gimplify.c (gimplify_init_constructor): For volatile LHS
22967         initialize a temporary.
22968
22969 2010-01-31  Matthias Klose  <doko@ubuntu.com>
22970
22971         * configure.ac: Fix __stack_chk_fail check for cross builds configured
22972         --with-headers
22973         * configure: Regenerate.
22974
22975 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
22976
22977         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
22978         the same alias set and their sizes different constantness.
22979         (aliasing_component_refs_p): Revert 2009-10-24 change.
22980
22981 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22982
22983         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
22984         unused.
22985
22986 2010-01-29  Richard Guenther  <rguenther@suse.de>
22987
22988         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
22989         Assert we successfully updated the call.
22990
22991 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
22992
22993         PR rtl-optimization/42889
22994         * df.h (df_set_bb_dirty_nonlr): New prototype.
22995         * df-core.c (df_set_bb_dirty_nonlr): New function.
22996         * df-scan.c (df_insn_rescan): Call it instead of
22997         df_set_bb_dirty for DEBUG_INSNs.
22998
22999 2010-01-29  Richard Guenther  <rguenther@suse.de>
23000
23001         PR middle-end/37448
23002         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
23003         quadratic behavior in most cases.
23004
23005 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
23006
23007         PR target/42891
23008         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
23009         in the call to gen_x86_movsicc_0_m1.
23010
23011 2010-01-28  Richard Guenther  <rguenther@suse.de>
23012
23013         PR tree-optimization/42871
23014         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
23015
23016 2010-01-28  Richard Guenther  <rguenther@suse.de>
23017
23018         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
23019         into call arguments.
23020
23021 2010-01-28  Richard Guenther  <rguenther@suse.de>
23022
23023         PR middle-end/42883
23024         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
23025         the forwarder if the destination is an EH landing pad.
23026
23027 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
23028
23029         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
23030         block list passed to gimple_duplicate_sese_tail.
23031         (parallelize_loops): Avoid parallelization when the function
23032         has_nonlocal_label.
23033         Avoid parallelization when the preheader is IRREDUCIBLE.
23034         Try to optimize when estimated_loop_iterations_int is unresolved.
23035         Add the loop's location to the dump file.
23036         * tree-cfg.c (add_phi_args_after_redirect): Remove.
23037         (gimple_duplicate_sese_tail): Remove the check for the latch.
23038         Redirect nexits to the exit block.
23039         Remove handling of the incoming edges to the latch.
23040         Redirect the backedge from the copied latch to the exit bb.
23041
23042 2010-01-28  Michael Matz  <matz@suse.de>
23043
23044         PR target/42881
23045         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
23046         Wrap force_reg into a sequence, emit it before user.
23047
23048 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
23049
23050         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
23051         (arm_rev): New.
23052         (arm_legacy_rev): Likewise.
23053         (thumb_legacy_rev): Likewise.
23054
23055 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
23056
23057         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
23058         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
23059         on MEM's address failed, try avoid_constant_pool_reference and
23060         recurse if it returned something different.
23061         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
23062         address, try avoid_constant_pool_reference and recurse if it
23063         returned something different.
23064         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
23065         address and avoid_constant_pool_reference returned something
23066         different, don't set have_address.
23067
23068 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
23069
23070         PR debug/42861
23071         * var-tracking.c (val_store): Add modified argument, obey it.
23072         Adjust callers.
23073         (count_uses): Move down logging of main.
23074         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
23075         don't need resolution.
23076         (emit_notes_in_bb): Likewise.
23077
23078 2010-01-27  Richard Guenther  <rguenther@suse.de>
23079
23080         PR middle-end/42878
23081         * tree-inline.c (remap_decl): Delay remapping of SSA name
23082         default definitions until we need them.
23083
23084 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
23085
23086         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
23087         (rs6000_delegitimize_address): New function.
23088
23089         * config/s390/s390.c (s390_delegitimize_address): Call
23090         delegitimize_mem_from_attrs.
23091
23092         PR middle-end/42874
23093         * tree-inline.c (cannot_copy_type_1): Removed.
23094         (copy_forbidden): Don't forbid copying of functions containing
23095         records/unions with variable length fields.
23096
23097 2010-01-27  Christian Bruel  <christian.bruel@st.com>
23098
23099         Revert:
23100         PR target/42841
23101         * config/sh/sh.c (find_barrier): Increase length for non delayed
23102         conditional branches.
23103
23104 2010-01-27  Matthias Klose  <doko@ubuntu.com>
23105
23106         * configure.ac (gnu-unique-object): Fix ldd version check.
23107         * configure: Regenerate.
23108
23109 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23110
23111         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
23112         HAVE_GNU_AS value.
23113         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
23114         Test for HAVE_GNU_AS value.
23115
23116 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23117
23118         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
23119         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
23120         INT64_TYPE): Define.
23121         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
23122         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
23123         INT_LEAST64_TYPE): Define.
23124         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
23125         UINT_LEAST64_TYPE): Define.
23126         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
23127         INT_FAST64_TYPE): Define.
23128         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
23129         UINT_FAST64_TYPE): Define.
23130         (INTMAX_TYPE, UINTMAX_TYPE): Define.
23131         (INTPTR_TYPE, UINTPTR_TYPE): Define.
23132         (SIG_ATOMIC_TYPE): Define.
23133
23134 2010-01-26  Richard Guenther  <rguenther@suse.de>
23135
23136         * df-scan.c (df_scan_set_bb_info): Remove assert.
23137         (df_insn_rescan_debug_internal): Merge asserts.
23138         (df_install_ref): Likewise.
23139         (df_mark_reg): Use bitmap_set_range.
23140         (df_hard_reg_used_p): Remove assert.
23141         (df_hard_reg_used_count): Likewise.
23142
23143 2010-01-26  Richard Guenther  <rguenther@suse.de>
23144
23145         PR rtl-optimization/42685
23146         * web.c (web_main): Ignore DEBUG_INSNs.
23147
23148 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
23149
23150         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
23151
23152         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
23153         Fix types of fndecl and arglist parameters.
23154
23155 2010-01-26  Richard Guenther  <rguenther@suse.de>
23156
23157         PR middle-end/42806
23158         * tree-eh.c (unsplit_eh): Skip debug insns.
23159
23160 2010-01-26  Richard Guenther  <rguenther@suse.de>
23161
23162         PR tree-optimization/42250
23163         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
23164
23165 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
23166
23167         PR fortran/42866
23168         * omp-low.c (expand_omp_sections): Only use single_pred if
23169         l2_bb is single_pred_p.
23170
23171 2010-01-25  Christian Bruel  <christian.bruel@st.com>
23172
23173         PR target/42841
23174         * config/sh/sh.c (find_barrier): Increase length for non delayed
23175         conditional branches.
23176         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
23177
23178 2010-01-24  David S. Miller  <davem@davemloft.net>
23179
23180         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
23181         define if not using GAS.
23182         * config/sparc/sparc.c (sparc_elf_asm_named_section):
23183         Likewise.  Delete SECTION_MERGE code, which is only applicable
23184         when using GAS.
23185
23186 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
23187
23188         PR c++/42748
23189         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
23190         mangling of va_list in system headers.
23191
23192 2010-01-23  Toon Moene  <toon@moene.org>
23193
23194         * tree-predcom.c (combine_chains): Return NULL, not false.
23195
23196 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
23197
23198         * tree-loop-distribution.c (distribute_loop): Fix declaration and
23199         initialization of variable res to agree with return type.
23200
23201 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
23202
23203         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
23204         * tree-sra.c: Add include of expr.h.
23205
23206 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
23207
23208         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
23209         insert the debug stmt on the single non-EH edge from the stmt.
23210
23211 2010-01-22  Richard Henderson  <rth@redhat.com>
23212
23213         PR tree-opt/42833
23214         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
23215         the RHS until after generate_subtree_copies has insertted its
23216         code before the current statement.
23217
23218 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
23219
23220         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
23221
23222         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
23223
23224 2010-01-21  Martin Jambor  <mjambor@suse.cz>
23225
23226         PR tree-optimization/42585
23227         * tree-sra.c (struct access): New field grp_total_scalarization.
23228         (dump_access): Dump the new field.
23229         (should_scalarize_away_bitmap): New variable.
23230         (cannot_scalarize_away_bitmap): Likewise.
23231         (sra_initialize): Allocate new bitmaps.
23232         (sra_deinitialize): Free new bitmaps.
23233         (create_access_1): New function.
23234         (create_access): Parts moved to create_access_1.
23235         (type_consists_of_records_p): New function.
23236         (completely_scalarize_record): Likewise.
23237         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
23238         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
23239         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
23240         access.
23241         (analyze_all_variable_accesses): Completely scalarize small eligible
23242         records.
23243
23244 2010-01-21  Martin Jambor  <mjambor@suse.cz>
23245
23246         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
23247
23248 2010-01-21  Andrew Haley  <aph@redhat.com>
23249
23250         * gcc.c (process_command): Move lang_specific_driver before
23251         setting cc_libexec_prefix.
23252
23253 2010-01-21  Richard Guenther  <rguenther@suse.de>
23254
23255         PR middle-end/19988
23256         * fold-const.c (negate_expr_p): Pretend only negative
23257         real constants are easily negatable.
23258
23259 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
23260             Jason Merrill  <jason@redhat.com>
23261
23262         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
23263         (TYPE_TRANSPARENT_AGGR): this, for union and record.
23264         * calls.c (initialize argument_information): Handle it.
23265         * c-common.c (handle_transparent_union_attribute): Use new name.
23266         * c-decl.c (finish_struct): Ditto.
23267         * c-typeck.c (type_lists_compatible_p): Ditto.
23268         (convert_for_assignment): Use new name and also handle record.
23269         * function.c (aggregate_value_p): Handle it.
23270         (pass_by_reference): Ditto.
23271         (assign_parm_data_types): Ditto.
23272         * print-tree.c (print_node): Ditto.
23273         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
23274         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
23275         * tree.c (first_field): New fn.
23276
23277 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
23278
23279         PR target/42818
23280         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
23281         even when linking statically, for now.
23282
23283 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
23284
23285         PR debug/42715
23286         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
23287         without a cselib val.
23288         (count_uses): Accept MO_VAL_SET with no val on stores.
23289         (add_stores): Likewise.
23290
23291 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
23292
23293         * var-tracking.c (check_value_val): Add a compile time assertion.
23294         (dv_is_decl_p): Simplify.
23295         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
23296         gcc_assert if ENABLE_CHECKING.
23297
23298 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
23299
23300         PR debug/42782
23301         * var-tracking.c: Include tree-flow.h.
23302         (mem_dies_at_call): New.
23303         (dataflow_set_preserve_mem_locs): Use it.
23304         (dataflow_set_remove_mem_locs): Likewise.
23305         (dump_var): Renamed from dump_variable.  Adjust all callers.
23306         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
23307         * Makefile.in (var-tracking.o): Adjust deps.
23308
23309 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
23310
23311         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
23312
23313 2010-01-20  Richard Guenther  <rguenther@suse.de>
23314
23315         PR tree-optimization/42717
23316         * tree-ssa-dce.c (get_live_post_dom): Remove.
23317         (forward_edge_to_pdom): Take an arbitrary edge to copy
23318         degenerate PHI args from.
23319         (remove_dead_stmt): Use the first post-dominator even if it
23320         does not contain live statements as redirection destination.
23321
23322 2010-01-20  Richard Guenther  <rguenther@suse.de>
23323
23324         * tree-inline.c (estimate_num_insns): Handle EH builtins.
23325
23326 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
23327
23328         * sel-sched.c (create_speculation_check): Remove set but not used
23329         variable twin.
23330         (try_transformation_cache): Remove set but not used variable ds.
23331         (calculate_privileged_insns): Remove set but not used variables
23332         cur_insn and min_spec_insn.
23333         (find_best_expr): Remove set but not used variable avail_n.
23334         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
23335         variable e.
23336         * cgraphunit.c (assemble_thunk): Remove set but not used variable
23337         false_label.
23338         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
23339         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
23340         new_scop_exit_edge.
23341
23342 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
23343
23344         PR bootstrap/42786
23345         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
23346         cpu types.  Add support for *-sse3 cpu types.
23347         (x86_64-*-*): Ditto.
23348
23349 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
23350
23351         PR middle-end/42803
23352         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
23353         argument, call initializer_constant_valid_p_1 instead of
23354         initializer_constant_valid_p, pass CACHE to it, return NULL
23355         immediately if first call returns NULL.
23356         (initializer_constant_valid_p_1): New function.
23357         (initializer_constant_valid_p): Use it.
23358
23359 2010-01-20  Thomas Quinot  <quinot@adacore.com>
23360
23361         * tree.def (PLACEHOLDER_EXPR): Fix comment.
23362
23363 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
23364
23365         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
23366         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
23367         (loc_list_from_tree): Don't handle unsigned division.  Handle
23368         signed modulo using DW_OP_{over,over,div,mul,minus}.
23369         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
23370         modulo instead of signed.
23371
23372 2010-01-20  DJ Delorie  <dj@redhat.com>
23373
23374         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
23375         (Fpa): Pass it
23376         (h8300_emit_stack_adjustment): Propogate it.
23377         (push): Pass it.
23378         (h8300_expand_prologue): Likewise.
23379         (h8300_expand_epilogue): Likewise.
23380
23381 2010-01-19  Michael Matz  <matz@suse.de>
23382
23383         PR tree-optimization/41783
23384         * tree-data-ref.c (toplevel): Include flags.h.
23385         (dump_data_dependence_relation):  Also dump the inputs if the
23386         result will be unknown.
23387         (split_constant_offset_1): Look through some conversions.
23388         * tree-predcom.c (determine_roots_comp): Restart a new chain if
23389         the offset from last element is too large.
23390         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
23391         (reassociate_to_the_same_stmt): Handle vector registers.
23392         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
23393         (e.g. conversions).
23394         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
23395         wide_prolog_niters argument, emit widening instructions.
23396         (vect_do_peeling_for_alignment): Adjust caller, use widened
23397         variant of the iteration cound.
23398         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
23399
23400 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
23401
23402         PR target/38697
23403         * config/arm/neon-testgen.m (emit_automatics): New parameter
23404         features. Adjust for Fixed_return_reg feature.
23405         (test_intrinsic): Call emit_automatics with new feature.
23406         * config/arm/neon.ml: Update copyright years.
23407         (features): New Fixed_return_reg feature.
23408         (ops): Update feature for Vget_low.
23409
23410 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
23411
23412         PR tree-optimization/42719
23413         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
23414         stmt uses.
23415
23416         PR debug/42728
23417         * fwprop.c (all_uses_available_at): Return false if def_set dest
23418         is a REG that is used in def_insn.
23419
23420 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
23421
23422         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
23423
23424         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
23425         Add argument names.
23426
23427         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
23428
23429         * target.h (struct gcc_target) <secondary_reload>: Change type
23430         of last argument to secondary_reload_info *.
23431
23432 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
23433
23434         PR target/42774
23435         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
23436         memory references with unaligned offsets.  Remove CQImode handling.
23437         (unaligned_memory_operand): Return 1 for memory references with
23438         unaligned offsets.  Remove CQImode handling.
23439
23440 2010-01-18  Richard Guenther  <rguenther@suse.de>
23441
23442         PR middle-end/39954
23443         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
23444         builtin calls.
23445
23446 2010-01-18  Richard Guenther  <rguenther@suse.de>
23447
23448         PR tree-optimization/42781
23449         * tree-ssa-structalias.c (find_what_var_points_to): Skip
23450         restrict processing only if the original variable was artificial.
23451
23452 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
23453
23454         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
23455         find number of popped argument bytes.
23456
23457         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
23458         Fix the text that describes the return value for invalid insns.
23459
23460         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
23461
23462         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
23463         Clarify what 'cost of the -dependence' is.  Fix quoting.
23464
23465         * toplev.c (default_get_pch_validity): Rename argument to "sz".
23466         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
23467
23468 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
23469
23470         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
23471         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
23472
23473 2010-01-17  Richard Guenther  <rguenther@suse.de>
23474
23475         PR middle-end/42248
23476         * function.c (split_complex_args): Take a VEC to modify.
23477         (assign_parms_augmented_arg_list): Build a VEC instead of
23478         a chain of PARM_DECLs.
23479         (assign_parms_unsplit_complex): Take a VEC of arguments.
23480         Do not fixup unmodified parms.
23481         (assign_parms): Deal with the VEC.
23482         (gimplify_parameters): Likewise.
23483
23484 2010-01-17  Richard Guenther  <rguenther@suse.de>
23485
23486         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
23487         node existence check.
23488         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
23489         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
23490         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
23491         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
23492         (gimple_execute_on_growing_pred): Likewise.
23493
23494 2010-01-17  Richard Guenther  <rguenther@suse.de>
23495
23496         PR tree-optimization/42773
23497         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
23498         (compute_antic_aux): Likewise.
23499         (compute_partial_antic_aux): Likewise.
23500
23501 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
23502
23503         PR debug/42767
23504         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
23505         and US_TRUNCATE.
23506
23507 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
23508
23509         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
23510         appearance.
23511
23512         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
23513         Fix markup for strict argument.
23514
23515         (TARGET_SCHED_REORDER2): Fix argument types.
23516
23517         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
23518         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
23519
23520         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
23521         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
23522
23523         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
23524         Add argument name.
23525
23526         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
23527         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
23528         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
23529         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
23530         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
23531
23532         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
23533
23534         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
23535
23536         (TARGET_ASM_RELOC_RW_MASK): Add return type.
23537         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
23538
23539         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
23540
23541         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
23542         Use prototype.
23543
23544         (TARGET_ASM_NAMED_SECTION): Fix argument list.
23545
23546         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
23547         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
23548
23549         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
23550
23551         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
23552
23553         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
23554         referring to it.  Fix language.
23555
23556         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
23557
23558         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
23559
23560         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
23561
23562         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
23563
23564         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
23565         '@var{stream}.  Remove stray 'and'.
23566
23567         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
23568
23569         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
23570
23571         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
23572
23573         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
23574         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
23575
23576         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
23577         Fix description of return value.
23578         Rename argument "sz" to "len."
23579
23580         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
23581         Clarify meaning of 'true' return value.
23582
23583         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
23584
23585         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
23586         rep_mode versus mode_rep.
23587
23588         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
23589
23590         (TARGET_BUILTIN_DECL): Fix name.
23591
23592         (TARGET_COMMUTATIVE_P): Fix type of first argument.
23593
23594         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
23595
23596         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
23597
23598         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
23599
23600         (TARGET_RELAXED_ORDERING): Use @deftypevr.
23601
23602         (TARGET_GET_DRAP_RTX): Note that this is a hook.
23603         Clarify language.
23604
23605         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
23606         Rename argument tm_fn to md_fn.
23607
23608         (TARGET_OPTION_PRINT): Fix argument list.
23609
23610 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
23611
23612         PR target/42664
23613         * config/i386/i386.c (ix86_fixup_binary_operands):
23614         Revert FMA4 fixup of operands.
23615
23616 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
23617
23618         PR gcc/42525
23619         * Makefile.in (write_entries_to_file, install-plugin):
23620         Use \012 instead of \n with tr.
23621
23622 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
23623
23624         * configure.ac (HAVE_AS_REF): New C macro.
23625         * configure: Regenerate.
23626         * config.in: Likewise.
23627         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
23628         if HAVE_AS_REF.
23629         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
23630         if HAVE_AS_REF.
23631
23632 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
23633
23634         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
23635
23636         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
23637
23638         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
23639
23640         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
23641
23642         (TARGET_IN_SMALL_DATA_P): Fix argument type.
23643
23644         (TARGET_BINDS_LOCAL_P): Fix argument type.
23645
23646         (TARGET_ASM_FILE_END): Use prototype.
23647
23648         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
23649
23650         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
23651
23652         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
23653
23654         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
23655
23656         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
23657         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
23658
23659         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
23660         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
23661
23662         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
23663         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
23664         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
23665         (TARGET_ADDR_SPACE_CONVERT): Likewise.
23666
23667         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
23668
23669         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
23670
23671         (TARGET_INIT_BUILTINS): Use prototype.
23672
23673         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
23674         Put 'const char *' in braces.  Fix parameter types.
23675         (TARGET_INVALID_CONVERSION): Fix parameter types.
23676         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
23677         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
23678
23679         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
23680         Fix argument type.
23681
23682         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
23683
23684         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
23685
23686 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
23687
23688         * doc/tm.texi (TARGET_HELP): Fix return type.
23689
23690         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
23691         in braces.  Fix argument types.
23692
23693         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
23694
23695         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
23696
23697         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
23698
23699         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
23700         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
23701
23702         (TARGET_MANGLE_TYPE): Fix argument types.
23703
23704         (TARGET_IRA_COVER_CLASSES): Use prototype.
23705
23706         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
23707
23708         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
23709
23710         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
23711
23712         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
23713
23714         (TARGET_CALLEE_COPIES): Fix argument types.
23715
23716         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
23717
23718         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
23719
23720         (TARGET_FUNCTION_VALUE): Fix argument types.
23721
23722         (TARGET_RETURN_IN_MSB): Fix argument type.
23723
23724         (TARGET_RETURN_IN_MEMORY): Fix argument types.
23725
23726         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
23727
23728         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
23729
23730         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
23731         agree with return type.
23732
23733         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
23734
23735 2010-01-15  Jing Yu  <jingyu@google.com>
23736
23737         PR rtl-optimization/42691
23738         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
23739         a pseudo to a constant and are merged, and adjust comments.
23740
23741 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
23742
23743         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
23744
23745 2010-01-15  Richard Guenther  <rguenther@suse.de>
23746
23747         PR middle-end/42739
23748         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
23749         labels of computed or non-local gotos to the destination.
23750         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
23751         landing pad label is the first label.
23752
23753 2010-01-15  Richard Guenther  <rguenther@suse.de>
23754
23755         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
23756
23757 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
23758
23759         PR target/42747
23760         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
23761         to allow generation of the xssqrtdp instruction on power7.
23762         (sqrtdf2_fpr): Ditto.
23763
23764 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
23765
23766         PR middle-end/42674
23767         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
23768         functions with noreturn attribute.
23769
23770         PR c++/42608
23771         * varasm.c (declare_weak): Add weak attribute to decl if it
23772         doesn't have one already.
23773         (assemble_external): Only add decls to weak_decls if they also
23774         have weak attribute.
23775
23776 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
23777
23778         * var-tracking.c (var_reg_delete): Don't delete the association
23779         between REGs and values or one-part variables if the register
23780         isn't clobbered.
23781
23782 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
23783
23784         PR debug/42657
23785         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
23786         because its first operand is a non-localized variable.
23787
23788 2010-01-14  Martin Jambor  <mjambor@suse.cz>
23789
23790         PR tree-optimization/42706
23791         * tree-sra.c (encountered_recursive_call): New variable.
23792         (encountered_unchangable_recursive_call): Likewise.
23793         (sra_initialize): Initialize both new variables.
23794         (callsite_has_enough_arguments_p): New function.
23795         (scan_function): Call decl and flags check only for IPA-SRA, check
23796         whether there is a recursive call and whether it has enough arguments.
23797         (all_callers_have_enough_arguments_p): New function.
23798         (convert_callers): Look for recursive calls only when
23799         encountered_recursive_call is set.
23800         (ipa_early_sra): Bail out either if
23801         !all_callers_have_enough_arguments_p or
23802         encountered_unchangable_recursive_call.
23803
23804 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
23805
23806         * sel-sched.c: Add 2010 to copyright years.
23807         * sel-sched-ir.c: Likewise.
23808         * sel-sched-ir.h: Likewise.
23809
23810 2010-01-14  Martin Jambor  <mjambor@suse.cz>
23811
23812         PR tree-optimization/42714
23813         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
23814         constructors specially.
23815
23816 2010-01-14  Andi Kleen  <ak@linux.intel.com>
23817
23818         * config/i386/drivers-i386.c (detect_caches_intel):
23819         Add l2sizekb parameter and fill in.
23820         (host_detect_local_cpu): Add l2sizekb, fill in.
23821         Add Atom small cache heuristic.
23822
23823 2010-01-14  Andi Kleen  <ak@linux.intel.com>
23824
23825         * config/i386/drivers-i386.c (detect_caches_cpuid4):
23826         Add level3 parameter and fill in.
23827         (detect_caches_intel): Handle level3 cache.
23828
23829 2010-01-14  Andi Kleen  <ak@linux.intel.com>
23830
23831         * config/i386/drivers-i386.c (host_detect_local_cpu):
23832         Fix core duo detection.
23833
23834 2010-01-14  Andi Kleen  <ak@linux.intel.com>
23835
23836         * config/i386/drivers-i386.c (host_detect_local_cpu):
23837         Fix Atom detection.
23838
23839 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
23840
23841         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
23842         (rs6000_variable_issue_1): this.  Use...
23843         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
23844
23845 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
23846
23847         * sel-sched-ir.c (sel_restore_other_notes): Rename to
23848         sel_restore_notes.  Update all callers.  Call reemit_notes
23849         for all insns.
23850
23851 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
23852
23853         PR rtl-optimization/42246
23854         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
23855         loops.
23856
23857 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
23858
23859         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
23860         all successors is the same as number of successors in current region.
23861
23862 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
23863
23864         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
23865         to rename is not separable.  Otherwise check that its LHS is not NULL.
23866
23867 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
23868
23869         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
23870
23871 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
23872
23873         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
23874         available registers when failed to discover LHS register class.
23875         Fix indentation.  Update comment.
23876
23877 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
23878             Alexander Monakov  <amonakov@ispras.ru>
23879
23880         PR rtl-optimization/42389
23881         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
23882         to can_issue_more.
23883         (advance_state_on_fence): Likewise.
23884         (sel_target_adjust_priority): Print debug output only when
23885         sched_verbose >= 4, not 2.
23886         (get_expr_cost): Do not issue all unique insns on the next cycle.
23887         (fill_insns): Initialize can_issue_more from the value saved
23888         with the fence.
23889         * sel-sched-ir.c (flist_add): New parameter issue_more.
23890         Init FENCE_ISSUE_MORE with it.
23891         (merge_fences): Likewise.
23892         (init_fences): Update call to flist_add.
23893         (add_to_fences, add_clean_fence_to_fences)
23894         (add_dirty_fence_to_fences): Likewise.
23895         (move_fence_to_fences): Update call to merge_fences.
23896         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
23897         sched groups.
23898         * sel-sched-ir.h (struct _fence): New field issue_more.
23899         (FENCE_ISSUE_MORE): New accessor macro.
23900
23901 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
23902
23903         PR rtl-optimization/42388
23904         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
23905         that have no predecessors nor successors.  Do not call move_bb_info
23906         for empty blocks outside of current region.
23907
23908 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
23909
23910         PR rtl-optimization/42294
23911         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
23912         * sel-sched.c (move_exprs_to_boundary): Transitively add all
23913         originators' originators.
23914
23915 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
23916
23917         PR rtl-optimization/39453
23918         PR rtl-optimization/42246
23919         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
23920         for pipelining_p.
23921         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
23922
23923 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
23924             Alexander Monakov  <amonakov@ispras.ru>
23925
23926         PR middle-end/42245
23927         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
23928         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
23929         argument.  Update all callers.
23930         (tidy_control_flow): ... and here.  Recompute topological order
23931         of basic blocks in region if necessary.
23932         (sel_redirect_edge_and_branch): Change return type.  Return true
23933         if topological order might have been invalidated.
23934         (purge_empty_blocks): Export and move from...
23935         * sel-sched.c (purge_empty_blocks): ... here.
23936         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
23937         (maybe_tidy_empty_bb): Delete prototype.
23938         (purge_empty_blocks): Declare.
23939
23940 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
23941
23942         PR rtl-optimization/42249
23943         * sel-sched.c (try_replace_dest_reg): When chosen register
23944         and original register is the same, do not bail out early, but
23945         still check all original insns for validity of replacing destination
23946         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
23947         in this case.
23948
23949 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
23950
23951         PR c/42721
23952         Port from no-undefined-overflow branch:
23953         2009-03-09  Richard Guenther  <rguenther@suse.de>
23954
23955         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
23956
23957 2010-01-14  Richard Guenther  <rguenther@suse.de>
23958
23959         PR lto/42665
23960         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
23961
23962 2010-01-14  Ira Rosen  <irar@il.ibm.com>
23963
23964         PR tree-optimization/42709
23965         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
23966         as scalar type in creation of constant vector operand.
23967
23968 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
23969
23970         PR testsuite/42414
23971         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
23972         (check-parallel-%): Match `testsuite' directory component only
23973         at the end.
23974
23975 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
23976
23977         PR translation/39521
23978         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
23979         strings with _().
23980
23981 2010-01-13  Richard Guenther  <rguenther@suse.de>
23982
23983         PR tree-optimization/42730
23984         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
23985         offset zero.
23986
23987 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
23988
23989         PR target/pr42542
23990         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
23991         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
23992         them signed.
23993
23994 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
23995
23996         * config/bfin/libgcc-bfin.ver: Regenerate based on current
23997         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
23998         ___umulsi3_highpart.
23999
24000         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
24001         rather than schedule_insns if the pass is enabled.
24002
24003 2010-01-13  Martin Jambor  <mjambor@suse.cz>
24004
24005         PR tree-optimization/42704
24006         * tree-sra.c (sra_modify_assign): Do not delete assignments to
24007         SSA_NAMEs.
24008
24009 2010-01-13  Martin Jambor  <mjambor@suse.cz>
24010
24011         PR tree-optimization/42703
24012         * tree-sra.c (analyze_access_subtree): Check that we can build a
24013         reference to the original data within the aggregate.
24014
24015 2010-01-13  Richard Guenther  <rguenther@suse.de>
24016
24017         PR tree-optimization/42705
24018         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
24019
24020 2010-01-13  Richard Guenther  <rguenther@suse.de>
24021
24022         PR middle-end/42716
24023         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
24024
24025 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
24026
24027         PR debug/41371
24028         * var-tracking.c (values_to_unmark): New variable.
24029         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
24030         values_to_unmark vector.  Moved body to...
24031         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
24032         instead queue it into values_to_unmark vector.
24033         (vt_find_locations): Free values_to_unmark vector.
24034
24035 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
24036
24037         * config/s390/s390.c (override_options): Set
24038         default of max-pending-list-length to 256
24039
24040 2010-01-13  Richard Guenther  <rguenther@suse.de>
24041
24042         PR lto/42678
24043         * tree-pass.h (PROP_gimple_lcx): New.
24044         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
24045         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
24046         before the final cleanup_eh.
24047         (dump_properties): Dump PROP_gimple_lcx.
24048         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
24049         (tree_lower_complex_O0): Remove.
24050         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
24051         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
24052         tree_lower_complex, schedule TODO_update_ssa.
24053         * lto-streamer-out.c (output_function): Stream the functions
24054         properties.
24055         * lto-streamer-in.c (input_function): Likewise.
24056         (lto_read_body): Do not override them here.
24057
24058 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
24059
24060         PR c/42708
24061         * c-typeck.c (build_c_cast): Fold value cast to union type before
24062         wrapping it in a CONSTRUCTOR.
24063
24064 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
24065
24066         PR rtl-optimization/42699
24067         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
24068         involved.
24069
24070 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24071
24072         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
24073         SUBTARGET_WARN_UNUSED_SPEC): Move ...
24074         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
24075         SUBTARGET_WARN_UNUSED_SPEC): ... here
24076         * config/mips/iris5.h (LIBGCC_SPEC): Define.
24077
24078 2010-01-12  Julian Brown  <julian@codesourcery.com>
24079
24080         * config/arm/neon-schedgen.ml (Utils): Don't try to
24081         open missing module.
24082         (find_with_result): New.
24083
24084 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
24085
24086         PR debug/42662
24087         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
24088         sharing when canonicalizing ({lt,ge}u (plus a b) b).
24089
24090         PR tree-optimization/42645
24091         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
24092         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
24093         decl_map, set processing_debug_stmt to -1 and return name without
24094         any remapping.
24095
24096 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
24097
24098         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
24099         binutils version, and reword target configuration description.
24100
24101 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
24102
24103         * config/avr/avr.h (LINKER_NAME): Remove.
24104
24105 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
24106
24107         PR target/42416
24108         * config/rs6000/rs6000.c (rs6000_override_options): On targets
24109         that support VSX, warn for -mno-altivec if vsx is not disabled,
24110         and disable vsx.
24111
24112 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
24113             Shujing Zhao  <pearly.zhao@oracle.com>
24114
24115         PR translation/42469
24116         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
24117         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
24118         character between option name and help text.
24119         * c.opt (imultilib): Likewise.
24120
24121 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
24122
24123         * lto-streamer-out.c (output_unreferenced_globals): Output static
24124         variables.
24125
24126 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
24127
24128         PR rtl-optimization/42621
24129         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
24130         optimizing for size.
24131         (duplicate_computed_gotos): Remove now-redundant check.
24132
24133 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
24134
24135         PR target/37454
24136         * configure.ac: Save and restore LDFLAGS and LIBS
24137         * configure: Regenerate.
24138
24139 2010-01-10  Richard Guenther  <rguenther@suse.de>
24140
24141         PR middle-end/42667
24142         * builtins.c (fold_builtin_strlen): Add type argument and
24143         convert the resulting length to it.
24144         (fold_builtin_1): Adjust.
24145
24146 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
24147
24148         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
24149         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
24150         1 insn.
24151         (num_insns_constant_wide): Adjust for that change.
24152
24153 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
24154
24155         PR debug/42631
24156         * web.c (union_defs): Add used argument, to combine uses of
24157         uninitialized regs.
24158         (entry_register): Adjust type and tests of used argument.
24159         (web_main): Widen used for new use.  Pass it to union_defs.
24160         * df.h (union_defs): Adjust prototype.
24161
24162 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
24163
24164         PR debug/42630
24165         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
24166         uses in new incoming argument.  Free body.
24167         (reset_debug_uses_in_loop): New.
24168         (analyze_insn_to_expand_var): Call the latter if the former found
24169         anything.  Fix whitespace.  Reject invalid dest overlaps before
24170         going through all insns in the loop.
24171
24172 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
24173
24174         PR debug/42629
24175         * haifa-sched.c (dying_use_p): Debug insns don't count.
24176
24177 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
24178
24179         PR middle-end/42363
24180         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
24181         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
24182         (verify_gimple_call): Reject LHS in noreturn calls.
24183
24184 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
24185
24186         PR debug/42604
24187         PR debug/42395
24188         * tree-vect-loop-manip.c (adjust_info): New type.
24189         (adjust_vec): New pointer to vector.
24190         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
24191         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
24192         (slpeel_update_phis_for_duplicate_loop): Use them.
24193         (slpeel_update_phi_nodes_for_guard1): Likewise.
24194         (slpeel_update_phi_nodes_for_guard2): Likewise.
24195         (slpeel_tree_peel_loop_to_edge): Likewise.
24196         (vect_update_ivs_after_vectorizer): Likewise.
24197
24198 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
24199
24200         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
24201         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
24202
24203 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
24204
24205         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
24206         bogus uninitialized warning.
24207
24208 2010-01-09  Richard Guenther  <rguenther@suse.de>
24209
24210         PR middle-end/42512
24211         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
24212         the evolution is compatible with the initial condition.
24213
24214 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
24215
24216         * gcc.c (process_command): Update copyright notice dates.
24217         * gcov.c (print_version): Likewise.
24218         * gcov-dump.c (print_version): Likewise.
24219         * mips-tfile.c (main): Likewise.
24220         * mips-tdump.c (main): Likewise.
24221
24222 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
24223
24224         PR target/41885
24225         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
24226         (rotlhi3): Delete.
24227         (rotlhi3_8): Delete.
24228         (rotlsi3): Delete.
24229         (rotlsi3_8): Delete.
24230         (rotlsi3_16): Delete.
24231         (rotlsi3_24): Delete.
24232         (rotl<mode>3): New.
24233         (*rotw<mode>3): New.
24234         (*rotb<mode>3): New.
24235         * config/avr/avr.c (avr_rotate_bytes): New function.
24236         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
24237
24238 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
24239
24240         PR target/37454
24241         * configure.ac: Modify -rdynamic check.
24242         * configure: Regenerate.
24243
24244 2010-01-08  DJ Delorie  <dj@redhat.com>
24245
24246         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
24247         register popping order.
24248
24249 2010-01-08  Richard Guenther  <rguenther@suse.de>
24250
24251         PR lto/42528
24252         * c.opt (fsigned-char): Also let LTO handle this option.
24253         (funsigned-char): Likewise.
24254
24255 2010-01-07  Richard Guenther  <rguenther@suse.de>
24256
24257         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
24258         (gimple_op): Likewise.
24259         (gimple_op_ptr): Likewise.
24260         (gimple_assign_set_lhs): Remove gcc_assert.
24261         (gimple_assign_set_rhs1): Likewise.
24262         (gimple_assign_set_rhs2): Likewise.
24263         (gimple_call_set_lhs): Likewise.
24264         (gimple_call_set_fn): Likewise.
24265         (gimple_call_set_fndecl): Likewise.
24266         (gimple_call_fndecl): Likewise.
24267         (gimple_call_return_type): Likewise.
24268         (gimple_call_set_chain): Likewise.
24269         (gimple_call_num_args): Likewise.
24270         (gimple_call_set_arg): Likewise.
24271         (gimple_cond_set_code): Likewise.
24272         (gimple_cond_set_lhs): Likewise.
24273         (gimple_cond_set_rhs): Likewise.
24274         (gimple_cond_set_true_label): Likewise.
24275         (gimple_cond_set_false_label): Likewise.
24276         (gimple_label_set_label): Likewise.
24277         (gimple_goto_set_dest): Likewise.
24278         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
24279         (gimple_debug_bind_get_value): Likewise.
24280         (gimple_debug_bind_get_value_ptr): Likewise.
24281         (gimple_debug_bind_set_var): Likewise.
24282         (gimple_debug_bind_set_value): Likewise.
24283         (gimple_debug_bind_reset_value): Likewise.
24284         (gimple_debug_bind_has_value_p): Likewise.
24285         (gimple_return_retval_ptr): Remove gcc_assert.
24286         (gimple_return_retval): Likewise.
24287         (gimple_return_set_retval): Likewise.
24288         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
24289         (safe_referenced_var_iterator): Remove.
24290         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
24291         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
24292         (fill_referenced_var_vec): Remove.
24293         (first_readonly_imm_use): Remove redundant gcc_assert.
24294         (phi_arg_index_from_use): Combine gcc_asserts.
24295         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
24296         (first_imm_use_stmt): Remove redundant gcc_assert.
24297         * tree-cfg.c (verify_gimple_call): Verify function and chain
24298         operands.  Verify arguments.
24299         (verify_types_in_gimple_stmt): Verify condition code and labels.
24300
24301 2010-01-07  Richard Guenther  <rguenther@suse.de>
24302
24303         PR tree-optimization/42641
24304         * sese.c (rename_map_elt_info): Use the SSA name version, do
24305         not hash pointers.
24306
24307 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
24308
24309         PR tree-optimization/42625
24310         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
24311         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
24312
24313 2010-01-07  Duncan Sands  <baldrick@free.fr>
24314
24315         * Makefile.in (PLUGIN_HEADERS): Add version.h.
24316
24317 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
24318
24319         PR target/42511
24320         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
24321         note itself is not function_invariant_p.
24322
24323 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
24324
24325         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
24326         Do not add the DF_NOTE problem.
24327         * store-motion.c (execute_rtl_store_motion): Likewise.
24328
24329 2010-01-07  Martin Jambor  <mjambor@suse.cz>
24330
24331         PR tree-optimization/42157
24332         * tree-sra.c (compare_access_positions): Stabilize sort if both
24333         accesses have integer types, return zero immediately if they are the
24334         same.
24335
24336 2010-01-06  Richard Henderson  <rth@redhat.com>
24337
24338         PR middle-end/41883
24339         * haifa-sched.c (add_to_note_list): Merge into ...
24340         (concat_note_lists): ... here, and ...
24341         (unlink_other_notes, rm_other_notes): Merge into...
24342         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
24343         NOTE_INSN_EPILOGUE_BEG.
24344
24345 2010-01-06  Richard Guenther  <rguenther@suse.de>
24346
24347         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
24348         not inline regular functions into always-inline functions.
24349
24350 2010-01-06  Nick Clifton  <nickc@redhat.com>
24351
24352         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
24353         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
24354         used together.
24355         (OVERRIDE_OPTIONS): Delete.
24356         (OPTIMIZATION_OPTIONS): Define.
24357         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
24358         * config/rx/rx.c (rx_handle_option): Issue an error message if
24359         -mcpu=rx200 and -fpu are used together.
24360         (rx_set_optimization_options): New function.  Issue an error
24361         message if an optimization attribute attempts to reset the FPU/
24362         math optimization pairing.
24363         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
24364         * config/rx/rx.opt: Set the default to 32-bit doubles.
24365         * config/rx/t-rx: Add multilibs for -nofpu option.
24366         * doc/invoke.texi: Update documentation of RX options.
24367
24368 2010-01-06  Richard Guenther  <rguenther@suse.de>
24369
24370         * tree-ssa-pre.c (name_to_id): New global.
24371         (alloc_expression_id): Simplify SSA name handling.
24372         (lookup_expression_id): Likewise.
24373         (init_pre): Zero name_to_id.
24374         (fini_pre): Free it.
24375
24376 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
24377
24378         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
24379
24380 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
24381
24382         PR target/42542
24383         * config/i386/sse.md (smaxv2di3): New.
24384         (umaxv2di3): Likewise.
24385         (sminv2di3): Likewise.
24386         (uminv2di3): Likewise.
24387
24388 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
24389
24390         PR target/42564
24391         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
24392         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
24393         (legitimize_tls_address): Likewise.
24394         (sparc_tls_referenced_p): Likewise.
24395         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
24396         and adjust calls to legitimize_pic_address.
24397         (legitimate_constant_p) Use sparc_tls_referenced_p.
24398         (legitimate_pic_operand_p): Likewise.
24399         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
24400         (sparc_tls_symbol_ref_1): Delete.
24401         (sparc_tls_referenced_p): Make static, recognize specific patterns.
24402         (legitimize_tls_address): Make static, handle CONST patterns.
24403         (legitimize_pic_address): Make static, remove unused parameter and
24404         adjust recursive calls.
24405         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
24406         and adjust call to legitimize_pic_address.
24407         (sparc_output_mi_thunk): Likewise.
24408
24409 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
24410             H.J. Lu  <hongjiu.lu@intel.com>
24411
24412         PR target/42542
24413         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
24414         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
24415         operands to make them signed.
24416
24417         Revert:
24418         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
24419
24420         PR target/42542
24421         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
24422         GTU to GT for V4SI and V2DI.
24423
24424         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
24425         (umin<mode>3): Removed.
24426         (uminv8hi3): New.
24427         (uminv4si3): Likewise.
24428
24429 2010-01-05  Martin Jambor  <mjambor@suse.cz>
24430
24431         PR tree-optimization/42462
24432         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
24433         current_function_decl to helper functions and macros.
24434
24435 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24436
24437         PR bootstrap/41771
24438         * flags.h: Don't include real.h.
24439         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
24440         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
24441         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
24442         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
24443         * dominance.c: Update copyright.
24444         * gimple.c (walk_gimple_op): Remove inline.
24445         * tree-ssa-reassoc.c: Include real.h.
24446         * Makefile.in (FLAGS_H): Remove $(REAL_H).
24447         (tree-ssa-reassoc.o): Depend on $(REAL_H).
24448
24449 2010-01-05  Nick Clifton  <nickc@redhat.com>
24450
24451         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
24452         register to push into the stack frame when the accumulator has to
24453         be saved during interrupts.
24454
24455 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
24456
24457         * doc/invoke.texi: Remove the documentation about option
24458         -Wunreachable-code.
24459         * common.opt (Wunreachable-code):  Preserved for backward
24460         compatibility.
24461         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
24462         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
24463         the backward compatibility flag section.
24464
24465 2010-01-05  Richard Guenther  <rguenther@suse.de>
24466
24467         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
24468
24469 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
24470
24471         PR other/42611
24472         * cfgexpand.c (expand_one_var): Diagnose too large variables.
24473
24474         PR tree-optimization/42508
24475         * tree-sra.c (convert_callers): Check for recursive call
24476         by comparing cgraph nodes instead of decls.
24477         (modify_function): Call ipa_modify_formal_parameters also
24478         on all same_body aliases.
24479
24480         * cgraphunit.c (cgraph_materialize_all_clones): Compare
24481         cgraph nodes when checking for same_body aliases.
24482
24483 2010-01-05  Richard Guenther  <rguenther@suse.de>
24484
24485         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
24486         allocation and lookup.
24487         (get_or_alloc_expr_for_constant): Likewise.
24488         (phi_translate): Sink allocation.
24489
24490 2010-01-04  Richard Guenther  <rguenther@suse.de>
24491
24492         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
24493         a new entry only if needed.
24494         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
24495         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
24496         hashtable lookup.
24497         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
24498         the result array.
24499         (phi_translate): Handle CONSTANTs early.
24500
24501 2010-01-04  Martin Jambor  <mjambor@suse.cz>
24502
24503         PR tree-optimization/42398
24504         * tree-sra.c (struct access): Removed flag grp_different_types.
24505         (dump_access): Do not dump the removed flag.
24506         (sort_and_splice_var_accesses): Do not set the removed flag.
24507         (sra_modify_expr): Check for type compatibility directly.
24508
24509 2010-01-04  Martin Jambor  <mjambor@suse.cz>
24510
24511         PR tree-optimization/42366
24512         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
24513         edges with variable number of parameters.
24514         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
24515         flag instead of asserting it.
24516         (ipa_read_node_info): Read uses_analysis_done flag.
24517
24518 2010-01-04  Richard Guenther  <rguenther@suse.de>
24519
24520         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
24521         iterative_hash_* as intended.
24522         (vn_reference_compute_hash): Likewise.  Simplify hashing
24523         SSA names.
24524         (vn_reference_lookup_2): Likewise.
24525         (vn_nary_op_compute_hash): Likewise.
24526         (vn_phi_compute_hash): Likewise.
24527         (expressions_equal_p): Remove strange code.
24528         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
24529         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
24530         (bitmap_insert_into_set_1): Take value-id as parameter.
24531         (add_to_value): Pass it.
24532         (bitmap_insert_into_set): Likewise.
24533         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
24534
24535 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
24536
24537         PR driver/42442
24538         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
24539         (do_self_spec): For switches with SWITCH_IGNORE set set also
24540         SWITCH_IGNORE_PERMANENTLY.
24541         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
24542         of SWITCH_IGNORE.
24543
24544 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
24545
24546         * lto-streamer-out.c (output_unreferenced_globals): Output the full
24547         tree of an unreferenced global var.
24548
24549 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
24550
24551         PR target/42542
24552         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
24553         GTU to GT for V4SI and V2DI.
24554
24555         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
24556         (umin<mode>3): Removed.
24557         (uminv8hi3): New.
24558         (uminv4si3): Likewise.
24559
24560 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
24561
24562         PR lto/42581
24563         * collect2.c (main): Turn on trace in collect2 if -v is passed
24564         to gcc with LTO.
24565
24566 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
24567
24568         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
24569         description of expression operand.
24570
24571 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
24572
24573         * configure.ac: Add install-html to target_list for Make-hooks.
24574         * configure: Regenerate.
24575         * fortran/Make-lang.in (F95_HTMLFILES): New.
24576         (fortran.html): Use it.
24577         (fortran.install-html): New.
24578         * Makefile.in (install-html): Add lang.install-html.
24579         * java/Make-lang.in (JAVA_HTMLFILES): New.
24580         (java.html): Use it.
24581         (java.install-html): New.
24582         * objc/Make-lang.in (objc.install-html): New.
24583         * objcp/Make-lang.in (obj-c++.install-html): New.
24584         * cp/Make-lang.in (c++.install-html): New.
24585         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
24586         * lto/Make-lang.in (lto.install-html): New.
24587
24588 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
24589
24590         PR lto/42520
24591         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
24592
24593 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
24594
24595         PR rtl-optimization/41862
24596         * store-motion.c (store_killed_in_insn, compute_store_table,
24597         remove_reachable_equiv_notes, replace_store_insn,
24598         build_store_vectors): Ignore all DEBUG_INSNs.
24599
24600 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
24601
24602         PR lto/41564
24603         * common.opt: Add dumpdir.
24604
24605         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
24606         isn't specified.
24607         (option_map): Add --dumpdir.
24608
24609         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
24610
24611         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
24612
24613         * opts.c (decode_options): Try dump_dir_name first if
24614         dump_base_name isn't an absolute path.
24615         (common_handle_option): Handle OPT_dumpdir.
24616
24617         * toplev.c (dump_dir_name): New.
24618         (print_switch_values): Also ignore -dumpdir.
24619
24620         * toplev.h (dump_dir_name): New.
24621
24622 2010-01-03  Richard Guenther  <rguenther@suse.de>
24623
24624         PR tree-optimization/42589
24625         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
24626         double-word expansion of bswap32.
24627
24628 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
24629
24630         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
24631         with BLOCK_FOR_INSN.
24632         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
24633         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
24634         noce_process_if_block): Likewise.
24635         * gcse.c (compute_local_properties, insert_expr_in_table,
24636         insert_set_in_table, canon_list_insert, find_avail_set,
24637         pre_insert_copy_insn): Likewise.
24638
24639         * basic-block.h (BLOCK_NUM): Move from here...
24640         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
24641
24642 2010-01-03  Richard Guenther  <rguenther@suse.de>
24643
24644         PR tree-optimization/42438
24645         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
24646         contains_may_not_return_call flag.
24647         (BB_MAY_NOTRETURN): New.
24648         (valid_in_sets): Trapping nary operations are not valid
24649         in blocks that may not return.
24650         (insert_into_preds_of_block): Remove check for trapping expressions.
24651         (compute_avail): Compute also BB_MAY_NOTRETURN.
24652
24653 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
24654
24655         * doc/invoke.texi: Add 2010 to copyright years.
24656
24657 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
24658
24659         * config/sparc/sparc.c: Fix formatting nits.
24660
24661 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
24662             Alexander Monakov  <amonakov@ispras.ru>
24663
24664         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
24665
24666 2010-01-02  Richard Guenther  <rguenther@suse.de>
24667
24668         PR middle-end/42577
24669         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
24670         (simplify_switch_using_ranges): Mark to be removed edges
24671         as non-executable.
24672
24673 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
24674
24675         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
24676
24677         * collect2.c (scan_libraries): Add missing argument in call to
24678         scan_prog_file.
24679
24680 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
24681
24682         PR target/42448
24683         * config/alpha/predicates.md (aligned_memory_operand): Return false
24684         for CQImode.
24685         (unaligned_memory_operand): Return true for CQImode.
24686         * config/alpha/alpha.c (get_aligned_mem): Assert that location
24687         doesn not cross aligned SImode word boundary.
24688
24689 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
24690
24691         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
24692         Remove.
24693         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
24694         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
24695
24696 2010-01-02  Richard Guenther  <rguenther@suse.de>
24697
24698         PR lto/41597
24699         * toplev.c (compile_file): Emit LTO marker properly.  Change
24700         it to __gnu_lto_v1.
24701         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
24702
24703 2010-01-01  Richard Guenther  <rguenther@suse.de>
24704
24705         PR debug/42455
24706         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
24707
24708 2010-01-01  Richard Guenther  <rguenther@suse.de>
24709
24710         PR c/42570
24711         * c-decl.c (grokdeclarator): For zero-size arrays force
24712         structural equality checks as layout_type does.
24713
24714 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
24715
24716         * builtins.c: Update copyright to 2010.
24717
24718 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
24719
24720         PR lto/42531
24721         * lto-streamer-out.c (produce_asm): Revert the last change.
24722         (copy_function): Likewise.
24723
24724         * lto-streamer.c (lto_get_section_name): Skip any leading
24725         asterisk in name.
24726
24727 2010-01-01  Richard Guenther  <rguenther@suse.de>
24728
24729         PR middle-end/42559
24730         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
24731         for LABEL_DECLs.
24732
24733 \f
24734 Copyright (C) 2010 Free Software Foundation, Inc.
24735
24736 Copying and distribution of this file, with or without modification,
24737 are permitted in any medium without royalty provided the copyright
24738 notice and this notice are preserved.